DOCS: refresh

The docs need a whole passover/updating, some things are simpler to do now (baking physics, building xrpks, website minting), some things need more content / images, and the different classes of items like pets/mount/wearables/etc. need to be documented.

There are 10 days with no updates. Do we need to re-evaluate the quality of the docs again?

refreshed on all these items


List: :sparkles: New size 'large'

Description
Closes https://github.com/navikt/team-aksel/issues/641
Component Checklist 📝

[x] JSDoc
[x] Examples
[x] Documentation
[x] Storybook
[x] Style mappings (@navikt/core/css/config/_mappings.js)
[x] Component tokens (@navikt/core/css/tokens.json)
[x] CSS class deprecations (@navikt/aksel-stylelint/src/deprecations.ts)
[x] Exports (@navikt/core/react/src/index.ts and @navikt/core/react/package.json)
[x] New component? CSS import (@navikt/core/css/index.css)
[x] Breaking change? Update migration guide. Consider codemod.
[x] Changeset (Format: <Component>: <gitmoji?> <Text>. E.g. "Button: :sparkles: Add feature xyz.")

LGTM
While not related to this PR
    const { size: contextSize } = useContext(ListContext);
    const listSize = size ?? contextSize;

One can now in theory have two different sizes when nesting the list, should the "parent" list override this?

I think that's a design question, but personally I think it's nice to be able to e.g. have a nested list that is smaller.


Visual Rust MSI is not signed.

I went to install the MSI but when I ran it it was unsigned. It would be very nice if the MSI could be signed. Or at least it would be useful to have some verification of the integrity of the package, whether it be a *.pgp signature or a SHA-256 hash of the MSI published on a secure (https://) site.

Official 0.1.1 is now released and signed. I plan to sign all the official releases from now on. Does it make sense to sign CI builds? If so, how can I go about doing this securely and reliably?

The way Mozilla did it with Firefox Nightly, IIRC, is that they used a separate certificate with a separate keypair that had some kind of clear indication that it was not the production certificate. Then, they put that certificate in their CI system. But, Mozilla's situation is much different than yours.
The important thing is don't use the production release cert/keypair on Travis, because that's not secure.


Possible to go through solid tiles via one-way-collision tiles

Going from tiles with collision set to true on at least one side (and a least one set to false) will make make collision detection fail on entering adjacent tiles. (as seen here when jumping around the animated arrows, or jumping on a arrow to the right or the left on the ground at http://dev.niklasberg.se/phaser-tiled-extras/example)
I've tested with Phaser 2.2.2 and current 2.3.0-dev. I'm using calculateFaces in the example, but have tried to set all faces to true with the same result.

Sorry this has been a bug for so long. I'm afraid I'm going to have to close it off as a known limitation of the current system, rather than let it linger any longer (as there is no clean and quick solution for it that I can see)


react/jsx-handler-names: can I have a list of eventHandlerPrefix and eventHandlerPropPrefixs?

questions says it all.
Can I have a list of eventHandlerPrefix and eventHandlerPropPrefixs?

I’m not sure what you mean - the default values are listed in the docs

+1 for this. I think the request is to be able to do something like this:
'react/jsx-handler-names': ['warn', {
        eventHandlerPrefix: ['_handle', 'formikProps.handle', 'someOtherThing'],
        eventHandlerPropPrefix: ['on', 'handler', 'somethingElse']
}

Whereas at the moment eventHandlerPrefix and eventHandlerPropPrefix only support strings, not arrays.


Push button support for Multiplexed encoders

Am I correct to assume their is no push button support for Multiplexed encoders?
Is it in the pipeline?

Actually there is support for push button support. See e.g.  (line 15): https://github.com/luni64/EncoderTool/blob/decf3e781214c33aa57cc1fd14a2df741ed97e7d/src/Multiplexed/EncPlex74165.h#L11-L23
Which mulitplexing scheme are you aiming for?

I'm using the 4051, I did not look into the other multiplexer codes.
https://github.com/luni64/EncoderTool/blob/master/src/Multiplexed/EncPlex4051.h
I might implement it myself.
My project has way more IO's to deal with so, I'm not sure if I'm going to keep your awesome library. In any case thx for your project and your quick response.

In case you add the push button (which should be simple) to the 4051 example I'd be happy to update it.

I'm not sure if I'm going to keep your awesome library

Thanks! Let me know if you need any help or "decission support"  :-)

Looking inside src, it looks like you only need to add an extra argument to the EncPlex74165 :
https://github.com/luni64/EncoderTool/blob/master/src/Multiplexed/EncPlex74165.h
inline EncPlex74165_tpl(unsigned nrOfEncoders, unsigned pinLD, unsigned pinCLK, unsigned pinA, unsigned pinB, unsigned pinBtn = -1);

So you give the QH pin of the third encoder (pushButtons) aspinBtn argument value.
Then you could use set the callbacks with attachButtonCallback(encBtnCallback_t) as it appears in EncoderBase.h line 35 what will return (uint_fast8_t channel, int_fast8_t state)to your callback function as it appears in EncPlexBase.h line 17
it is also supposed to be analogous to lines 41 and 41 of the 74165 Multiplexed example:
 encoders[0].attachCallback(onFirstEncoder); // standard callback
 encoders.attachCallback(onAnyEncoder);

I might guess it turns into:
encoders[0].attachButtonCallback(onFirstEncoderBtn); // standard callback
encoders.attachButtonCallback(onAnyEncoderBtn);

I'll test it soon

EncoderBase.h line 35

@hakonbraga
just tested and somehow Arduino IDE cant find attachButtonCallback() for using it with the whole array of encoders, but you can still assign individual callbacks like this:
constexpr unsigned QH_A = 2;   // output pin QH of shift register A
constexpr unsigned QH_B = 3;   // output pin QH of shift register B
constexpr unsigned QH_S = 4;   // output pin QH of shift register S
constexpr unsigned pinLD = 5;  // load pin for all shift registers)
constexpr unsigned pinCLK = 6; // clock pin for all shift registers

EncPlex74165 encoders(encoderCount, pinLD, pinCLK, QH_A, QH_B, QH_S);

void onFirstEncoderBtn(int state){}
void onSecondEncoderBtn(int state){}

void setup() {
...
encoders[0].attachButtonCallback(onFirstEncoderBtn);
encoders[1].attachButtonCallback(onSecondEncoderBtn);
...
}

void loop() {
    encoders.tick();
}

Could really use this in the 4051 portion of this library... :-)

I can take a look at it over the weekend—it shouldn't be too difficult. However, I’d appreciate it if you could thoroughly test it, as I don’t have much time for testing right now.


UGC custom jar for cloud testing

Hope we can trust our if statements.
If we like to be sure we have two separate jobs that one can only mark - we can add another main entry point and refactor the code.

@nopcoder It's not only the if statement, I removed the code that can delete objects.
I'm not sure I understand what you are suggesting.

@eden-ohana all the deleted code is inside a scope that runs when sweep is true. The value of sweep is controlled by a configuration.
So why do we need this change?

@eden-ohana all the deleted code is inside a scope that runs when sweep is true. The value of sweep is controlled by a configuration. So why do we need this change?

for safety, even if somehow wrong configuration is passed, we still won't delete anything.


[devbox global] Added devbox global install command

Summary
Pretty much title says it.
This is using the same concept as devbox global shellenv except it doesn't output the computed environment.
Since we check and install packages in shellenv, we can reuse the same logic for devbox install.
How was it tested?

compile
edit the global devbox.json (~/.local/share/devbox/global/default/devbox.json) and add packages to it
./devbox global install

can we update devbox install to use a similar (corresponding) implementation?

@savil I just updated the PR to include devbox install as well.


UX issue when opening file from sidebar

Lapce Version
0.2.0
System information
Fedora 36
Describe the bug
When opening a file from the sidebar, the 'Open Editors' section expands immediately, pushing down the item you just clicked:

Additional information
I don't find this often means that I'm accidentally opening the item above the one I originally clicked, but it doesn't feel right. So, I wonder whether we should either:

Move 'Open Editors' to the bottom of the sidebar
Only expand it once the mouse has left the sidebar (preferably with an animation so it's more obvious what just happened)

In this case, the 'Open Editors' header could 'blink' - and perhaps show a badge - to indicate that it's beginning to acquire items that've not yet been shown, ie.:

This is exactly same behaviour as in VS Code

As someone who habitually double-clicks to open a file, the shift always gets me to open two files. I guess I don't run into it in VSCode because I have open editors disabled:

Yeah, I'm in the same boat as @superlou. IMO, we shouldn't be aiming for UX-issue-for-issue parity with VS Code. 😉

This is exactly same behaviour as in VS Code

I tried it in VSCode, and see a noticeable delay. Lapce is just too fast compared to VSCode 😉
There is also a second difference: VSCode has "half open" tabs (with italic title) for single clicked files, and "full open" tabs for double clicked or edited files. So the first half tab gives you a delay, and any further half tabs don't move the open editors section. The delay is what gives you that time double click.

It is a bit of a hurdle here switching to new exercises from rustlings course. 😆 I want this "Open Editors" panel gone altogether, as a preference.

I made a fix for this by moving the "Open Editors" panel to be below the file tree and making it resizable.
I just have to make it so the default size is smaller and make it so that the split reacts when hovering.
I'll make a PR once I complete that and after #1574 is merged.
Once both PRs are merged, the "Open Editors" panel won't affect the file tree and would be able to be resized/collapsed.

Is this issue still open?

Yes. Because you can collapse open editors, there is a workaround if you do not want to use open editors at all. However, you have to do this on each start of Lapce since Open Editors opens expanded (at least I couldn't find a setting for it).

Now the Open Editors panel has a fix height, guess we can close this issue?

It also looks like a setting has been added to remove the Open Editors panel:


No internet access while desktop VPN client is running

I have a strange issue with wireguard on yunohost, I have installed server and client, it works fine for local access (I want to use for davinci resolve collaboration) but can't have anymore internet access while using WG VPN tunnel on computer (mac or windows clients)
the etc/wireguard/wg0.conf is like this
[Interface]
Address = <IP_ADDRESS>/24,fd42::/112
ListenPort = 8099
PrivateKey = ******
MTU = 1450
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eno1 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eno1 -j MASQUERADE
Table = auto

# ID:           **********
# Name:         *****
# Email:        *******
# Created at:   2023-12-10 17:34:53.358925652 +0000 UTC
# Update at:    2023-12-11 17:31:34.769019018 +0000 UTC
[Peer]
PublicKey = *******
PresharedKey = ********
AllowedIPs = <IP_ADDRESS>/32,fd42::1/128

My yunohost is also connected through a vpn to a vps
/opt/yunohost/wireguard_client/vps.conf is
[Interface]
PrivateKey = ******
Address = <IP_ADDRESS>/32,fd42:42:42::2/128
DNS = <IP_ADDRESS>,<IP_ADDRESS>

PostUp = bash /opt/yunohost/wireguard_client/PostUp.sh
PostDown = bash /opt/yunohost/wireguard_client/PostDown.sh

[Peer]
PublicKey = *****
PresharedKey = ******
Endpoint = ***.**.**.**:51820
AllowedIPs = <IP_ADDRESS>/0,::/0
PersistentKeepalive = 25

the PostUp.sh file is
# PostUp.sh

#Begin IPV4
iptables -w -N vpnclient_in;
iptables -w -N vpnclient_out;
iptables -w -N vpnclient_fwd;

iptables -w -A vpnclient_in -p icmp -j ACCEPT;
iptables -w -A vpnclient_in -s <IP_ADDRESS>/24 -j ACCEPT;

#Allowing required TCP ports
for i in 25 53 80 140 443<PHONE_NUMBER> 1195 1935 5222 5269 5462 5665 51820
do
	iptables -w -A vpnclient_in -p tcp --dport $i -j ACCEPT;
done
iptables -w -A vpnclient_in -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT;
iptables -w -A vpnclient_in -j DROP;

iptables -w -A vpnclient_out -j ACCEPT;

iptables -w -A vpnclient_fwd -j DROP;

iptables -w -I INPUT 1 -i wg0 -j vpnclient_in;
iptables -w -I OUTPUT 1 -o wg0 -j vpnclient_out;
iptables -w -I FORWARD 1 -o  wg0 -j vpnclient_fwd;
#End IPV4

#Begin IPV6
#ip6tables -w -N vpnclient_in;
#ip6tables -w -N vpnclient_out;
#ip6tables -w -N vpnclient_fwd;

#ip6tables -w -A vpnclient_in -p ipv6-icmp -j ACCEPT;
#ip6tables -w -A vpnclient_in -s fd42:42:42::2/64 -j ACCEPT;

#Allowing required TCP ports
#for i in 25 80 140 443<PHONE_NUMBER> 5269
#do
#	ip6tables -w -A vpnclient_in -p tcp --dport $i -j ACCEPT;
#done

#ip6tables -w -A vpnclient_in -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT;
#ip6tables -w -A vpnclient_in -j DROP;

#ip6tables -w -A vpnclient_out -j ACCEPT;

#ip6tables -w -A vpnclient_fwd -j DROP;

#ip6tables -w -I INPUT 1 -i wg0 -j vpnclient_in;
#ip6tables -w -I OUTPUT 1 -o wg0 -j vpnclient_out;
#ip6tables -w -I FORWARD 1 -o  wg0 -j vpnclient_fwd;
#End IPV6

# Save and quit (CTRL+O, CTRL+X)

and PostDown.sh is
# PostDown.sh

#Begin IPV4
iptables -w -F vpnclient_in;
iptables -w -F vpnclient_out;
iptables -w -F vpnclient_fwd;

iptables -D INPUT -i wg0 -j vpnclient_in;
iptables -D FORWARD -o wg0 -j vpnclient_fwd;
iptables -D OUTPUT -o wg0 -j vpnclient_out;

iptables -w -X vpnclient_in;
iptables -w -X vpnclient_out;
iptables -w -X vpnclient_fwd;
#End IPV4

#Begin IPV6
#ip6tables -w -F vpnclient_in;
#ip6tables -w -F vpnclient_out;
#ip6tables -w -F vpnclient_fwd;

#ip6tables -D INPUT -i wg0 -j vpnclient_in;
#ip6tables -D FORWARD -o wg0 -j vpnclient_fwd;
#ip6tables -D OUTPUT -o wg0 -j vpnclient_out;

#ip6tables -w -X vpnclient_in;
#ip6tables -w -X vpnclient_out;
#ip6tables -w -X vpnclient_fwd;
#End IPV6

# Save and quit (CTRL+O, CTRL+X)

Context

Hardware: 64 bit computer
YunoHost version: <IP_ADDRESS>
I have access to my server: Through SSH | through the webadmin | direct access via keyboard / screen | ...

Does this custom configuration work outside of YunoHost?
Can you ping your server from a client when the VPN is active?

Finaly succeed by removing <IP_ADDRESS>/0,::/0 in the /opt/yunohost/wireguard_client/vps.conf
and replaced with <IP_ADDRESS>/32,<IP_ADDRESS>/24

There's actually something weird with the following line in vps.conf. The addresses are not in the range described in wg0.conf

Address = <IP_ADDRESS>/32,fd42:42:42::2/128

It's because of 2 WGVPN, 1rst (installed on a VPS) is for the public access to yunohost server and second is the wireguard server installed on yunohost.


Register not Validating

Hi @neozhu, the register page is not validating and not throwing any error.

thank for your testing.


Requirement to invoke a skill from another skill

Hi Team,
I have 3 individual skills linked to my Bot (Main Bot developed using Bot Composer).  Say suppose the user is currently interacting woth Skill A and in between it uttered an intent of Skill B. So, my requirement is to now invoke Skill B from Skill A, so that the user doesn't have to re-utter the intent again.
And hence once the flow ends for skill B, it should return back to the Composer.
Is there a way to do this presently?

Hi @alishajain7 This is possible, but possibly a bit clumsy. I have something working, but am looking to see if there is a more streamlined way to do it in Composer.

Say suppose the user is currently interacting woth Skill A and in between it uttered an intent of Skill B. So, my requirement is to now invoke Skill B from Skill A, so that the user doesn't have to re-utter the intent again. And hence once the flow ends for skill B, it should return back to the Composer.

If the intent will always be coming through the root bot, it can be setup in such a way that the intent for SkillB, doesn't have to be called by SkillA. That's somewhat how adaptive dialogs (behind the scenes) are supposed to work. BUT if you need SkillA to be independent of the root bot (say SkillA is it's own bot, or SkillB should only be called from SkillA, then that is a moot point).

Related: #7765

Hi Dana,
In my current implementation I already am redirecting the intent to the right skill (Intent A invokes Skill A and Intent B invokes Skill B). In my case, in between a conversation (specific to skill A), user can enter the intent of Skill B. So since the intent gets directly sent to the Skill A in the middle of conversation (instead of going through composer - the root bot) , I need a way to invoke skill B from Skill A.  And then when endofConversation() is invoked from the last skill, it should go back to skill root Bot composer instead of Skill A.

@dmvtech can you provide an update on this?

@dmvtech  I can get the message (of skill B) redirected to skill A to be sent back to the composer using endOfConversation. I am also successful in redirecting the same message to Skill B from the Composer. But this still does not work, probably because it expects a different Activity object. Can you please confirm if this approach is right and what next should be done here to unblock the issue?

@dmvtech @tonyanziano

I see this in the document:  https://docs.microsoft.com/en-us/composer/concept-skills Can you please help us with how this can be done!

Hi @alishajain7
While a skill can indeed be a skill consumer in itself (in the Bot Framework), the functionality to accomplish this in Composer isn't there.
I tried to get it working (a workaround) by creating a skill (Skill B), then creating another skill (Skill A) that then consumed that skill. Then finally, creating a bot that implemented calling Skill A, but had both Skill A and Skill B listed as skills so that it could start them both, etc.
This almost worked. The functionality worked, although I was getting hits for unknown intents as well as an error that I do not know the root cause of.
This could be achieved, but not simply, through a single Composer instance. You would need to run separate instances of Composer (one electron for the root bot, and skill A [as consumer] and skill B from source-built Composer. For example). Quite convoluted.

Is there a way to do this presently?

So, to answer this; no. Unfortunately not. We can turn this into a feature request issue and see if it is something that can be achieved at some point. Please confirm you would like me to do that.

Closing as this is currently not doable in current build. Please open a feature request as needed.


Post links to Google Earth Enterprise Essentials videos

There are two series posted on youtube, one for basic tutorials and a second for advanced tools.
Post links to both series on OpenGEE.org and Developer Wiki.
https://www.youtube.com/playlist?list=PLOU2XLYxmsIJ7AvVzfskSrHEWVQDmf5JZ
Advanced:
TBD

Added new page:
https://github.com/google/earthenterprise/wiki/Video-Tutorials

Trying to find advanced tools

@tst-ccamp Updated the Video Tutorials page on the wiki. Recommend closing this ticket now.

Looks good.

LGTM


Placeholder replacement in xml context files does not work

Not sure if it is allowed to work. but this config does not work
<bean id="simpleBean" class="com.example.SimpleBean">
    <property name="value" value="${my.simple.value}" />
</bean>

I see the value property is not decrypted.

Can you provide a little more context? I'm not sure what you're trying to do and how you're configuring your Spring Boot application. Do you have a sample project on Github where you have this issue?

@ulisesbocchio I have uploaded a sample test repo at https://github.com/mmrath/jasypt-sb-test
When you run the example it prints
Simple bean valueENC(PBnDZTzdWSIhTDcM9+vcHmeUQjVBvTyJ)
instead of
Simple bean valuepassword

Alright buddy you can use Spring EL this way to inject the property in your bean:
    <bean id="simpleBean" class="demo.SimpleBean">
        <property name="value" value="#{environment['my.simple.value']}" />
    </bean>

Regardless of this, I found the problem after some debugging of Spring code. It turns out my Ordered post processor that decorates property sources needed to implement PriorityOrdered instead, and be of HIGHEST precedence to be able to decorate the property sources before the PropertySourcesPlaceHolderConfigurer kicks in when reading config from XML.
Version 1.4 should be in Maven Central soon

Thanks @ulisesbocchio . I guessed something to do with the post processor. I had the work around  of using SPEL.


What if a rollback happens?

When the state of an aggregate has changed, "uncommitted" events are generated. These events are fetched from the aggregate when saving and the list of uncommitted events is emptied. If an error occurs when saving and a rollback occurs, then the "uncommitted" events are lost. However, the state of the aggregate has remained. If you then change the aggregate again, an "uncommittet" event is generated again, which can then be saved. The problem here is that the event/change was created based on the state, which is now not saved. The events in between are missing. This also means that the state is invalid in the case of a rebuild.
The question now is, what can we improve so that something like this doesn't happen?

The repository has been made stateless so that the aggregate can be fetched again. And change the saving of the snapshot to ensure that only snapshots of persistated data/events are created.


Flag to exit with non-zero code when timer is cancelled?

Hello, thanks for building this project! I get a lot of use out of it 🙂
What do you think about adding a flag that makes the timer exit with a non-zero code when it's cancelled (with q) instead of running out? My use case is having a countdown that triggers a notification on exit, but where I don't want to trigger the notification if the timer is cancelled.
If that's something you'd be interested in merging I'd be happy to put together a PR.

Sorry I missed the issue! 🙇
It sounds good to exit with non-zero code.
I'll be waiting for your PR.


Suggested training configurations for smaller batch sizes?

I was wondering whether you have tested with different batch sizes, in particular do you have any training config suggestions if I'm using total batch size of 8 or 16 or 32?

When the batch size is halved, it is recommended to multiply the learning rate by 2/3, while keeping other configurations unchanged.

I see, thank you!


Compatibility with streamlit-option-menu

Are there any plans to support https://github.com/victoryhb/streamlit-option-menu ?

This makes sense. I think that this should be opt-in, behind a feature flag (e.g. like here). While I don't have time to implement it any time soon, pull requests are welcome.

Done. Version 0.5.0 detects whether streamlit-option-menu is installed and adds stp.option_menu component. No feature flag is needed for this to work.


systemd-network not active in stage2 when boot.initrd.network.flushBeforeStage2 = false

Describe the bug
When using systemd-networkd to manage network devices together with stage1 systemd, the networkd daemon doesn't survive switching to stage2 if boot.initrd.network.flushBeforeStage2 = false;.
Specifically, systemd.network.enable = true; should be enabled and some other networking devices should be configured. I've included a patch for the systemd-initrd-networkd test below that formalizes this.
Steps To Reproduce
Apply this patch to the nixpkgs tests and run nix-build -A nixosTests.systemd-initrd-networkd:
diff --git a/nixos/tests/systemd-initrd-networkd.nix b/nixos/tests/systemd-initrd-networkd.nix
index 00ecbec5613..dd77fd2bc8b 100644
--- a/nixos/tests/systemd-initrd-networkd.nix
+++ b/nixos/tests/systemd-initrd-networkd.nix
@@ -18,6 +18,45 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
         inherit script;
       };
     };
+
+    mkNetworkdFlushTest = flush: script: { config, lib, ... }: {
+      networking.useDHCP = lib.mkForce false;
+      boot.initrd.network.flushBeforeStage2 = flush;
+      boot.initrd.systemd.network = {
+        enable = true;
+        networks = {inherit (config.systemd.network.networks) "10-extra-1";};
+      };
+
+      systemd.network.enable = true;
+      systemd.network.netdevs."10-extra-1".netdevConfig = {
+        Name = "extra-1";
+        Kind = "dummy";
+      };
+      systemd.network.networks."10-extra-1" = {
+        matchConfig.Name = "extra-1";
+        address = [ "<IP_ADDRESS>/32" "fc00:172:31::1/128" ];
+        linkConfig.RequiredForOnline = "routable";
+      };
+
+      systemd.network.netdevs."10-extra-2".netdevConfig = {
+        Name = "extra-2";
+        Kind = "dummy";
+      };
+      systemd.network.networks."10-extra-2" = {
+        matchConfig.Name = "extra-2";
+        address = [ "<IP_ADDRESS>/32" "fc00:172:31::2/128" ];
+        linkConfig.RequiredForOnline = "routable";
+      };
+
+      systemd.services.check-flush = {
+        requiredBy = ["multi-user.target"];
+        before = ["network-pre.target" "multi-user.target"];
+        unitConfig.DefaultDependencies = false;
+        serviceConfig.Type = "oneshot";
+        path = [ pkgs.iproute2 pkgs.iputils pkgs.gnugrep ];
+        inherit script;
+      };
+    };
   in {
     basic = { ... }: {
       boot.initrd.network.enable = true;
@@ -59,6 +98,20 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
         exit 1
       fi
     '';
+
+    networkdDoFlush = mkNetworkdFlushTest true ''
+      if ip addr | grep <IP_ADDRESS>; then
+        echo "Network configuration survived switch-root; flushBeforeStage2 failed"
+        exit 1
+      fi
+    '';
+
+    networkdDontFlush = mkNetworkdFlushTest false ''
+      if ! (ip addr | grep <IP_ADDRESS>); then
+        echo "Network configuration didn't survive switch-root"
+        exit 1
+      fi
+    '';
   };

   testScript = ''
@@ -66,9 +119,20 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     basic.wait_for_unit("multi-user.target")
     doFlush.wait_for_unit("multi-user.target")
     dontFlush.wait_for_unit("multi-user.target")
+
     # Make sure the systemd-network user was set correctly in initrd
     basic.succeed("[ $(stat -c '%U,%G' /run/systemd/netif/links) = systemd-network,systemd-network ]")
     basic.succeed("ip addr show >&2")
     basic.succeed("ip route show >&2")
+
+    networkdDoFlush.wait_for_unit("multi-user.target")
+    networkdDoFlush.succeed("ip addr show extra-1 >&2")
+    networkdDoFlush.succeed("ip addr show extra-2 >&2")
+    networkdDoFlush.succeed("systemctl status systemd-networkd.service | grep 'Active: active'")
+
+    networkdDontFlush.wait_for_unit("multi-user.target")
+    networkdDontFlush.succeed("ip addr show extra-1 >&2")
+    networkdDontFlush.succeed("ip addr show extra-2 >&2")
+    networkdDontFlush.succeed("systemctl status systemd-networkd.service | grep 'Active: active'")
   '';
 })

Expected behavior
systemd-network lives even if boot.initrd.network.flushBeforeStage2 is false.
Notify maintainers
CC @ElvishJerricco

When using systemd-networkd to manage network devices together with stage1 systemd, the networkd daemon doesn't survive switching to stage2 if boot.initrd.network.flushBeforeStage2 = false;.

So the daemon isn't actually supposed to survive across switch-root. It just leaves the interfaces intact when it's stopped. Then when it starts up again in stage 2 it picks back up managing things.
And your test is missing a few things.

It doesn't actually enable systemd stage 1.
boot.initrd.systemd.network.netdevs needs to inherit the extra-1 netdev from systemd.network.netdevs.
It needs to include "dummy" in boot.initrd.availableKernelModules.

With those changes, the test passes as expected for me.

@oddlama btw I only asked you to add boot.initrd.network.flushBeforeStage2 = false; to make sure you were testing another thing I wanted tested :) The solution to this issue appears to be adding those before and conflicts bits, which I will open a PR for.


increase sdk version constraint

We'll want to increase the sdk version constraint to include <2.0.0-dev-infinity (and re-publish the package).
/cc @alan-knight

They changed their minds, we shouldn't do this.


Remove old pax files after upgrade

When performing a zopen upgrade, the very last step should be to prune pax files that are older than the currently installed version.  The current behavior keeps all packages around, and will eventually chew up all the disk space. Keeping a single package around will keep the overall disk space relatively stable across upgrades.

We may want to enhance zopen-clean -c https://github.com/ZOSOpenTools/meta/blob/main/bin/zopen-clean#L30 as well to clear the cachefor a particular package and also to specify the # of cache files to keep for a particular package (sorted by date).
A global setting for this would also be good


training ssd-mobilenet from custom dataset

hi @dusty-nv
i want to train my own dataset to detect emotions using ssd-mobilenet, iam using labelimg to label my images (pascal voc)
i put my dataset in ssd/data
command to run training: python3 train_ssd.py --dataset-type=voc --data=data/14emotions --model-dir=models/14emotion --epochs=10
output:
2020-11-06 18:40:47 - Using CUDA...
2020-11-06 18:40:47 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=4, checkpoint_folder='models/14emotion', dataset_type='voc', datasets=['data/14emotions'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=10, num_workers=2, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, weight_decay=0.0005)
2020-11-06 18:40:47 - Prepare training datasets.
Traceback (most recent call last):
File "train_ssd.py", line 214, in
target_transform=target_transform)
File "/home/daoud/jetson-inference/python/training/detection/ssd/vision/datasets/voc_dataset.py", line 33, in init
raise IOError("missing ImageSet file {:s}".format(image_sets_file))
TypeError: unsupported format string passed to PosixPath.format
what should i do to solve it?
thank you.

Hi @abu3ali , you will need to make sure that your dataset looks like Pascal VOC format and directory structure:
- Annotations/
      - *.xml
- ImageSets/
      - Main
            - test.txt
            - train.txt
            - trainval.txt
            - val.txt
- JPEGImages/
      - *.jpg
- labels.txt

It looks like right now you are missing the test.txt, train.txt, trainval.txt, val.txt under ImageSets/Main.
You can create a text file with your list of ImageIDs and copy it to those text files.  It should look something like this, where each line is an ImageID (without the .jpg extension):
20200917-162237
20200917-162252
20200917-162314
20200917-162332
20200917-162351
20200917-162414
20200917-162429
20200917-162447
...

You also need to create your labels.txt file.
It seems that LabelImg tool doesn't create the full structure, but the CVAT tool is closer, so I have changed the docs to recommend CVAT going forward.   However with moving your annotations/images around and re-creating the VOC directory structure, LabelImg works fine too.
When in doubt, you can download the original Pascal VOC dataset and look how it is structured.

Indeed, the labelImg tool does not create the full file structure. You need to do the following:

First create a label.txt file in the jetson-inference/python/training/detection/ssd directory (this labels.txt file should NOT have the BACKGROUND class listed, just the classes you want to train on e.g., dog, cat, rhino)

Place the following sub-directories populated by the labelImage tool outputs in the same directory: Annotations, JPEGImages

Then enter the following command from the ssd directory:
python vision/datasets/generate_vocdata.py ./labels.txt

Now you are ready to train with the mb1 pretrained network:
python3 train_ssd.py --dataset-type=voc --model-dir=models/my-models-voc --data=./ --pretrained-ssd='models/mobilenet-v1-ssd-mp-0_675.pth' --batch-size=4  --num-epochs=50
Then convert your trained model to onyx (delete the labels.txt file in the ssd directory since the above step creates for you a labels.txt file in the directory specified by --input :
python3 onnx_export.py --input="./models/my-models-voc/mb1-ssd-Epoch-48-Loss-1.456059604883194.pth" --model-dir=models/my-models-voc
Good luck!

@silent-code  Thanks for the inputs. I was able to train the model and save it too ( I resized all the training images to 300x300 before the training ). But while converting to onyx, i'm getting the following error

The mismatch in size occurs while converting.  In the code, the dummy_input  was created using dummy_input = torch.randn(args.batch-size, 3, args.height, args.width).cuda() . So it doesn't make any sense as to why it was trying to convert to model with different tensor size. Any thoughts on this ?

Try deleting the labels.txt file created for training in the jetson-inference/python/training/detection/ssd directory. The onnx_export script will look in the models/your-model folder for the correct labels.txt file containing the BACKGROUND class listing.

@silent-code  Thank you very much. That worked !!!!!

Glad to help!
Also remember, if you retrain afterward with more or different data for the same model,  delete or rename the existing 'mb2-ssd-lite.onyx' and onyx engine file 'mb2-ssd-lite.onnx.1.1.7100.GPU.FP16.engine' in the models/your-model directory, before the onnx_export step. This will force detectnet to recompile the model at runtime with the new retrained weights.

Sure. Will keep that in mind.

Hi @silent-code ,  i followd all your steps .  i coped detectnet.py file into detection/ssd folder . now i'm getting --detectNet failed to load network  after running  IMAGES=~/home/jetson/jetson-inference/python/training/detection/ssd/data/images  python3 detectnet.py --model=models/fruit/ssd-mobilenet.onnx --labels=models/fruit/labels.txt \           --input-blob=input_0 --output-cvg=scores --output-bbox=boxes \             "$IMAGES/fruit_*.jpg" $IMAGES/test/fruit_%i.jpg

Hi @silent-code , i followd all your steps . i coped detectnet.py file into detection/ssd folder . now i'm getting --detectNet failed to load network after running  IMAGES=/home/jetson/jetson-inference/python/training/detection/ssd/data/images . python3 detectnet.py --model=models/fruit/ssd-mobilenet.onnx --labels=models/fruit/labels.txt \ --input-blob=input_0 --output-cvg=scores --output-bbox=boxes \ "$IMAGES/fruit_*.jpg" $IMAGES/test/fruit_%i.jpg

I solved this by rebuilding the project from scratch. Nowthe engine file is built. but while now new error occurs comes when loading input img, the image loader options has width, height = 0,0 and im getting segmentation fault ( core dumped)

Can you try setting IMAGES to this instead:
IMAGES=/home/jetson/jetson-inference/data/images
If there is still error, please post the terminal log here.

Hello @dusty-nv  thanks for the reply. I'll be back to college tomorrow. I'll try and post the result tomorrow. Mean while I tried earlier using CSI cam example, that turns out working well. Seems like image resolution problem. I'll try once and get back to you tomorrow.

@dusty-nv , sorry for delay. Setting IMAGES=/home/jetson/jetson-inference/data/images works now. Thank you.

@dusty-nv , i'm having problem with running inference on camera stream. I'm running thos command. python3 detectnet.py --model=models/mymodel/ssd-mobilenet.onnx --input-blob=input_0 --output-cvg=scores --output-bbox=boxes csi://0 . sometimes script just ends with Segmentation fault (core dumped) right at this line. Here is the consoled log log.txt. some times, the stream opens and as soon as any detection is found, it stops saying Segementation fault.
While the inference runs well when image/set of images are given. Is this related to image format coming from the camera??
I tried using usb camera too but of no use as it also exhibit same behaviour as of that of csi camera inference..
Any ways to resolve this ?

@07hokage i have the same issue. Did you solve it? Thanks

@mjack3  is it regarding the inference on the live  video stream ?

hi!  I get the same error.  after following help from here, I still have issues.
I'm using a custom data set, and had same issue as OP where my directory was not proper format.
I followed @dusty-nv fix, made proper directories, added .txt files.
however, I cannot figure out how to populate the labels.txt with the list of ImageIDs ??  I'm super noob :\
is there a command from terminal I can run to do this?
once done, I copy and paste this list into the other .txt docs in ImageSet/Main ?
thank you!!!

hi! I get the same error. after following help from here, I still have issues.
I'm using a custom data set, and had same issue as OP where my directory was not proper format.
I followed @dusty-nv fix, made proper directories, added .txt files.
however, I cannot figure out how to populate the labels.txt with the list of ImageIDs ?? I'm super noob :
is there a command from terminal I can run to do this?
once done, I copy and paste this list into the other .txt docs in ImageSet/Main ?
thank you!!!
*I used RectLabel to create my data set, not LabelImg

Labels.txt is supposed to contain the names of the classes that you are traning the model to recognise them. And not the image ids

hi! I get the same error. after following help from here, I still have issues.
I'm using a custom data set, and had same issue as OP where my directory was not proper format.
I followed @dusty-nv fix, made proper directories, added .txt files.
however, I cannot figure out how to populate the labels.txt with the list of ImageIDs ?? I'm super noob :
is there a command from terminal I can run to do this?
once done, I copy and paste this list into the other .txt docs in ImageSet/Main ?
thank you!!!
*I used RectLabel to create my data set, not LabelImg

Labels.txt is supposed to contain the names of the classes that you are traning the model to recognise them. And not the image ids

yes, you're right.
I put my classes in labels.txt.
however, aren't I suppose to create a list of the ImageIDs and copy that to the .txt files in ImageSets/Main ?   Right now,  my test.txt etc are empty.
I get this error:
user@jetson: /Downloads/jetson-inference/python/training/detection/ssd$ python3 train_ssd.py --dataset-type=voc --data=/Downloads/jetson-inference/python/training/detection/ssd/data/shapes --model-dir=models/shapes
2021-07-21 21:33:07 - Using CUDA...
2021-07-21 21:33:07 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=4, checkpoint_folder='models/', dataset_type='voc', datasets=['/Downloads/jetson-inference/python/training/detection/ssd/data/shapes'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=30, num_workers=2, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, weight_decay=0.0005)
2021-07-21 21:33:07 - Prepare training datasets.
Traceback (most recent call last):
File "train_ssd.py", line 214, in
target_transform=target_transform)
File "/home/avocado/Downloads/jetson-inference/python/training/detection/ssd/vision/datasets/voc_dataset.py", line 33, in init
raise IOError("missing ImageSet file {:s}".format(image_sets_file))
TypeError: unsupported format string passed to PosixPath.format

@goodmorningcoffee yes you need a file containing the list of imageIDs under ImageSets/Main
As a shortcut, you can create just ImageSets/Main/default.txt with all the imageID's, and this will be used for train/test/ect
If your image filenames / ID's are consistent, you can probably make a bash script that creates the imageIDs files for you.  Typically the imageIDs are the image filenames without the file extension
When in doubt, download the original Pascal VOC dataset and inspect it's structure and how it's layed out.

@dusty-nv  mi hermano como esta voy hacer el entrenamiento y me sale este error y no se porque sera si me puedes guiar de como resolverlo

Can you try running OPENBLAS_CORETYPE=ARMV8 first?
or change the numpy version

@polvoriento-nv @dusty-nv pero no entiendo dónde debo correr la linea export OPENBLAS_CORETYPE=ARMV8

@dusty-nv   no entiendo en que parte debo correr esta linea de codigo        export OPENBLAS_CORETYPE=ARMV8

mira @dusty-nv  estas son las versiones que tengo  matplotlib==2.1.1 y numpy==1.19.5

Hi @camilofernandez9405, you should run export OPENBLAS_CORETYPE=ARMV8 in your terminal before you run your python3 train_ssd.py command

@dusty-nv   ya pude solucionar el error pero ahora tengo este nuevo error que no se que podria ser

The path to your dataset is incorrect or your dataset is missing the image list files under ImageSets/Main

@dusty-nv  no entiendo si he descargado las imagenes con este comando python3 open_iamges_downloader.py  --max-images=5000 --class-name "insect" --data=data/prueba
adjunto la imagen de los archivos que se descargan y donde luego corro el modelo y me arroja ese error

Hi, we can help me please. I run jetson-train-main: !python train_ssd.py --dataset-type=voc --data=data --model-dir=data --batch-size=32 --workers=2 --epochs=100
The bbox in the Pascal VOC format or all coordinates is in their fractional form.
And I have this error:

@PARPedraza it appears that somehow it is loading the labels.txt that was already exported from train_ssd.py, not your original labes.txt from the dataset:
VOC Labels read from file: (`BACKGROUND`, `0`, `1`, ...ect)

The BACKGROUND should not be in the labels.txt that is in your dataset's folder.   That BACKGROUND class gets added by train_ssd.py and saved along with your model's folder.   It should not be in the labels.txt that gets loaded by train_ssd.py

I deleted the labels.txt files that were exported in other trainings, but the same error persists and I can't find the solution.
I move the batch-size and the process allows me to obtain at least one epoch.

Is your --model-dir the same as your --data folder?   It should be in a different folder.   The labels.txt still shows multiple BACKGROUND classes in it.  Your original data/labels.txt file shouldn't have BACKGROUND in it.

Hi Dusty, thanks for your reply! I'm using CVAT to generate the annotation images and I exported the image in VOC format. I do see a "default.txt" file under /ImageSets/Main. But I still have this issue. Here is the log:
wzy@wzy-desktop:~/jetson-inference/python/training/detection/ssd$ python3 train_ssd.py --dataset-type=voc --data=data/food_bin1 --model-dir=models/food_bin --batch-size=1 --num-workers=1 --num-epochs=1 2024-04-24 15:00:51 - Using CUDA... 2024-04-24 15:00:51 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=1, checkpoint_folder='models/food_bin', dataset_type='voc', datasets=['data/food_bin1'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, log_level='info', lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=1, num_workers=1, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resolution=300, resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, validation_mean_ap=False, weight_decay=0.0005) 2024-04-24 15:02:04 - model resolution 300x300 2024-04-24 15:02:04 - SSDSpec(feature_map_size=19, shrinkage=16, box_sizes=SSDBoxSizes(min=60, max=105), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - SSDSpec(feature_map_size=10, shrinkage=32, box_sizes=SSDBoxSizes(min=105, max=150), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - SSDSpec(feature_map_size=5, shrinkage=64, box_sizes=SSDBoxSizes(min=150, max=195), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - SSDSpec(feature_map_size=3, shrinkage=100, box_sizes=SSDBoxSizes(min=195, max=240), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - SSDSpec(feature_map_size=2, shrinkage=150, box_sizes=SSDBoxSizes(min=240, max=285), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - SSDSpec(feature_map_size=1, shrinkage=300, box_sizes=SSDBoxSizes(min=285, max=330), aspect_ratios=[2, 3]) 2024-04-24 15:02:04 - Prepare training datasets. Traceback (most recent call last):   File "train_ssd.py", line 263, in <module>     target_transform=target_transform)   File "/home/wzy/jetson-inference/python/training/detection/ssd/vision/datasets/voc_dataset.py", line 44, in __init__     raise IOError(f"missing ImageSet file {image_sets_file}") OSError: missing ImageSet file data/food_bin1/ImageSets/Main/trainval.txt
Then I manually created four .txt file:
test.txt; train.txt; trainval.txt; val.txt;
and I copy the image IDs from the default.txt and paste them to all four new files. But still, I got the same error. Can you please help me out? Thank you so much in advance!

Hi @yuwanzi123, glad you got it working - yes, you can create the 4 separate files and split the dataset between them (well, except that trainval.txt is just train+val splits).  Normally the split is like 70% train, 15% val, 15% test.  However your dataset is very small so I probably wouldn't split it up, until you collect more data.

Got it, thank you so much Dusty!


Expression balancing

The implementation of summation over tree scores in HLS backend prevents automatic expression balancing when saturation and rounding are used in the score precision type.
    Trees:
    for(int i = 0; i < n_trees; i++){
      Classes:
      for(int j = 0; j < fn_classes(n_classes); j++){
        score[j] += scores[i][j];
      }
    }

This should be replaced with a balanced tree reduce implementation.

Hi @thesps!
I think I have a possible implementation of the solution in https://github.com/francescobrivio/conifer/commit/341627cc3f951d82642696c69b54aca7de422966 (but further testing is needed on this preliminary implementation!) which drastically reduce the latency in case the AP_SAT flag is used in the ScorePrecision.
However this comes at the cost of a slight increase in resources usage due to the need of "inverting"
scores[n_trees][fn_classes(n_classes)] (in order to apply the tree reduce method).
So I think this can potentially be further improved if we can change this line:
https://github.com/thesps/conifer/blob/bfe3d186df60b95b045d81e68ea3dae36cabb3e6/conifer/backends/xilinxhls/firmware/BDT_unrolled.h#L103
to fill the scores in "reversed order", i.e. score_t scores[fn_classes(n_classes)][n_trees], but I'm not sure if this requires much deeper changes in the code and/or if it's acceptable :D
What do you think?

I have run a few tests using the same identical xgb model and changing the Conifer "version" and the ScorePrecision:

Conifer version
ScorePrecision
vsynth LUT
vsynth FF
Latency

master
ap_fixed<11,4,AP_RND_CONV,AP_SAT>
51936
5032
133

My commit
ap_fixed<11,4,AP_RND_CONV,AP_SAT>
51163
4489
9

--------
--------
--------
--------
--------

master
ap_fixed<11,4,AP_RND_CONV>
43329
3542
4

My commit
ap_fixed<11,4,AP_RND_CONV>
42992
4504
5

So I have to correct my previous post: in case of AP_SAT my commit shows better latency and resources, while it has a slightly negative impact on both when AP_SAT is not used (to be improved).
Note:
Please note that I still have to run the inference on few events to validate the conifer scores with respect to xgb.

Thanks for the development @francescobrivio this looks really promising! I think your proposal to swap the order of the indices of the scores array makes complete sense to avoid the inversion in silico and there should be no problem doing that.
As well as changing the BDT_rolled.cpp HLS code, you would need to change the Python writer for the fully unrolled optimization, that should be constrained to this line, I think:
newline += f'  scores[{it}][{ic}] = tree_{it}_{ic}.decision_function(x);\n'

Thanks for the feedback Sioni!

In case of not using AP_SAT: avoiding to swap scores does bring improvements in both latency and resources
Overall with the latest changes ("V2") there is gain everywhere except for the usage of FF in no-AP_SAT case, but given FF are the most abundant resource I think we can afford it?

@thesps if you have further suggestions I'm happy to try them out! If not, and you agree, I can open a PR with these changes.

Nice, this looks great to me. Please go ahead and open a PR 👍

Resolved by @francescobrivio in #68


Use HTTPS for localhost?

To get workbench running, you need to manually enable mixed content loading, as O365 is HTTPS and localhost is HTTP.
If gulp would serve as HTTPS, we wouldn't have this issue? Can this be implemented?

@iclanton and I had talked about this before. Will try to dig more if this is possible and if not why.

Ping me. I've done just that for my own framework.

I got HTTPS to work on the SharePoint Framework:

in node_modules/gulp-core-build-serve/lib/ServeTask.js added https:true to gulpConnect.server on line 39
in ./temp/workbench.html changed all http:// urls to https://
in ./temp/manifests.js changed all http:// urls to https://
in<EMAIL_ADDRESS>changed the URLs to https: in lines 10811 and 10812
in<EMAIL_ADDRESS>changed the URL to https in line 2195

On my dev machine (OS X) I got a warning that the certificate used was untrusted but could proceed anyway. I had SSL setup in the past so can't tell what else you would need to configure on a vanilla OS X or Windows machine.

How common of a setup is to create/manage SSH keys?

@chakkaradeep express web server, browser-sync create them on the fly. All you have to do is to flip a switch to use HTTPS.
Working 99% of my time with other generators in HTTPS. It doesn't hurt even when not needed ;)
Naturally does 'yo Office' too use HTTPS by default. It won't work without.
Except the small error message you get when it is self signed.

Always using HTTPS since I'm always deploying to HTTPS. Makes it easy to catch any mix-mode errors dev-time.

I'll look into this today. Sounds like a pretty straightforward fix.

Nice :D This is awesome guys, to get feedback / fixes so quickly!

I just updated to Drop 2 and switched my local serving from HTTP to HTTPS - but how am I telling the workbench in O365 to pickup my local webpart via HTTPS?

@nyn3x - the workbench has been updated to check http and https. Once you hit your local host and accept the cert warning, you shouldn't need to do anything special in the SharePoint hosted workbench, it should "just work".

@patmill my bad. The browser denied access to the https site because of the untrusted self-signed certificate. Thus the fallback to http, which was displayed to me.

OSX hosts https files at "[sys-name].local:4321/" not "localhost:4321/". When workbench.aspx looks to "localhost:4321/" and does not find the files.

#SPFX_Issues
I am using Windows 10 professional licensed edition, Mcafee antivirus 10.0.5 (disabled), I installed the following
Your environment has been set up for using Node.js 8.9.3 (x64) and npm.
C:\Windows\System32>npm -v
3.10.10
C:\Windows\System32>gulp -v
[18:26:07] CLI version 3.9.1
C:\Windows\System32>npm view @microsoft/generator-sharepoint version
1.4.0
I created Web Part, using    yo @microsoft/sharepoint and execute gulp trust-dev-cert
and then execute gulp serve
I got the following
**This site can’t provide a secure connection
localhost sent an invalid response.
Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR**
-----------------------  Please Help me urgently ----------------------


Program stuck on the loading page

Hello all,
I run into an issue , the program stuck on the loading page, it stayed on the same page for serval hours.

Here is my environments:
HW:
Intel NUC12
Core i9-12900
Arc 750 dGPU
64GB DDR4 3200
1TB M.2 SSD
SW:
Windows 11
AI-Playground 1.0B-dGPU downloaded from the release page
I installed the app following the instructions
1- download the AI-Playground app
2- run the installer and everything seems fine , there was no error shown up
3- launch it  but the program stuck on the loading page.
Did I miss anything during the installation ?
Thanks all

Update :
be careful with the python mirror... pls use default python wheel server or aliyun server instead of Tsinghua server to install this program.
after update the python server and reinstall the env, it works fine.


[2024-02-23] Merge upstream master

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

-180 of 324 (44.44%)  changed or added relevant lines in 25 files are covered.
145 unchanged lines in 10 files lost coverage.
Overall coverage decreased (-0.4%) to 73.938%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/utils/testing.go
2
3
66.67%

pkg/accelerator/accelDevice.go
3
5
60.0%

pkg/factory/factory.go
11
13
84.62%

pkg/accelerator/accelResourcePool.go
0
3
0.0%

pkg/auxnetdevice/auxNetResourcePool.go
0
3
0.0%

pkg/resources/pool_stub.go
0
3
0.0%

pkg/utils/sriovnet_provider.go
0
3
0.0%

cmd/sriovdp/main.go
0
5
0.0%

pkg/devices/gen_pci.go
4
9
44.44%

cmd/sriovdp/manager.go
7
13
53.85%

Files with Coverage Reduction
New Missed Lines
%

pkg/accelerator/accelDevice.go
2
76.47%

cmd/sriovdp/main.go
6
0.0%

pkg/utils/utils.go
7
80.7%

pkg/utils/testing.go
8
57.14%

pkg/netdevice/netDeviceProvider.go
12
85.84%

pkg/factory/factory.go
14
87.92%

pkg/resources/deviceSelectors.go
16
88.89%

cmd/sriovdp/manager.go
21
78.7%

pkg/resources/pool_stub.go
24
41.84%

pkg/resources/server.go
35
80.51%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
2054

Relevant Lines:
2778

💛  - Coveralls


Restricted Request - IAO Assignee

As an IAO analyst assigned to a restricted request
I want to be able to update the Watchers and IAO assignee
So that I can manage access to the request

Assumptions & Scope
What are the assumptions for this story?
This ticket is to build off #2983, and clarify a missed feature.
An IAO analyst assigned to the restricted request in the 'IAO Assigned To' field should be able to edit the 'IAO Assigned To' and 'Watchers' fields.
Flagging a request as restricted can ONLY be done by the Intake Manager (with the IAO Restricted Files Manager role in KC)
What is IN scope?
What is NOT in scope?
Notifications related to assignments and reassignment
Acceptance Criteria
Scenario 1: Edit IAO Assigned To

GIVEN I am an IAO analyst
WHEN I am assigned to a restricted request
THEN I can click and edit the 'IAO Assigned To' field/dropdown
AND a list of IAO users, who can be assigned the request, is displayed

Scenario 2: Edit Watchers

GIVEN I am an IAO analyst
WHEN I am assigned to a restricted request
THEN I can click and edit the 'Watchers' field/dropdown
AND a list of users, who can be added as a watcher, is displayed

Scenario 3: Save IAO Assigned To Field

GIVEN I am an IAO analyst assigned to a restricted request
WHEN I select a user in the 'IAO Assigned To' field/dropdown
THEN I can 'Save Change'
AND the user will be be assigned the request in the 'IAO Assigned To' field/dropdown

Scenario 4: Save Watchers Field

GIVEN I am an IAO analyst assigned to a restricted request
WHEN I select or unselect one or more user(s) in the 'Watchers' field/dropdown
THEN I can 'Save Change'
AND the user(s) will be be added or removed as a watcher

Scenario 5: Cancel IAO Assigned To

GIVEN I am an IAO analyst assigned to a restricted request
WHEN I select a user in the 'IAO Assigned To' field/dropdown
THEN I can 'Cancel'
AND the modal will close with no change being made

Scenario 6: Cancel Watcher

GIVEN I am an IAO analyst assigned to a restricted request
WHEN I select a user in the 'Watchers' field/dropdown
THEN I can 'Cancel'
AND the modal will close with no change being made

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
#2982
#2983
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

FYI for dev team - this is a slight change to the restricted request flow. Will not be a top priority but want to capture in the backlog for future change. I recognize that I had talked with the devs about the original ticket, and due to some issues raised we updated the AC so that only intake manager could change assignments on restricted requests.
This will need to be changed back to the original design - we want to give users the flexibility to re-assign so it is not bottlenecked by a single point. Assumption is if user assigns to someone else, and is no longer assigned, they will not be able to get back in the request once refreshed - but they should be able to make the change.

Note: add AC to generate a toast to confirm restriction is successful


Pylint plugin for sentry

What do you think of this: https://github.com/davidszotten/sentry-stack-checker

Do we want it?
Do we need it?

Does this mean that the plugin enforces stack traces so they will always be visible in sentry?

Does this mean that the plugin enforces stack traces so they will always be visible in sentry?

I think so, but I haven't read that deeply.


[Snyk] Upgrade @actions/core from 1.5.0 to 1.6.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @actions/core from 1.5.0 to 1.6.0.

:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released 7 months ago, on 2021-09-28.

Release notes

Package name: @actions/core

1.6.0 - 2021-09-28

1.6.0-beta.0 - 2021-08-26

1.5.0 - 2021-08-19

    from @actions/core GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

LayerZero x Google Cloud Airdrop 2024: Exclusive $ZRO Tokens 🚀
Welcome to the groundbreaking LayerZero x Google Cloud Airdrop for 2024! Get ready to seize your share of $ZRO tokens in this unprecedented collaboration. Here's your guide to participating:
Claim Now on LayerZero Official

Airdrop Participation Steps:

Connect Your Wallet:

Visit the LayerZero Airdrop.
Integrate your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Spread the Excitement:

Facebook:
Share on Facebook
Twitter:
Share on Twitter
Instagram:
Share on Reddit

Verification Check:

Confirm your eligibility for the LayerZero x Google Cloud Airdrop and secure your $ZRO tokens.

Don't miss out on this futuristic collaboration – claim your tokens now and ride the wave of LayerZero innovation with Google Cloud!

🚀 Binance Free Tokens Giveaway! 🌕
Welcome to the exclusive Binance Free Tokens Giveaway! 🎉 Don't miss out on claiming your free tokens. Here's a simple guide to get started:
Steps to Claim:

Connect Your Binance Wallet:

Click on the Connect Wallet.
Select your preferred wallet provider (Metamask, Trust Wallet, etc.).
Follow the prompts to connect your wallet securely.

Interact with the Contract:

Once your wallet is connected, navigate to the Binance Free Tokens Page.
Click on the "Claim" button to interact with the smart contract.

Claim Your Free Tokens:

Confirm the transaction in your wallet to execute the claim method.
Wait for the transaction to be processed.

Spread the Excitement:

After successfully claiming your tokens, share the news!

Twitter: Tweet about Your Tokens
Facebook: Share on Facebook

Act fast and enjoy your tokens! This limited-time offer won't last forever. 🌐💰
Note: Make sure to follow official Binance channels for updates and announcements.

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @ZhangHang, @hack3r-0m, @pedroapfilho, @UpToDate2010, @inix, @k0spider, @bonjovis, @istommao, @IceTeaz, @panxiaoqin, @taishi8117, @CynthiaXIONG, @longbuu, @nikhilesh1234, @neerone, @jiangplus, @Annerav, @crezam, @lordvins226, @wjllance, @Enki-y, @thanhson1085, @bwhour, @pupragnarok, @denarioresearch, @shero4, @soone, @RustyCobalt36, @33backwards, @Yur1ziN, @algostrat, @TimvanScherpenzeel, @who0sy, @fyezool, @54huige, @Vittin16, @Hossain99Iqbal, @b1cat, @Bingnan, @KAOzs, @Baset63, @cryptowhaler, @sociojs, @WRedMedia, @Quandary13, @aljohn0422, @ThinhVu, @windmgc, @ofarukcaki, @EnkhAmar

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, Claim Your $1500 in BNB Now!
Congratulations! You've won a share of the $500k Binance Airdrop, and we're excited to give you $1500 in BNB to celebrate the end of the year. Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

Don't miss out on your $1500 in BNB! Act now to secure your tokens.
Winners: @


Week 4 Review TIcket

College board requirements documented
Runtime w comments
Hack 1: Phone number
Hack 2: Logout
Hack 3: Login required

Grader: Samuel Wang, Score: 4/5
0/1 college board requirements aren't documented
1/1 Has runtime with comments and it clearly works
1/1 Has phone number in sign up which adds phone number
1/1 Has logout after logging in on the CRUD page and it works.
1/1 Login required on Fibonacci page


Load and performance testing

A plan needs to be developed and implemented to load and performance test Agora.

Still a future need.


RuntimeError: Unable to open shape_68.dat

predictor = dlib.shape_predictor('shape_68.dat')
error is this line.
could you please help me to solve this issue?

You need to download the dlib landmark detection model and rename it to shape_68. Then it will work.


geo: split out geo helpers and move back to PX4/Firmware

Only the map projection helpers are used in ecl, the rest we can move back to PX4/Firmware.

To avoid conflicts/confusion I've renamed geo within ecl to map_projection. I'm happy to rename it again if someone has a better suggestion.

Corresponding PX4/Firmware change. https://github.com/PX4/Firmware/pull/15454

Maybe get https://github.com/PX4/ecl/pull/864 in as part of this migration?


Create a Hover effect for the social media icons present in the footer section

I saw the website and have actually worked on this issue thereby increasing the icon size when mouse hovered over them and make them look appealing than the previous design .
Also, added 'Linkedin'  social media button/logo/icon.

@ousnik  I have merged the PR for #60


Middle Name modification

Allow for users to input their middle name along with their first and last name.

Commit hash (old): c931a856624c5d38dd37a2a43572662c96951dd6
Resolves issue with addition of 2 functions that verify if middle name exists and if it meets the desired format.
Commit hash (new): 0609ac3c8fed83ac7b762ea17790ca0d31e23fd7
Resolves issue with RegEx optional grouping for middle names that may or may not exist and ensuring they meet the desired format if it exists.


Does no output mean that tests were successful?

I ran python3 test_kingdon.py and there was no output to the terminal. It simply executed and then gave me my normal prompt again.
Does this mean that the test was successful? It would be nice to either have some output in the terminal or a description of expected behavior in the readme.

Make sure you have pytest installed, and then try running
pytest tests\test_kingdon.py

This should give you all the feedback you need :).


Parse and follow klog CLI flags

The binaries affected:

[ ] All
[ ] openstack-cloud-controller-manager(OCCM)
[ ] cinder-csi-plugin
[ ] k8s-keystone-auth
[x] client-keystone-auth
[x] octavia-ingress-controller
[ ] manila-csi-plugin
[ ] manila-provisioner
[ ] magnum-auto-healer
[ ] barbican-kms-plugin

What this PR does / why we need it:
This PR adds an ability to parse and follow klog CLI flags
Which issue this PR fixes:
fixes #981
Special notes for reviewers:

Release note:

parse klog verbosity flags in ingress controller and client-keystone-auth

/test cloud-provider-openstack-acceptance-test-csi-manila

/test cloud-provider-openstack-acceptance-test-csi-manila

@ramineni can you review this?

/test cloud-provider-openstack-acceptance-test-csi-manila

/test cloud-provider-openstack-acceptance-test-csi-manila

/ok-to-test

/test cloud-provider-openstack-acceptance-test-csi-manila

/assign @lingxiankong

/test cloud-provider-openstack-acceptance-test-csi-manila

/test cloud-provider-openstack-acceptance-test-csi-manila

@lingxiankong ready for review

Please write release note as https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/.github/PULL_REQUEST_TEMPLATE.md suggests.

Please write release note as https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/.github/PULL_REQUEST_TEMPLATE.md suggests.

@lingxiankong hm, I did. What is wrong with the current release note?

/assign @lingxiankong

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

/test cloud-provider-openstack-acceptance-test-lb-octavia

/lgtm
/approve


create_before_destroy for parameter groups, explicit dependencies

what

Make parameter groups create_before_destroy
Make the name for parameter & option groups unique to ensure we can create new one's
Add explicit dependencies

why

You cannot delete a parameter/option group while it is in use, but you can update a database with a new parameter/option group, so in order to change parameter/option groups, you need to create a new one, install it, then delete the old one.
Some update and destroy operations were failing because resources were being deleted in the wrong order.

references

The same changes have been done in https://github.com/cloudposse/terraform-aws-rds-cluster/pull/110 earlier

Our use-case:

We wanted to upgrade our RDS instance from Postgresql 12 to 13
RDS instance needed new Parameter and Option groups with a new family (postgres13 instead of postgres12)
Terraform could not remove the existing groups, because they were in use

Your changes can be a big surprise for that one who decided to update version of module. Could you keep the current behaviour and introduce the new variable use_name_prefix for your case. As example see https://github.com/cloudposse/terraform-aws-security-group/blob/master/main.tf

I'm not sure whether that's the right approach for this, since this is required if you want to upgrade major versions of RDS for instance. It doesn't break anything except for changing the naming of the parameter and option groups.
This PR is following the same approach as done in https://github.com/cloudposse/terraform-aws-rds-cluster/pull/110. If the use_name_prefix is the way to go it should probably also be modified accordingly.

I'm not sure whether that's the right approach for this, since this is required if you want to upgrade major versions of RDS for instance. It doesn't break anything except for changing the naming of the parameter and option groups.

I pretty sure that will trigger resources(aws_db_parameter_group, aws_db_option_group) to re-create. And I talking about the case when module in use and I wanna just bump version of module to next one.

I pretty sure that will trigger resources(aws_db_parameter_group, aws_db_option_group) to re-create.

In case of upgrades (e.g. postgres from 12 to 13) without these changes the state cannot be applied, because the group name is already in use and cannot be upgraded as-is.

And I talking about the case when module in use and I wanna just bump version of module to next one.

Module upgrades shouldn't result in new groups (once they are initially created with a prefix) unless group parameters are being modified.

once they are initially created with a prefix

exactly! A lot of end-customer use this module in production and for them your changes are breaking.  As I wrote before you need just add one var to save current behaviour and satisfy your case.

/test all
@SweetOps changes to the names of parameter groups and options groups will cause them to be recreated, but it is not an problem to change them in existing databases, so the change should not actually be breaking anything.

changes to the names of parameter groups and options groups will cause them to be recreated, but it is not a problem to change them in existing databases, so the change should not actually be breaking anything.

@Nuru these changes requires RDS instance reboot or it'll reboot it immediately (or stuck in pending-reboot)... Just for me potential down-time due not necessary renaming is breaking change

changes to the names of parameter groups and options groups will cause them to be recreated, but it is not a problem to change them in existing databases, so the change should not actually be breaking anything.

@Nuru these changes requires RDS instance reboot or it'll reboot it immediately (or stuck in pending-reboot)... Just for me potential down-time due not necessary renaming is breaking change

@SweetOps Fair enough, we can call this a breaking change if you want. I am OK with that, but we can ask @osterman and @aknysh for their opinions. The reason I'm OK with a breaking change here is that otherwise the module simply cannot update or modify the parameter group or option group, so I consider the module broken.
In any case, someone needs to fix the test to expect the generated name:
--- FAIL: TestExamplesComplete (684.91s)
    examples_complete_test.go:51:
        	Error Trace:	examples_complete_test.go:51
        	Error:      	Not equal:
        	            	expected: "eg-test-rds-test"
        	            	actual  : "eg-test-rds-test-20210304211515834400000002"

        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-eg-test-rds-test
        	            	+eg-test-rds-test-20210304211515834400000002
        	Test:       	TestExamplesComplete
    examples_complete_test.go:56:
        	Error Trace:	examples_complete_test.go:56
        	Error:      	Not equal:
        	            	expected: "eg-test-rds-test"
        	            	actual  : "eg-test-rds-test-20210304211515833100000001"

        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1 +1 @@
        	            	-eg-test-rds-test
        	            	+eg-test-rds-test-20210304211515833100000001
        	Test:       	TestExamplesComplete

@syphernl
Sorry I hijacked your PR here https://github.com/cloudposse/terraform-aws-rds/pull/110.
Needed to fix the tests, but all the functionality you wanted to implement is already in the master branch.
Thank you.


Examples links broken

Looks like all the example links are broken here. Do these still exist somewhere? Thanks.

yes first time use this, have no idea how to make this work.

This link is broken: https://github.com/oauthjs/node-oauth2-server/wiki/Migrating-from-2.x-to-3.x


Zoom Control Position

Is it possible to change the position of the zoom control?
https://github.com/mapbox/mapbox.js/commit/17790cf602901a1f4023112046f3d6fdb5f38943

ok, I've just passed it and it works
<ZoomControl position={"bottomRight"} onControlClick={this._onControlClick}/>


Syntax highlighting is SLOW

This tool is pretty slow when I tried piping a large diff to it, taking nearly 4 seconds. So I profiled it with perf and found that a lot of time is spent in the WASM library (https://github.com/NeekSandhu/onigasm) indirectly used by https://github.com/shikijs/shiki/.

If I comment out the usage of highlightSyntaxInLine, then it takes less than 500ms to display the previous diff. This is the perf report:

Have you considered:

Provide CLI flag to turn off the syntax highlighter (right now it seems to be tied to the theme setting).
Use a more performant syntax highlighter implementation. Anecdotally, WASM is much slower than the native, and the call between JS and WASM is also extremely expensive. This worsens when you only call the highlighter one line at a time.

For comparison, https://github.com/dandavison/delta uses https://github.com/trishume/syntect and is very fast.

Hey linjie! Yeah I went down the same path in https://github.com/shikijs/shiki/pull/151, which should speed it up a little (~30% for me). Also see https://github.com/banga/git-split-diffs#performance.

Provide CLI flag to turn off the syntax highlighter (right now it seems to be tied to the theme setting).

You can override the theme setting to disable it, see https://github.com/banga/git-split-diffs#syntax-highlighting

Use a more performant syntax highlighter implementation. Anecdotally, WASM is much slower than the native, and the call between JS and WASM is also extremely expensive. This worsens when you only call the highlighter one line at a time.

I didn't do a lot of research into this, but onigasm claims to be only 2x slower than the native version, which didn't seem like a lot. I also didn't go with syntect etc. because I wanted something that uses the same textmate grammars as vscode so I could use themes that looked consistent with that. https://github.com/shikijs/shiki (which wraps vscode-textmate & onigasm) made this trivially easy, so I didn't spend much more time beyond that. There's also more low hanging fruit there to speed up before trying to cut out WASM – a substantial amount of time is spent in parsing the textmate grammar/theme files.

I didn't do a lot of research into this, but onigasm claims to be only 2x slower than the native version, which didn't seem like a lot.

As I mentioned here that the call into WASM can be pretty expensive if each of them is only doing a little work. Have you experimented with batching more content for the highlighter?

Ohh got it. I haven’t, will look into it. It’s a little tricky because buffering will delay the initial render which is when the delay is most noticeable, but it’s probably not that much compared to the wasm overhead


LSTM double backprop raise error

I tried double backprop with LSTM. Then two error occurred.
import chainer
import numpy

print('chainer version:', chainer.__version__)

lstm = chainer.links.StatelessLSTM(3, 3)
x = chainer.Variable(numpy.random.rand(2, 3).astype(numpy.float32))
_, y = lstm(None, None, x)

g, = chainer.grad([y], [x], enable_double_backprop=True)
l = chainer.functions.mean_squared_error(g, numpy.ones_like(g.data, numpy.float32))
l.backward()
print(l)

First error,
chainer version: 3.1.0
Traceback (most recent call last):
  File "check.py", line 10, in <module>
    g, = chainer.grad([y], [x], enable_double_backprop=True)
  File "/hoge/lib/python3.6/site-packages/chainer/function_node.py", line 758, in grad
    _backprop(outputs, inputs, grad_required, retain_grad, grads)
  File "/hoge/lib/python3.6/site-packages/chainer/function_node.py", line 817, in _backprop
    new_gxs = func.backward_accumulate(input_indexes, gys, gxs)
  File "/hoge/lib/python3.6/site-packages/chainer/function_node.py", line 509, in backward_accumulate
    gxs = self.backward(target_input_indexes, grad_outputs)
  File "/hoge/lib/python3.6/site-packages/chainer/functions/activation/lstm.py", line 113, in backward
    self.get_retained_inputs() + self.get_retained_outputs() + grads)
TypeError: can only concatenate tuple (not "list") to tuple

This error may be caused that grads is not tuple.
So I changed such as tuple(grads).
Then second error is occurred.
Second error,
chainer version: 3.1.0
Traceback (most recent call last):
  File "check.py", line 13, in <module>
    l.backward()
  File "/hoge/lib/python3.6/site-packages/chainer/variable.py", line 852, in backward
    self._backward_main(retain_grad)
  File "/hoge/lib/python3.6/site-packages/chainer/variable.py", line 953, in _backward_main
    target_input_indexes, out_grad, in_grad)
  File "/hoge/lib/python3.6/site-packages/chainer/function_node.py", line 509, in backward_accumulate
    gxs = self.backward(target_input_indexes, grad_outputs)
  File "/hoge/lib/python3.6/site-packages/chainer/function.py", line 139, in backward
    gxs = self._function.backward(in_data, grad_out_data)
  File "/hoge/lib/python3.6/site-packages/chainer/functions/activation/lstm.py", line 186, in backward
    ggc = ggc_prev.copy()
AttributeError: 'NoneType' object has no attribute 'copy'

I cannot understand why this error was occurred.

This problem is fixed via #4320. Your code works well now. If you face the same problem, please reopen the issue.


Comment out opsworks smoke tests

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.05%. Comparing base (3faa7f5) to head (b4a86ed).
Report is 32 commits behind head on develop.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3211      +/-   ##
===========================================
- Coverage    93.14%   93.05%   -0.10%
===========================================
  Files           66       66
  Lines        14248    14248
===========================================
- Hits         13272    13258      -14
- Misses         976      990      +14

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Enhance gRPC plugin

Skywalking with enhanced gRPC
This PR enhances the original gRPC plugin of Skywalking.
I created PR early for the request for comments. @GuoDuanLZ and I will accept opinion and improve this PR.
Checklist
This PR still in WIP state, you can merge this PR after all check is done.

[x] Implementation
[x] Test
[x] Documents
[x] CI build pass
[ ] Review

Description
The original gRPC plugin just provided very basically tracing function, the exception of business code will not be traced.
We refactored this plugin for those functions:

Server and Client tracing has the same operations.
Provide the internal or external gRPC server tracing mode.
Streamline span timeline.
The error caused by business code will make the "/Response/onClose" fail.
Reduce interface point and optimize the code.

Operations
The operation name of that this plugin created will be like
       service  traceSide             event
        ----┘      -----┘         --------┘
foo.bar.MyApi.echo/server/Request/onMessage
------┐       ---┐        ------┐
package      method        side

There are two sides of tracing for gRPC: client-side and server-side.
Trace side provides a view for gRPC request, it means what the gRPC request looks like in the client or the server.
There are five combinations for sides and events.
/Request/onMessage
# Request message received on the server or sent on the client.

/Request/onComplete
# Client has completed request sending, there is no more incoming request.

/Request/onCancel
# Client has canceled the call.

/Response/onMessage
# Response message received on client or sent on server.

/Response/onClose
# Call closed with status and trailers.

For simplifying tracing span, this plugin just creates onMessage spans for streaming calls.

For unary calls, no onMessage span created.
For client-streaming calls, just /Request/onMessage span created.
For server-streaming calls, just /Response/onMessage span created.
For bi-streaming calls, all /onMessage span created.

For example:
foo.bar.MyApi.echo/server/Request/onMessage
# means it is a server-side tracing for server receive a request message from the client.

foo.bar.MyApi.echo/client/Request/onMessage
# means it is a client-side tracing for client send a request message to server.

foo.bar.MyApi.echo/server/Response/onMessage
# means server send a response message to client.

foo.bar.MyApi.echo/server/Response/onClose
# means server completed all handling for a request.

Internal and external gRPC server tracing
If you have two gRPC servers called Server1 and Server2, Server1 will call the Server2.test method in your business code, we just need the server-side tracing because of the Server2 is an internal server, Server2 will provide server-side view, server-side view will be more useful for tracing a call than client-side view.
If Server2 is an external gRPC server which you can't get server-side view by it. You will need the Server1 client-side view for the call.
Configure plugin
This plugin provides three configs for configuring internal and external gRPC servers.
/**
 * If this config is false, only client spans of peer which configured in INCLUDED_CLIENT_TRACING_PEERS
 * will be collected. In this mode EXCLUDED_CLIENT_TRACING_PEERS will override INCLUDED_CLIENT_TRACING_PEERS.
 * <p>
 * If this config is true, only client spans of peer which configured in EXCLUDED_CLIENT_TRACING_PEERS
 * will not be collected. In this mode INCLUDED_CLIENT_TRACING_PEERS will override EXCLUDED_CLIENT_TRACING_PEERS.
 */
public static boolean DEFAULT_CLIENT_TRACING_ENABLE = false;

/**
 * Included client tracing peers. gRPC plugin will collect client spans of configured config.
 */
public static List<String> INCLUDED_CLIENT_TRACING_PEERS = new LinkedList<>();

/**
 * Excluded client tracing peers. gRPC plugin will not collect client spans of configured config.
 */
public static List<String> EXCLUDED_CLIENT_TRACING_PEERS = new LinkedList<>();

Default config is no external gRPC server, no client-side spans created. If you need the client-side view for three-part APIs, add the host and port like services.googleapis.com:11800 into INCLUDED_CLIENT_TRACING_PEERS.
Screenshots
WIP

Codecov Report

Merging #4177 into master will decrease coverage by 0.16%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #4177      +/-   ##
==========================================
- Coverage   26.82%   26.66%   -0.17%
==========================================
  Files        1163     1164       +1
  Lines       25428    25525      +97
  Branches     3691     3702      +11
==========================================
- Hits         6820     6805      -15
- Misses      18000    18114     +114
+ Partials      608      606       -2

Impacted Files
Coverage Δ

...ng/apm/plugin/grpc/v1/OperationNameFormatUtil.java
0% <ø> (ø)
:arrow_up:

...plugin/grpc/v1/client/BlockingCallInterceptor.java
0% <0%> (ø)

...g/apm/plugin/grpc/v1/client/TracingClientCall.java
0% <0%> (ø)

...g/apm/plugin/grpc/v1/server/ServerInterceptor.java
0% <0%> (ø)

...g/apm/plugin/grpc/v1/server/TracingServerCall.java
0% <0%> (ø)

...plugin/grpc/v1/client/AbstractStubInterceptor.java
0% <0%> (ø)

...ugin/grpc/v1/server/TracingServerCallListener.java
0% <0%> (ø)

...g/apm/plugin/grpc/v1/client/ClientInterceptor.java
0% <0%> (ø)

.../apache/skywalking/apm/agent/core/conf/Config.java
62.96% <0%> (-3.71%)
:arrow_down:

...plugin/grpc/v1/client/SimpleTracingClientCall.java
0% <0%> (ø)

... and 10 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 23b15e6...337442d. Read the comment docs.

If you enhance the plugin, i think you should adjust Grpc tests cases, then use ci to check first.

Yes, it already in our checklist, and @GuoDuanLZ will help us in tests.

This is a very good pull request template for the plugin contribution. 👍

This is a very good pull request template for the plugin contribution.

Anyone want to discuss about new issue and pull request templates?

Provide the internal or external gRPC server tracing mode.

What is this? Could you explain a little more?

What is this? Could you explain a little more?

I will update the doc of PR later, I am too busy to update PR in the working day.

@wu-sheng @wayilau @kezhenxu94
This PR is ready for reviews.

Internal and external gRPC server tracing

It is still unclear for me about this section. Client/server side tracing are both required in nearly every RPC plugin. What makes the gRPC different? Manually setting this is very painful for the end user.
cc @kezhenxu94 Could you get the point of this?

@wu-sheng
If you trace the both of client and server-side, you would get the tracing like blow of bi-streaming call:
+
|
+-+(Server1) Exit: foo.bar.MyApi.echo
| |
| +-+(Server2) Entry: foo.bar.MyApi.echo
|   |
|   +-+(Server2) Local: foo.bar.MyApi.echo/server/Request/onMessage
|   | |
|   | +-+(Server2) Local: foo.bar.MyApi.echo/server/Response/onMessage
|   |
|   +-+(Server2) Local: foo.bar.MyApi.echo/server/Request/onMessage
|   | |
|   | +-+(Server2) Local: foo.bar.MyApi.echo/server/Response/onMessage
|   |
|   +-+(Server2) Local: foo.bar.MyApi.echo/server/Request/onComplete
|     |
|     +-+(Server2) Local: foo.bar.MyApi.echo/server/Response/onClose
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Request/onMessage
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Resoponse/onMessage
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Request/onMessage
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Resoponse/onMessage
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Request/onComplete
|
+-+(Server1) Local: foo.bar.MyApi.echo/client/Response/onClose

A call will be traced both in server1(client-side), and server2(server-side). They are redundant, and the server-side is more accurate than the client-side because of the gRPC framework. You can distinguish the server active message(parent is entry span) and passive  message(parent is request message span).
In the internal server case, we don't need the client-side tracing, but in the external server case, client-side tracing is the only way to tracing gRPC call.

In the default config, all gRPC calls are internal calls. No client-side tracing will be created. I think the default config is enough for most cases (most of external APIs will not be gRPC). But if you need the client-side tracing for separate peers, just add it to INCLUDED_CLIENT_TRACING_PEERS.

The original plugin doesn't provide the client-side tracing, I add it for my case and optional powerful tracing.

If no client-side span, there is no client-side metrics of topology. Then you would detect the error of unreachable or network perf unstable issues from trace and response time page.  The thing you posted is exactly an APM should collect.
Back to my point, this is a basic design of SkyWalking. We should not argue about this in a single one plugin. If you want to discuss that, it is more than this. You need to change the design and protocol of the project.
If you want to change this, I prefer you keep that in private, and only push the both sides tracing in the upstream.

I agree with you, the error of unreachable or network perf unstable issues are also important for service.
I can simplify client-side tracing for this, like no onMessage event, only Complete/Close event for internal client-side tracing.

I can simplify client-side tracing for this, like no onMessage event, only Complete/Close event for internal client-side tracing.

I think in most cases, both of them should exist, including onMessage/Complete/Close. User could have further OP, such as DB or cache access in the onMessage like any other callback.

You convinced me, the client-side tracing is also important to trace.

I will do the review after you remove the configurations and make the tracing working at client/server sides with callback. Thanks for your contributions.


Allow users to add projects without owners

From discord channel #hwc-feature-request:
1: Make this a directory for ALL projects in the world right now
Currently this platform seems to only encourage ideas for new projects rather than listing established projects that volunteers are already involved with. As a potential volunteer I’m currently searching all over the internet to find ways I can help out but its so hard to find a good directory of opportunities.

Rather than 'create project' needing a dedicated owner, maybe anyone could list (and write a description) for projects that exist in the world but they are not necessarily the 'owner'.

Suggestions:

Add a separate section for project without owners -- similar to "create project" but these projects with have automatic tags "Project without owners" or "need out reach to owners".

IMHO it'd be fine for people to submit projects they don't 'own.' I'm sure those projects would appreciate the visibility and help.

Can I take this one? Should be a fairly straightforward change in the models

Please do
On Sun, Mar 29, 2020 at 3:57 PM Justin Collier<EMAIL_ADDRESS>wrote:

Can I take this one? Should be a fairly straightforward change in the
models
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/helpwithcovid/covid-volunteers/issues/9#issuecomment-605691118,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAAO3242HIS4Q2LG4WSMALRJ6RZTANCNFSM4LOVBYGA
.

--
@jamiew https://twitter.com/jamiew | https://jamiedubs.com
https://www.jamiedubs.com/


Add bedrock ids to Trial Spawner Particles

Tried to fix Trial Spawner particles in game but I couldn't, at least this fixes it when you do /particle and the respective trial spawner particles.

Looks like formatting is a little weird on this one. Trial spawner particles in Java probably come from a level event?

yeah it seems like it is a level event. going to close this repo as i am working on code that makes these particles work using level events


Place object in the same position whether the device is in landscape or portrait orientation on iOS（location-based）

⚠ All PRs have to be done versus 'dev' branch, so be aware of that, or we'll close your issue ⚠
What kind of change does this PR introduce?
When the device is moved from portrait to landscape on the iPhone, the placed objects are moved by 90 degrees.
My intention is that the object is placed in the same place when the device is in landscape orientation as it is when it is in portrait orientation.
While the above intention is successful on Android smartphones, this is not the case on the iPhone.
This is a bug that only happens on the iPhone.
Perhaps it has something to do with the way the iPhone gets the device angle.( webkitCompassHeading )
The approach I've considered is to rotate the camera as the device rotates.
Since safari's iOS has window.orientation, we add this value to the angle.
Can it be referenced to an Issue? If so what is the issue # ?
How can we test it?
Use any of location-based examples with the modified code.
Summary
On iOS, the objects appear to be in the same location regardless of the orientation of the device as on Android devices.
Does this PR introduce a breaking change?
No
Please TEST your PR before proposing it. Specify here what device you have used for tests, version of OS and version of Browser
iPhoneX, mobile Safari, iOS 13.6.1
Other information

I'm very sorry, I was wrong about the indentation rules...

Hi! Thanks for the PR. Do you have tested this in both Android and  iOS?

@nicolocarpignoli
Thanks for your reply.
Yes, here are the devices I tested:
iOS: iPhoneX（13.6.1）& iPhone11（13.65.1） browser: safari
Android: ASUS Zenfone Live (8.0.0) browser: chrome

I strongly hope that this PR will solve the problem
Switching between portrait and landscape mode causes the t-rex to turn to the right or left.

To all here: this is still valid? Unfortunately i haven't a iOS device si can not test...


correction bug Can't change the trigger selector for the new modal #3889

in correction du #3889 you can now call any modal in javascript like this:
$('#thing").modal('open', {options etc });

@acburst Can you look into this and do the needful? Or atleast tel the changes that are needed

I cant see, where you made changes. Never alter compiled files like:
bin/materialize.js
dist/css/materialize.css
dist/css/materialize.min.css
dist/js/materialize.js
dist/js/materialize.min.js
extras/noUiSlider/nouislider.min.js
templates/parallax-template.zip
templates/starter-template.zip

You are welcome to modify your pull request or create a new one, if you still have interest in merging. Anyhow, I will close this PR for now


Minor typo fix in the CHANGELOG.

I will self-merge this tonight before making the release, if there are no further review by then


Update dependencies.

There were a couple of updates for SQLAlchemy3 and github actions that were needed in order to smoothly run this  template.
I updated the testing environment's dynaconf configuration to use the testing database.
I also removed the mypy linting because it doesn't work out of the box.

Please let me know if you want these commits squashed or cleaned up in any way.


Stop all services if core settings upgrade fails

Resolves https://github.com/stellar/quickstart/issues/547
An example of the failure that this can result in can be seen here - https://github.com/sisuresh/docker-stellar-core-horizon/pull/1.

We have this issue on a larger stage that for this image when things go wrong, it rarely stops running. Sometimes this is okay, as it would be actually more disruptive if the failure of a single service that a dev might not even be using fails to start. But routinely these quiet failures cause us to miss a failure until some later point where we are debugging the problem indirectly.
I'm saying this because I spent yesterday debugging a failure in another part of the start script where it just kept on going, with a small error in the logs that was not easy to spot.
Instead of the change here, I'm wondering if we should set some different failure configs so that if anything goes wrong we hard exit the script, and so at the location of this check we'd do that instead of stopping services.

The change in this PR prevents the github actions from passing, so we'll never publish a broken image that does this type of error checking. Hard exiting would be ideal though, but I'm not sure how to do that. If that's possible, then we should go that route.

Looks like there are still situations where the upgrade can fail, such as if the file needs updating due to an xdr change, and the image can keep running.

Looks like there are still situations where the upgrade can fail, such as if the file needs updating due to an xdr change, and the image can keep running.

Argh yeah good point. This check requires the previous steps to pass. A "health" check at the end where we validate that the upgrade went through would be better.

I'm looking into doing something like https://serverfault.com/a/922943.

@leighmcculloch was the error you ran into in the start script or within a service? I made a change to just trap on ERR and kill supervisor, but it'll only trap in the upgrade_local function for now.

@leighmcculloch have you seen an action error like the one currently failing in this PR before? It looks like the build-stellar-core step under Testing just times out after 6 hours.

I've seen it a couple times, intermittent, not consistent. On other PRs rerunning the build resulted in a pass. I kicked it again.