Create a cooldown for sound effects

I’m not sure if I want a global cooldown or a cooldown per user. Probably global...? Might be more useful and also easier to implement.

[ ] Implement global cooldown
[ ] Put cooldown duration in chat message as suggested below

Hi, thank you for this wonderful plugin. I have a few more ideas I will write them here so you can see if they are fit to be separate or not.

Can we add the ability to get hotkey for quit or trigger from config too?
Can we have a check like only followers (like onlyFollowerMode or onlySubMode) can do !sfx but all users including unfollowed will see the welcome message so they can be tempted to follow ?

I think global will be better than per user. As I saw a bug where all commands queued up instead of being played and they all played at once. Idk, how it happened.

@hey24sheep Thanks for your comment! It's exciting to know someone's actually played around with Screm!

I created https://github.com/bfroggio/screm/issues/27 to track adding a quit shortcut. I originally had that implemented but removed it because I didn't have a personal use case for it. Out of curiosity, what's your use case? Do you just want a more convenient method for quitting when you're done streaming?
Having a config for follower and sub mode is a GREAT idea. My channel is currently small enough that most people who watch follow but there's definitely a use case for larger channels where that filter would be super useful. Created https://github.com/bfroggio/screm/issues/28 to track.
Very good idea adding the cooldown to the chat message. Will definitely do that.

Have you been able to reproduce the queue up bug you mentioned? I wonder if it was a Twitch problem since I've had a similar issue recently with my Twitch chat client (https://chatty.github.io/) not notifying me of new chat messages until thirty seconds later and then it notifies me of multiple messages at a time.

Thanks for your comment! It's exciting to know someone's actually played around with Screm!

Yes, I have been fiddling around with a lot of twitch APIs and stuff. So I found yours and it is quite good and different.

Out of curiosity, what's your use case? Do you just want a more convenient method for quitting when you're done streaming?

I do not use the shortcuts for anything as of now. I just do manual quit only after I see my stream is done and successfully ended. But, I do use shortcuts for sfx playing.

Have you been able to reproduce the queue up bug you mentioned?

No, I have not been able to reproduce it. It is I think is from console getting blocked. What happens is, it just gets logged. Like, buffer is full but won't print. You have to manually go and press enter which runs everything queued up in the buffer and clears for new stuff and then it works fine for an hour or so.

Having a config for follower and sub mode is a GREAT idea. My channel is currently small enough that most people who watch follow but there's definitely a use case for larger channels where that filter would be super useful.

My channel is super small like 10 followers so it won't help a ton but for follower only !sfx. It might help as in small streamers can reward new followers for at least something. Instead we make the chat follow mode.
Also, I found a new bug the volume scripts are not working. The volume is too loud for sfx only even on my desktop volume on 40ish.

No, I have not been able to reproduce it. It is I think is from console getting blocked. What happens is, it just gets logged. Like, buffer is full but won't print. You have to manually go and press enter which runs everything queued up in the buffer and clears for new stuff and then it works fine for an hour or so.

Hmmm. I'll see if I can reproduce this myself. Odd because the console shouldn't be interactive (I don't think). Please let me know if you hit this again.

Also, I found a new bug the volume scripts are not working. The volume is too loud for sfx only even on my desktop volume on 40ish.

Do you mean that all sound effects are too loud? Or only some?

No, I have not been able to reproduce it. It is I think is from console getting blocked. What happens is, it just gets logged. Like, buffer is full but won't print. You have to manually go and press enter which runs everything queued up in the buffer and clears for new stuff and then it works fine for an hour or so.

Hmmm. I'll see if I can reproduce this myself. Odd because the console shouldn't be interactive (I don't think). Please let me know if you hit this again.

Also, I found a new bug the volume scripts are not working. The volume is too loud for sfx only even on my desktop volume on 40ish.

Do you mean that all sound effects are too loud? Or only some?

All sound effects are too loud. I can't decrease the volume as the scripts aren't working.
I haven't got the bug again. It is not interactive it is like sometimes when logs are big and console gets stuck and you have to press enter to clear the buffer. It's that bug.

All sound effects are too loud. I can't decrease the volume as the scripts aren't working.
I haven't got the bug again. It is not interactive it is like sometimes when logs are big and console gets stuck and you have to press enter to clear the buffer. It's that bug.

@hey24sheep I believe you have to have ffmpeg in your PATH for the scripts to work (if you didn't already see that). Regardless, I'm slowly working on a way to normalize the volume of all the sound effects using a compressor, but while that's in development, you can use "Sound mixer options" in Windows Settings to lower the overall volume of screm to be more to your liking.

@hey24sheep I believe you have to have ffmpeg in your PATH for the scripts to work (if you didn't already see that). Regardless, I'm slowly working on a way to normalize the volume of all the sound effects using a compressor, but while that's in development, you can use "Sound mixer options" in Windows Settings to lower the overall volume of screm to be more to your liking.

I believe you have to have ffmpeg in your PATH for the scripts to work (if you didn't already see that).

No, I didn't it is not in the faq's or anything. I will check it.

I'm slowly working on a way to normalize the volume of all the sound effects using a compressor, but while that's in development, you can use "Sound mixer options" in Windows Settings to lower the overall volume of screm to be more to your liking.

Yes, right now I do this.

I believe you have to have ffmpeg in your PATH for the scripts to work (if you didn't already see that).

No, I didn't it is not in the faq's or anything. I will check it.

I'm slowly working on a way to normalize the volume of all the sound effects using a compressor, but while that's in development, you can use "Sound mixer options" in Windows Settings to lower the overall volume of screm to be more to your liking.

Yes, right now I do this.

@hey24sheep Good point on the scripts not being documented. Created a new issue to track that. https://github.com/bfroggio/screm/issues/29

@hey24sheep Good point on the scripts not being documented. Created a new issue to track that. https://github.com/bfroggio/screm/issues/29


Container name instead image name?

Whenever dolce sends a notification through telegram it only shows the image name, not the container name:
There are changes to the status of your containers. The last changes are (newest first):

Time                    Action      Container
10/12/2023, 12:33:22 AM ❌die postgres:latest

"postgres:latest" is the image name, not the container name. This makes it not obvious which container, because I have serveral postgres:latest running.

Hi, thanks for reporting
coincidentally I just noticed this yesterday too :)
I wanted to add some functionality to customise this identifier anyway so I changed the default behaviour as well. See https://dangrie158.github.io/dolce/master/configuration/#container-identifiers for the new options.
If you just want to use the (new) default container names, just make sure to upgrade to the latest version (at least dangrie158/dolce:v2.6.0)

Hey 👋🏻
ah, I see. I just updated to 2.6.1. Unfortunately, it's not working too. Now it's just "undefined". Even when I set the label according to the docu. I disabled my custom templates by removing the volume from the docker-compose file.
In the dolce logs the container name is displayed:
dolce  | INFO   main     new container event received: <"postgres_umami": die>
Telegram notification:
Hello,

There are changes to the status of your containers. The last changes are (newest first):

Time                    Action    Container
10/12/2023, 7:35:16 PM ❌die undefined

If something new happens, you won't be bothered again with updates until 10/12/2023, 7:35:36 PM.

Hi,
Thanks for checking!
I was puzzled by this as I check with all possible configurations and it worked. Turn out I forgot to push the changes before building the new version and used the local version for testing 🤦
Sorry about that. v2.6.2 should finally fix the issue.

Relatable! But yeah, it's working now. Thank you 👍
I've found some other issues with my build, I'll open new issues the next days, maybe we can resolve that too.
Loving dolce so far. Thanks for the work :)

That’s great.
Sure, I‘m happy if it works for other people and add features if they are missing :)


Move type annotations to stubs file

After using this library in our own development, it has been identified that the inline type annotations (added in #2) are not checked by mypy. This is because this library is not marked with the py.typed marker. I would recommend against adding this flag, as then the whole of this library will be required to have type-annotations added (I'm sure that is more effort than anyone here has). So the better, smaller step, solution is to add a seperate stubs .pyi file to designate the type annotations for a subset of this library's functions.

Hi thanks for this :)
I'm not very familiar with the py.typed marker, so I could well be wrong,
but it looks like there might be support for partially typed packages:
https://peps.python.org/pep-0561/#partial-stub-packages
I'd be keen to keep type hints in the .python file if a work around can be
found. Cheers
On Thu, 4 Jan 2024, 22:14 CarrotManMatt, @.***> wrote:

After using this library in our own development, it has been identified
that the inline type annotations (added in #2
https://github.com/hottwaj/classproperties/pull/2) are not checked by
mypy. This is because this library is not marked with the py.typed
marker. I would recommend against adding this flag, as then the whole of
this library will be required to have type-annotations added (I'm sure that
is more effort than anyone here has). So the better, smaller step, solution
is to add a seperate stubs .pyi file to designate the type annotations
for a subset of this library's functions.
You can view, comment on, or merge this pull request online at:
https://github.com/hottwaj/classproperties/pull/3
Commit Summary

48005f1
https://github.com/hottwaj/classproperties/pull/3/commits/48005f12af19f5324eb9c87989c2abdeb2d8b40b
Add type annotations stub file
b0075a5
https://github.com/hottwaj/classproperties/pull/3/commits/b0075a50d9d94864f4fed053ee9bd16bedf066f1
Remove inline type annotations

File Changes
(2 files https://github.com/hottwaj/classproperties/pull/3/files)

M classproperties/init.py
https://github.com/hottwaj/classproperties/pull/3/files#diff-fe2294a7cafd91297c980fdb967234bb86d1758123c11945943273077fa69acf
(9)
A classproperties/init.pyi
https://github.com/hottwaj/classproperties/pull/3/files#diff-ac01838c1208e81b0496c921dd6c3aa5abb5ae29418278628a751162599d6d56
(7)

Patch Links:

https://github.com/hottwaj/classproperties/pull/3.patch
https://github.com/hottwaj/classproperties/pull/3.diff

—
Reply to this email directly, view it on GitHub
https://github.com/hottwaj/classproperties/pull/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABK6JBIF3HU2Q7DASGHABTTYM4STDAVCNFSM6AAAAABBNSTWP2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGA3DMNBQG4YTONQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Having reread the linked documentation I believe we have both misunderstood it. The partial-stub-packages section you linked relates to a wholly separate package(E.g. a classproperties-stubs) that a 3rd party would distribute when the original package is not typed. The partial part of this would be to say that the 3rd party has not provided stubs for every module in the original package. This is not relevant to our scenario because we are providing types inside of this package.
I also misunderstood the use of stubs & the py.typed marker, as we can add the py.typed marker to this package even if not everything is typed (in our case cachedclassproperty is not yet typed. With the py.typed marker, the inline types of the typed classproperty decorator will be used, but all other untyped objects/functions/classes will just be assumed to be Any

Great thanks, I did expect support for partial typing was inbuilt as that is what I had experienced elsewhere, but was not familiar enough with py.typed to know for sure.
Will merge now


Invalid Swift Support

I get the following error while uploading build via fastlane/gym
Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

While uploading via Xcode it's fine.
I have just found out that the issue occurs when export_method is "ad-hoc", when export_method is "app-store" error doesn't appear.

@larryonoff if you are trying to upload the ipa to TestFlight Beta or AppStore, then you should always use the  app-store profile.
In case you are uploading to 3rd party beta distribution sites such as Crashlytics or HockeyApp, you can use add-hoc.

@xfreebird thanks. Didn't know about it.


meson: only enable SSE2 by default on x86_64

Now SSE2 is enabled for 32-bit x86 by default (with recent GCC).  It's
causing issues such as https://gitlab.gnome.org/GNOME/gtk/-/issues/3497.

That's… A lot of changes, and not really what I'd like to merge.

Thanks for the fixes!


Make tensor parallelism functional on HPU

Functional on 1.15-# 341.

@kzawora-intel Created PR based on the rebased version, please close the other one.


Change priority for request token source lookup. Header token now tak…

…es priority over form field token.
@rynowak @Tratcher

:shipit: once we resolve what's going on with that test


feat(store): GetNoteInclusionProofs endpoint

Resolves: https://github.com/0xPolygonMiden/miden-node/issues/395
This PR adds GetNoteInclusionProofs endpoint. Prior this we had to use GetNotesById endpoint for getting inclusion proofs, but it returns a lot of unnecessary information for such task.
Also GetBlockInputs endpoint now returns not only found requested note IDs, but also their inclusion proofs.

Changes made - one final naming question here and then we're good to go I think.


EKS NodeGroup with custom AMI fails to update

This has been fixed in crossplane-contrib/provider-aws#1633 but it isn't available here.
Given the below NodeGroup that runs with a custom AMI i am able to create the resources in AWS.
I ran into an issue when i tried to update the NodeGroup (update AMI):
apply failed: error updating EKS Node Group (<cluster>:<node-group>) version: InvalidParameterException:
You cannot specify the field releaseVersion when using custom AMIs.

The releaseVersion has not been set by me, but rather by provider-aws when it syncs back the tfstate into the custom resource.
Deleting the releaseVersion does not help, it get's reconciled immediately by the provider. The managedFields also indicate that this field is owned by the provider.
apiVersion: eks.aws.upbound.io/v1beta1
kind: NodeGroup
metadata:
  name: "foobar"
spec:
  forProvider:
    amiType: CUSTOM
    launchTemplate:
      - name: example
        version: "$Latest"
    # ...
---
apiVersion: ec2.aws.upbound.io/v1beta1
kind: LaunchTemplate
metadata:
  name: example
spec:
  forProvider:
    # ...
    imageId: ami-0b9b30c466935db49
    # ...

As seen in crossplane-contrib/provider-aws#1633 the provider must not set the releaseVersion or version when forProvider.AMIType == "CUSTOM".
I don't know if this can be done with the existing tooling in config/eks or needs a fix in upstream.
What environment did it happen in?

Crossplane Version: 1.14.1
Provider Version: 0.43.1
Kubernetes Version: 1.27.7-eks
Kubernetes Distribution: EKS

If the issue is as you describe it, it can probably be fixed by adding release_version and version to the IgnoredFields in the LateInitializer in config/eks. That will tell upjet to not copy those fields from the tfstate into the spec.forProvider block.
Is that something you could try, test, and PR?

Thanks, i'll give it a shot!


Measure timescale separation in time series

From our preliminary results, we see that networks with more "spiky" signals tend to be more period tunable. It would be nice to have a measure of this spikiness to see if it correlates with period tunability. Therefore, it would be great to implement a function that given all the time series for a particular network (and parameter set), calculates the ratio between the rising part of the signal and the falling part of the signal. This measure could be a proxy for a "biphasic" behavior in oscillations and might correlate with period tunability.

A good way of quantifying the timescale separation would be through the following formula
time_scale_separation = abs((rising - falling) / (rising + falling))

where rising corresponds to the time it takes to go from the trough to the peak and falling the time it takes to go from the peak to the trough. This quantity can be averaged over nodes to get a single number per topology and parameter set.

I can work on this.
The formula gives ~1 for sawtooth waveforms, which I think are not necessarily related to relaxation oscillators. I think we can instead measure the ratio of reaction rates ($(dP_i/dt)/(dP_j/dt)$ or its absolute value) during one period and take the maximum (possibly after some regularization, or some other statistics) as a quantity directly related to the time scale separation. If this is large, it indicates there are two species whose populations are changing at drastically different rates, which is exactly what we mean by the time scale separation in relaxation oscillations.

That's a great idea! Thanks for working on this.

I slightly changed the approach and just measured how long phase trajectories stay near the nullcline of each variable in one cycle. The following numbers are that time divided by the respective period, so values closer to 1 indicate larger time scale separation.
It seems this factor can distinguish spiky waveforms (03, 04) from others--in both cases dynamics takes place near the nullcline of the first and fastest variable (blue lines). I'm not sure what happened for the condition 02, where the waveforms look pretty spiky but the factor is ~0.15. But it's still larger than ~0.01 factors for the other sinusoidal cases.
# Goodwin + IP, random oscillatory parameters
# var1, var2, var3
01: 0.00847457627118645, 0.004237288135593225, 0.00847457627118645
02: 0.15420560747663514, 0.13084112149532673, 0.13551401869158894
03: 0.922885572139304, 0.7363184079601993, 0.2114427860696517
04: 0.8602150537634407, 0.4139784946236558, 0.14516129032258082
05: 0.028901734104046263, 0.011560693641618505, 0.011560693641618505

# Goodwin, random oscillatory parameters
06: 0.014925373134328382, 0.014925373134328382, 0.0
07: 0.008130081300813016, 0.012195121951219523, 0.012195121951219523
08: 0.012987012987013005, 0.006493506493506503, 0.006493506493506503
09: 0.013157894736842105, 0.0, 0.013157894736842105
10: 0.006756756756756767, 0.006756756756756767, 0.006756756756756767

Love this idea! The numbers are looking good too. Let me know when you want me to review a PR!


Compile (make) errors

I am using an Ubuntu server version 22.0 and am getting the following error when I tried to "make":
root@hv-rdpgw:/var/pkg/RDPGW/rdpgw-master# make
go mod tidy -compat=1.20
go build  -trimpath -tags '' -ldflags '' -o '/var/pkg/RDPGW/rdpgw-master/bin'/rdpgw ./cmd/rdpgw
go build  -trimpath -tags '' -ldflags '' -o '/var/pkg/RDPGW/rdpgw-master/bin'/rdpgw-auth ./cmd/auth
github.com/bolkedebruin/rdpgw/cmd/auth
cmd/auth/auth.go:37:16: undefined: pam.StartFunc
cmd/auth/auth.go:37:70: undefined: pam.Style
cmd/auth/auth.go:39:12: undefined: pam.PromptEchoOff
cmd/auth/auth.go:41:12: undefined: pam.PromptEchoOn
cmd/auth/auth.go:41:30: undefined: pam.ErrorMsg
cmd/auth/auth.go:41:44: undefined: pam.TextInfo
make: *** [Makefile:39: /var/pkg/RDPGW/rdpgw-master/bin/rdpgw] Error 1
I found a similar posting in StackOverflow but with not detailed fix. Can someone help?

you are missing apt-get install -y libpam-dev

@archef2000 Thanks for replying. I did have the libpam0g-dev (v1.4.0) installed. To be certain I removed and re-installed the package, but I still got the  same error message.

Maybe upgrade make, build-essentials, etc ?

Typically the includes are then at the wrong location.


Reconsider using sudo as name for the project to prevent confusion

Current names for similar functionality include su, sudo, sudo-rs, doas, runas, run0, ssu, pkexec.
Also see https://github.com/PowerShell/PowerShell/pull/1901.

Embrace
Extend <= we are here
Extinguish

This is discussed more in #23 and answered in https://github.com/microsoft/sudo/discussions/23#discussioncomment-8422957.
/duplicate of #23
Thanks!


Student Registration Error

Hello @tomas-muller ,
May I know why am I getting this error. Please help me in resolving this.

And also students conflicts are not showing up and not getting resolved in the main solver, courses>course timetabling>solver.

UniTime have deadlines on when a course can be added, modified, or removed from a student schedules. These are relative to the first meeting to the class and defined in the number of weeks (e.g., it is usually possible to add a class no later than during the first week of the class) and can be defined on the Academic Sessions page (see the Add/Edit Academic Session page) or modified for a particular offering (see Edit Course Offering page). It is also possible to disable these enrollment deadlines completely by setting the unitime.enrollment.deadline property to false on the Administration > Defaults > Configuration page.
Please provide more details about the second issue. What student course demand data are you using? Do you have the Course Timetabling Solver page (and the Student course demand parameter) set accordingly?

What parameters should be set to run the Timetabling Solver page so that it minimizes the student conflicts. In my case the students are not being loaded in the timetabling solver. It would be helpful if you could give me some idea about it.

Minimization of student conflicts is one of the core optimization criteria for the solver (it does not need to be enabled). However, depending of what student course demands you are using (these could be last year's student course enrollments, curricula, or the actual student course requests), you need to set the Student course demand parameter on the Course Timetabling Solver page. Please see the page documentation at https://help.unitime.org/course-timetabling-solver for more details about the possible values of this parameter and what they mean (what data are expected to be entered and/or imported into UniTime).


Can't find file with ffmpeg.input()

import ffmpeg
import os

file1 = 'input.avi'
file2 = 'output.avi'
print(os.path.isfile(file1))   #True

stream = ffmpeg.input(file1)
stream = ffmpeg.hflip(stream)
stream = ffmpeg.output(stream, file2)
print(stream.get_args())
ffmpeg.run(stream)   #FileNotFoundError: [WinError 2] The system could not find the specified file.

Here is the print:
True
['-i', 'input.avi', '-filter_complex', '[0]hflip[s0]', '-map', '[s0]', 'output.avi']
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)

Make sure ffmpeg is installed and on your system path. Note that ffmpeg-python does not try to automatically install ffmpeg. It's simply a python wrapper for ffmpeg, and it's up to you to make sure it's installed in whatever way makes sense for how you're using it.

We should keep this in mind though, that users may see unexpected error messages if ffmpeg can't be found. It should probably either be in the docs, or print a more helpful error message. Thanks for reporting.
Please let me know if this fixes your issue.

Problem solved. Thank you for your help!
An error message like 'ffmpeg is not installed' cound be very helpful for beginners.

I agree! For a minute, I thought that this package would make ffmpeg avaliable behind the scenes. Not a problem to install it though, just pointing that a more informative message would be better.

Thanks for the suggestion. I'll try to add a more helpful error message if I can find time. PRs are welcome as well.

Is this still the case:
Note that ffmpeg-python does not try to automatically install ffmpeg.
I installed ffmpeg-python first
run in the error
installed than ffmpeg
run my python code and got the error that ffmpeg does not hat a ".input" function.
I was forced to unstall both and re-install ffmpeg.
But have now the same issue. "File not found"
But the file exists under the given path.

I had a similar issue,
I already had ffmpeg in my path, however was still getting the input function not found error when I ran my code.
SOLUTION: Add to the top of your file:
import sys sys.path.append(<LOCATION TO ffmpeg/bin>)
Then for good measure, I reinstalled python-ffmpeg, then it worked.


Release binaries for ROS 2?

There is some discussion about using this w.r.t. a tutorial in Nav2 for GPS waypoint following. A blocker for that is that this isn't released in binary format - is there a reason for that and/or is this something that can be released?
Thanks!
S

Let me figure it out. I'm happy to make changes or add features to support Nav2 integration, so please let me know if there's anything else we can do as well.

@SteveMacenski I've got the process rolling. The binary releases were disabled a while ago due to a dependency issue. I resolved that issue a few months ago, but the builds never got unblocked. I've updated the issue to draw attention to it, and hopefully everything gets rapidly released now: https://github.com/ros2-gbp/mapviz-release/issues/2.

Awesome! This sounds like a way to go then!

@SteveMacenski it should be unblocked on the buildfarm and available as soon as that process completes.

Humble and Iron. If there's a need for Rolling, I can do that as well.

Rolling as well would be great since alot of our users are on rolling to get the bleeding edge of Nav2

Alright, it's been a while since I've tried on Rolling. I'll try to get all of the dependencies and the package released tonight.

Okay, I have it building locally on Rolling and am working on blooming it. Several of the dependencies we maintain haven't been bloomed either, so that's also getting updated.

I'm also going to make a big push to get this working on Arm devices. It's been a common request, and I think I know what we need to do to get it going.

What deps are missing?

marti_common and marti_messages, which are things we maintain. I had pretty
old versions in Rolling, and I just bloomed new versions of them.
On Tue, Aug 22, 2023, 3:11 PM Steve Macenski @.***>
wrote:

What deps are missing?
—
Reply to this email directly, view it on GitHub
https://github.com/swri-robotics/mapviz/issues/784#issuecomment-1688857702,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZWHDTUENDOQBZIPD3WUTXWUG73ANCNFSM6AAAAAA3V5CKC4
.
You are receiving this because you commented.Message ID:
@.***>

Okay, I just bloomed Mapviz for rolling. The PR request is here: https://github.com/ros/rosdistro/pull/38343.

Thanks! Tutorial coming soon!

It looks like on 22.04 I only see apt packages for mapviz-interfaces and not the binary release of mapviz (on humble, iron, or rolling).
Does the swri_roscpp builds need to be enabled again? (I believe this is the rolling build?)

marti_common wasn't building correctly, which was blocking Mapviz. I just
released v3.6.1 of marti_common to the buildfarm, and it looks like it's
building, which should unblock Mapviz on x86 platforms. I already got
marti_common packages unblacklisted on the buildfarm, so everything should
be good now.
On Fri, Sep 8, 2023, 10:52 AM Jonathan Selling @.***>
wrote:

It looks like on 22.04 I only see apt packages for mapviz-interfaces and
not the binary release of mapviz (on humble, iron, or rolling).
Does the swri_roscpp builds need to be enabled again? (I believe this is
the rolling build
https://build.ros2.org/job/Rbin_uJ64__swri_roscpp__ubuntu_jammy_amd64__binary/
?)
—
Reply to this email directly, view it on GitHub
https://github.com/swri-robotics/mapviz/issues/784#issuecomment-1711879825,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABBZWHHRZNMXQIKTFI5RFY3XZM5MTANCNFSM6AAAAAA3V5CKC4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Scavengers: Manage Game Modes

add Incognito
fix Jump Start
enhance display for /scav status

A chat command crashed again with this stack trace:
TypeError: Cannot read property 'eliminate' of null
    at KOGame.eliminate (/home/ps/showdown/chat-plugins/scavenger-games.js:202:21)
    at CommandContext.kick (/home/ps/showdown/chat-plugins/scavengers.js:738:28)
    at CommandContext.run (/home/ps/showdown/chat.js:422:28)
    at CommandContext.parse (/home/ps/showdown/chat.js:260:19)
    at Object.Chat.parse (/home/ps/showdown/chat.js:1137:17)
    at User.chat (/home/ps/showdown/users.js:1434:9)
    at Function.socketReceive (/home/ps/showdown/users.js:1655:12)
    at Worker.worker.on.data (/home/ps/showdown/sockets.js:53:11)
    at emitTwo (events.js:130:20)
    at Worker.emit (events.js:213:7)

Additional information:
  user = 3.14dgeot-Mega
  room = scavengers
  pmTarget = undefined
  message = /scav games kick BigPimpin12

is this fixed?

it is now @Zarel :3  sorry about that


Proposed SIG-Docs meeting agenda for 2022-01-10

Meeting Details

Date/Time: Month Date, Year @ 10:30 to 11:00 am PT
Location: Discord SIG-Docs Voice Room
Moderator: @chanmosq
Note Taker: @chanmosq

The SIG-Docs Meetings contains the history past calls, including a link to the agenda, recording, notes, and resources.
SIG Updates
What happened since the last meeting? - The creator of this issue is responsible for providing a brief summary here to be used as an update to start any important discussions.
Open action items

[ ] Checkbox list of open action items from previous meetings. If these are closed before or during the meeting, mark them off.
[ ] ...

Newly resolved items

:white_check_mark: Unordered list of action items resolved since the last meeting.
:white_check_mark: ...

Initial Agenda
The pre-approved agenda for this meeting is as follows:

Agenda item name - Presenter - Length of time

Description of the item

...

Suggesting and voting on agenda items
Our community is welcome to suggest and vote on agenda items. If you suggest an item you need to have a designated presenter (normally the issue filer), but any community member can vote and isn't required to attend meetings or even participate in further discussion. If you think something is a good idea to discuss for the O3DE community, please upvote!
:+1: reactions to proposed agenda items are counted as YEA votes for taking up discussion, and :-1: as NAY. Votes on items don't determine the final agenda, but do influence it and are strongly taken into consideration as a representation of what the O3DE community wants to see from the project.
Agenda item format
If you leave a comment on this issue to propose an agenda item, please use the following format:
**Topic**: The topic you'll be presenting on
**Presenter**: Who will present (may be a team name or TBD)
**Length of time**: Estimate the amount of time you believe discussion will take. This should not be more than 15 minutes without SIG approval.

Include a description of your topic. Make sure to link to any supplementary materials such as RFCs, forum discussions, issues, etc.

Remember to add the :+1: and :-1: reactions manually, so they appear and are obvious to voters!

Meeting notes
Docs updates

Updates from JT(SCB_GameDesign)

Plan to write lean/agile documentation about onboarding to O3DE. This documentation is specifically for their team, will be hosted on their platform, and shared back with the O3DE community. It's contributions to the community are 1) lean documentation about onbaording to O3DE, and 2) to demonstrate the lean documentation paradigm intended for rapid adoption.

Tackling the backlog of o3de/o3de.org

For Amazon writers, we need to just start working on the issues. Currently, we rarely look at it because we get caught up in other work to do. We usually only close out issues because it's related to something we're working on. This helps, but still a lot of issues remain because not all contributors look at the issue backlog.
We'll need to clean this up as a team
How will we divide up the work? we can connect it back to the audit

Look through issues, has it been connected to audit. If not and it relates to a section of the audit, add the issue to the audit.

Suggestion to request developers also close out related documentation issues as they work on developing their systems.

Idea - We can create a Git Action that gets triggered when someone submnits a PR. Depending on the files that the PR touches, it can determine which issues might be relevant to it and produce a list that appears on the PR browser page. This can push the contributor to review the issues that the PR might be related to.
We can label the different folders of o3de.org/docs, and trigger the workflow mentioned above.
Blender has mechanisms for this too. They've continued to iterate on their process, the community has grown with it, and it's been helping them maintain the pool of issues, PRs, and contributor work.

Community Updates

Finchy working on a lot of process documentation to hand off to LF:

How to write a blog, README.md, etc.

Working with Marketing meeting to plan for Asset and Content Jam. Goal is to have two asset jams and two content jams. The idea is for the Asset Jam to produce assets that the later Content Jam can use.

Will be hosted on itch.io
Planning to have the first one in Q1, but no official dates yet.

Issue - Lots of people in Discord, but not much engagement. Brainstorm how we can drive more engagement?
Issue - Challenging to get engineers to write blogs. Even more so getting engagement from engineers outside of AWS.

It's easier to get content for interviews than blogs.
Blog management is planned to hand off to LF.


Showing count of deduplicated icons

Is your feature request related to a problem? Please describe.
--dedup argument saves space on the bar, but we lose information about how many windows are open. I like to keep the information about window count, so I don't use --dedup, but it takes more space this way...
Describe the solution you'd like

Visually showing count indicator for each icon that has been deduplicated. (For example small number above the icon, or possibly 1 dot for each window)

Command line argument argument, that would enable this behavior.

Describe alternatives you've considered

Closing some windows because at such point I have probably too many windows open 😂

Additional context
Thanks for this "toy"/app, it's pretty useful for me.

Thanks for the issue, I will study what I can do. I think easiest/possible is to put the counter between parenthesis on the right side.

I tested it out a bit, and icon+thin space+superscripted number looks nice "some icon character ⁴", it is also solution just using text characters and takes less space. Without the thin space it goes over the icon.. But if the superscripted number could be of different color, then it  would work well without the thin space.

Thanks for the tests!

Hi @psimovec ,
I find some time to try to implement the feature.
Can you try this PR please ? https://github.com/cyrinux/hyprland-autoname-workspaces/pull/39

@psimovec please find the new release here https://github.com/cyrinux/hyprland-autoname-workspaces/releases/tag/0.4.4
You have to just add dedup = true in your config file. The params --dedup and --counter are deprecated now.

Thank you @cyrinux ! I tested it, the feature works as expected for me for normal usage. I found a way how to crash the program, but it happens when I have a client that is in depth 17+ in dwindle layout, so I think it is not considered as normal usage :D It might also be a bug of Hyprland instead. If you were interested in looking into that, I was taking notes when testing:
I reinstalled it using cargo install --locked hyprland-autoname-workspaces, it gave me version 1.43 for now, I guess I have to try different way to install.
For testing purposes I have opened a lot of terminals, it worked until 17 duplicated clients on one screen
./hyprland-autoname-workspaces -d -c
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SerdeError(Error("invalid value: integer `-1`, expected u16", line: 510, column: 18))', /home/psimovec/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprland-autoname-workspaces-0.4.3/src/renamer/mod.rs:32:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I tried to install hyprland-autoname-workspaces-git using paru/yay and installation  succeeded for me this time.
I realised it was a coincidence that it happened at 17 opened windows,
with version hyprland-autoname-workspaces-git-0.4.4.r0.g09a64e3-1
I got again the same error at ~88 windows :D

hyprland-autoname-workspaces
thread 'main' panicked at 'called Result::unwrap() on an Err value: SerdeError(Error("invalid value: integer -1, expected u16", line: 2574, column: 18))', src/renamer/mod.rs:32:38
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

It seems like the real issue is, that when I open windows too fast, hyprland returns number of windows as -1 or something like that, based on the backtrace..
Now I was able to make hyprland-autoname-workspaces crash on start..
hyprctl workspaces
workspace ID 1 (1:  ) on monitor eDP-1:
	windows: 2
	hasfullscreen: 0
	lastwindow: 0x562821b89d10
	lastwindowtitle: vim prezentace.txt

workspace ID 2 (2: ) on monitor eDP-1:
	windows: 1
	hasfullscreen: 0
	lastwindow: 0x5628228107c0
	lastwindowtitle: * papir03.pdf — Mozilla Firefox

workspace ID 3 (3: ) on monitor eDP-1:
	windows: 1
	hasfullscreen: 0
	lastwindow: 0x562822a58ca0
	lastwindowtitle: papir03.pdf — Mozilla Firefox

workspace ID 4 (4:   ) on monitor eDP-1:
	windows: 3
	hasfullscreen: 0
	lastwindow: 0x562823d7cdc0
	lastwindowtitle: hyprctl workspaces

workspace ID 5 (5: ¹⁶) on monitor eDP-1:
	windows: 21
	hasfullscreen: 0
	lastwindow: 0x5628242d3b70
	lastwindowtitle: psimovec@bramborka:~

> hyprland-autoname-workspaces
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SerdeError(Error("invalid value: integer `-1`, expected u16", line: 534, column: 18))', src/renamer/mod.rs:32:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Oh okay the crash happens when there exists a client with depth>16 in dwindle layout. So the crash is easily reproducible by.

setting up dwindle layout
opening 17 terminal windows, always nested (for me it worked by not moving mouse)
Then hyprland-autoname-workspaces crashes, and it crashes even on startup.

Oh, will read your full message asap, but first can you reinstall again ? I didn't push on the cargo store. cargo install --locked hyprland-autoname-workspaces. You should have version 0.4.4.

@psimovec Can you restart the program with a full traceback please, and send me this full backtrace ? RUST_BACKTRACE=full hyprland-autoname-workspaces ?

RUST_BACKTRACE=full hyprland-autoname-workspaces
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SerdeError(Error("invalid value: integer `-1`, expected u16", line: 558, column: 18))', src/renamer/mod.rs:32:38
stack backtrace:
   0:     0x55a9e03c58da - <unknown>
   1:     0x55a9e03e6c5e - <unknown>
   2:     0x55a9e03c2be5 - <unknown>
   3:     0x55a9e03c56a5 - <unknown>
   4:     0x55a9e03c6e5f - <unknown>
   5:     0x55a9e03c6b9b - <unknown>
   6:     0x55a9e03c7408 - <unknown>
   7:     0x55a9e03c7309 - <unknown>
   8:     0x55a9e03c5d46 - <unknown>
   9:     0x55a9e03c7012 - <unknown>
  10:     0x55a9e0250893 - <unknown>
  11:     0x55a9e0250d43 - <unknown>
  12:     0x55a9e028837b - <unknown>
  13:     0x55a9e02b2259 - <unknown>
  14:     0x55a9e02a5c2e - <unknown>
  15:     0x55a9e02a9058 - <unknown>
  16:     0x55a9e0258b73 - <unknown>
  17:     0x55a9e0293497 - <unknown>
  18:     0x55a9e0259ff3 - <unknown>
  19:     0x55a9e0258f29 - <unknown>
  20:     0x55a9e03bda1c - <unknown>
  21:     0x55a9e0293e75 - <unknown>
  22:     0x7f851dbec790 - <unknown>
  23:     0x7f851dbec84a - __libc_start_main
  24:     0x55a9e0250e85 - <unknown>
  25:                0x0 - <unknown>

Thanks but we miss debug symbol, pacman strip it. If you can git clone the repo, and then RUST_BACKTRACE=full cargo run in it, it should be more useful. If you can't I will continue this evening. 😉

Thanks, perfect, will open a PR to fix the lib.

@psimovec the PR is open upstream. I will be able to update the toy when it will be merge and release.

I will close this issue as we drift and open another


Build badge link broken

Noticed this while reading:
The build, review, report links point to the "computo" org, not computorg.

https://computo.sfds.asso.fr/published-202402-elmasri-optimal/

Thanks for reporting!


[Docs Update 2017] Navigation Section - Codepen's

Here are the codepen's for review!
1. Menu

[x] Basic Menu - https://codepen.io/IamManchanda/pen/rmvXMX?editors=1000
[ ] Align Right
[ ] Menu Centered
[ ] Menu Expanded
[ ] Vertical Menu
[ ] Simple Style
[ ] Nested Style
[ ] Active State
[ ] Text
[ ] Icons
[ ] Icon Top

2. Dropdown Menu

[ ] Horizontal
[ ] Vertical

3. Drilldown Menu

[ ] Basic Drilldown Menu
[ ] autoHeight
[ ] ScrollTop Drilldown

4. Accordion Menu

[ ] Basic Accordion Menu

5. Top Bar

[ ] Basic Top Bar
[ ] Advanced Layout with Responsive Toggler
[ ] Stacking

6. Responsive Navigation

[ ] Responsive Menu
[ ] Responsive Menu Combo (Dropdown, Drilldown, Accordion)
[ ] Responsive Toggle
[ ] Responsive Toggle with animation

7. Magellan

[ ] Basic Magellan
[ ] Magellan with Sticky Navigation

8. Pagination

[ ] Basic Pagination
[ ] Centered Pagination

9. Breadcrumbs

[ ] Basic Breadcrumb

@kball There is a overview page too http://foundation.zurb.com/sites/docs/navigation.html....
What need to be done there .... All those examples covered here are in specific pages too ?
Do i need to add there too ??
BTW ... I dont understand why there is a specific overview page for navigation when we have kitchen sink ?

@kball With https://github.com/zurb/foundation-docs/issues/12
and this Codepen with example getting added why remove this below attached example entirely ..... We shouldn't have 3 sticky headers (top bar, search bar being other two !

Concur with your idea @IamManchanda. Extraneous example, and we already have many stickies in this new layout.

Ohk removing it!


Unable to read LaserScan message from /scan

I used this tutorial to set up my workspace and am trying to implement a q-learning environment using ROS2. I have written a simple subscriber to the /scan topic which has publisher /turtlebot3_laserscan, but do not get any results when running the script alongside the ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py command.
scanSub.py
import rclpy
from rclpy.qos import QoSProfile
from sensor_msgs.msg  import LaserScan

def chatter_callback(msg):
    #print('Heard {0}'.format(str(msg)))
    print('heard it')

def main(args=None):
    rclpy.init()

    node = rclpy.create_node('scanSubcriber')

    sub = node.create_subscription(LaserScan, 'scan', chatter_callback, QoSProfile(depth=10))
    assert sub  # prevent unused warning

    while rclpy.ok():
        rclpy.spin_once(node)

if __name__ == '__main__':
    main()

However, when I run my own simple publisher to publish custom scan messages, the messages are recieved.
testPub.py
from time import sleep
from sensor_msgs.msg  import LaserScan
import rclpy

from rclpy.qos import QoSProfile

def main(args=None):
    rclpy.init()

    node = rclpy.create_node('scanPublisher')

    chatter_pub = node.create_publisher(LaserScan, 'scan', QoSProfile(depth=10))

    msg = LaserScan()

    i = 1
    while True:
        msg.angle_min = float(i)
        i += 0.5
        print('Publishing: "{0}"'.format(msg.angle_min))
        chatter_pub.publish(msg)
        sleep(1)

if __name__ == '__main__':
    main()

The ros2 node info /turtlebot3_laserscan command gives the message type of /scan as sensor_msgs/msg/LaserScan which I believe is the type I am using on the custom subscriber and publisher.
My environment is

Ubuntu 18.04.3,
ros2 Dashing

I'm not seeing any data on the /scan topic either.
@sgawalsh - do you see anything when you run 'ros2 topic echo /scan'

I remember testing that at the time, and as I recall the LaserScan message was displayed as expected when running ros2 topic echo /scan

@sgawalsh
/scan topic was published by gazebo ros ray sensor plugin.
That plugin set SensorQoS to publish scan topic.
Because your code was written to subscribe it with reliable QoS, you can't get any msgs from gazebo plugin.

sub = node.create_subscription(LaserScan, 'scan', chatter_callback, QoSProfile(depth=10))

I've attached reference about QoS Settings.
https://github.com/ros2/ros2_documentation/blob/master/source/Concepts/About-Quality-of-Service-Settings.rst

My issue is this one:
https://github.com/ros-simulation/gazebo_ros_pkgs/issues/991
This means a change is needed in the turtlebot3 model files to match the new argument style.

I'm haiving the same issue - ros2 topic echo /scan works just fine, but subscribing to it from Python or rqt does not. Spending a couple of hours browsing through issue discussions and incomplete documentation on QoS did not help...
@ROBOTIS : please provide an example on how to subscribe to /scan data.

@sjev
docs for create_subscription() can be found in: ROS2 docs: node
and for setting QoS: ROS2 docs: QoSProfile
import rclpy
from rclpy.node import Node
from rclpy.qos import ReliabilityPolicy, QoSProfile

from std_msgs.msg import String
from sensor_msgs.msg import LaserScan

class MinimalSubscriber(Node):

    def __init__(self):
        super().__init__('minimal_subscriber')
        self.subscription = self.create_subscription(
            LaserScan,
            'scan',
            self.listener_callback,
            QoSProfile(depth=10, reliability=ReliabilityPolicy.BEST_EFFORT))
        self.subscription  # prevent unused variable warning

    def listener_callback(self, msg):
        dist_back = format(msg.ranges[180], '.2f')
        dist_left = format(msg.ranges[90], '.2f')
        dist_right = format(msg.ranges[270], '.2f')
        dist_head = format(msg.ranges[0], '.2f')
        self.get_logger().info(f'{dist_back} {dist_left} {dist_right} {dist_head}')

def main(args=None):
    rclpy.init(args=args)

ef main(args=None):
    rclpy.init(args=args)

    minimal_subscriber = MinimalSubscriber()

    rclpy.spin(minimal_subscriber)

    # Destroy the node explicitly
    # (optional - otherwise it will be done automatically
    # when the garbage collector destroys the node object)
    minimal_subscriber.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()

I did not test it thoroughly, but the code snippet at least shows how to set BEST_EFFORT.

I had a very similar issue. @goekce's solution of setting the QoSProfile's reliability to best effort, i.e. reliability=ReliabilityPolicy.BEST_EFFORT, fixed things for me.

I found a more typing-friendly solution than the long option in my last post:
rclpy.qos has already predefined QoS profiles:
https://github.com/ros2/rclpy/blob/02fc987029c01c87676933cffa50bafb1f5a6d59/rclpy/rclpy/qos.py#L417-L430
Here is a minimal example w
import rclpy
from rclpy.node import Node
from rclpy.qos import qos_profile_sensor_data
from sensor_msgs.msg import LaserScan

class Tb3(Node):
    def __init__(self):
        super().__init__('tb3')

        self.scan_sub = self.create_subscription(
                LaserScan,
                'scan',
                self.scan_callback,  # function to run upon message arrival
                qos_profile_sensor_data)  # allows packet loss

    def scan_callback(self, msg):
        print(msg.ranges[0])

def main(args=None):
    rclpy.init(args=args)

    tb3 = Tb3()

    rclpy.spin(tb3)  # execute tb3 node
    # blocks until the executor cannot work

    tb3.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()


Typescript Compiler is unable to check whether relational operator is supplies to decision making statement(if ,else if)

Hi,
Thanks to typescript team for creating wonderful client side scripting language based on OOP's features. Typescript compiler is unable to check whether relational operator is supplies to decision making statement(if ,else if). Developer may make a mistake while supplying relational operator to decision making statement  . Usually they can supply assignment operator in place on equality operator. Thanks you!
When I write the code like below
if(variable=5){
}
It got compile . But at run time the value 5 is  assigned to the variable rather than checking the statement.

Thanks for the issue, can you please re-create this issue and follow the template, it's hard to understand what is actionable on our side with that structure.

Please


Moved the configuration to a common IdentityServer4.Shared project th…

My intention here is to move all IdentityServer related functionality to STS project and consider Admin as just any other IS4 Client that is trying to access IdentityServer4 functionality.
I have merged the configuration that was common between Admin and STS. Moved them to a separate IdentityServer4.Shared folder. My end goal is for Admin Client to access IS4 functionality via the API present in STS project.
Please share your thoughts.

Can you please review the PR and share your thoughts

I will review it. Thank you 👍🏼😊

It is really complex PR. I understand your idea with exluding all configuration into separate project but I have used the another PR where we move all configuration into appsettings.json of each project. Can you please check dev branch with latest changes?
Thanks!

I am closing this PR, because there are a lit of changes, it is not possible to merge.
Thanks


Add SQLi and XSS Detections/Analytic Rules for App GW WAF in Azure WAF Solution

Required items, please complete
Change(s):

Added the following two analytical rules to Azure WAF Solution

App-GW-WAF-SQLiDetection.yaml
App-GW-WAF-XSSDetection.yaml

Reason for Change(s):

Adding New analytic rules for the WAF Solution

Version Updated:

Yes

Testing Completed:

Yes

Checked that the validations are passing and have addressed any issues that are present:

Yes

Hi @shabaz-github please provide complete sample data to test the Analytic Rule.
Also Please package the solution using V3 tool
https://github.com/Azure/Azure-Sentinel/blob/master/Tools/Create-Azure-Sentinel-Solution/V3/README.md

Hello @shabaz-github please provide sample data also package the solution using above mentioned steps. Thanks

@v-shukore @v-atulyadav Hello Team, added the sample data under sample data/custom path. Please help with packaging the solution as we do not have insights on doing that and generally your team helps with packaging. Thank you


Feature idea: pretty print for html()

Version
1.0.0-beta.29
Reproduction link
https://github.com/vuejs/test-utils
Steps to reproduce
I think it would be nice to be able to pretty-print the output of html. The API could be:
console.log(wrapper.html({ pretty: true }))

I find the html feature is super useful for debugging project that I am new to, or teaching other people about testing. At the moment we import another package to format the HTML, but it might be a nice feature to have in core.
If you think it's not necessary, just close this one off. I'd be happy to make a PR with this feature.
What is expected?
Format nicely
What is actually happening?
Not formatted nicely

Duplicate of this?

So it is - and looks like the idea was approved. Might look into making a PR for this!


Replace deprecated function call: grpc.WithInsecure

controller/client/client.go:73:12: grpc.WithInsecure is deprecated: use WithTransportCredentials and insecure.NewCredentials() instead. Will be supported throughout 1.x.  (SA1019)

#https://github.com/Coffee-DNS/coffee-dns/issues/2#issue-1290855517

@Artis112

Ko


resolves #883 instead of the user's first and last name undefined was displayed

Back-end исправил ошибку в response, issue больше не актуально.


Casting in constant expression

Failing grammar:
localparam a = (32)'('h0);
The above constant expression fails.

v.0.1.3
Constant cast is partially supported.
You need open/close parenthesis for casting type.
localparam a = (32)'('h0); // <- OK
localparam a = ($clog(xx))'('h0); // <- OK
localparam a = $clog(xx)'('h0); // not supported


cant connect client to server

hi,
I've tried both the flutter android projects as well as the apk file. Installed on 2 local android devices, one virtual and another real and both virtual, but I am unable to get the client to find the room on the other device. The NSD flutter demo seemed to work, but I am trying to see how I would implement this in an actual app. Thx for any advice
Update: it works when you use both real android devices, but not with the virtual android emulators.

I also tried using emulators but it didn't work, this seems to be pretty complicated but possible: https://developer.android.com/studio/run/emulator-networking. This guide may help.

thanks! that seems like a bit too much trouble, I can test it on actual devices now :)
Is it difficult to remake the NSD server in an android app? And have the client be on flutter android or ios?

What do you mean by "remake the NSD server in an android app"?
If you mean have an android device creating a server and connecting in an iOS device, I don't think it will be that hard because the nsd package actually handle this well: https://pub.dev/packages/nsd. You can see at the repository it implements the federated plugin interface, which means we can expect that the features works across all declared platforms (in this package it is iOS, Android, Windows & Mac).

If you mean another thing, correct me, pls.

I have an existing app in android (wish I could remake it in flutter but I am having trouble getting video playback in 4k from a flutter build because it is rendering everything out in the UI layer from my understanding. This UI layer will only go as far as 2k for my odroid n2 device).
So my idea was to add the NSD package (as the server) to the existing Android app, and have it communicate with flutter built apps. In order to do this I would need to figure out how to implement the NSD server in Java on my android app. As you might be able to tell I am not a proper programmer, just learning as I go along.
But it sounds like it will work according to what you say.

So my idea was to add the NSD package (as the server) to the existing Android app

Ok, lets define an APP A. This APP A is written in Java and it is using NSD to create a network service.

and have it communicate with flutter built apps

Now we have an APP B written in Flutter that will connect to the service created by APP A.
This is where things got confuse. I need first to understand what is your purpose by connecting 2 different apps. Generally we create just 1 app and install it across different devices.

can you explain it better? what is the purpose of your app and how do you plan to use NSD?
I got really confuse about what you said, so I guess I'm missing something.
Do you have a public repository for this project?

Alright, my APP A is a video playback app, and I am using APP B to control it like a remote with some interaction. There might be spaces with several APP A's and APP B would be able to add them in a list to control each one, or group the APP A's for a singular control.
So APP A doesnt have much control, it is all being done from APP B. My idea was to use the NSD to create communication on a local network between cross platform devices such as android and ios.
I dont' have a repository for this APP A because it holds my artwork, and also only will function with a specific hardware device and external hdd's connected to it.

Oh I see, I think this is pretty valid, I don't see why it won't work, for both, iOS and Android.

do you happen to know a working code example for android? I have been trying to find one but all seem outdated or not complete. It's pretty hard to wrap my head around how I will add this to my existing android app in java

Since it's Java, it's really hard to find an working updated example, so all we have is the doc.
But u can try implement it in a new fresh app (blank android Java project) using the official doc then when you learn to use the API you will know how to integrate in your app.
Doc: https://developer.android.com/training/connect-devices-wirelessly/nsd.
Also, there is a library written in Kotlin that may help you understand how to use: https://github.com/ToxicBakery/Android-Nsd-Rx.
These doc seems to be pretty clear, just try to implement in a blank project and I think it'll be fine.

hey thanks, I'll keep that official doc nearby to help me understand. I did find a Java project that I managed to get working properly https://github.com/drulabs/LocalDash
The doc is pretty clear yes, but I get stuck on simple stuff of implementing it in a working project.

I saw this app, but it is from 6 years ago, does it works?
Also, for future reference I found a SO link that mentions compatibility between NSD and Bounjour SDK on iOS https://stackoverflow.com/questions/21277805/is-android-nsd-network-service-discovery-compatible-with-bonjour-service-in-io.

after updating the gradle and some code updates it compiles, and runs. But I haven't tested making a connection yet

never mind haha I spoke too soon, after installing it on two devices they dont seem to communicate.


Write Part - 3 Step - 13 & unit test

Implement Step13Controller and write all unit tests. Verify the display name of the test conforms to the pattern of "Part X Step Y". Follow the standardize naming, comments, etc. to be consistent.

This uses DM25 which is also done in Part 02 Step 14 (#265) but there is a ton more work here.


Regenerate APIs with controller-gen v0.16.2

This patch installs controller-gen v0.16.2 and regenerate all the common
APIs/CRDs. Also fixes the generation script.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


add "setInputs" to observables

so they can be defined without inputs having been set yet
also add triggerUpdate method similar to async props
basically I want interval observable props to be async props with the same interface + interval updates

perhaps simply add an interval input to async props?

setParams now exist on CallbackObservable in https://github.com/electrovir/observavir, which AsyncProp now extends.


[SQL Server] add validation for disallowed relationships (e.g. cyclic)

By default we render relation fields as a foreign key with an ON UPDATE CASCADE clause. This can cause problems with SQL Server as certain kinds of relation setups are not possible. Running migrations for those kinds of schemas results in errors such as:

Introducing FOREIGN KEY constraint FK__Artist__album_id__2D3D91F9 on table Artist may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

We must add validation to the parser for the following cases in order to show a nice error to the user.
Problem 1: Cyclic relationships
SQL Server does not allow to declare cyclic relationships such as the following.
model Album {
    id        Int      @id @default(autoincrement())
    artist_id Int
    artist    Artist   @relation(fields: [artist_id], references: [id])
    Artist    Artist[] @relation("FK_fav_album")
}

model Artist {
    id                Int     @id @default(autoincrement())
    favorite_album_id Int
    // this relation field makes it cyclic
    favorite_album    Album   @relation(fields: [favorite_album_id], references: [id], name: "FK_fav_album")
    albums            Album[]
}

Another example schema can be found here: https://github.com/prisma/prisma/issues/5782#issue-813500462
Problem 2: Multiple Cascade Paths
If you have more than two relations leaving from a model, they can't cross to the same model anywhere in their path.
model Album {
    id               Int      @id @default(autoincrement())
    FavoriteOf       Artist[] @relation("FK_fav_album")
    SecondFavoriteOf Artist[] @relation("FK_fav_album2")
}

model Artist {
    id                       Int   @id @default(autoincrement())
    favorite_album_id        Int
    second_favorite_album_id Int
    // this relation field makes it cyclic
    favorite_album           Album @relation(fields: [favorite_album_id], references: [id], name: "FK_fav_album")
    second_favorite_album    Album @relation(fields: [second_favorite_album_id], references: [id], name: "FK_fav_album2")
}

Problem 3: Self Relations
This is a special version of problem 1.

Internal writeup: https://www.notion.so/prismaio/Validation-of-referential-action-cycles-on-SQL-Server-c6fb884ed8524cf78ed6eb0665abef91


Nick: Watch webgeeks.uk.com

Nick requests the watch of the watch_keyword webgeeks\.uk\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

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

Approved by Jeff Schaller in Charcoal HQ


H2H and sudden disconnects - how to deal with NoPeerConnectionException?

I have a question regarding the correct or intended usage of the H2H API.
What do I do if I get disconnected from the network due to a network failure or whatever reason?  I probably get a NoPeerConnectionException after a while.  Then there are several options.
Should I:

call connect(someNewNetworkConfiguration) again on the existing node instance?

What about the session: Do I need to login again?
new event bus is created in this case, which breaks all existing wiring between the bus and objects (may consider this a bug... Probably should be related to the lifetime of the other managers?)

no reuse of all "old" instances, i.e. create a new node instance and do the regular setup? (create/connect/login etc.)?

Thanks for any input!

What about the session: Do I need to login again?

The session should remain ok, when reconnecting, it should work without logging in again. To be sure that the old connection is wiped completely, I added a method IH2HNode#disconnectKeepSession().

new event bus is created in this case, which breaks all existing wiring between the bus and objects (may consider this a bug... Probably should be related to the lifetime of the other managers?)

The event bus indeed is a problem. There are two solutions:

Attach it to a connection (thus it will be destroyed when calling 'disconnect')
Attach it to the node. In this case, we would need to introduce a 'shutdown' method such that the event bus can shut down gracefully. Otherwise it will run forever.

To keep the API simple, we're currently having the event bus connection-specific, thus it will shutdown at disconnection.

I would try to re-connect with the same node instance, since this is also easier for you not to create a new instance every time this exception is thrown. Just consider re-attaching your listener to the event bus.
try {
 ...
} catch(NoPeerConnectionException e) {
 node.disconnectKeepSession(); // disconnect properly while keeping the session
 node.connect();
 node.getEventBus().subscribe(...)
}


Build Failed with status: 65

Hi team,
great plugin by the way.
I downloaded the last version of the plugin and installed it, but it seems I have the same error than the previous issue closed.
Here's the log :

The following build commands failed:
	Ld build/Debug-iphonesimulator/InjectionBundle.bundle/InjectionBundle normal x86_64
(1 failure)

*** Build Failed with status: 65. You may need to open and edit the bundle project to resolve issues with either header include paths or Frameworks the bundle links against. ***

 at /Users/neospirit/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/common.pm line 55.
	main::error('Build Failed with status: 65. You may need to open and edit t...') called at /Users/neospirit/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin/Contents/Resources/injectSource.pl line 445
*** Bundle build failed ***

```javascript

I didn't see any framework or header with spaces in my project as noted in the error message.

Can you help please ?

Thanks
neospirit

Looks like a slightly different problem. I’d need to see more of the log to know what is is though. Can you paste it all here or email it to me?

I prefer to email it to you.
Can you give me your email please ?
Thanks
neospirit

Le 23 sept. 2015 à 19:26, John Holdsworth<EMAIL_ADDRESS>a écrit :
Looks like a slightly different problem. I’d need to see more of the log to know what is is though. Can you paste it all here or email it to me?
—
Reply to this email directly or view it on GitHub https://github.com/johnno1962/injectionforxcode/issues/58#issuecomment-142671490.

support at injectionforxcode.com

I think it's The same as #57 .


Removing a weird XFCE partition on Chromebook (installed with crouton)???

my Chromebook had an XFCE partition installed in it using crouton, and whenever I open it up using the CTRL ALT Forward command, it goes to the developer console! I just want to remove the partition now, bur after power washing, switching developer mode on and off, multiple usb recoveries, and yet every time I turn developer mode back on and use the ctrl Alt Forward command its still there. What commands in crosh can I use to remove it? Or any other solution.

The console you saw is the console for Chromium OS. It will show up when dev mode is enabled. So if you don't want to see it, just turn off the dev mode.
You should use CTRL+SHIFT+ALT+Forward to switch to the desktop installed by crouton.
-Tony
On Thu, May 28, 2015 at 8:14 PM, TheFlyingPig13<EMAIL_ADDRESS>wrote:

my Chromebook had an XFCE partition installed in it using crouton, and whenever I open it up using the CTRL ALT Forward command, it goes to the developer console! I just want to remove the partition now, bur after power washing, switching developer mode on and off, multiple usb recoveries, and yet every time I turn developer mode back on and use the ctrl Alt Forward command its still there. What commands in crosh can I use to remove it? Or any other solution.
Reply to this email directly or view it on GitHub:
https://github.com/dnschneid/crouton/issues/1800

Thanks, that helps a lot. But I'm just done with Linux partitions now so how can I remove it?

You can remove your chroot if you are sure that you don't want it anymore.


Feature Request - Show Remaining Traffic

Hello Nick,
is it possible to add the Information in "-v" how many Traffic are remaining to complete the running transfer?
Thanks for your work...
Massaguana

To do this properly it requires traversing the data twice, so it would need another flag I think.
The stats that are printed every minute show how much time each individual file is expected to take.

@ncw What do you mean by "flag"? Is is a programming/networking terminology?

"-v" is an flag or "-vv" also...

@Massaguana  Oh! I thought that first but realized to be low-level protocol stuff! Thanks and sorry for being so dumb :D

an another flag are also nice... or something like an "simulation mode" to see what happens bevor real data are in traffic


proposal: x/net/http2 and net/http: add support for SETTINGS_ENABLE_CONNECT_PROTOCOL

Overview
I propose extending the x/net/http2 and net/http packages to support the extended CONNECT protocol described in RFC 8441. Support for this will be always-on in the http server, and the http client will automatically detect the presence of support based on the settings flag and adjust the checks it applies to outgoing requests to allow the for the extended CONNECT protocol. http.Request will be extended with a new Protocol member to allow users to set the :protocol psudoheader.
Public Interface Changes
http.Request will gain a new member, Protocol of type string.
All other functionality can be achieved with existing interfaces.
Implementation
An example implementation of SETTINGS_ENABLE_CONNECT_PROTOCOL support for both the client and the server can be found on gerrit. This is just meant to be a proof of concept, not a fully production ready implementation. Rather than using a field on http.Request it uses a magic header called HACK-HTTP2-Protocol, but the intention is that this would be switched out for req.Protocol for real code.
The implementation is pretty non-invasive. It consists of extending the code to allow the use of a new :protocol psudo header, sending the new settings flag during the initial handshake, and loosening some checks when the extended CONNECT protocol is in use.
Probably the most complex thing about the implementation I was able to come up with is the fact that a CONNECT request coming from the client can now trigger a ping HTTP/2 frame if the server has not yet sent headers. This is required for an extended CONNECT to work if is the very first request on a given http2.Transport object.
Related Issues
#49918 contains some discussion about some of my initial implementation work and links to further context.

CC @neild @bradfitz

How do we handle a request sent on an HTTP/1 connection with a Protocol field set? Return an error? Set Upgrade: $PROTOCOL and Connection: upgrade?
An alternative to adding a new field might be to set a :protocol key in the Request.Header map.

How do we handle a request sent on an HTTP/1 connection with a Protocol field set? Return an error? Set Upgrade: $PROTOCOL and Connection: upgrade?

My inclination is to return an error since my understanding of go's philosophy is that it is a one-way-to-do-things language and you can already set the Upgrade and Connection headers in the Request.Header map. I can definitely sympathize with the alternative view that it is less surprising for Protocol = "websocket" to work regardless of the underlying transport though so I'd be happy to do it either way.

An alternative to adding a new field might be to set a :protocol key in the Request.Header map.

I like this approach because it feels a little weird for Protocol to be a top level field on such a common type when it will be so rarely used. I think I actually tried this when implementing support but ran into an error. I decided to propose a new field because psudoheaders are not really supposed to be set by the user, but I'm not so sure how good a justification this is. On reflection, maybe allowing people to set ":protocol" in the headers map by relaxing some checks that forbid user defined psudoheaders is the best way to go since it doesn't shove the feature in users face quite so much. If you're happy with that approach, I would be as well (really I don't have particularly strong feelings in any direction so I'm happy to do whatever, but this design seems good).

An argument for a Protocol field might be if allows websockets implementations to be agnostic of HTTP/1 or HTTP/2 with net/http handling translation between the Protocol field and the underlying request (pseudo-)headers. I don't know if that's feasible.

The websocket handshake for HTTP/1.1 and HTTP/2 are sufficiently different that attempting this is probably not a good idea. There is a bunch of Sec-* header stuff in HTTP/1.1 that isn't needed in HTTP/2 because psudoheaders are not user-settable from within a browser. The HTTP/2 handshake doesn't need to muck about with nonces for example. Since they are different enough any websocket library will need to explicitly support both protocols unless we move most of the handshake logic into the http and http2 packages themselves, which doesn't seem ideal.

We do have existing cases where you can set either a field in the Request or a header (e.g., Content-Length), so doing that for Upgrade and Connection wouldn't necessarily be horrible.

Gotcha, that is good context and weakens my one-way-to-do-things argument.
I think I'm still a little inclined towards allowing a :protocol header, but not that strongly.

I'd rather put :protocol in Request.Header (akin to http.TrailerPrefix) over adding a new Request.Protocol string field.

Proposal SGTM with a :protocol pseudo-header in Request.Header.

Should I clean up the gerrit patch to use a :protocol pseudo-header in Request.Header and request another review, or is there another step required for the proposal to be accepted?

We need this!!

Just wanted to ping on this. This is something that I'm super interested in.

Also wanted to ping this one. Very relevant for us.

Hi @bradfitz @neild @ethanpailes
What about store the :protocol into the req.Proto field? The current value is HTTP{1.x,2.0,3.0}. However, it does not store any new information, because the version of HTTP protocol has been stored in the req.ProtoMajor and req.ProtoMinor.
The quick-go project currently using the req.Proto to store the :protocol pseudo header.
https://github.com/quic-go/quic-go/blob/a968e254a17fcd48743e54ea536fabd4f30c64d1/http3/headers.go#L131-L159

any update?

This is waiting on proposal acceptance. I'll ping the proposal committee to add this to the set under consideration.
The proposal, as I understand it:

The HTTP/2 CONNECT method is used to convert a connection into a tunnel to a remote host. It takes an :authority header indicting which host to connect to.
Extended CONNECT is an HTTP/2 extension (RFC 8441). When enabled, the the CONNECT can alternatively take a :protocol psuedo-header, indicating an intent to convert the connection to some other protocol. When :protocol is present, :authority is optional. Extended CONNECT is used to initiate HTTP/2 WebSocket connections.
This proposal adds support for extended CONNECT to net/http.
For servers, the proposal is to advertise extended CONNECT support. When a client makes an extended CONNECT request, the value of the :protocol pseudo-header will be placed in the Request.Header map under the :protocol key.
For clients, RoundTrip will support setting a :protocol key in the Request.Header map. When making an HTTP/2 request with this key, the Transport will verify that the server supports extended CONNECT (waiting for the server's SETTINGS frame if necessary) before sending the request. If the server does not support extended CONNECT, it will return an error.

Is that all correct?
If so, I support this proposal, with one caveat that I think can be worked out while this works through proposal committee.
A reason extended CONNECT needs to be negotiated is that it changes the meaning of the :authority pseudo-header in CONNECT requests. A request which contains both :protocol and :authority headers is not necessarily requesting a tunnel to be opened to the :authority address, and a server which naively ignores the :protocol header might mishandle such a request, treating it as a non-extended CONNECT.
This applies to existing http handlers which process CONNECT requests: A handler which is unaware of the :protocol header will mishandle extended CONNECT requests that contain one.
Does extended CONNECT for http.Servers need to be opt-in?

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

Does extended CONNECT for http.Servers need to be opt-in?

I don't think it has to be opt-in but it probably needs a GODEBUG to provide a fallback when hitting endpoints or middleware that is buggy when extended CONNECTs are involved. http2xconnect=0 or something like that.

Have all remaining concerns about this proposal been addressed?
Proposal details are in https://github.com/golang/go/issues/53208#issuecomment-1981461316, plus we would need to add a GODEBUG.

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group
Proposal details are in https://github.com/golang/go/issues/53208#issuecomment-1981461316, plus we would need to add a GODEBUG.

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group
Proposal details are in https://github.com/golang/go/issues/53208#issuecomment-1981461316, plus we would need to add a GODEBUG.

The patches I wrote are still in a proof-of-concept state right now. If this proposal is formally approved should I pick them back up and try to polish them, or will you want to do that final phase yourselves?

Sorry, I missed this question when you made it.
I don't anticipate having the time to work on this myself in the near future, but I'd be happy to review your changes if you'd like to pick them up again.

I made http2 servers advertise ENABLE_CONNECT_PROTOCOL in this patch. I'll finish client side support in a later patch.


Add structured rejection reasons to the ApplicationChoicesExport

Context
Recently, we've given providers the opportunity to provide their rejection feedback in a structured way. This PR adds a structured rejection reasons column to the ApplicationChoicesExport.
I discussed the granularity of details Mike wanted for this column with him and he would like the high level reasons (qualifications, candidate behaviour etc.). Later on, we will create a more detailed reasons for rejections export.
Changes proposed in this pull request

Select the high-level rejection reasons
Put these rejection reasons into a new structured_rejection_reasons column

This is what the new column looks like.

Guidance to review
I was interested to see how performant this was. I created 500 choices with structured rejection reasons. It took 2 seconds with and without the new column.
Link to Trello card
https://trello.com/c/x8aB4hnp/2949-update-applicationchoicesexport-to-include-structured-rejection-reasons
Things to check

[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] New environment variables have been added to the Azure config

Agreed on everything. I'm going to merge this in because Mike needs it for research soon, but we should sort this 👍


feat(header & side-menu): webcomponent

Preview
Header:

[ ] Clean CSS
[x] Add styling to scroll
[ ] Refine stories
[ ] A11y

Side menu:

[ ] Clean CSS
[x] Add styling to scroll
[ ] Refine stories
[ ] A11y

What do you think about this instead?
I just think it's more clear, and this way you also won't have to put slot="child" on all dropdown menu items.
<sdds-header-dropdown>

    Dropdown
    <sdds-icon class="dropdown" name="chevron_down" size="16px"></sdds-icon>

    <sdds-header-link>Link</sdds-header-link>
    <sdds-header-button active>Button</sdds-header-button>
    <sdds-header-user
      img="https://www.svgrepo.com/show/170303/avatar.svg"
      alt="Alt"
      header="Header"
      subheader="Subeader"
  	></sdds-header-user>

</sdds-header-dropdown>

Closing this one since we are going with a different version.


Disable minor ticks depending on zoom

I have a SignalConst plot with a sampleRate of 1 and I use MinimumTickSpacing = 1 on the X-Axis. For my application it would be useful, if I could disable minor ticks depending on the current zoom level. If I zoom in very closely to see my samples sequentially with an increment of one in between, values in between are not really meaningful nor helpful.
I saw that that I can disable the minor-grid by XAxis.MinorGrid(false). Is there a nice way to implement this dynamically depending on zoom level?

I saw that that I can disable the minor-grid by XAxis.MinorGrid(false). Is there a nice way to implement this dynamically depending on zoom level?

Hi @PhilippPaetzold,
There isn't a built-in way to achieve this in the existing code, but it should be pretty easy for a user to implement in on their end. Assuming they're using one of the user controls they could add something to the AxesChanged event handler that's called every time the axes change (panning/zooming). An example of this is on FAQ page https://scottplot.net/faq/shared-axes
That event could call a method which determines how zoomed-in the plot is (calling Plot.GetAxisLimits()) and use logic to determine whether to show/hide the minor ticks using something like formsPlot1.Plot.XAxis.Ticks(false);
Hope it helps! Sorry about the delay... here's my copy/paste blurb about that: Sorry for the delay! It took me an unexpectedly long time to get to this because I moved houses and it was a lot more disruptive than I predicted, then right after I got sick for several weeks. I'm doing better now and am happy to be picking this up again. Thanks for your patience along the way!

Oops, Plot.XAxis.Ticks(false) will disable MAJOR ticks but your goal is to manipulate visibility of minor ticks.
It may be a bit cumbersome, but you could pull the list of ticks using formsPlot1.Plot.XAxis.GetTicks() and set visibility individually depending on if ticks are minor or not. It's not elegant, but it would work! The rest of the comment above should work too.
Hope it helps!
Scott

Actually, I see Plot.XAxis.Ticks(major: true, minor: false) already allows independent control of major vs. minor tick visibility, so this would be the preferred way to achieve the behavior you're looking for 👍

Thank you for your answer and for your hard work. ScottPlot is a great library especially when dealing with lots of points.

Actually, I see Plot.XAxis.Ticks(major: true, minor: false) already allows independent control of major vs. minor tick visibility, so this would be the preferred way to achieve the behavior you're looking for 👍

this is exactly what I was looking for, this is definitely one of the best OSS libraries i've ever used.  I might look to see if there's any "good first tasks" for v5 that I could help contribute to.

this is exactly what I was looking for

Awesome!

this is definitely one of the best OSS libraries i've ever used

Great to hear! 🚀 🚀 🚀

I might look to see if there's any "good first tasks" for v5 that I could help contribute to.

Pro tip, look for closed "good first issues" because some may have been closed because they're not high priority, but are tagged "re-open me" and are still up for grabs!
https://github.com/ScottPlot/ScottPlot/issues?q=label%3A"Good+First+Issue"
Also https://github.com/ScottPlot/ScottPlot/blob/main/CONTRIBUTING.md may be useful 👍


Manifest error in project

Hi there!
Upon loading the project, the following error is thrown when building:
Unable to find manifest signing certificate in the certificate store.

The project SignManifests value should be false in the public project unless you're happy to bundle the private.pfx with the project.
Kind regards, Dan

Agreed:  In general, I feel it is a really good practice to have every code base build-ready by potential-new-contributors the moment they pull down the source.  Additional errors/barriers/preparation cut off potential interest/contributors before they even dive in for a look.  The code committed state of SignManifests should be false.  It should be the role of the release process to enable and perform signing (whether or not that process is automated).

Correct, but I don't know the release process of this project, so pardon my previous comment.


Use an image sprite to reduce download size

Having one web request per icon is lame if you have a large number to download, should use an image sprite instead.

Howdy sir! Brent here - been digging around trying to find a good contact email for you. Can you email me at<EMAIL_ADDRESS>I'd like to say thanks for developing this awesome thing.

@BrentOzar Just pinged you an email


internal/graphics: Race condition at the vertices backend and copying at internal/graphicscommand

Git bisect said c8b98f13fb06eee62d6eba2c37d891f86726e40d was the culprit.
CC @wasedaigo

(v *verticesBackend) slice was not concurrent safe. This should not be an issue in v2.0.0 or v1.x since this function was used only on browsers where there is one thread.

OK this is not an easy issue:

graphics.QuadVertex is called from the screen rendering (last=true)
At the same time, graphics.QuadVertex is accessed from a goroutine in parallel
The vertices backend is reset (head is set to 0) even though the vertices is not copied at the graphicscommand package.

Then the vertices data is overwritten and broken.

Found there is a potential race condition even with the restorable package.
I think it is inevitable to use a simple allocation instead of using the backend, even on browsers...

Reverting 9cb631e30f3cf7471d53ed9aa76afb42846b0918 should have the same effect.

I'll backport this change. In v2.0 and v1.12, this issue was only on browsers. Also I'll (re)add mutex to vertexBackend.slice since there is no guarantee about context change in Wasm.


The deployment script of 2.7.206 doesn't work

Describe the bug
The deployment script for 2.7.206 doesn't work when following the insutrctions.
To Reproduce
Steps to reproduce the behavior:
1.run ./deploy.sh -version 2.7.206
Expected behavior
The installation follows the steps
Screenshots
root@IoTEdge:/home/AzureUser/dev/Industrial-IoT# ./deploy.sh -version 2.7.206
Using '2.7.206' version...
Exception: /home/AzureUser/dev/Industrial-IoT/deploy/scripts/deploy.ps1:246
Line |
246 |  …             throw "This script requires git to be installed and mus …
|                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment documentation at https://github.com/Azure/Industrial-IoT to learn about other deployment options.
root@IoTEdge:/home/AzureUser/dev/Industrial-IoT#
Desktop (please complete the following information):

OS: Ubuntu Linux

Additional context
The deployment script is expected to work.

Hi @mitkix, did you download the release.zip or run the deploy.sh file from a cloned git repo?   We only support the latter right now, but are working on the former.   If the latter is what you are using, I will mark this as bug, if not, capture it as part of upcoming release.

Hi @mitkix, did you download the release.zip or run the deploy.sh file from a cloned git repo?   We only support the latter right now, but are working on the former.   If the latter is what you are using, I will mark this as bug, if not, capture it as part of upcoming release.

Hi @marcschier I have ran deploy.sh from the cloned repo following the deployment guide steps.
root@IoTEdge:/home/AzureUser/devs# git clone -b 2.7.206 https://github.com/Azure/Industrial-IoT
Cloning into 'Industrial-IoT'...
remote: Enumerating objects: 378, done.
remote: Counting objects: 100% (378/378), done.
remote: Compressing objects: 100% (240/240), done.
remote: Total 46979 (delta 214), reused 238 (delta 117), pack-reused 46601
Receiving objects: 100% (46979/46979), 67.42 MiB | 7.40 MiB/s, done.
Resolving deltas: 100% (31770/31770), done.
Note: switching to 'f16e7015dd681468c86a189f03ad2d2d636cf0cd'.
root@IoTEdge:/home/AzureUser/devs# cd Industrial-IoT/
root@IoTEdge:/home/AzureUser/devs/Industrial-IoT# chmod a+x deploy.sh
root@IoTEdge:/home/AzureUser/devs/Industrial-IoT# ./deploy.sh -version 2.7.206
Using '2.7.206' version...
Exception: /home/AzureUser/devs/Industrial-IoT/deploy/scripts/deploy.ps1:246
Line |
246 |  …             throw "This script requires git to be installed and mus …
|                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment
| documentation at https://github.com/Azure/Industrial-IoT to learn about other deployment options.

Hi @marcschier I have ran deploy.sh from the cloned repo following the deployment guide steps.
root@IoTEdge:/home/AzureUser/devs# git clone -b 2.7.206 https://github.com/Azure/Industrial-IoT
Cloning into 'Industrial-IoT'...
remote: Enumerating objects: 378, done.
remote: Counting objects: 100% (378/378), done.
remote: Compressing objects: 100% (240/240), done.
remote: Total 46979 (delta 214), reused 238 (delta 117), pack-reused 46601
Receiving objects: 100% (46979/46979), 67.42 MiB | 7.40 MiB/s, done.
Resolving deltas: 100% (31770/31770), done.
Note: switching to 'f16e7015dd681468c86a189f03ad2d2d636cf0cd'.
root@IoTEdge:/home/AzureUser/devs# cd Industrial-IoT/
root@IoTEdge:/home/AzureUser/devs/Industrial-IoT# chmod a+x deploy.sh
root@IoTEdge:/home/AzureUser/devs/Industrial-IoT# ./deploy.sh -version 2.7.206
Using '2.7.206' version...
Exception: /home/AzureUser/devs/Industrial-IoT/deploy/scripts/deploy.ps1:246
Line |
246 |  …             throw "This script requires git to be installed and mus …
|                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment
| documentation at https://github.com/Azure/Industrial-IoT to learn about other deployment options.

Hi Team ,
Facing a similar issue as stated above. can you please let us know which should be the latest stable version to be used
we were using 2.7.130 before . however the version doesn't seem to be available now.
Az installed.
AzureAD installed.
Using '2.7.206' version...
This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment documentation at
https://github.com/Azure/Industrial-IoT to learn about other deployment options.

...             throw "This script requires git to be installed and mus ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : OperationStopped: (This script req...oyment options.:String) [], RuntimeException
FullyQualifiedErrorId : This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment docum
entation at https://github.com/Azure/Industrial-IoT to learn about other deployment options.

Hi Team ,
Facing a similar issue as stated above. can you please let us know which should be the latest stable version to be used
we were using 2.7.130 before . however the version doesn't seem to be available now.
Az installed.
AzureAD installed.
Using '2.7.206' version...
This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment documentation at
https://github.com/Azure/Industrial-IoT to learn about other deployment options.

...             throw "This script requires git to be installed and mus ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : OperationStopped: (This script req...oyment options.:String) [], RuntimeException
FullyQualifiedErrorId : This script requires git to be installed and must be run from within a branch of the Industrial IoT repository. See the deployment docum
entation at https://github.com/Azure/Industrial-IoT to learn about other deployment options.

@mitkox, @achu152, please also make sure that you run the script from release/2.7.206 branch. So you would have to run the following command from within the repo before starting the deployment:
git checkout release/2.7.206

@mitkox, @achu152, please also make sure that you run the script from release/2.7.206 branch. So you would have to run the following command from within the repo before starting the deployment:
git checkout release/2.7.206

@karok2m thanks !. It works now

@karok2m thanks !. It works now

@karok2m . The services got deployed as expected . However i received below msg to add the urls manually . can you please let me know where exactly these needs to be configured ? was this part to be executed by the script automatically
###########################################################
Registering reply urls for 92702c71-536b-4968-8c7b-8669f3ab9ec6...
Insufficient privileges to complete the operation.
Registering reply urls failed. Please add the following urls to
the web app '92702c71-536b-4968-8c7b-8669f3ab9ec6' manually:
############################################################

@karok2m . The services got deployed as expected . However i received below msg to add the urls manually . can you please let me know where exactly these needs to be configured ? was this part to be executed by the script automatically
###########################################################
Registering reply urls for 92702c71-536b-4968-8c7b-8669f3ab9ec6...
Insufficient privileges to complete the operation.
Registering reply urls failed. Please add the following urls to
the web app '92702c71-536b-4968-8c7b-8669f3ab9ec6' manually:
############################################################

@mitkox, does selecting the release/2.7.206 branch solve the issue for you as well ? Or are you seeing some other errors ?

@mitkox, does selecting the release/2.7.206 branch solve the issue for you as well ? Or are you seeing some other errors ?

@karok2m yes thank you it works! Please update the deployment guide with the checkout step. I got two more customers failing in the same issue.

@karok2m yes thank you it works! Please update the deployment guide with the checkout step. I got two more customers failing in the same issue.

I've updated the documentation for release/2.7.206 branch to mention cloning the repo using the release branch.

I've updated the documentation for release/2.7.206 branch to mention cloning the repo using the release branch.


Updated the main ReadME file with a small description of the web app …

Closes:https://github.com/ArslanYM/StarterHive/issues/39
Updated the main ReadME file with a small description of the web app and a Link that leads to the web app directory.
Before:

After:

@ArslanYM Thank you so much for your feedback and guidance. I sincerely appreciate it.  From what I can gather StarterHive helps by eliminating the boring task of manually searching through repositories and looking for issues to solve.

@Shoetan yes thats right. Starter Hive helps you find issues in projects or codebases which are run my companies/organisations that hire people remotely.

@ArslanYM Thank you once again for your patience and guidance. I have just made the changes you requested to close this issue.

This PR has conflicts with the main branch, maybe because you didnt pull the updated changes. Sorry to say but this PR is closeworthy. Thankyou for your contribution


index.html references non-existent reveal.js/css/theme/default.css

I guess this is a left-over from an earlier version of reveal.js?

Hmm, actually it looks like we're supposed to pick css/theme/white.css if we want a bland theme.

Nope - if we do that, all your font sizes get messed up.  So you are actually currently relying on css/theme/default.css being a 404 ;-)


Flattening parameters

Hi,
Great package! I like the syntax.
Is there an easy way to pack and unpack parameters for a flax.nn.Module? I saw this in the optimizer code:
    new_params = jax.tree_unflatten(treedef, new_params_flat)
    new_param_states = jax.tree_unflatten(treedef, new_states_flat)

as well as this:
  def init_state(self, params):
    sub_states = []
    for traversal, opt in zip(self.traversals, self.sub_optimizers):
      params_t = list(traversal.iterate(params))
      state = opt.init_state(params_t)
      sub_states.append(state)

but was wondering if there was a simpler way to convert the parameters to a single array (which I can still compute gradients on)? I'm interested in doing some operations on the parameters as a single vector as part of the loss function.
Thanks,
Miles

Hi @MilesCranmer, sorry for the delay -- we're ramping up for a more official open source release now so going through all of the open issues again.
Can you clarify the question? Indeed https://jax.readthedocs.io/en/latest/jax.tree_util.html#jax.tree_util.tree_flatten an the rest of jax.tree_util are the way to flatten parameters into a flat array (though it's still an array of jax.numpy.arrays, not a single flattened value -- this is important to keep the runtime performance of XLA/JAX).
Then you should be able to compute gradients with jax.grad yourself, e.g. the following code snippet (assuming loss_fn is already defined):
treedef = jax.tree_util.tree_structure(model.params)
def loss_fn_flat(flat_params):
  unflat_params = jax.tree_util.tree_unflatten(treedef, flat_params)
  return loss_fn(unflat_params)

flat_params = jax.tree_util.tree_leaves(model.params)
jax.grad(loss_fn_flat)(flat_params)

If what you want is to /fully/ flatten parameters into a single array of scalars, you'll have to do a bit more work but more importantly JAX will no longer be able to store parameters directly on device, so training will be much slower.

Closing this since the question seems to have been answered by Avital 21 days ago. Miles, if think are still unclear for you, please feel free to re-open this issue!

If what you want is to /fully/ flatten parameters into a single array of scalars, you'll have to do a bit more work but more importantly JAX will no longer be able to store parameters directly on device, so training will be much slower.

Hi @avital, is this still the case? And could you please explain what you mean by "Jax will no longer be able to store parameters directly on device" ? Thank you :)

Hey @ddrous, stacking all parameters into a single flat array will probably lead to OOM in practice (for big enough models) as you are both duplicating memory the amount of memory needed and requiring that a large amount of memory exists contiguously.

Thanks for such an elegant answer @cgarciae. I'm doing sensitivity analysis and I need all my weights completely flattened. I don't suppose there's a better way to do this while avoiding (some of) the issues you outlined ?

Maybe for a single sample this is not a problem. Are you having issues?

No issues yet. But I'm afraid it's going to become intractable when I scale it to deeper neural networks and large dataset.