Pass --all-targets to cargo watch

A trivial change, but passes the --all-targets flag to cargo watch. This enables inline diagnostics for the example, bin and test targets. Previously, modifying an example would trigger a change notification for cargo watch, but cargo check does not actually check these unless either --all-targets or --examples is specified.

sgtm, thanks!
bors r+


get segment from TimeItem

Hello,
I've tried parsing my file
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1582061
#EXTINF:10, no desc
#EXT-X-PROGRAM-DATE-TIME:2016-01-01T18:22:09Z
20160321T150304_2_5560256_1582061.ts
#EXTINF:10, no desc
#EXT-X-PROGRAM-DATE-TIME:2016-01-01T18:22:19Z
20160321T150304_2_5560256_1582062.ts

I get a list of TimeItem which makes sens, but how can I get the filename (.ts) ? Does this lib support this format?
thanks

Hi, thanks for reporting this. It doesn't currently support this but it needs to. I'll dig into it as soon as I get a chance to.

Hi,
I'm considering fixing this right now, however I don't know much about this format atm. What do you think is best?

add 'segment' to 'TimeItem' or
add 'timestamp' to SegmentItem'

done in #16

Thanks again!


well known not encode as expected

For example
given proto def
rpc Version(google.protobuf.Empty) returns(google.protobuf.Struct);

with server response impl
	resp := &structpb.Struct{
		Fields: map[string]*structpb.Value{
			"proto_version": {Kind: &structpb.Value_StringValue{
				StringValue:  "aabbcc",
			}},
		},
	}

which expect:
{"proto_version":"aabbcc"}

but got:
{"fields":{"proto_version":{"string_value":"aabbcc"}}}

Hi @elvizlai , sorry for being late reply.
I'm guessing we may not consider google's ptype so we need more improvement for that.
we'll investigate and may support, but I really appreciate it if you could do that and give a PR.

Hi @elvizlai , sorry for being late reply.
I'm guessing we may not consider google's ptype so we need more improvement for that.
we'll investigate and may support, but I really appreciate it if you could do that and give a PR.


Weird Weaver Errors

Describe the bug
A single code line like this:
[TargetRpc] void TargetTest(NetworkConnectionToClient conn, string foo) { }
produces this flood of errors in Unity:

I know it should be NetworkConnection...the point of this ticket is how the errors come out in Unity.
Desktop (please complete the following information):

OS: Windows
Build target: standalone
Unity version: 2020 LTS
Mirror branch: master

HasNetworkConnectionParameter returns false for NetworkConnectionToClient:


taco locations

We're thinking through where we are running taco, what workflows it submits, and where those workflows run.
Starting with the documentation's first page, installation, we give instructions for installing snakemake and singularity on the same node that will run taco. This seems to limit us to a single-node model. What if we are submitting jobs to clusters?
We have to think about taco as just a thin wrapper around snakemake, so whatever model we're currently using for snakemake, we use for taco. The answer to the question "where does taco run?" is the same as the answer to the question "where does snakemake run?"
Therefore we want to use the following abstraction:

taco runs on a "master node" that may or may not run the actual compute tasks
the master node runs the snakemake workflow
utilize the power of snakemake workflows to specify where the workflows run; don't reinvent the wheel by doing this with taco too
we want to be able to run workflows locally or remotely - either way
target custer platform: AWS, with some possibility of extending to HPC
dahak-bespin may help here: can set up a ready-to-go cloud cluster + VPC, and then snakemake will have those nodes available to it to farm out its tasks

We also have to think about #8 (using a cloud/URL model for getting the taco rules/workflow instructions) - which is intended to remove the need for the user to have a local copy of the workflow they want to run.

Proposal for work moving forward:

In the documentation, we should separate ((the installation of taco)) from ((the installation of things needed to run the workflows that taco wraps)) - think about taco as a tool that is assumed to run separately from the compute node

We need to develop a cloud URL model for rules - use the taco-simple workflow for that since it does not require any extras and can easily run taco and the compute task on the same node

We need to make taco cluster-capable - the assembly/read filtering workflows are a good test for submitting jobs to clusters using taco

Conceptual point of clarification: taco is not intended to be the end-all, be-all workflow runner tool. It relies heavily on Snakemake's functionality. It is intended to do exactly what dahak-metagenomics/dahak does, which is run workflows with user-provided parameters, but with a cleaner, simpler user interface. (and hopefully simpler snakemake rules on the back end.)

Tying in #6 (overlay model: workflows + metadata) here, since it seems relevant. This is an increase in scope to thinking about making workflows "importable".
This is related to the cloud/URL model for rules, but it would shift the focus away from ((user translates their workflows into rules for taco)) and toward ((taco does all the hard work of importing the already-written workflow))


Set up extension backbone

The extension needs a core service worker that can start a scan by loading a list of plugins and executing them, then return a result.
This is design and setup for the MVP backbone, then we can create new issues for each feature that it needs to implement.

Related to #19

Does Plasmo go brr?

Plasmo did go brr but then it went zzz


Increase asyncio timeout to 30 sec for openai

Fix for
https://github.com/open-webui/open-webui/discussions/6069

This will cause issues with the UI being unresponsive when the server is unreachable. If you have any other fixes feel free to make a PR.

think unreachable server can be solved by an initial /ping or /health check.
for the eager loading of models, maybe can lazy load models, don't know much about the client side though.
I will use older version as I noticed another issue now:
horizontal scroll issue: need to scroll left and right to see the history or chat details


Add "Free Node" API support for the graph_viz visulalization.

Right now, tn.to_graphviz only supports the TensorNetwork object, which has been deprecated. It should support passing in an iterable collection of nodes.

I would like to fix this.

Great! Go for it.
Should be pretty straight forward. Ping me on here if you need help

Has anyone run graphviz_test.py? when I ran it gave an error which I think it should.
AttributeError: module 'graphviz' has no attribute 'Graph'
Should I change the file name or there is something that I don't know.

Test runs fine for me. Are you running python3? Also, what version of graphviz are you using? I just tested it with 0.11.1 and it was fine.

I would also support changing the filename if that fixes the issue on your end.

#333 fixed this.


[Endergy] Stellar Conduits internal buffer

Issue Description:
Stellar conduits are largely unusable due to it's internal buffer. I'm not sure if this is a worthwhile "fix" or change (or even possible) due to how the conduits are already implemented. I also don't know if a fix complies with the overall theme of the mod.
What happens:
Conduit attempts to fill it's internal buffer (which never happens). This leads to conduits being more useful as batteries instead of conduits.
What you expected to happen:
Similar behavior to thermal dynamics' Cryo-Stabilized Fluxduct, where it doesn't have an internal buffer but still transfers when needed.
Steps to reproduce:

Hook up a single stellar conduit to any battery in the game.
Watch it eat all your power.

Affected Versions (Do not use "latest"):

EnderIO: 5.0.36
-Endergy: 5.0.36
EnderCore: 0.5.41
Minecraft: 1.12.2
Forge: <IP_ADDRESS>68
SpongeForge? no
Optifine?no
Single Player

i had the problem to but the storage is the max output

This makes the cables really annoying to use, as it starts to eat and sink all of your energy into cables which makes the rest of your connected devices be starved for energy.

More than annoying, it makes them almost impossible to use. I just got done converting my base to them, and then spent the last 2 hours troubleshooting my base to figure out why i had no stored power anywhere. Conduits shouldn't be acting like batteries, especially if we can't see their internal buffer. It makes the whole network impossible to visualize and troubleshoot properly. Please fix these conduits as Ender IO energy conduits are amazing, but this forces me to use fluxducts for high throughput power.

I have no problem in ATM 3: Remix, it would drain buffer into devices that needed power... It would drain my generator's buffers until I maxed it out.

This is Intended Behavior and atm Henry has no plans to change it

This is Intended Behavior and atm Henry has no plans to change it

I assume that it's intended behaviour because the conduit targets machines first, then the buffer. But the problem is when using it with other mods, like mekanisms Quantum Entangloporter, which sets priority based on RF needed.
What happens is when you have two quantum entangloporters, the first one placed will have priority over the second, which makes sense and should work perfectly, were it not for the fact that the first one has to count every single conduit, half a trillion RF in my base, making it nearly impossible to use the quantum entangloporter.
I don't know if you understood what I said so sorry if you didn't, but regardless if this is intended behaviour or not, it's very flawed and it should be at least configurable on the configs.txt in my opinion.

It fills buffer first Then fills machine

It fills buffer first Then fills machine

That's even worse?? So you're telling me that if I want to use a stellar conduit, let's say with a simple setup.
Vibrant Capacitor --> Conduit --> Alloy Smelter
That the conduit will have to fully charge, before charging the machine, so I have to get 2000000RF to even be able to use the machine? The vibrant capacitor doesn't even take that much energy mind you, if that is how it's intended to work, surely you can see the problems with it right?

It fills buffer first Then fills machine

I truthfully don't understand why this is how the energy flow works and is "intended" :\
They're meant to be a conduit (and thus, the transfer of energy) - not a battery - so why do they fill themselves before they fill the destination?
Having the buffer is useful, but it's the prioritization of its internal buffer that's the real issue here IMO. It should prioritize the output devices, not itself. I feel like this doesn't really impact any other conduits currently because their buffers are low, so it doesn't "show" itself as easily.

As the order in which tiles tick is not defined in the game the conduits needs to have a buffer into which a generator can transfer energy. And the conduit itself will transfer energy into all machines.
Let's say a conduit has 1000 FE storage. Then a generator can insert 1000 FE per tick into the conduit to fill the conduit's storage. The conduit itself then can transfer it's 1000 FE into one or more connected machines - emptying it's own storage. This process repeats each tick.
As you can see in this example the conduit storage is what limits the transfer amount - so higher transfer rate => bigger conduit buffer.

As the order in which tiles tick is not defined in the game the conduits needs to have a buffer into which a generator can transfer energy. And the conduit itself will transfer energy into all machines.
Let's say a conduit has 1000 FE storage. Then a generator can insert 1000 FE per tick into the conduit to fill the conduit's storage. The conduit itself then can transfer it's 1000 FE into one or more connected machines - emptying it's own storage. This process repeats each tick.
As you can see in this example the conduit storage is what limits the transfer amount - so higher transfer rate => bigger conduit buffer.

Uhm I did not know that, but if so, then why not do it like the thermal expansion infinite flux duct? Or something similiar? Surely there has to be a way to make it actually usable.


Replace cryptonite with crypton

@ondrap cryptonite has been archived and deprecated in favour of crypton. Would you accept a PR migrating wreq to crypton?
(The deprecation also impacts other packages by the author, like memory, basement, etc.)

@ondrap can I add Github actions CI too?

I'm not sure how this works on github (and to be honest, I never worked with github actions...).. but if you think it would help...

Merged and released a new version.


fix: incorrect coder matching

TS-653

Closes #3161

Release notes
In this release, we:

Fixed coder matching for some namespaced libraries

Summary

Proof of failure, this should be matched to an Enum.

Checklist

[X] All changes are covered by tests (or not applicable)
[X] All changes are documented (or not applicable)
[X] I reviewed the entire PR myself (preferably, on GH UI)
[X] I described all Breaking Changes (or there's none)

When will 94.6 be released?

We've release 0.94.6 above 12 minutes ago :)


Always use host netns

Fixes #1589,#1746.
This PR currently depends on an as yet unmerged change in mesh (weaveworks/mesh#5); that should be merged first and this PR rebased accordingly.

Addressed comments and updated mesh dependency.

I think connect_container_to_bridge can be simplified now that it only gets called for application containers and hence always operates on a proper netns. In particular the interface 'down'ing (and elaborate explanatory comment) should no longer be necessary.

The old multiweave lets one launch additional peers, and also stop just some of the peers, by setting FIRST_WEAVE, e.g.
NUM_WEAVES=10 bin/multiweave launch
FIRST_WEAVE=11 NUM_WEAVES=10 bin/multiweave launch
FIRST_WEAVE=11 NUM_WEAVES=10 bin/multiweave stop

This is no longer possible since a) 'launch' will trip over the multiweave bridge creation, and b) 'stop' will remove the bridge even though there are still weaves connected to it.
Suggested fix:

only create multiweave bridge if it doesn't exist already
remove ip addresses from multiweave when stopping individual weaves, and only delete multweave if there are no more addresses left

The old multiweave lets one launch additional peers, and also stop just some of the peers, by setting FIRST_WEAVE

...and now so does the new multiweave.

For posterity, here is a patch to multiweave that makes it use just distinct ports instead of IPs. This does work but results in some "connection shutting down due to error: cannot connect to ourself" noise.
diff --git a/bin/multiweave b/bin/multiweave
index 40654b4..090776e 100755
--- a/bin/multiweave
+++ b/bin/multiweave
@@ -15,8 +15,6 @@ START=${FIRST_WEAVE:-1}
 COUNT=${NUM_WEAVES:-28}
 FINISH=$((START+COUNT-1))

-SUBNET=192.168.7
-
 weavedir=$(dirname $0)/..

 # Generate a random MAC value - copied from 'weave' script
@@ -30,24 +28,21 @@ random_mac() {
 weave() {
     i=$1
     shift
-    WEAVE_CONTAINER_NAME=weave$i WEAVE_HTTP_ADDR=$SUBNET.$i:6784 $weavedir/weave "$@"
+    WEAVE_CONTAINER_NAME=weave$i WEAVE_HTTP_ADDR=<IP_ADDRESS>:$((6000+i)) WEAVE_PORT=$((5000+i)) $weavedir/weave "$@"
 }

 case "$1" in
     launch)
         shift 1
         echo $(date -R) launching
-        ip link show multiweave >/dev/null 2>&1 || sudo ip link add name multiweave type bridge
         for i in $(seq $START $FINISH); do
-            IP=$SUBNET.$i
-            sudo ip addr add $IP/24 dev multiweave
-            weave $i launch-router --datapath '' --iface '' --no-dns --host $IP \
+            weave $i launch-router --datapath '' --iface '' --no-dns --port $((5000+i)) \
                 --name $(random_mac) --nickname weave$i "$@"
         done
         echo $(date -R) connecting
         [ $START -gt 1 ] || START=2
         for i in $(seq $START $FINISH); do
-            TO=$SUBNET.$((i-1))
+            TO=localhost:$((5000+i-1))
             echo connecting weave$i to $TO
             weave $i connect $TO
         done
@@ -55,12 +50,9 @@ case "$1" in
         ;;
     stop)
         for i in $(seq $FINISH -1 $START); do
-            IP=$SUBNET.$i
             echo Stopping weave$i
             weave $i stop-router
-            sudo ip addr del $IP/24 dev multiweave || true
         done
-        [ -z "$(ip -4 -o addr show multiweave)" ] && sudo ip link del multiweave
         ;;
     *)
             weave "$@"


Add chat settings window

I'd like to start by thanking the developers of this program for creating it, as someone who uses Linux it's very useful and works well.
I've added a new settings window which allows you to configure the chat messages which are automatically sent when a bot joins. There are two reasons I've added this feature:

To have the ability to make the automated chat message a bit more attention-grabbing for the enemy team (something more like TF2 Bot Detector's messages)
To let users localize their automated chat messages into their native language, if they choose to

I apologize for the random formatting changes, they were added automatically by the VSCode Rust extension.

Thanks so much for your contribution! Sorry it took so long to get around to it, but I'm hoping to get this in!


a question

Hello, is this project able to maintain consistency in the portraits and their clothing?

Hi, thanks for your interest, our algorithm does show the ability to maintain fine-grained details for human-related content, please refer to the paper and the inference code for more details.


Add canu runner

I have added a script to run the Canu assembler; I have tested the script by itself, and it seems to be functional.  Notes:

TODO: determine if long reads are raw or corrected
check to ensure the assembler-args get properly passed;  I couldn't tell how assembler_args got passed in the run_abyss script, so I just set assembler-args to @ARGV in run_canu.  Is that ok?
TODO: test configure.pl for downloading/building canu

Brilliant - thanks Nick. I hadn't got as far as thinking about pre-corrected reads but will give it some thought.
Looking back it doesn't look like assembler_args are actually handled by most assemblers so is something that needs to revisited and treated in a consistent way.In run-abyss they are passed as a quoted string which is then just dropped into the abyss command line. I'll raise an issue regarding this since I don't really remember how it handles a user submitting an argument which is already specified in the assemblers default_args.
I wouldn't worry about configure.pl too much since moving to conda should avoid the need for much of this in future. I have a separate pre-1.1 branch which contains the refactoring to move towards a simpler configuration with conda dependancies.


Neo4j streams cdc mechanism pulls the before data also which cause Space issue

Bug Description
Working on Neo4j Streams CDC by following this article https://neo4j.com/labs/kafka/4.0/producer/  but it is  sending all the data to  whatever we didn't configured also.
Expected Behavior (Mandatory)
Neo4j streams has to send the configured node data only to the kafka topic
Actual Behavior (Mandatory)
it is working on the following behaviour:
1)Configured node data goes to correct topic
2)Other nodes data are stored in topic with db name.
Steps to Reproduce the Problem

First create a Neo4j database with apoc only and login to the instance .

in the neo4j db create some sample nodes

create(n:Test1neo4jdb{name:'a'})
create(n:Test1neo4jdb{name:'b'})
create(n:Test1neo4jdb{name:'c'})
create(n:Test1neo4jdb{name:'d'})
create(n:Test1neo4jdb{name:'e'})
create(n:Test1neo4jdb{name:'f'})

create(n:Test2neo4jdb{name:'a'})
create(n:Test2neo4jdb{name:'b'})
create(n:Test2neo4jdb{name:'c'})
create(n:Test2neo4jdb{name:'d'})
create(n:Test2neo4jdb{name:'e'})
create(n:Test2neo4jdb{name:'f'})

create an another instance of neo4j

create database testdb
insert some sample data in that instance also

create(n:Test55testdb{name:'a'})
create(n:Test55testdb{name:'b'})
create(n:Test55testdb{name:'c'})
create(n:Test55testdb{name:'d'})
create(n:Test55testdb{name:'e'})
create(n:Test55testdb{name:'f'})

create(n:Test56testdb{name:'qw'})
create(n:Test56testdb{name:'as'})
create(n:Test56testdb{name:'dd'})
create(n:Test56testdb{name:'ee'})
create(n:Test56testdb{name:'vv'})
create(n:Test56testdb{name:'er'})

Now goto the neo4j.conf file and add the below configurations

streams.source.enabled=true
streams.sink.enabled=false

kafka.zookeeper.connect=localhost:2181
kafka.bootstrap.servers=localhost:9092
kafka.acks=-1
kafka.retries=10000
kafka.num.partitions=1
kafka.batch.size=16384
kafka.buffer.memory=33554432
kafka.reindex.batch.size=1000
kafka.replication=1
kafka.topic.discovery.polling.interval=5000
kafka.request.timeout.ms=172800000
kafka.delivery.timeout.ms=182800000
kafka.reconnect.backoff.ms=3000
kafka.reconnect.backoff.max.ms=172800000

streams.source.topic.nodes.test56.from.testdb=Test56testdb{*}

apoc.import.file.enabled=true
apoc.trigger.enabled=true
streams.procedures.enabled=true
dbms.security.procedures.whitelist=streams.*,apoc.*

In short term i configured to Took Test56testdb node from testdb database and store it in the topic called test56

But in the doccumentation it is showing like it is only works in incremental mode but in my local it will take all node data from testdb and stored it in the topic name of testdb and also it will create a topic called neo4j with all the data from neo4j instance
but whenever i treid to create data on the same configured node name it will works perfectly in that case.
This extra data pulling is the major issue ,we are facing High Space issue .
The above information will help you to reproduce the issue
Currently used versions
Versions

OS: windows 10
Neo4j:  4.2.1
Neo4j-Streams: 4.0.6

@vishnu2497 if you want to prevent the neo4j and any other database except for testdb to send cdc event you have to configure it properly:
streams.source.enabled=false
streams.source.enabled.from.testdb=true

@vishnu2497 if you want to prevent the neo4j and any other database except for testdb to send cdc event you have to configure it properly:
streams.source.enabled=false
streams.source.enabled.from.testdb=true

Closing due to inactivity, feel free to re-open if the issue is not resolved.


Update part-4-using-data.md

fixed link to react router docs

name: :memo: Documentation Fix
about: Fixing a problem in an existing docs page
Checklist

[ ] Is there an existing issue for this PR?

link issue here

[ ] Have the files been linted and formatted?

What docs page needs to be fixed?

Section: PREREQUISITES
Page: https://redux.js.org/tutorials/essentials/part-4-using-data

What is the problem?
link to react router docs is wrong
What changes does this PR make to fix the problem?
fixes the link

We probably shouldn't link to an exact specific version - can you update it to just point to "the latest"?

Thanks!


fix: remove branch filter in runs search when event is of type release

Solves https://github.com/nrwl/nx-set-shas/issues/19
On release workflow runs seem to not have any branch property associated with them, thus the filter on branch creates a bug (no run is found):

Thank you @ThomasAribart for this fix!


rubyPackages.eventmachine: fix darwin build

Description of changes
This fixes the build of mailcatcher (and maybe others).
Fixes:
em.cpp:1232:40: error: invalid operands to binary expression ('__bind<int &, sockaddr *&, int &>' and 'int')
                if (bind (sd, bind_to, bind_to_size) < 0) {
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~

Where bind is treated as std::bind rather than ::bind in newer C++ standards.
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

@ofborg build mailcatcher


Changes of marker model leads to duplicated markers on map

Suppose we have 2 markers. If we will change label of first marker, then directive markers will duplicate second marker on map.
Problem inside function _destroy in markers.js. It doesn't clear argument markerModels from old markers and then _create calls _addMarkers with existent markers. Or _addMarkers should prevent duplicates.

This is already know and planned to be fixed. see #766 . I believe this is the same exact problem.

You're correct _addMarkers is the issue and I documented it in #766 the fix is simple .. copy the logic from _destroy


Error: object 'wrapperOncoprintify' not found

Hello, following the vignette and it seems that the Oncoprintify wrapper is not found? I am using curatedPCaData_1.0.0

taylor_oncoprint_1 <- curatedPCaData:::wrapperOncoprintify(mae_taylor, genes = genes)
Error: object 'wrapperOncoprintify' not found

Thanks!

Hi @jjacobi3 ,
thanks for reporting this - our vignette shouldn't be using curatedPCaData:::wrapperOncoprintify because ::: would indicate that  it's an internal function for the package (and shouldn't even be exposed to the user). If I remember right, this function was also removed during the Bioconductor review process from the package (as to focus on the data and its handling, rather than delve into analyses), but I can't recall right now exactly when. It shouldn't be part of the (Bioconductor) v1.0.0 though. The version v1.0.0 in Bioconductor does not have this function, nor does the vignette at the moment.
Could you perhaps clarify where did you download/compile the v1.0.0 that you're referring to?
I'd start off with re-installing using Bioconductor's curatedPCaData v1.0.0 release branch build with:
if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("curatedPCaData")

The devel branch in Bioconductor has v1.1.1.
However, GitHub already has curatedPCaData v1.1.1, which would install with:
devtools::install_github("Syksy/curatedPCaData")
Could you please try reinstall with these, and/or help me reproduce your error with that function with description of which v1.0.0 you're referring to and where is it from? I did fresh installs from both Bioconductor and GitHub, and the package installs fine, and the vignette(s) don't have this function incorporated, so I can't right now reproduce your issue.

Thanks so much for the quick response!
I had originally installed from bioconductor about a month ago. I just installed the devtools version fine (1.1.1).
I should have clarified in the previous post that I was working off the vignette from curatedPCaWorkflow on github:
https://github.com/Syksy/curatedPCaWorkflow/tree/main/vignettes/analyses.Rmd
That is probably the source of the error because the 'overview' vignette works great. So, is the workflow package not available anymore?
Thanks!
-Justine

Hi Justine,
ah, yes that makes sense, thanks for the clarification.
Indeed, there are two packages:

curatedPCaData, of type ExperimentData, a Bioconductor-compatible package focused on providing the data.
curatedPCaWorkflow, a package separated from original curatedPCaData during the Bioconductor peer-review with the package type Workflow. You have been following the latter's vignette.

Specifically, this separation was requested as in two major revision pointers when we first submitted curatedPCaData to Bioconductor:
Please separate the analysis functionality from the infrastructure. The package should only deliver the data to the user and demonstrate how to obtain the data from ExperimentHub.
and
The demos in the vignettes should show the user how to obtain the data, it does not necessarily need to show the user how to analyze it. The latter would be more appropriate in a separate workflow package.
in https://github.com/Bioconductor/Contributions/issues/3047#issuecomment-1591516244
We originally had 5+ vignettes, but the request was to pinpoint focus on data retrieval and its processing, rather than go, say, to oncoprint level (even though it's a visualization, one could argue it's very much an analysis as different genes' alteration percentages and somatic mutations are visualized, usually stratified by sample or patient subsets).
Thus, quite a large effort was put into separating curatedPCaWorkflow from curatedPCaData. The latter is the package you're currently working with, although it calls the data from curatedPCaData.
As there were two rounds of reviews, multiple other changes were requested on the way as well - including the request to change from our oncoprint function into a more generalized one, instead use e.g. TCGAutils::oncoPrintTCGA or oncoprints made available from ComplexHeatmap's function oncoprint. The advantage in not having our own function is that everythng shown in the analyses is more generalizable as we don't re-invent the wheel. I'd advise for the time being to look into these functions, and apply them to data provided in curatedPCaDatA
That being said, I apologize for the confusion regarding curatedPCaWorkflow. It is a separate package, and to be honest, I haven't just had the time to return back to fixing it, as it amounts to a huge quantity of work as the package(s) have been fundamentally altered. Therefore it is not advisable to follow vignettes currently provided in that package, as you noticed.
This is an appropriate notification of a vignette not working correctly, but would be more appropriate if it was attributed to curatedPCaWorkflow rather than curatedPCaData.
Unfortunately my colleague who wrote that original oncoprintify function has moved to other projects, so it will take me a while to get to fixing this. I'd be glad to help with whatever you're working on with curatedPCaData, but I can't give a promised deadline on the legacy vignettes at curatedPCaWorkflow would be fully up to date again. Feel to pop me a message at<EMAIL_ADDRESS>if there's some specific task you're looking to do with the data.
If it is alright for you, I'd now close this issue, and open an analogous one in curatedPCaWorkflow regarding the state of the vignettes.
Thanks!
Daniel

All sounds good- thanks for the response! Closing the issue.


Option to disable step discovering

To disable the new step discovering mechanism, simply create an empty file named StepInject.disable and don't remember to copy it to the output directory.

Released in 3.0.0


chore(host): remove Netlify

Pull Request Test Coverage Report for Build 1684

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 63.793%

Totals

Change from base Build 1683:
0.0%

Covered Lines:
101

Relevant Lines:
152

💛  - Coveralls


Database storage for Git Repositories

Hi,
I'm a happy user of Bonobo Git Server and I appreciate all the work that all of you are doing.
I have a suggestion for a feature. Since there is already a database for user management it would be great to also have the repositories themselves in the database (for me it would be great if that database was MS SQL) it would improve backup and restore for the server and of course all those small files wouldn't take full disk sectors.
Kind regards,
Artur

I'm not sure this would work. That's not really how git works. Git is always a file based.

Unfortunately, this is not possible (or not a good trade off as git is file based database).


Raygui objects not deleting using control variables / Unable to have proper screen management

Hello! I'm trying to make the screen change when I press a button. I was able to do this using raylib before. However, I recently converted my primitive buttons to raygui buttons. And now, when I press the button, the raygui objects do not disappear when the screen is changed. Currently, I have an enum that determines when the buttons are drawn. But for some reason, they are drawn anyways. I would greatly appreciate any help on this! Thank you!
Here is my code:
#include <iostream>
#include <raylib.h>
#define RAYGUI_IMPLEMENTATION
#include <raygui.h>
#include <style_dark.h>

using namespace std;

typedef enum Screen { TITLE = 0, HWC, VLOG, EXIT } Screen;
typedef enum HWCState {PreUpload, PostUpload} HWCState;

Screen currScreen = TITLE;

const int screenWidth = 800;
const int screenHeight = 600;

HWCState hwcState = PreUpload;

void DrawTitleScreen()
{
    int titleFont = 64;
    int textLen = MeasureText("LUMBERJACK", titleFont);
    GuiSetStyle(DEFAULT, TEXT_SIZE, titleFont * 1.5f);
    GuiLabel(Rectangle{ ((screenWidth / 2) - (textLen / 2)) * 1.0f, (screenHeight / 4) * 1.0f , textLen * 1.0f, titleFont * 1.0f }, "LUMBERJACK");
    GuiSetStyle(DEFAULT, TEXT_SIZE, titleFont/2);
    GuiLabel(Rectangle{ ((screenWidth / 2) - (textLen / 2)) * 1.0f, ((screenHeight / 4) + titleFont) * 1.0f , textLen * 1.0f, titleFont * 1.0f }, "Log Analyzer");

    int Yoffset = 10;
    if (GuiButton(Rectangle{ ((screenWidth / 2) - (textLen / 2))*1.0f, ((screenHeight / 3) + titleFont + Yoffset)*1.0f, textLen*1.0f, titleFont*1.0f }, "HWC Log")) currScreen = HWC;
    if (GuiButton(Rectangle{ ((screenWidth / 2) - (textLen / 2)) * 1.0f, ((screenHeight / 3) + (2 * (titleFont + Yoffset))) * 1.0f, textLen * 1.0f, titleFont * 1.0f }, "VLog")) currScreen = VLOG;
    if (GuiButton(Rectangle{ ((screenWidth / 2) - (textLen / 2)) * 1.0f, ((screenHeight / 3) + (3 * (titleFont + Yoffset))) * 1.0f, textLen * 1.0f, titleFont * 1.0f }, "EXIT")) currScreen = EXIT;
}

void DrawHWCLogScreen()
{
    int titleFont = 64;
    int textLen = MeasureText("HWC Log", titleFont);
    DrawText("HWC Log", screenWidth / 80, screenHeight / 80, titleFont, RED);

    switch (hwcState)
    {
        case PreUpload:
        {

        }break;
    }
}

int main()
{

    InitWindow(screenWidth, screenHeight, "LUMBERJACK : Log Analyzer");
    SetTargetFPS(60);

    while (WindowShouldClose() == false)
    {
        BeginDrawing();
        GuiLoadStyleDark();

        switch(currScreen)
        {
            case TITLE:
            {
                DrawTitleScreen();
            }break;
            case HWC:
            {
                DrawHWCLogScreen();
            }break;
            case VLOG:
            {
                int titleFont = 64;
                int textLen = MeasureText("VLOG", titleFont);
                DrawText("VLOG", (screenWidth / 2) - (textLen / 2), screenHeight / 4, titleFont, RED);
            }break;
            case EXIT:
            {
                EndDrawing();
                CloseWindow();
                return 0;
            }
        }

        EndDrawing();
    }

    CloseWindow();
    return 0;
}

I have an issue similar to this, unless I misunderstood OP's problem.
I use Raylib with Odinlang:
main :: proc() {
    ray.InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, TITLE)
    defer ray.CloseWindow()

    ray.ClearBackground(Color.background)

    for !ray.WindowShouldClose() {
        ray.BeginDrawing()
        defer ray.EndDrawing()

        if !ray.IsMusicStreamPlaying(Music.song_loaded) {
            ray.GuiLabel(
                {
                    Pos.label_no_song_playing.x,
                    Pos.label_no_song_playing.y,
                    Size.label_no_song_playing.w,
                    Size.label_no_song_playing.h,
                },
                Gui.label_no_song_playing,
            )
        }
    }
}

I have posted only the relevant code snippets.
The label shows upon launching my program, which is expected, but when I play a song and the condition is no longer fulfilled, the label persists and is never cleared.
If I reverse the condition, only showing the label when the song plays, the label does not show upon launching my program, and shows when I play a song, but upon pausing the song it also is not cleared.
What do I have to do in order to clear the label?

Hello.
Why is this closed as completed? Has there been a solution to this issue?
Thanks!

@BlizzardBunny This is closed because it is not a raygui issue but a user code issue.

@raysan5 what is the issue with the code?

@BlizzardBunny GuiLoadStyle() loaded 60 times per second, EndDrawing() called twice, CloseWindow() called twice...

EndDrawing() and CloseWindow() are not called twice. There are two calls in the code because it is called in case EXIT and then main() returns. But they are never called twice in the same case.
I will see if moving the GuiLoadStyle() fixes the issue. However, Vonixxx experienced the same issue without calling GuiLoadStyle() at all. Is there also a user code issue in their code block?

@BlizzardBunny I'm afraid that code is not in C, so the language could influence the result.
Could you provide a simple example illustrating the issue?

Hello. When making a simple test code, the issue does not show up. So it is a user code issue.
Perhaps it has something to do with the switch case or with function calls. Either way, I will continue to debug. Thank you for your help.


release: 1.16.0

Risk Level: n/a
Testing: n/a
Release Notes: yes

@envoyproxy/maintainers please do a scan and see what if anything I missed.


Performance of RecurrenceArray

Sometimes RecurrenceArray is slower than getindex when actually assembling the values e.g.
using ClassicalOrthogonalPolynomials
using SingularIntegrals

import ClassicalOrthogonalPolynomials: recurrenecoefficients
import SingularIntegrals: RecurrenceArray

P = Jacobi(1/3,1/3)
xc = range(-1,1; length=10000)
n = 10000

# getindex baseline ~ 1.102867 seconds
@time pp = P[xc,1:n];
# Lazy is fast ~  0.000466 seconds
@time pr = RecurrenceArray(xc, recurrencecoefficients(P), P[xc, 1:2]');
# Actually getting the matrix is "slow" ~ 1.706700 seconds
@time pr[1:n,1:length(xc)]';

pr ≈ pp

@dlfivefifty just in case you missed this issue you asked me to raise :)

Your code doesn't run since T̃ is not defined

ah sorry! fixed. It's particularly slow on the first run of @time pr[1:n,1:length(xc)]';

Note 0.6s is just making a second copy. That is, when you call pr[1:n,1:length(xc)] it first populates a matrix and then copies this data to a new matrix.
On the other hand, P[xc,1:n] populates the returned matrix directly.
So I don't think there's anything obvious that can be done about this. That is, we can't both cache and return a matrix without the overhead of a copy.

Unless we decide to get rid of caching and only do populating. That is, RecurrenceArray would become completely lazy and not cache any computations. But is it worth the time?

For the paper, I've not used the RecurrenceArrays at all.. probably not worth it for now.


Modernize our Javascript

Our JS could use some love and modernizing - to make it easier to reason about, catch mistakes (like https://github.com/jupyterhub/binderhub/pull/1375), and modify (rather than just for the sake of modernizing). This isn't about using a framework or anything like that - just cleaning up.

[ ] Switch to ES6 classes, rather than prototype based classes
[ ] Use babel so we can consistently use JS features without having to  constantly figure out browser support https://github.com/jupyterhub/binderhub/pull/1380
[x] Use const/let over var for easier to understand scoping https://github.com/jupyterhub/binderhub/pull/1376
[x] Use eslint to lint our code base and catch errors https://github.com/jupyterhub/binderhub/pull/1377
[ ] Consider using prettier for style formatting
[ ] Write some unit tests

I'm in favour of using prettier and black throughout this repo with pre-commit for autoformatting (code, javascript, markdown, yml). Main thing is to decide when to make the change to avoid conflicts with pending PRs.
I know you've previously said pre-commit is too complicated but it doesn't have to be, just pre-commit run -a is all I ever do, I never bother with the automated hooks :smiley:
I'm happy to make that change along with docs if you want.

Yeah I've been very very happy with pre-commit since a while back, the experience got even better with pre-commit.ci.
prettier, black, and pyupgrade are amazing!


[Inbox] reload data on re-entering tab

Fixes: https://github.com/artsy/collector-experience/issues/794
Depends on: https://github.com/artsy/eigen/pull/2479

Fails

:no_entry_sign:

No CHANGELOG added.

  Generated by :no_entry_sign: dangerJS

Fails

:no_entry_sign:

No CHANGELOG added.

  Generated by :no_entry_sign: dangerJS

Ahhh 😍😍😍  so coooool


Remove implementation of Symbol#===

For reducing program size.

This shouldn't be merged.
Symbol#=== should be moved to mruby-symbol-ext gem.
Though this may change behavior of case ～ when ～ end and will broke some code.

See: https://wandbox.org/permlink/haMjLZxsE4drNBxV

Sorry, I don't understand what is the problem. Example above seems to produce the same result before and after this change.

@take-cheeze probably you have misunderstood the behavior of undef. The undef operator makes the specified method uncallable (thus an error in wandbox), whereas this patch removes the definition from Symbol class (and makes the overridden Kernel#=== appeared).

Ah, sorry seems to fallback to Kernel#=== .

And CRuby uses rb_obj_equal too.
https://github.com/ruby/ruby/blob/46968fab0a0cec4a3e6e37f30b13d20998ba5e7a/string.c#L10493
Specializing like mrb_type(rhs) == MRB_TT_SYMBOL && mrb_symbol(self) == mrb_symbol(rhs) seems to be better implementation.

Though it still makes incompatibility with CRuby: https://wandbox.org/permlink/cCS7wIV2sfqUjoyv

This is the undefined behavior in ISO, so the difference is OK, I think (and no one removes the important === from Kernel module in realistic applications).


NetSuite - "Displayed as" option not visible when "Cross-subsidiary customer/projects" is on

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number:  9.0.13-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Navigate to https://staging.new.expensify.com/
Log in with a new expensifail account
Click on FAB - New workspace
Enable "Accounting" in the "More features" page
Navigate to "Accounting"
Connect to NetSuite and upgrade the workspace to Control when asked
Wait for the sync to finish
Navigate to Accounting - Import - Customers / projects
Turn "Cross-subsidiary customer/projects" on

Expected Result:
"Displayed as" option should be visible
Actual Result:
"Displayed as" option isn't visible when "Cross-subsidiary customer/projects" is turned on. It's visible if the "Import customers" or "Import projects" options are on
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/1c1fa5c0-8d32-4a50-91b2-eb32d6d068e7
View all open jobs on GitHub

@Christinadobrzyn  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #wave-control

I think this is expected, but I am checking with the team.
https://github.com/user-attachments/assets/b93e6e95-4c57-4e00-9cde-73dc65e64b43

Following the discussion https://expensify.slack.com/archives/C06ML6X0W9L/p1722270735583049?thread_ts=1722024847.603939&cid=C06ML6X0W9L

I'm ooo today so moving this daily and I'll review tomorrow.

Pushing along convo here - https://expensify.slack.com/archives/C06ML6X0W9L/p1722460695004909?thread_ts=1722024847.603939&cid=C06ML6X0W9L

Okay the decision is to hide the "Cross-subsidiary" option when Customers and Projects are disabled.

@yuwenmemon there was mention of you working on this in the chat - is that true or can this be external?

waiting for this to get picked up internally.

checking to see if anyone has the bandwidth to grab this - https://expensify.slack.com/archives/C06ML6X0W9L/p1722979210418789

Note for Melvin - This is internal so we're waiting for a volunteer

Searcing for a volunteer!

I think this might be something that Yuwen will want to take when they are back so I'm going to keep this daily for now and follow up with them when they return!

Picked up!

Yippee! Thanks @yuwenmemon!

updated for Melvin - PR is in the works - https://github.com/Expensify/App/pull/47635

Prepping for payment - Payouts due:

[ ] Contributor+: $250 @mananjadhav

@mananjadhav you are paid in newDot? Is there anyone else that needs payment for this job?

@mananjadhav, did you participate in this as C+ - should you be paid for this job?

Yes I helped with the review and I would be paid for it.

@Christinadobrzyn can you please add a payout summary?
Also in terms of the checklist, I wouldn't call this a bug as the Displayed as was only toggled based on Import project and Import customers switches.  The Cross-subsidiary customers/projects toggle was designed to work independently.
I don't think we need a regression test for this one.

Perfect thanks @mananjadhav  - here's the payment summary - https://github.com/Expensify/App/issues/46288#issuecomment-2313556917

Thanks @Christinadobrzyn. I'll be raising it on NewDot.

Sounds good! Here's the payment summary for the NewDot payment.
Closing this as complete!

$250 approved fro @mananjadhav


Only download dbs if they don't exist or if a new version is available.

Fixes #38

Solved via https://github.com/runk/node-geolite2/pull/41


Add letsvalidate api

Hi @hbakhtiyor , thanks for the pull request. I see you added this link to both the Animals section and a new Misc section. We are not looking to create a Misc section anytime soon, since those sort of things lead to a lot of future uncategorized entries that could fall under a Misc category. I would suggest moving this to the development section. Also, could you please remove the reference under the Animals section? Thanks.

Hi @davemachado,  the reference under not Animals section, but under Photography

Can you please put the entry in alphabetical order? Thanks.

done

Thanks!


--do-not-sync server argument is ignored when installing extensions

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

VS Code Version: insiders and from sources

Steps to Reproduce:

Ensure you have settings sync already enabled or run server and enable settings sync
Run server again with ./scripts/code-server.sh --without-connection-token --install-extension znck.vue --do-not-sync --start-server
:bug: Observe extension znck.vue gets synced

cc @sandy081

Created PR https://github.com/microsoft/vscode/pull/148012 fixing it

Fixed by e428b0bc9f535cdb0ecb9850cc5d30a514ee19a7

Reopening it for the following specific case

install extension using vsix with --do-not-sync disconnected from the internet due to some X reason
connect to internet, run server, and open in browser
extension will be synced

This should be fixed now. Please reopen it if it is not.


Keyboard with vuestic-simple-select and vuestic-multi-select

There is no keyboard support with ‘select’ components so they are pretty much hard to use even with prepared examples.
It is much easier to select a country by typing SLO (or something) than scroll down to character S.

@MPrtenjak in progress)

Looks like it worth to add optional ability to type inside the input and filter options based on entered text (outside of the select-component) - it will be the most flexible way
@MPrtenjak  @smartapant  are you agree?

@georgeMuraveiAlkh  are you still working on it?

@vvscode nope

I too would really like to see this enhancement.

@vvscode , you mean autocomplete input? Well, that would be another element.

so what kind of behavior is expected? Cause I thought it would be like filtering event (if you enter text you got filtered list)

Awesome theme. Adding  tag would be realy helpful. Hope to see it soon


[doc] Fix code blocks

Description
Please include a short summary of the change.
Issue link (if applicable):
Type of change

[ ] New feature (backwards compatible)
[ ] New feature (breaking API changes)
[ ] Bug fix
[X] Other (Documentation, CI, ...)

Contribution checklist

[ ] N/A ~Add our license to new files.~
[X] Check that your code adheres to our coding style.
[ ] N/A ~Write unittests.~
[ ] N/A ~Run the unittests and check that they’re passing.~
[ ] N/A ~Run the benchmarks to make sure your change doesn’t introduce a regression.~

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


Fixed MSVC architecture detection regular expression

MSVC regular expression doesn't account for the remaining '0' when
parsing "Visual Studio 10 2010..". The 3rd regex remove [1-9] where it
should be [0-9] as above comment shows the remaining '0'

@PyrO70 Nice catch, thanks. Please set destination branch to develop (see contributing).


tests are silently failing in CI

Quoting Paul in Slack:

The test stages in Experience fail silently on buildkite.  e.g. see the test content stage here https://buildkite.com/wellcomecollection/experience/builds/5721#fd698ae6-77eb-42e6-bb31-e46799205505

My first suspicion is that it is to do with this (and a similar thing in catalogue):
process.exit called with "0" when a server is closed during the last test.
So the tests could all fail, but it will still return a zero exit code as long as that test runs.  It may also mean that some tests are not being run (if process.exit(0) happens when there are still outstanding tests)

Yes. I have commented out most of that file in catalogue and forced a failure.

It would appear that the mocking of process.exit is not working.
If I call process.exit in the test file, it uses the mock, but when it calls server.close, which calls process.exit it calls the real process.exit.

That turns out to be when this mocking was introduced.


Do HTTP Core version upgrade for APIM

Description
Need to do the HTTP Core version upgrade for APIM similar to MI.

[x] Update carbon-analytics-common repo with the new httpcore version
[x] Update carbon-apimgt repo with the new httpcore version
[x] Update analytics and carbon versions in product-apim

Affected Component
APIM
Version
4.2.0-SNAPSHOT
Related Issues
No response
Suggested Labels
No response

Update : Checked updating the version locally. Need to run the tests.

Update : Added the following PRs. Running the tests locally with the changes.

https://github.com/wso2/carbon-analytics-common/pull/818
https://github.com/wso2/carbon-apimgt/pull/11714

After merging PR 1, need to upgrade the analytics-common version in APIM repos.

Update : Waiting for the builds to complete

Update : All PRs are now merged.


Pattern: content block – simple, missing link list

Detailed description
Describe in detail the issue you're having.
The right side link list is missing from the current pattern in Storybook. This is part of MVP.
Current:

Is this a feature request (new component, new icon), a bug, or a general issue?
Missing component/sub-pattern
Is this issue related to a specific component?
Link list
What did you expect to happen? What happened instead? What would you like to see changed?
Should include this:

What browser are you working in?
Chrome
What offering/product do you work on? Any pressing ship or release dates we should be aware of?
Web simplification

@mkothur Can you look at this while you are working on this pattern in Sprint 20-04

As discussed, we have opened issue #1581 which would support the layout of the block patterns with the Link List.


ERROR! the role 'infrastructure/ptp/controlplane' was not found in /opt/seo/playbooks/roles:/opt/seo/roles:/opt/seo/roles/baseline_ansible:/opt/seo/playbooks

Deploy smart edge open will encounter problem. Please check. Thanks.
Smart Edge Open Deployment Status: in progress
<EMAIL_ADDRESS>password:
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-126-generic x86_64)

Documentation:  https://help.ubuntu.com
Management:     https://landscape.canonical.com
Support:        https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings

Last login: Thu Sep 22 09:15:28 2022 from <IP_ADDRESS>
(failed reverse-i-search)`vim ': ^C /opt/seo/logs/smart_edge_open_multi_node_dek_2022-09-22_09-02-05_network_edge.yml.log
smartedge-open@ubuntu-fa904b5255:~$ vim /opt/seo/playbooks/infrastructure.yml
smartedge-open@ubuntu-fa904b5255:~$ cat /opt/seo/logs/smart_edge_open_multi_node_dek_2022-09-22_09-02-05_network_edge.yml.log
ansible-playbook 2.9.27
config file = /opt/seo/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.local/share/virtualenvs/seo-EEf3hlkd/lib/python3.8/site-packages/ansible
executable location = /root/.local/share/virtualenvs/seo-EEf3hlkd/bin/ansible-playbook
python version = 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0]
Using /opt/seo/ansible.cfg as config file
statically imported: /opt/seo/tasks/reboot_server.yml
ERROR! the role 'infrastructure/ptp/controlplane' was not found in /opt/seo/playbooks/roles:/opt/seo/roles:/opt/seo/roles/baseline_ansible:/opt/seo/playbooks
The error appears to be in '/opt/seo/playbooks/infrastructure.yml': line 59, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
roles:
- role: infrastructure/ptp/controlplane
^ here

Multi node scenario, there is no folder "ptp" in /opt/seo/roles/infrastructure. The customer.yml as below:
SPDX-License-Identifier: Apache-2.0
Copyright (c) 2021 Intel Corporation
GitHub Credentials.

Required if using non-public repositories.
It can be generated on following website https://github.com/settings/tokens (SSO authorization might be needed).

If provided, both user and token are required.
It is assumed that every repository defined in this file is part of the same git instance (e.g. https://github.com).
git:
user: ''
password: '' # The 'password' field accepts one of two values git password or token.
Edge Software Provisioner repository settings.
esp:
URL of the ESP's repository.
url: https://github.com/intel/Edge-Software-Provisioner
Branch to be checked out.
branch: v2.0.3
ESP destination path.
This will be a path where ESP will be cloned to (relative to the script working directory).
dest_dir: './esp'
Settings related to dnsmasq which provides DHCP and PXE services.

In case of USB-only provisioning (e.g. in corporate network with existing DHCP services),
the dnsmasq should be disabled to not interfere with existing network infrastructure.

Rest of the settings in this section are related to the DHCP configuration that
will be sent to machines provisioned with PXE.
If left empty, these settings will be automatically deduced by the ESP,
however custom values might be required in some cases.
dnsmasq:
If true, then the dnsmasq will be started with rest of the Provisioning System suite.
enabled: false
Domain Name System (DNS) settings
These values should be changed in case of default DNS (<IP_ADDRESS> and <IP_ADDRESS>) are not reachable.
network_dns_primary: ''     # e.g. <IP_ADDRESS>
network_dns_secondary: ''   # e.g. <IP_ADDRESS>
DHCP and network settings
dhcp_range_minimum: ''      # e.g. <IP_ADDRESS>
dhcp_range_maximum: ''      # e.g. <IP_ADDRESS>
network_broadcast_ip: ''    # e.g. <IP_ADDRESS>
network_gateway_ip: ''      # e.g. <IP_ADDRESS>
IP address of the Provisioning System
host_ip: ''                 # e.g. <IP_ADDRESS>
Docker settings
docker:
List of registry mirrors
The list will be propagated to the machine under provisioning.

WARNING: This won't be applied to the Provisioning System.
registry_mirrors: []
DockerHub Credentials
If values are supplied, then docker login will be performed during Operating System provisioning.

WARNING: This won't be applied neither to the Provisioning System
nor the machine under provisioning (with Experience Kits).
dockerhub:
username: ""
password: ""
Address of the NTP server used during deployment
ntp_server: ''
List of ESP profiles for Smart Edge Open.
profiles:

name: Smart_Edge_Open_Developer_Experience_Kits
Address of the profile repository
url: https://github.com/smart-edge-open/profiles.git
Branch to be checked out
branch: smart-edge-open-22.03.02
Profile scenario
Possible values: single-node, multi-node
scenario: multi-node
Settings of Experience Kit that will be deployed
experience_kit:
Address of the Experience Kit repository
url: https://github.com/smart-edge-open/open-developer-experience-kits.git
Branch to be checked out
branch: smart-edge-open-22.03.02
Deployment to be performed
Possible values: dek
deployment: dek
MAC address of the controlplane's primary interface.
This value is used only in multi-node scenario.
controlplane_mac: '80:61:5f:18:bb:d2'
Credentials of the operating system account that will be created.
Account will be added to the sudoers.
account:
username: smartedge-open
password: smartedge-open
Secure boot and trusted media platform options.
bios:
secure_boot: false
tpm: false
Experience Kit group_vars overrides.
This section can be used to supply extra variables to influence the deployment of the Experience Kit.
The variables will be copied as-is to the destination group_vars on the machine.
Refer to the Experience Kit documentation for more examples.

Example:
group_vars:
groups:
all:
topology_manager:
policy: "none"
controller_group:
edgeenode_group:
group_vars:
groups:
all:
sgx_enabled: false
platform_attestation_node: false
cvl_sriov_nics:
Debian:
c0p0: ens5f1
controller_group:
edgenode_group:
Experience Kit host_vars overrides.
This section works analogous to the group_vars section, but influences the settings of specific host.
host_vars:
hosts:
controller:
node01:
Experience Kit sideloads.
This section can be used to copy certain files required in the process of Experience Kit deployments.

It is a list of items with following fields:
file_path is an absolute path on the Provision System. It can point to a file or to a folder.
dest_path is a target path on the system under provisioning. The path can be absolute
or relative (relative to /opt/seo). If file_path points to a file and dest_path looks
like a dir path (ends with '/'), filename will be automatically appended to that dir path.
sideload:
Example entries:
This will cause a file /opt/extra_package.zip to be copied to /opt/seo/extra/extra_package_renamed.zip
- file_path: "/opt/extra_package.zip"
dest_path: "./extra/extra_package_renamed.zip"
This will cause a file /root/extra_package.zip to be copied to /opt/seo/extra/extra_package.zip
- file_path: "/root/extra_package.zip"
dest_path: "extra/"
This will cause a content of a folder /root/extra_sideload_dir to be copied under /opt/offline_files
- file_path: "/root/extra_sideload_dir"
dest_path: "../offline_files"
Define additional inventory groups where hosts belong to.
Possible host names: controller, node01
Note: some Experience Kits require to provide at least a group name with no hosts.
extra_inventory_groups:
Example:
ptp_slave_group:
controller:
node01:
ptp_master:
controller:

example hosts section defining host special settings and bmc access data
hosts:
# full example for this element
- name: master # this will be set as a hostname
mac: 11:22:33:44:55:66 # this host can be identified from the profile to set a hostname
bmc: # bmc settings
address: <IP_ADDRESS> # bmc address
user: user # bmc user name
password: password # bmc password
bios: # bios settings
tpm: false # TPM
secure_boot: false # Secure Boot
# example without bmc, the profile will just set hostname
- name: node1
mac: AA:BB:CC:DD:EE:FF # this host can be identified from the profile to set a hostname
# example node without mac, the profile cannot identify host and set a hostname so no hostname here
- name: node2
bios:
tpm: false
secure_boot: true
bmc: # bmc data allows to switch TPM and Secure Boot
address: <IP_ADDRESS>
user: user
password: password
global bmc section used for uniform inhost bmc access
bmc:
address: <IP_ADDRESS>
user: user
password: password
global bios settings
bios:
tpm: false
secure_boot: false
Configuration of USB images.

Generated images are in form of raw .img disk.
ESP's flashusb.sh utility can be used to the image onto the USB drive.
usb_images:
Build USB images.
If false, then no USB image will be produced.
build: true
Build images for legacy BIOS.
bios: true
Build images for UEFI BIOS.
efi: true
Build an all-in-one image for each BIOS.
If false, then an image for each of the profiles will be produced separately.
If true, then a single image per BIOS with all of the profiles will be produced.
all_in_one: false
Path where built images will be placed.
This is relative path to the script's working directory.
output_path: './out'


Change the login screen for Quiver

Change the login screen for Quiver:

When Quiver is enabled (currently dev build only) we now have an updated login screen (see below)
Quiver is now renamed to 'uProxy' or 'the uProxy network' throughout the UI

New login screen with Quiver enabled:

New screen to connect to Quiver via settings drawer:

Login screen with Quiver disabled (unchanged, except for maybe some very small css):

just nits, hurray!

Reviewed 6 of 6 files at r1.
Review status: all files reviewed at latest revision, 3 unresolved discussions, some commit checks broke.

src/generic_ui/polymer/quiver-login.html, line 17 [r1] (raw file):
Line break before #contents

src/generic_ui/polymer/splash.html, line 214 [r1] (raw file):
optional nit: icon="uproxy-icons:{{n}}"

src/generic_ui/polymer/splash.ts, line 75 [r1] (raw file):
optional nit: alternatively to creating this function and getNetworkDisplayName, add this.ui = ui in ready() and call the function with ui.isExperimentalNetwork from the .html file

Comments from the review on Reviewable.io

Just made 2/3 changes, PTAL

Review status: 4 of 6 files reviewed at latest revision, 1 unresolved discussion, some commit checks pending.

src/generic_ui/polymer/splash.ts, line 75 [r1] (raw file):
I tried that and it doesn't work, I get the error Invalid expression syntax: !ui.isExperimentalNetwork(n) Error: Only identifier function invocations are allowed

Comments from the review on Reviewable.io

:+1:


[CPDEV-101744] Update helm, python dependencies

Description

Drop support python 3.7

Code changes to respect minimal version of python 3.8

Update helm v3.14.4
Added dependency on useful-types.
Updated python dependencies

Updated ansible to 7.7.0
Fixes in schema.py to support new jsonschema version.

Updated go version for ipip_check.

Checklist

[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] Integration CI passed
[x] Unit tests. If Yes list of new/changed tests with brief description
[x] There is no merge conflicts

Unit tests
Changed tests to respect changed JSON schema validation errors.

@OleksandrIaresko


Update NPS docs for Windows Server 2019

Please update this documentation page.
Current Windows Server 2016 is older and different NPS configuration.
Windows Server 2019 has newer / different NPS and RRAS integrations settings.
Also please show (via screenshots) whole NPS settings for Windows Server 2019.
Thank you
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bf322e2b-b09c-2a09-2b0d-27de43075953
Version Independent ID: c82153d8-7449-09e7-bd8f-328eb9fd8d74
Content: VPN with Azure AD MFA using the NPS extension - Azure Active Directory
Content Source: articles/active-directory/authentication/howto-mfa-nps-extension-vpn.md
Service: active-directory
Sub-service: authentication
GitHub Login: @Justinha
Microsoft Alias: justinha

@hkusulja
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

@hkusulja Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. The requested updates have not been made since the creation of this issue, and the timeline for resolution may vary based on resourcing, so we've created an internal work item to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary. #please-close

Sorry, I do not understand the message, issue is still the same and needs to be fixed and updated. Please do not close this github issue until fixed. @JamesTran-MSFT please doublecheck this, thank you in advance


Capturing index names during queries

Description
Captures the indexes for queries.
Issues Resolved
#34
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Chatted with @jzonthemtn  and I think my mental challenge here is that if we are not tracking Lucene queries then why track indexes.   They appear to both go kind of hand in hand.   And yet, this isnt' the crux of UBI, as there are other observability tools for tracking what query was run wehre that might be better suited.
@jzonthemtn had a good question, are there click models that care about which indexes the user was interacting with where we would need this data?   @wrigleydan?   @alexeyrodriguez  could you weigh in?

I think from the perspective of implicit judgements the models don't really care about the technical "index" that was queried. Models care more about contextual information like "Did the user search on a phone or a tablet?", "Was the user logged in?", "Was this a full text query or an autocomplete query?".
While some of this information may be encoded in the index (e.g. you could have a separate autosuggest index, so the last question could be answered by knowing which index was hit by the query) I do not see how judgement models would use this information.
These are my thoughts, so I may be missing the point here.

Thanks for the comments. Until there's a clear need, let's close this pull request. Adding application in #41 might end up being enough for UBI.

Great discussion all!


Sleigh Pcode: Read before write in instruction bundle

Hi,
I am in the progress of adding TileGx architecture to Ghidra. With reference to #4390
The processor specification states that: (UG401-ISA.pdf Section 1.2)

Because there is explicitly no implied dependency within a bundle, the semantics for this specify that the input operands for all instructions in a bundle are read before any of the output operands are written.

For example:
move r29, sp; addxi r28, r29, 0xf8; st r28, r29

Should roughly translate to:
# Assume r28 = 0x50, r29 = 0x10, sp = 0x20
r29 = sp;                 # r29 = 0x20
r28 = r29 + sext(0xf8);   # r28 = 0x10 <old r29 value> + sext(0xf8)
*[ram] r28 = r29;         # *[0x50 <old r28 value>] = 0x10 <old r29 value>

My current code:

macros.sinc

@define ENDIAN "little"
@define REGSIZE "8"
@define ADDRSIZE "8"

define endian=$(ENDIAN);
define alignment=8;

define space ram type=ram_space size=$(ADDRSIZE) default;
define space register type=register_space size=$(REGSIZE);
define space temp_register type=ram_space size=$(REGSIZE);

define register offset=0 size=$(REGSIZE) [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

# Temp registers
define temp_register offset=0x0 size=$(REGSIZE) [
	temp_r0 temp_r1 temp_r2 temp_r3 temp_r4
	temp_r5 temp_r6 temp_r7 temp_r8 temp_r9
	temp_r10 temp_r11 temp_r12 temp_r13 temp_r14
	temp_r15 temp_r16 temp_r17 temp_r18 temp_r19
	temp_r20 temp_r21 temp_r22 temp_r23 temp_r24
	temp_r25 temp_r26 temp_r27 temp_r28 temp_r29
	temp_r30 temp_r31 temp_r32 temp_r33 temp_r34
	temp_r35 temp_r36 temp_r37 temp_r38 temp_r39
	temp_r40 temp_r41 temp_r42 temp_r43 temp_r44
	temp_r45 temp_r46 temp_r47 temp_r48 temp_r49
	temp_r50 temp_r51 temp_r52 temp_r53 temp_sp
	temp_lr temp_r56 temp_idn0 temp_idn1 temp_udn0
	temp_udn1 temp_udn2 temp_udn3
];

define token instr_bundle(64)
	mode = (62,63)

	# X0
	Opcode_X0 = (28,30)
	RRROpcodeExtension_X0 = (18,27)
	SrcB_X0 = (12,17)
	SrcA_X0 = (6,11)
	Dest_X0 = (0,5)
	Imm8OpcodeExtension_X0 = (20,27)
	Imm8_X0 = (12,19)
	Imm16_X0 = (12,27)
	UnaryOpcodeExtension_X0 = (12,17)
	ShiftOpcodeExtension_X0 = (18,27)
	ShAmt_X0 = (12,17)
	BFOpcodeExtension_X0 = (24,27)
	BFStart_X0 = (18,23)
	BFEnd_X0 = (12,17)

	# X1
	Opcode_X1 = (59,61)
	RRROpcodeExtension_X1 = (49,58)
	SrcB_X1 = (43,48)
	SrcA_X1 = (37,42)
	Dest_X1 = (31,36)
	Imm8OpcodeExtension_X1 = (51,58)
	Imm8_X1 = (43,50)
	MT_Imm14_X1_13_6 = (43,50)
	MT_Imm14_X1_5_0 = (31,36)
	MF_Imm14_X1 = (37,50)
	Imm16_X1 = (43,58)
	UnaryOpcodeExtension_X1 = (43,48)
	ShiftOpcodeExtension_X1 = (49,58)
	ShAmt_X1 = (43,48)
	BrType_X1 = (54,58)
	BrOff_X1_16_6 = (43,53)
	BrOff_X1_5_0 = (31,36)
	JumpOpcodeExtension_X1 = (58,58)
	JumpOff_X1 = (31,57)

	# Y0
	Opcode_Y0 = (27,30)
	RRROpcodeExtension_Y0 = (18,19)
	SrcB_Y0 = (12,17)
	SrcA_Y0 = (6,11)
	Dest_Y0 = (0,5)
	Imm8_Y0 = (12,19)
	UnaryOpcodeExtension_Y0 = (12,17)
	ShiftOpcodeExtension_Y0 = (18,19)
	ShAmt_Y0 = (12,17)

	# Y1
	Opcode_Y1 = (58,61)
	RRROpcodeExtension_Y1 = (49,50)
	SrcB_Y1 = (43,48)
	SrcA_Y1 = (37,42)
	Dest_Y1 = (31,36)
	Imm8_Y1 = (43,50)
	UnaryOpcodeExtension_Y1 = (43,48)
	ShiftOpcodeExtension_Y1 = (49,50)
	ShAmt_Y1 = (43,48)

	# Y2
	Opcode_Y2_1_1 = (57,57)
	SrcBDest_Y2 = (51,56)
	Opcode_Y2_0_0 = (26,26)
	SrcA_Y2 = (20,25)
;

define register offset=0x1000 size=8 contextreg;
define context contextreg
	bundleType = (0,1)
	phase = (2,4)
;

attach variables [
	SrcA_X0 SrcB_X0 Dest_X0
	SrcA_X1 SrcB_X1 Dest_X1
	SrcA_Y0 SrcB_Y0 Dest_Y0
	SrcA_Y1 SrcB_Y1 Dest_Y1
	SrcA_Y2 SrcBDest_Y2
] [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

@include "macros.sinc"

:^instruction is phase=0 & bundleType=0 & mode=0x00 & instruction [ bundleType=1; phase=1; ] {}
:^instruction is phase=0 & bundleType=0 & mode!=0x00 & instruction [ bundleType=2; phase=1; ] {}

# sub constructor to move to the next instruction parse phase
EndPacket:"; "^instruction is phase=1 & instruction [ phase=2; ] { build instruction; }
EndPacket:"; "^instruction is phase=2 & instruction [ phase=3; ] { build instruction; }

# X Format
with : bundleType = 1 {
	:X is bundleType {} # Filler
}

# Y Format
with : bundleType = 2 {
	# Opcode_Y0 = (27,30), RRROpcodeExtension_Y0 = (18,19), SrcB_Y0 = (12,17), SrcA_Y0 = (6,11), Dest_Y0 = (0,5)
	:move Dest_Y0, SrcA_Y0 EndPacket is phase=1 & Opcode_Y0=0xA & RRROpcodeExtension_Y0=0x2 & SrcB_Y0=0x3F & SrcA_Y0 & Dest_Y0 & EndPacket {
		initTempRegisters();                 # Copy values to temp register
		writeToTempRegister(Dest_Y0, SrcA_Y0);
		build EndPacket;
	}

	# Opcode_Y1 = (58,61), Imm8_Y1 = (43,50), SrcA_Y1 = (37,42), Dest_Y1 = (31,36)
	:addxi Dest_Y1, SrcA_Y1, Imm8_Y1 EndPacket is phase=2 & Opcode_Y1=0x2 & Imm8_Y1 & SrcA_Y1 & Dest_Y1 & EndPacket {
		local temp:8 = SrcA_Y1 + sext(Imm8_Y1);
		local res:8 = sext(temp:4);
		writeToTempRegister(Dest_Y1, res);   # Store changes to temp register
		build EndPacket;
	}

	# Opcode_Y2_1_1 = (57,57), SrcBDest_Y2 = (51,56), Opcode_Y2_0_0 = (26,26), SrcA_Y2 = (20,25)
	# don't need EndPacket as this is last instruction
	:st SrcA_Y2, SrcBDest_Y2 is phase=3 & Opcode_Y2_1_1=0x1 & SrcBDest_Y2 & Opcode_Y2_0_0=0x1 & SrcA_Y2 {
		*[ram]:8 SrcA_Y2:$(ADDRSIZE) = SrcBDest_Y2;
		 saveTempRegisters();                # Save new register values
	}
}

This works but it breaks the pcode display and function signatures.

Image 1

Image 2

Note: r0, r1, ..., r9 are declared as inputs in compiler_spec

I am wondering if there is a more elegant way to implement this?

I tried implementing the initialization and saving of temp registers through pcode injection but I came across a "Low-level Error" with the decompiler on some functions. It seems to be originate from flow.cc#L131.

public void emitAssignRegisterToRegister(String dest, String src) {
	Varnode out = findRegister(dest);
	Varnode[] in = new Varnode[1];
	in[0] = findRegister(src);
	PcodeOp op = new PcodeOp(opAddress, seqnum++, PcodeOp.COPY, in, out);
	opList.add(op);
}

initTempRegisters:
public class InjectInitTempRegisters extends InjectPayloadTileGx {
	public InjectInitTempRegisters(String sourceName, SleighLanguage language, long uniqBase) {
		super(sourceName, language, uniqBase);
	}

	@Override
	public PcodeOp[] getPcode(Program program, InjectContext con) {
		PcodeOpEmitter pCode = new PcodeOpEmitter(language, con.baseAddr, uniqueBase);

		for (String regName : RegisterUtil.REGISTER_NAMES) {
			String tempName = RegisterUtil.getTempName(regName);
			pCode.emitAssignRegisterToRegister(tempName, regName); // temp = reg
		}

		return pCode.getPcodeOps();
	}
}

saveTempRegisters:
public class InjectSaveTempRegisters extends InjectPayloadTileGx {
	public InjectSaveTempRegisters(String sourceName, SleighLanguage language, long uniqBase) {
		super(sourceName, language, uniqBase);
	}

	@Override
	public PcodeOp[] getPcode(Program program, InjectContext con) {
		PcodeOpEmitter pCode = new PcodeOpEmitter(language, con.baseAddr, uniqueBase);

		for (String regName : RegisterUtil.REGISTER_NAMES) {
			String tempName = RegisterUtil.getTempName(regName);
			pCode.emitAssignRegisterToRegister(regName, tempName); // reg = temp
		}

		return pCode.getPcodeOps();
	}
}

I tried implementing the initialization and saving of temp registers through pcode injection but I came across a "Low-level Error" with the decompiler on some functions. It seems to be originate from flow.cc#L131.

public void emitAssignRegisterToRegister(String dest, String src) {
	Varnode out = findRegister(dest);
	Varnode[] in = new Varnode[1];
	in[0] = findRegister(src);
	PcodeOp op = new PcodeOp(opAddress, seqnum++, PcodeOp.COPY, in, out);
	opList.add(op);
}

initTempRegisters:
public class InjectInitTempRegisters extends InjectPayloadTileGx {
	public InjectInitTempRegisters(String sourceName, SleighLanguage language, long uniqBase) {
		super(sourceName, language, uniqBase);
	}

	@Override
	public PcodeOp[] getPcode(Program program, InjectContext con) {
		PcodeOpEmitter pCode = new PcodeOpEmitter(language, con.baseAddr, uniqueBase);

		for (String regName : RegisterUtil.REGISTER_NAMES) {
			String tempName = RegisterUtil.getTempName(regName);
			pCode.emitAssignRegisterToRegister(tempName, regName); // temp = reg
		}

		return pCode.getPcodeOps();
	}
}

saveTempRegisters:
public class InjectSaveTempRegisters extends InjectPayloadTileGx {
	public InjectSaveTempRegisters(String sourceName, SleighLanguage language, long uniqBase) {
		super(sourceName, language, uniqBase);
	}

	@Override
	public PcodeOp[] getPcode(Program program, InjectContext con) {
		PcodeOpEmitter pCode = new PcodeOpEmitter(language, con.baseAddr, uniqueBase);

		for (String regName : RegisterUtil.REGISTER_NAMES) {
			String tempName = RegisterUtil.getTempName(regName);
			pCode.emitAssignRegisterToRegister(regName, tempName); // reg = temp
		}

		return pCode.getPcodeOps();
	}
}

I'd recommend avoiding pcode injection when you can. While it may seem easier to use for complicated instructions than implementing it in sleigh, I've been burned a few times by breaking changes to that api.

You should be able to access registers via the register address space but it can be a bit finicky. I'll usually get warnings about the decompiler ignoring indirect accesses, which is exactly what is wanted anyway (access the variable as if in a register not like a pointer). I think the variable is causing the trouble here because in my case I started with a constant register address and the offset could be resolved to a constant.

The decompiler works fine when the registers are assigned individually.
macro initTempRegisters() {
	temp_r0 = r0;
	temp_r1 = r1;
	temp_r2 = r2;
	temp_r3 = r3;
	temp_r4 = r4;
	...
	...
	...
}

macro saveTempRegisters() {
	r0 = temp_r0;
	r1 = temp_r1;
	r2 = temp_r2;
	r3 = temp_r3;
	r4 = temp_r4;
	...
	...
	...
}

But the pcode display is truncated and does not show the all the pcodes.

You can control the number of lines in the pcode field via Edit->Tool Options->Listing Field->Pcode Field (from the code browser)

macro saveTempRegisters() {
r0 = temp_r0;

I don't understand the need for the bulk saveTempRegisters macro.  Assuming the temp registers are used for all reads, why not let the write target the real register?  I assume the intent is to ensure that register reads do not reflect any modifications which may occur within the packed instruction.

You can control the number of lines in the pcode field via Edit->Tool Options->Listing Field->Pcode Field (from the code browser)

Thanks 😃

macro saveTempRegisters() {
r0 = temp_r0;

I don't understand the need for the bulk saveTempRegisters macro. Assuming the temp registers are used for all reads, why not let the actual instruction writes target the real register(s)? I assume the intent is to ensure that register reads do not reflect any modifications which may occur within the packed instruction.
I would definitely stay clear of any injection approach which should be uneccessary.

In the current process, the actual registers are used for all reads while any writes to the registers (within the instruction bundle) are first written to the temp register. The (new) values in the temp register will then be written back to the actual registers after the last instruction in the bundle.

I would think the reverse may produce better results within the decompiler. Read from temp shadow copies and write to actual registers only when modified by an instruction. If a temp is never read the copy should be ignored by decompiler.

Thanks, I will give it a try 👍

Another issue I am currently facing is regarding the function signatures. It seems to detect that all input registers (r0-r9) are part of the function.

<compiler_spec>
	...
	...
	...
	<default_proto>
		<prototype name="default" extrapop="0" stackshift="0">
			<input>
				<pentry minsize="1" maxsize="8">
					<register name="r0"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r1"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r2"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r3"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r4"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r5"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r6"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r7"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r8"/>
				</pentry>
				<pentry minsize="1" maxsize="8">
					<register name="r9"/>
				</pentry>
			</input>
			<output>
				<pentry minsize="1" maxsize="8">
					<register name="r0"/>
				</pentry>
			</output>
		</prototype>
	</default_proto>
</compiler_spec>

That's also an issue with using the temp registers. It sees the reads from all the registers and assigns them as operands as it sees them all being read from. It should be fixed by swapping the role of read-from vs write-to temporaries.

Thanks, that works 😃

@leyondlee can this issue be closed now?

@leyondlee can this issue be closed now?

Yes, thanks for everyone's help

@leyondlee Are you willing to share your final revision of your sinc file?

Hi, I am unfortunately unable to share the file due to a NDA.
However, the work can be replicated with reference to the first post and the TileGx ISA documentation.
Just note to use shadow copies of the registers in the p-code to maintain read before write. For example:
:move Dest_Y0, SrcA_Y0 EndPacket is phase=1 & Opcode_Y0=0xA & RRROpcodeExtension_Y0=0x2 & SrcB_Y0=0x3F & SrcA_Y0 & Dest_Y0 & EndPacket {
	initTempRegisters();                 # Copy values to temp register. temp_r0=r0, temp_r1=r1, temp_r2=r2...
        Dest_Y0 = <SrcA_Y0's Temp Register>;
}


Targeting Deno

🐛 Bug description
I saw this https://rustwasm.github.io/docs/wasm-bindgen/reference/deployment.html#deno mentioning that you could pass --target deno and build to Deno. I tried:
wasm-pack build --target deno

and got
error: Invalid value for '--target <target>': Unknown target: deno

🤔 Expected Behavior
A package suitable to be used in Deno should've been created.
👟 Steps to reproduce
cargo new rust-deno-test --lib
cd rust-deno-test

Edit src/lib.rs and replace its contents with:
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn factorial( x: u64 ) -> u64 {
    match x {
        0 | 1 => 1,
        _ => x * factorial( x - 1 ),
    }
}

Edit Cargo.toml and merge:
[dependencies]
wasm-bindgen = "0.2.65"

[lib]
crate-type =["cdylib"]

Then run
wasm-pack build --target deno

🌍 Your environment
wasm-pack version: 0.9.1
rustc version: 1.44.1
Notes
The tool ssvmup can successfully convert the same code to a package that's usable by Deno, with a similar command ssvmup build --target deno.

wasm-bingen seems to have recently gained support for deno target, but the option is not forwarded to it by wasm-pack.
I have quickly hacked a patch which seems to work at first glance. It does a bit more than required, even: for example, it generates a package.json, which Deno doesn't use.
I could work on a PR, but consider the fact that I only had a proper look at Deno yesterday.

Fixed in v0.11.0.


unique validator does not show custom message

What steps will reproduce the problem?
when i define unique rule for multiple fields like:
[['type_id', 'title'], 'unique', 'targetAttribute' => ['type_id', 'title'], 'message' => Yii::t('app', 'Duplicated Data Entries.')],
What is the expected result?
i expecte to show Yii::t('app', 'Duplicated Data Entries.')
What do you get instead?
but default message is shown.
Additional info
when i remove "'targetAttribute' => ['type_id', 'title']," part my message has been shown but it is not the rule i want.
| Yii version      2.0.9
| PHP version      5.5.34
| Operating system windows 10

You should use comboNotUnique for error message in this case: https://github.com/yiisoft/yii2/blob/master/framework/validators/UniqueValidator.php#L70

thanks a lot it works.

@rob006 thanks for noting the BC break, not sure if we should introduce a fallback in the code to avoid the break or just add a note to the UPGRADE docs. @yiisoft/core-developers opinions?

@cebe I think that both messages should be configured by message property and comboNotUnique should be deprecated. Another property for message is just confusing and does not give any benefit. So :+1: for fallback,  but for comboNotUnique uses.

I suggest the following fallback:
    public function init()
    {
        parent::init();
        if ($this->message === null) {
            if (is_array($this->targetAttribute)) {
                $this->message = Yii::t('yii', 'The combination {values} of {attributes} has already been taken.');
            } else {
                $this->message = Yii::t('yii', '{attribute} "{value}" has already been taken.');
            }
        }
    }

And use the appropriate placeholders with the $message depending on what is targetAttribute

@SilverFire If comboNotUnique is set you should use it as default value for message.

@rob006 yepp, you're right :)


"Smart" brackets deactivation

In some cases I need to deactivate smart brackets because I wish to show the formulae "as is" on the textbook.
Is it possible?

i want to deactivate for a specific part:
#smartOFF
#smartON

Hi!
I am sorry, but this is not possible in Calcpad. After parsing, the equation is stored as RPN. All brackets disappear then, because RPN does not use brackets.
Then the equation is rendered back in the desired format using the Shunting yard algorithm. Then, brackets are restored but only where required by the order of operations.
If this is at only a few places, probably it will be easier to edit the equation after export to Word.

Ok, thanks


changes in order not to show changes

Hi @tsaridas,
thanks for the pull request! I didn't realise there was a validation option in the template module, before!
Merging it!


Node Based Editing

I am working on a node based editor that is also aiming to be generic and an open format.
I also store the relationships in a pretty similar way, but curious if there could be some support for edges and nodes with additional metadata:
{
  "nodes": [
    {
      "id": "node-1",
      "type": "number-value",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "source": {
             "type": "number",
             "value": "1"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#source"
          }
      }
    },
    {
      "id": "node-2",
      "type": "number-value",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "source": {
             "type": "number",
             "value": "2"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#source"
          }
      }
    },
    {
      "id": "node-3",
      "type": "number-add",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "left": {
             "type": "number",
             "value": "0"
          },
          "right": {
             "type": "number",
             "value": "0"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#left + #right"
          }
      }
    }
  ],
  "edges": [
    {
      "id": "edge-1",
      "fromNode": "node-1",
      "fromSide": "right",
      "fromEnd": "none",
      "toNode": "node-3",
      "toSide": "left",
      "toEnd": "arrow",
      "metadata": {
          "output": "#result",
          "input": "#left"
      },
    },
    {
      "id": "edge-2",
      "fromNode": "node-2",
      "fromSide": "right",
      "fromEnd": "none",
      "toNode": "node-3",
      "toSide": "left",
      "toEnd": "arrow",
      "metadata": {
          "output": "#result",
          "input": "#right"
      },
    }
  ]
}

This could allow an expressive format for editing between applications too.
The metadata object could also be top level but might conflict with spec properties:
{
  "id": "edge-1",
  "fromNode": "node-1",
  "fromSide": "right",
  "fromEnd": "none",
  "toNode": "node-3",
  "toSide": "left",
  "toEnd": "arrow",
  "output": "#result",
  "input": "#left"
}

https://github.com/obsidianmd/jsoncanvas/assets/31253215/c5da7eab-d6fc-4b33-a890-58823cd29dfb

@rodydavis — Could you render an edge's label property inside the nodes? Maybe with the use of a delimiter to accommodate labels in fromNode and toNode?
io.canvas —
{
  "nodes": [
    {
      "id": "A"
    },
    {
      "id": "B"
    },
    {
      "id": "C"
    }
  ],
  "edges": [
    {
      "id": "e1",
      "fromNode": "A",
      "toNode": "C",
      "label": "A side label :: C side label, from A"
    },
    {
      "id": "e2",
      "fromNode": "B",
      "toNode": "C",
      "label": "B side label :: C side label, from B"
    }
  ]
}

Specifically the extra information is needed to connect not just to a side, but to a specific input/output.
If I used the existing schema I could probably do the following:
{
  "nodes": [
    {
      "id": "node-1",
      "type": "number-value",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "source": {
             "type": "number",
             "value": "1"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#source"
          }
      }
    },
    {
      "id": "node-2",
      "type": "number-value",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "source": {
             "type": "number",
             "value": "2"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#source"
          }
      }
    },
    {
      "id": "node-3",
      "type": "number-add",
      "x": 36,
      "y": 48,
      "width": 176,
      "height": 68,
      "inputs": {
          "left": {
             "type": "number",
             "value": "0"
          },
          "right": {
             "type": "number",
             "value": "0"
          }
      },
      "outputs": {
          "result": {
             "type": "number",
             "value": "#left + #right"
          }
      }
    }
  ],
  "edges": [
    {
      "id": "edge-1",
      "fromNode": "node-1#result",
      "fromSide": "right",
      "fromEnd": "none",
      "toNode": "node-3#left",
      "toSide": "left",
      "toEnd": "arrow"
    },
    {
      "id": "edge-2",
      "fromNode": "node-2#result",
      "fromSide": "right",
      "fromEnd": "none",
      "toNode": "node-3#right",
      "toSide": "left",
      "toEnd": "arrow"
    }
  ]
}

This would required renderers to ignore everything after the # for fromNode and toNode, but would totally work

This would be a custom node type, with default edge rendering that if the editor supported it could map the edges directly to the inputs/outputs.

Could also be useful for projects like unit too:
https://github.com/samuelmtimbo/unit

Also good progress on flutter renderer:

Also found this interesting, might be asking for ports:
https://rtsys.informatik.uni-kiel.de/confluence/display/KIELER/JSON+Graph+Format

node-demo.mov

This is super neat btw.
Can easily make custom Node, (obviously wouldn't be fully compliant to JSON Canvas spec by @kepano) with my library https://github.com/jg-l/json_canvas
The Node class is sealed right now, but easy to amend it as just an abstract class for more extensibility
class NumberNode extends Node {
  final num inValue;
  final num outValue;
  NumberNode({
    required this.inValue,
    required this.outValue,
    required super.id,
    required super.type,
    required super.x,
    required super.y,
    required super.width,
    required super.height,
    super.color,
  });
}

Here is the schema I created with dart_mappable:
https://gist.github.com/rodydavis/17a0a19c8d91a08e2674a57b93ba5259

I used a discriminatorKey to be able to add custom nodes in the future and support a know good fallback too

Your implementation is clean! I was hesitant to leverage a 3rd party package or build_runner in my implementation, at the cost of of more boilerplate though!

I think dart_mappable is a awesome compromise because it is easy to extend and adjust overtime!

The nice thing about a spec, is that there can be multiple implementations that all work together! 👍🏻

I had built a SVG-based graph dataset editor: https://codeberg.org/nilesh/grapher . Here is a demo site.

The design constraints were ability to import and export clean data, not requiring a server or accounts etc.
Will it be useful to add support for JSONCanvas format in this tool?


Fix: reinstall should use the initial specifier

[x] I have added an entry to docs/changelog.md

Summary of changes
Fix #527
To allow reinstall using the specifier used during installation, the specifier has been added to metadata.
The specifier is removed just before upgrading to allow pip command to fetch latest version.
Test suite have been updated.
Test plan

Tested by running
pipx install pylint==2.3.1
pipx reinstall pylint
pipx upgrade pylint

Question: when running nox tests session, the standard output of pylint installation is visible in pytest logs. I didn't figure why.

Thanks again, @oncleben31 !  This was an issue that was always in the back of my mind, and your fix resolves it in a good way.


Update header.md

When the 'Header with service name' is used, the WAVE always says there is a contrast issue with the 'Service name' text. Not sure why it is saying this. Maybe the text is a bit thin and it is causing this issue. Can this be looked into.
It may also affect the 'Header with links'

Actually the contrast issue seems to relate to the logo rather than the text. Not sure why this is.

@GillNewman1 This is because the fallback text defaults to black, which has no contrast to the header background. Setting the fallback text to white does the trick. Will look into a PR when we get to fixing our accessibility tasks.


Is there support for scaling agents?

Looks like a really interesting package you have here.
I have a job that varies in load depending on the time of day. For this scenario I'd like to scale the number of workers/agents with the load. I have a few questions with this in mind.
Does Gleam support me adding more agents as needed or must all agents be started and be running from the start?
What if some agent crash or shutdown due to scaled down activity. Will some other agent re-run the job that didn't complete?

yes. you can add more agents later.
Currently the assigned job will be retried on the same instance.


Performance compared to ForwardDiff

In this small example:
using ForwardDiff, StochasticAD, BenchmarkTools

function test(x, y, alpha)
    x = x * alpha
    return sum(x .* y)
end

x = rand(10000);
y = rand(10000);
alpha = 2.0;
@btime ForwardDiff.derivative(alpha -> test(x, y, alpha), alpha); # 44.045 μs (7 allocations: 312.67 KiB)
@btime StochasticAD.derivative_estimate(alpha -> test(x, y, alpha), alpha); # 727.524 μs (40028 allocations: 1.83 MiB)

One can see a ~10x difference in performance between ForwardDiff and StochasticAD. I am currently using StochasticAD for big models and it is causing a bit of a bottleneck. I would expect that both backends would have similar performance in this case since there is no discrete stochasticity involved.
Is there a way to reduce the number of allocations?
Any help would be appreciated!

Hi, thank you for the report:) It's a bit of a hectic time, so I just wanted to let you know that it may be a few weeks before I can get the chance to deeply examine your case and implement the performance optimizations described below.
Briefly: the slowdown is very likely the fault of the mutable state used in implementing the pruning backend: to see this, try running your example with backend = SmoothedFIsBackend(). For the particular case you've posted, I could very likely performance optimize it by avoiding creating a mutable state when there are no discrete perturbations, as a special case.
If your real, general problem does have discrete perturbations in all your triples, this wouldn't solve that case -- however, I've been meaning to revisit the way these "mutable" states work anyway and thus performance optimize the general case too :) But in the current design, the 10x slowdown over ForwardDiff is indeed to be expected :/

Thank you for your quick and detailed answer. My current use case looks like:

Sample x from a vector of Bernoullis
Run x through an expensive but deterministic model.

I guess that even though the expensive part does not have randomness, x will still have a discrete perturbation component that will need to be combined in 2. so it would not work...
I'll wait patiently for the update then :)

Ah, you could try registering your deterministic model as a single StochasticAD primitive viahttps://gaurav-arya.github.io/StochasticAD.jl/dev/devdocs.html#via-StochasticAD.propagate and see if that yields any speedup 🙂

Thanks for pointing me to propagate, I did not know about it. It did actually caused a speed-up for the expensive part of the model, but I realized that the bottleneck is caused by other simple operations between large vectors of triples, like the one in the original post.
On another topic, and perhaps I should open a new issue for this, how difficult would it be to implement GPU support for stochastic triples?

A new issue for that would definitely be appropriate!  I don't know much about GPUs, but my guess is that it would be important to write rules for vector operations (e.g. using StochasticAD.propagate), rather than only scalar code as in StochasticAD currently, as scalar code would be slow on a GPU? But perhaps I'm wrong about that... In particular, I wonder whether or not something like map on a GPU array using a scalar f would be slow or fast. I imagine ForwardDiff's Dual numbers would present a similar problem -- I wonder whether or not they currently play well with GPUs?

ok I may have a go at this and open an issue once I made a bit of progress

In particular, I wonder whether or not something like map on a GPU array using a scalar f would be slow or fast.

it would be fast if the scalar function f is written using "simple" operations


Add eslint-plugin-mocha

Added eslint-plugin-mocha, because I already pushed twice describe.only 😊

Oh, I didn't know this existed! I see it's already caught some other bugs too :P
I took the liberty of pushing the appropriate npm-shrinkwrap.json changes to your branch before squashing/merging. Hope you don't mind :)

Sure, thanks


Don't auto insert on the extract schedule

Objective

In #9822 I forgot to disable auto sync points on the Extract Schedule. We want to do this because the Commands on the Extract Schedule should be applied on the render thread.

This still needs to be tested with tracy to check that it works.

works fine !