Need a convenient way of exploding set/mask items for use with stack.add_link()

It would be useful to have an easy, and preferably internal, way of using stack.add_link() when a list of items found in the definition of a set or mask is what's needed, rather than the named set or mask given to the x or y parameters..
A stack-external approach would be to provide a convenience function that takes a list of variable names and inspects it for sets/masks, replacing set/mask references with their exploded items lists instead.
An stack-internal approach would be to somehow tell the method if you wanted to explode sets/masks or keep their type untouched. A second option here would be to have different rules for how stack.add_link() handles sets vs masks (explodes one and not the other) but that may result in more user-management of the meta than desired (you don't really want to have to generate a set-version of a mask if it doesn't exist already just so you can use the set in stack.add_link() - in that situation it would be quicker to list-comprehend the exploded items out yourself).

The prefered way to generate a Stack will be to use the DataSet / Batch .populate() command. Batch defintions are automatically unrolling masks (if desired) etc. Closing this.


add new cards endpoint

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: eoinmcafee00:x: bradrydzewskiYou have signed the CLA already but the status is still pending? Let us recheck it.


regex_dat: the order of the overrides is not specified in the spec

It isn't specified in neither the country-files page or the CT9 manual.

Can be fixed "simply" if we ignore repeat overrides (ie: 3G7[16][15], where we just consider the last one).
Original regex
r"""=?(?P<prefix>[a-zA-Z0-9/]+)
      (?:\((?P<cq>\d+)\))?
      (?:\[(?P<itu>\d+)\])?
      (?P<latlong>
          <(?P<lat>[+-]?\d+(?:\.\d+)?)
          \/
          (?P<long>[+-]?\d+(?:.\d+)?)>
      )?
      (?:\{(?P<continent>\w+)\})?
      (?:~(?P<tz>[+-]?\d+(?:\.\d+)?)~)?"""

Fixed(?) regex
r"""=?(?P<prefix>[a-zA-Z0-9/]+)
      (?:
        (?:\((?P<cq>\d+)\))
        | (?:\[(?P<itu>\d+)\])
        | (?P<latlong>
            <(?P<lat>[+-]?\d+(?:\.\d+)?)
            \/
            (?P<long>[+-]?\d+(?:.\d+)?)>
        )
        | (?:\{(?P<continent>\w+)\})
        | (?:~(?P<tz>[+-]?\d+(?:\.\d+)?)~)
      )*"""

The main problem is that the regex complexity then jumps upwards dramatically

oof damn. good catch

We need to choose how we approach this.
Note on the "fixed" regex: it's unclear how it would handle a case where multiple overrides of the same types are present for a since call/prefix.

Other question: Do we decide of that before or after release of 2.0.0?

I think decide later


filtered: add logger that will filter entries

add logger that will restrict entries to a given level and
it's able to modify fields programmatically

@karasz branch rebased against the current main. I was thinking about an alternative to FieldFilter that would allow transforming one field into many, extracting data from an http.Request object for example.
FieldOverride(slog.Logger, key string, value any)
FieldsOverride(slog.Logger, fields map[string]any)

MessageFilter option added on an additional commit

and now another commit to add the field overriders

Do we really need two functions? FieldOverride and FieldsOverride, a map is allowed to contain only one element.... albeit I understand the aggravation of being forced to create a map instead of passing strings around. I am undecided on this :-/
P.S. If you do not re-request a review my previous "Approve" still applies.

Do we really need two functions? FieldOverride and FieldsOverride, a map is allowed to contain only one element.... albeit I understand the aggravation of being forced to create a map instead of passing strings around. I am undecided on this :-/

having FieldsOverride was added mostly for symmetry WithField/WithFields, FieldOverride/FieldsOverride.
the change mentioned above would try to use FieldOverride if FieldsOverride isn't defined and so saving the user from being forced to implement both


OSRS Wiki Plugin

Problem Description
One of the issues I have when playing is when I need to go open up a browser and search google for game advice, etc. Almost every time I end up clicking a link to the RS wiki.
Solution
I think that a OSRS Wiki sidebar-plugin would be a very welcome addition for many players. They can click the plugin and be directed to the main page of the OSRS Wiki, which includes a searchbar.
We can work with the OSRS Wiki team to help make the feature as streamlined as possible. I believe it would benefit both parties because players would have easier access to OSRS-related help, and the Wiki team will likely get more readers and contributors.
There are obviously some things that need to be considered, namely

Performance: we want it to load as fast as a browser would
Interface: how do we fit wiki pages in a small window like a sidebar? Perhaps using the mobile website could work.

Although I am usually very busy with work, if I have any free time I'd love to start working on this new feature. Any feedback would be appreciated!

Mostly a duplicate of #3038? I don't think we want to implement an in-client browser.

Duplicate of #3038


other: update sbt-sonatype from 3.9.17 to 3.9.21

Updates org.xerial.sbt:sbt-sonatype from 3.9.17 to 3.9.21.
GitHub Release Notes - Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" }
}]

labels: sbt-plugin-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report
Patch and project coverage have no change.

Comparison is base (3f6de3a) 98.64% compared to head (99611d0) 98.64%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##           master      #22   +/-   ##
=======================================
  Coverage   98.64%   98.64%
=======================================
  Files          10       10
  Lines          74       74
  Branches        5        5
=======================================
  Hits           73       73
  Misses          1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


fix blaze core loader adjustment application for stale data

We need to keep track of the asof date stored at index 0 because once we convert date-space to index-space, we cannot disambiguate data that falls before the start of the window. This change fixes a problem where we have an adjustment for a data point from before the first data in a pipeline window which was overwriting a more recent asof date that was written at index 0.

Coverage remained the same at 87.247% when pulling 77993eab5247041424567eda120dbb0f46b02e18 on will-this-algorithm-ever-work into d73d89a3ef7d570422c1f24a971da66915bea419 on master.

Coverage decreased (-0.4%) to 86.815% when pulling 769a2c7a63ca81a3c95a66fdb582b03c2d4e8956 on will-this-algorithm-ever-work into d73d89a3ef7d570422c1f24a971da66915bea419 on master.


After recent update, it relies on API too much

One of the checks was being used incorrectly, it's fixed now.


Parsing queries from plpgsql

Trying to parse queries found in PLpgSQL_expr after calling pg_query_parse_plpgsql. In version 14 and later postgres changed how it returns the query in the struct. Using the examples below, before it would return SELECT EXISTS(SELECT 1 FROM sample WHERE name = n) but now it returns the original query EXISTS(SELECT 1 FROM sample WHERE name = n) with a parseMode field. Any issues/concerns with exposing parseMode and being able to pass it to parse functions?
CREATE OR REPLACE FUNCTION public.function_a(n TEXT)
RETURNS boolean LANGUAGE plpgsql
AS
$$
BEGIN
    IF EXISTS(SELECT 1 FROM sample WHERE name = n) THEN
        RETURN true;
    END IF;
    RETURN false;
END;
$$;

libpg_query on 13-latest branch
[
    {
        "PLpgSQL_function": {
            "datums": [
                {
                    "PLpgSQL_var": {
                        "refname": "n",
                        "datatype": {
                            "PLpgSQL_type": {
                                "typname": "UNKNOWN"
                            }
                        }
                    }
                },
                {
                    "PLpgSQL_var": {
                        "refname": "found",
                        "datatype": {
                            "PLpgSQL_type": {
                                "typname": "UNKNOWN"
                            }
                        }
                    }
                }
            ],
            "action": {
                "PLpgSQL_stmt_block": {
                    "lineno": 1,
                    "body": [
                        {
                            "PLpgSQL_stmt_if": {
                                "lineno": 1,
                                "cond": {
                                    "PLpgSQL_expr": {
                                        "query": "SELECT EXISTS(SELECT 1 FROM sample WHERE name = n)"
                                    }
                                },
                                "then_body": [
                                    {
                                        "PLpgSQL_stmt_return": {
                                            "lineno": 1,
                                            "expr": {
                                                "PLpgSQL_expr": {
                                                    "query": "SELECT true"
                                                }
                                            }
                                        }
                                    }
                                ]
                            }
                        },
                        {
                            "PLpgSQL_stmt_return": {
                                "lineno": 1,
                                "expr": {
                                    "PLpgSQL_expr": {
                                        "query": "SELECT false"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
]

libpg_query on 15-latest branch
[
    {
        "PLpgSQL_function": {
            "datums": [
                {
                    "PLpgSQL_var": {
                        "refname": "n",
                        "datatype": {
                            "PLpgSQL_type": {
                                "typname": "UNKNOWN"
                            }
                        }
                    }
                },
                {
                    "PLpgSQL_var": {
                        "refname": "found",
                        "datatype": {
                            "PLpgSQL_type": {
                                "typname": "UNKNOWN"
                            }
                        }
                    }
                }
            ],
            "action": {
                "PLpgSQL_stmt_block": {
                    "lineno": 1,
                    "body": [
                        {
                            "PLpgSQL_stmt_if": {
                                "lineno": 1,
                                "cond": {
                                    "PLpgSQL_expr": {
                                        "query": "EXISTS(SELECT 1 FROM sample WHERE name = n)"
                                    }
                                },
                                "then_body": [
                                    {
                                        "PLpgSQL_stmt_return": {
                                            "lineno": 1,
                                            "expr": {
                                                "PLpgSQL_expr": {
                                                    "query": "true"
                                                }
                                            }
                                        }
                                    }
                                ]
                            }
                        },
                        {
                            "PLpgSQL_stmt_return": {
                                "lineno": 1,
                                "expr": {
                                    "PLpgSQL_expr": {
                                        "query": "false"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
]

Trying to parse queries found in PLpgSQL_expr after calling pg_query_parse_plpgsql. In version 14 and later postgres changed how it returns the query in the struct. Using the examples below, before it would return SELECT EXISTS(SELECT 1 FROM sample WHERE name = n) but now it returns the original query EXISTS(SELECT 1 FROM sample WHERE name = n) with a parseMode field. Any issues/concerns with exposing parseMode and being able to pass it to parse functions?

I think that should work - for reference, that's the change in https://github.com/postgres/postgres/commit/c9d5298485b78a37923a23f9af9aa0ade06762db that caused this to work differently.
Rough outline of what we'd need to do:

Modify this here to also output the parseMode: https://github.com/pganalyze/libpg_query
/blob/009f19d7f867a699e1beab5fd545fbc07ad35647/src/pg_query_json_plpgsql.c#L628
Modify pg_query_raw_parse to accept the parseMode argument, and call raw_parser accordingly: https://github.com/pganalyze/libpg_query/blob/009f19d7f867a699e1beab5fd545fbc07ad35647/src/pg_query_parse.c#L12
Introduce a new top-level method that allows passing this (I'm thinking we make this a separate method to avoid breaking existing callers), e.g. add a pg_query_parse_protobuf_opts function that takes the parse mode as the second argument: https://github.com/pganalyze/libpg_query/blob/009f19d7f867a699e1beab5fd545fbc07ad35647/src/pg_query_parse.c#L110
Add tests :)

I might have missed something, but that's where I'd start. Do you want to try making a PR for this?

I can work on getting a pr for this. Just wanted to check if this is something you wanted to support.

Since the Postgres logs for log_min_duration_statement and auto_explain give us the query text with the first SELECT missing, I wonder if libpg_query should automatically try both parse modes before returning an error. It's potentially asking too much from library users to know ahead of time if the query is sourced from a function.

I wonder if libpg_query should automatically try both parse modes before returning an error.

There are 5 different parse modes. Do you want the library to try all 5? If there was an actual syntax error then how would the library know which error to return to user?

I could be wrong, but it seems the only ones that matter for this library are PG_QUERY_PARSE_DEFAULT and PG_QUERY_PARSE_PLPGSQL_EXPR.
This could possibly be handled by the Ruby/Rust/Go libraries instead of the C library.
Thoughts @lfittl?

How would you handle if PLpgSQL_expr return this query?
v := (SELECT value FROM sample WHERE name = n LIMIT 1);
Would that be on the user to find the query after the assignment? That seems more annoying than using the parseMode that is returned with the query on PLpgSQL_expr.

Ah okay, I stand corrected. That generates:
"PLpgSQL_expr": {
  "parseMode": 3,
  "query": "v := (SELECT value FROM sample WHERE name = n LIMIT 1)"
}

This is unfortunate. Both from an API ergonomics and a runtime performance perspective, it's not ideal that users will have to try parsing a query up to 5 times in order to generate a parse tree or fingerprint.
There is at least a hint in the auto_explain CONTEXT line, but since it's not part of the JSON it may not be good to rely on.
CONTEXT:  PL/pgSQL assignment "v := (SELECT 1 FROM (SELECT pg_sleep(1)) _)"
	PL/pgSQL function foo() line 5 at assignment

CONTEXT:  SQL expression "EXISTS(SELECT 1 FROM (SELECT pg_sleep(1)) _)"
	PL/pgSQL function foo() line 6 at IF


Add new getting started page

For https://github.com/microsoft/vscode-python/issues/16678

@kimadeline here's the new PR 😅

@luabud a few of the GIFs ballooned in size of multiple Mb. Would be worth to cut them down further and compress (ImageOptim or convert to animated webp). I'll try some techniques out, but reducing the length/detail would probably be a best.

@digitarald thank you so much for looking into it! I agree anything the sizes were too large, I changed many of the GIFs to be just screenshots to solve that (FYI @jmew). Now we have only 3 GIFs that altogether sum up to 1Mb, but I think we'll want to migrate to animations like you all did, so it should be a temporary thing.

Looks great. I was also hoping for the smoothly animated product video look, but sadly crisp loops just get too big. I want to eventually try lightweight SVG animations, which can also add some delight.


Documentation lacking

I'd like to tryout the 2.0 branch. Is there any documentation, or examples?

Thanks for your interest. Unfortunately Orbit 2 is not yet in a working state, we're working hard to get it there and expect to have an early release in the next few weeks.
Documentation will accompany the release.

Thanks. I'm looking forward to it!
Keep the good work up :slightly_smiling_face:

Orbit is really interesting, Any design concept ?

Hoping to learn more about the internal design and decisions made in the near future.

If understood explanation correctly Orbit 2 is somewhat similar to Microsoft's new project called Dapr? Dapr uses sidecar app made with Go language that is running side by side with your client app you can write in any programming language and sidecar handles cluster management, virtual actor routing and storage etc. https://github.com/dapr/dapr

Hi folks. We've done an initial round of documentation to help with the concepts and onboarding.
Orbit Docs
There is also a sample app which can help fill in some blanks and get you going.
Orbit Sample
Hope that's helpful and we can get some time to beef up the docs in the future. We welcome any feedback and we also take contributions, including documentation, if you have them.

Looks great!

If understood explanation correctly Orbit 2 is somewhat similar to Microsoft's new project called Dapr? Dapr uses sidecar app made with Go language that is running side by side with your client app you can write in any programming language and sidecar handles cluster management, virtual actor routing and storage etc. https://github.com/dapr/dapr

There are definitely similarities, which is interesting!


Allow calling SourceInclude without manually specifiying all properties

I've asked a question on Stack Overflow, because I wanted to use SourceInclude to make Nest (1.x) not retrieve all document fields from Elasticsearch.
To reiterate the idea I had, consider the following code:
[ElasticType(Name = "productDoc")]
public class Product
{
    [ElasticProperty(Name = "doc_id")]
    public string Id { get; set; }

    [ElasticProperty(Name = "fullname")]
    public string Name { get; set; }

    [ElasticProperty(Name = "desc")]
    public string Description { get; set; }

    // Et cetera...
}

public class SearchRepo
{
    public Product RetrieveProduct(string id)
    {
        IElasticClient client = new ElasticClient();

        var getResponse = client.Get<Product>(p => p
            .Id(id)
            .SourceInclude(
                i => i.Id,
                i => i.Name,
                i => i.Description
                // Et cetera...
            )
        );

        return getResponse.Source;
    }
}

What realistically would happen next (e.g. in a few weeks), is this:

Someone wants to retrieve one more property from Elasticsearch, e.g. ProductNumber;
This person adds this property to Product with a proper ElasticProperty;
This person then runs the Get query, but to his/her surprise the property remains empty;

The problem is that this person (probably me) will have to remember to add that property to the SourceInclude call. And programmers are pretty bad at remembering to do things that are not automated...
The thing is, my code above is not DRY: I'm specifying twice which properties I want to be mapped. Once in the Product, and once in the SourceInclude call. The first one is the logical place (e.g. if I do a MultiGet somewhere with Product I want to reuse the explicit mappings for SourceInclude) for me.
I'm looking for guidance. Am I actually formulating a proper feature request? Or would that feature be bloat for Nest and should I roll my own "typedPathLookups" method? Or am I missing an obvious better solution?

Hey @jeroenheijmans, some kind of convention sounds like it would be interesting but it feels specific to your particular use case; NEST tries to stay close to the Elasticsearch API and expose it in .NET using .NET idioms (well, C#!) without unduly layering on top so I don't think this belongs in NEST.
Maybe an approach where properties of the POCO that should be returned in GET requests are decorated with a specific attribute and write an extension method to GetDescriptor<T> that iterates over the properties, passing each one that has the attribute applied into the .SourceInclude() method? Since the attributed properties are not going to change at runtime, you would only need to iterate once and cache the collection.

@jeroenheijmans zooming back out to your initial comment:

because I wanted to use SourceInclude to make Nest (1.x) not retrieve all document fields from Elasticsearch.

Elasticsearch returns documents from a single_source field which is a single byte copy and actually much faster then doing source includes which has to parse each _source and write a modified json on the response.
This is very much unlike SQL where selecting the minimum number of columns is good practice.
If you do want to go with SourceInclude(...) and make sure that stays in sync I would refactor it to a call to a single static method that will e.g SourceInclude(PersonSourceIncludes)

Thank you @russcam  and @Mpdreamz for quick and insightful response.
I understand now that (and why) if I want to DRY out speccing which fields are SourceIncluded I need to write a utility method for that myself.


Dropping logs

Hello fellas,
I am trying to reduce the amount of logs I ingest, but I am unsure what is happening. I tried different ways, but none seemed to work. For instance, trying to drop logs from default and kube-system namespaces, I tried like this:
externalServices:
    logs:
         pod_logs:
              extraRelabelingRules: |-
                rule {
                   action        = "labeldrop"
                   regex         = "default|kube-system"
                }

and
externalServices:
       logs:
            pod_logs:
              extraRelabelingRules: |
                rule {
                   action        = "drop"
                   source_labels = ["__meta_kubernetes_namespace", "namespace"]
                   regex         = "default|kube-system"
                }

Am I doing something wrong?

You're very close!
The drop action is what you need, but source_labels = ["__meta_kubernetes_namespace", "namespace"] will result in both labels being combined into something like: default;default
This rule should work:
                rule {
                   action        = "drop"
                   source_labels = ["namespace"]
                   regex         = "default|kube-system"
                }

This works because we already set namespace to the same as the meta label __meta_kubernetes_namespace:
https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/templates/alloy_config/_pod_logs_discovery.alloy.txt#L15-L19

You're very close! The drop action is what you need, but source_labels = ["__meta_kubernetes_namespace", "namespace"] will result in both labels being combined into something like: default;default
This rule should work:
                rule {
                   action        = "drop"
                   source_labels = ["namespace"]
                   regex         = "default|kube-system"
                }

This works because we already set namespace to the same as the meta label __meta_kubernetes_namespace: https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/templates/alloy_config/_pod_logs_discovery.alloy.txt#L15-L19

Thanks @petewall, but that didn't work :(
I still see the logs coming

I just tested this and it's working for my deployment. Sometimes, updated the Helm deployment will update the ConfigMap, but it takes a while for the Alloy pod to get the latest. Restarting your alloy logs instances would pick it up faster.

@petewall that gave me some insights. The templating is not working for some reason, the configmap is not getting updated. But when I edit the config map directly and restarts the pod, it is working.
That is enough for me to move forward. Thank you very much @petewall !!!


README has illegal semi

queries.search('test framework', esClient); // illegal
.then((res) => {
    console.log('total', res.total);
    console.log('results', res.results);
});

Would be nicer if this was copy-pastable.

Thanks for the warning! Fixed.


how to import a *.md file in react project

I want to use markdown in my Github Pages with react ,but I met this error -- "Cannot find module "../../test.md",can you give me some suggest.thank you!

You would have to load the markdown to a string somehow. If you're using webpack, you can use raw-loader.
For a client side solution, you could load the markdown using  the fetch API or XMLHttpRequest.
Either way, this isn't really within the scope of react-markdown - its up to the application to get hold of the markdown.


D5: 5 Different Player Abilities

Possible Brainstorming for player abilities

Double Jump
Dash
Melee Attack
Ranged Attack
Special Attack?

Player now has ability to double jump
Double Jump
Dash
Melee Attack
Ranged Attack
Special Attack?
https://github.com/EricKnudsen256/2DSpring2021/commit/083f9c25d4676acf33ff400ba96c241b465c2dac

Player now has ability to melee attack on either side, should probably add some type of animation to show the hitbox when other deliverables are done

Double Jump
Dash
Melee Attack
Ranged Attack
Special Attack?

All abilities now completed, removed dash and special, replaced with wall jump and sprint
~~- Double Jump

Wall Jump
Sprint
Melee Attack
Ranged Attack~~


[5193] Check and remove duplicate jobs in Sidekiq deadset every minute

Context
https://trello.com/c/JPPG3NUI/5193-dead-job-set-cron-tasks
The sidekiq dead queue is frequently polluted by duplicated jobs which makes the support role more tedious when trying to fix and clear those jobs.
Changes proposed in this pull request

New service Sidekiq::RemoveDeadDuplicates to scan for duplicate dead jobs and remove them
Background job to run the service every minute

Guidance to review
Important business

[ ] Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
[ ] Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?
[ ] Do we need to send any updates to DQT as part of the work in this PR?
[ ] Does this PR need an ADR?

NB: Please notify the #twd_data_insights team and ask for a review if new fields are being added to analytics.yml

 Dead job set cron tasks


Motion dataset v1.1 download issue

I am trying to download the latest version of the motion dataset using:
gsutil -m cp -r "gs://waymo_open_dataset_motion_v_1_1_0/uncompressed/"  .
but it does not do absolutely anything, not even return an error. I tested the same command for the previous version:
gsutil -m cp -r "gs://waymo_open_dataset_motion_v_1_0_0/uncompressed/"  .
and the download starts without a problem. Any idea what could be happening?
Thank you in advance!

Please try this command: gsutil -m cp -r gs://waymo_open_dataset_motion_v_1_1_0/uncompressed .
I am not sure why your original command works for version 1.0.0 but not for version 1.1.0. I will look into what is going on there.

That does the trick, thanks a lot! Indeed it's strange that with the quotes it works with one version and not the other... but at least now I could start the download

use rsync instead of cp
gsutil -m rsync -i -r gs://waymo_open_dataset_motion_v_1_1_0/uncompressed .

That's crazy, I had exactly the same problem as the original poster, and running the command with the quotes removed made it work!
gsutil -m cp -r gs://waymo_open_dataset_motion_v_1_1_0/uncompressed .
It's a good thing that whoever set up the motion dataset took care to not include any spaces in any of the directory names or this fix wouldn't work!
I'm using Ubuntu 20.04, and I installed the Google Cloud SDK with this command:
snap install google-cloud-sdk --classic
Please fix this asap.

Not able to download waymo open dataset.
command I entered:
gsutil -m cp -r "gs://waymo_open_dataset_motion_v_1_1_0/uncompressed/" .
error:
Unknown option: m
No command was given.
Choose one of -b, -d, -e, or -r to do something.
Try `/usr/bin/gsutil --help' for more information.


feat: Reduce image size with distroless image

As mentioned in #25, I have worked on a smaller mumble image for personal use. The PR is not yet ready for merging as there are still some TODOs to address. I initially built this a longer time ago so I still need to check whether no functionality is lost by this PR.
Also please note that I'm still learning rust and do not claim this is the most elegant way to replace entrypoint.sh. I did this mainly as a learning opportunity.
Main Differences

Replace entrypoint script with rust binary

To be able to run without a shell

Copy over only needed shared libs

Open TODOs

[ ] Add shared libs for other database drivers than SQLite
[ ] Test build with current final (1.4.x), not only 1.5.x
[ ] Check that all options from entrypoint.sh are implemented

How much size reduction does the switch to rust actually give us? I wouldn't expect the shell binary to be that large tbh :thinking:

How much size reduction does the switch to rust actually give us? I wouldn't expect the shell binary to be that large tbh 🤔

The switch to using a Rust binary does not reduce the size at all.
The entrypoint replacement binary is around 1.6 MB itself. Given the difference of the distroless images with and without a shell, the Rust binary actually increases the size by about 200 KB (which is negligible though).

Container
Size

gcr.io/distroless/cc-debian12:latest (no shell)
24.8 MB

gcr.io/distroless/cc-debian12:debug (with shell)
26.2 MB

In general, the distroless images have no shell though by default (see also their README). That's the reason why I replaced the shell script with a single binary instead. I picked Rust just because I wanted to use it more.

Not sure I feel good about using Rust here. While it is a language that I wanted to learn at some point, I am not yet familiar with it. This will make maintaining this somewhat difficult.
Plus, I don't know how well versed potential contributors are in Rust. Would be a shame to lose potential contributors because of this 👀

That's of course understandable. I also can't share any experience how much effort maintaining the mumble-docker-entrypoint would be. I included two libraries/crates that will need updates from time to time in case e.g. security vulnerabilities are reported. Not sure how often that would be the case though.
To avoid replacing entrypoint.sh with a Rust binary, but still keeping the reduced image size, we could switch from a distroless image to something like busybox in the glibc variant (it seems to use the same GLIBC version that debian bookworm (12) uses as well). Then we don't need to pull in the other binaries (e.g. ls or cat which is used by entrypoint.sh).
One (major) drawback though: I couldn't find a version of the busybox image corresponding to Debian 11 yet with a quick search. On Debian 12, the current v1.4.287 release of Mumble won't build because of the OpenSSL version jump from 1.x to 3.x.
What are your thoughts on this?


174 cmdstanr sample args

Adding all non-deprecated arguments to cmdstanr::sample() to be configurable via get_mcmc_options(). Closes #174.
Also turn off messages for testing so that we are not getting CI warnings about ESS being capped. Note this doesn't seem to be working just by setting show_messages = FALSE, not seeing anything in global options either...
https://mc-stan.org/cmdstanr/reference/cmdstanr_global_options.html
@athowes @seabbs Do you have any suggestions from your experience testing large stan models? Suppressing the output in CI can be a separate issue #176. Guess I can always just use expect_warning()

What are the challenges here with testing it sorry? Some of the parameters have high Rhat because there are so many parameters?

Need to discuss the way in which defaults are being specified here. I do not think expecting the user to call a function that just builds a list is ideal.
Instead, I would suggest allowing the user just to provide the list directly. If you want to be able to fall back on defaults, I would do something like the following
wwinference <- function(ww_data,
                        count_data,
                        forecast_date = NULL,
                        calibration_time = 90,
                        forecast_horizon = 28,
                        model_spec = get_model_spec(),
                        fit_opts = list(),
                        generate_initial_values = TRUE,
                        initial_values_seed = NULL,
                        compiled_model = compile_model()) {
   # ... other code here
    fit_opts_use <- get_default_fit_opts()
    fit_opts_use[names(fit_opts)] <- fit_opts  # this overwrites all and only the values the user sets in `fit_opts`
    # maybe check for invalid options here?
   # .. more code here
}

If you really want to enforce argument names you can check the final list names correspond to valid $sample() arguments

Need to discuss the way in which defaults are being specified here. I do not think expecting the user to call a function that just builds a list is ideal.
Instead, I would suggest allowing the user just to provide the list directly. If you want to be able to fall back on defaults, I would do something like the following
wwinference <- function(ww_data,
                        count_data,
                        forecast_date = NULL,
                        calibration_time = 90,
                        forecast_horizon = 28,
                        model_spec = get_model_spec(),
                        fit_opts = list(),
                        generate_initial_values = TRUE,
                        initial_values_seed = NULL,
                        compiled_model = compile_model()) {
   # ... other code here
    fit_opts_use <- get_default_fit_opts()
    fit_opts_use[names(fit_opts)] <- fit_opts  # this overwrites all and only the values the user sets in `fit_opts`
    # maybe check for invalid options here?
   # .. more code here
}

If you really want to enforce argument names you can check the final list names correspond to valid $sample() arguments

In this proposed syntax, what you are suggesting basically is not specifying the default to be in the wwinference() function, but instead within it (e.g. replace what you wrote as get_default_fit_opts() with the current get_mcmc_options().
This seems pretty similar to me, I don't think I am following how it is different other than the user calling a function to build a list vs it being done internally within the wwinference() function. Maybe missing something.

As things are currently specified, the user is expected to configure options by doing:
fit_opts = get_mcmc_options(# my choices of options as keyword arguments go here)

They could also pass a list:
fit_opts = list(# my choices of options as list entries go here)

but then they wouldn't get the wwinference defaults for any unspecified options. Instead, sample() would fall back on its own defaults.
What I am suggesting is that a user shouldn't have to call a custom function of ours to override some but not all of our defaults, and should instead be able to pass a list.

As things are currently specified, the user is expected to configure options by doing:
fit_opts = get_mcmc_options(# my choices of options go here, as keyword arguments
)

They could also pass a list:
fit_opts = list(# my choices of options go here, as list entries
)

but in that case they wouldn't get the wwinference defaults for any unspecified options. Instead, sample() would fall back on its own defaults.
What I am suggesting is that a user shouldn't have to call a custom function of ours to override some but not all of our defaults, and should instead be able to pass a list.

I see, and we'd make sure that the elements in that list are only the available args to cmdstanr::sample()?

I see, and we'd make sure that the elements in that list are only the available args to cmdstanr::sample()?

Yes, though it might also be reasonable to defer to cmdstanr's own input validation there

I'd prefer not to bloat the wwinference() call anymore, will just export the get_mcmc_options() function

Oop the silent_wwinference() doesn't seem to be working properly

Need to have chains even though its the default bc wwinference() has to know how many chains to run


Do I need to install the corresponding database first?

as stated in the Readme, you need to install the related db tools, for mongoDB, mysql or postgreSQL.


Broken link in documentation

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
A link in docs located at this URL is seemingly broken.
To be specific, line 21 of the file docs/src/pages/styles/basics/basics.md has the link I am talking about.
...
- 🚀 It's [blazing fast](https://github.com/mui-org/material-ui/blob/next/packages/material-ui-benchmark/README.md#material-uistyles).
...

Expected Behavior 🤔
This link should be removed.
Steps to Reproduce 🕹
Not Applicable
PS I removed the link in my fork, but I thought it would be better to ask if I should go ahead for a pull request or is it the intended behaviour. So, should I go ahead to remove it?

@jalaj-k Thanks for reporting it, we plan to revamp these pages. What do you think about this solution, for now?
diff --git a/docs/src/pages/styles/basics/basics.md b/docs/src/pages/styles/basics/basics.md
index 6099fbc46d..7cebf9b5fe 100644
--- a/docs/src/pages/styles/basics/basics.md
+++ b/docs/src/pages/styles/basics/basics.md
@@ -18,7 +18,7 @@ Material-UI's styling solution is inspired by many other styling libraries such

 <!-- #default-branch-switch -->

-- 🚀 It's [blazing fast](https://github.com/mui-org/material-ui/blob/next/packages/material-ui-benchmark/README.md#material-uistyles).
+- 🚀 It's [blazing fast](https://github.com/mui-org/material-ui/blob/HEAD/benchmark/server#material-uistyles).
 - 🧩 It's extensible via a [plugin](https://github.com/cssinjs/jss/blob/master/docs/plugins.md) API.
 - ⚡ It uses [JSS](https://github.com/cssinjs/jss) at its core – a [high performance](https://github.com/cssinjs/jss/blob/master/docs/performance.md) JavaScript to CSS compiler which works at runtime and server-side.
 - 📦 Less than [15 KB gzipped](https://bundlephobia.com/result?p=@material-ui/styles); and no bundle size increase if used alongside Material-UI.

Sure. I will get this done.


Can't run arm-none-eabi-gdb through Ghidra in MacOS (M1)

Describe the bug
When trying to launch "arm-none-eabi-gdb" via raw gdb or remote gdb, I'm presented with an empty terminal window. I can run this just fine outside of Ghidra in a regular terminal window and can connect to the target, but running through the "Configure and Launch" dropdown doesn't work.
To Reproduce
Steps to reproduce the behavior:

Go to Debugger
Click on Configure and Launch dropdown the raw gdb or remote gdb
Enter "arm-none-eabi-gdb" in the gdb field (installed via brew and in my PATH so no absolute path needed)
Click launch. Observe the empty terminal window.

Expected behavior
Terminal window populates with information or errors at the very least
Screenshots

Environment (please complete the following information):

OS: macOS 14.6.1 (23G93) (M1 Max)
Java Version: openjdk 21.0.5 2024-10-15 LTS
Ghidra Version: 11.2.1
Ghidra Origin: installed via brew

If you navigate to the arm-none-eabi-gdb executable on your Mac (via the ... button on the right) or enter the full path in "gdb command", does it still fail?

Yes, just tried that and it’s the same result.

On Nov 23, 2024, at 5:07 PM, d-millar @.***> wrote:
If you navigate to the arm-none-eabi-gdb executable on your Mac (via the ... button on the right) or enter the full path in "gdb command", does it still fail?
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2495729585, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V634LGEFRSQCVI7QNF2L2CERFBAVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG4ZDSNJYGU.
You are receiving this because you authored the thread.

Any messages in the "Debug Console" window or in the launching terminal if you run ghidra from ./support/ghidraDebug (vs ghidraRun)?

Also, any messages at the top of the Terminal?  I ask because, in your screenshot, the Terminal appear to have scrolled down.

Nothing in the terminal scrolling up and in debug I see these in the terminal window I launched ghidradebug from:
DEBUG New Pty: /dev/ttys086 at (181,182)  (UnixPty.java:48)
INFO  local Pty session. PID = 25176  (LocalProcessPtySession.java:34)

Doesn't seem like errors though...

Tried copy/pasting the contents of that terminal window for the hell of it and it was just all spaces

Does Ghidra run the same terminal process as just running it directly or is it something different?

Hmmm, I know on my M1 /usr/bin/bash doesn't exist.  You might try editing the raw-gdb.sh file in Ghidra/Debug/Debugger-agent-gdb/data/debugger-launchers if that's try for you too.  I usually change the first line to /bin/bash.  That said, that usually throws a pretty obvious error.   Terminal process should be the native one.

I don't think that's it because if I put a different command in place of gdb (or even just type skdfaksdf in there) it throws an error on that line of the .sh so it seems like it does run the script and just hangs when it launches that particular bin.

Hmmm... ok so I just let it run in the background a while and it seems like it eventually ran it! Weird... so I guess it hangs for a really long time and if you let it keep running eventually it runs.

Problem is that the tracermi connection has already ended so it doesn't help me much that it runs eventually... still would have to manually do everything afterwards

If you say "Keep" in that pop-up window, the timeout should be ignored - not the case?

I can select "Keep" and the terminal keeps running (and eventually ran the bin), but the tracermi connection ends as soon as I select "Keep". Also not sure if I can repro it running again... trying to do it again and haven't had any luck yet. It's either a longer wait than I thought or something else is going on...

Ok, yea, the wait is just pretty long. Finally launched again. I do have these errors in the terminal window. Is this because the tracermi connection ended before it could run?
Python Exception <class 'ConnectionRefusedError'>: [Errno 61] Connection refused Error occurred in Python: [Errno 61] Connection refused Not connected

Oh actually I was wrong, the tracermi connection ends as soon as the timeout error popup shows up so even if I just sit at that popup and don't touch anything it still won't work...

Can I disable the timeout?

The timeout doesn’t  control the connection, so the connection is dying for some other reason.  Am assuming the parameters you’re using work fine in arm-none-eabi-gdb run from the console.  Not sure what’s going on here….

Yes, they run just fine in a separate terminal window. Was able to attach the debugger and everything… just had to manually enter all the commands the script runs and start up the tracermi connection manually as well.

On Nov 23, 2024, at 6:57 PM, d-millar @.***> wrote:
The timeout doesn’t control the connection, so the connection is dying for some other reason. Am assuming the parameters you’re using work fine in arm-none-eabi-gdb run from the console. Not sure what’s going on here….
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2495770586, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V636OWORPOGLVL5VZWGD2CE6CPAVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG43TANJYGY.
You are receiving this because you authored the thread.

Huh, so you successfully executed the “ghidra trace” commands as well - interesting.   A couple of options:  I can try to debug this if the target is something I can get a copy of.  Or you can download the Ghidra source, build it, and I can help you debug it.  Or we can wait until Monday and see if @nsadeveloper789  has any insights / things to try.  He’s frequently got better ideas than I do.

Oh, I have one more idea - is is possible your target is running when you connect?  We've had some issues recently, particularly with embedded targets, where we connect but either the target continues to run on connect or the no event is sent on connect so Ghidra's idea of the state is incorrect.  Am assuming you've defaulted to using "starti" in the initial dialog, but maybe try executing "interrupt" or hitting Ctrl-C in the Terminal immediately after the Terminal launches.

Sorry, ignore the "starti" comment - not relevant for raw- or remote-gdb, but I still think this might be the issue.

In this case my target is a remote device (a 3ds), but this issue happens before I even try to connect to it. Even running raw gdb without trying to connect to anything has the issue. I did try ctrl-c and entering “interrupt” in the terminal just in case, but nothing happened. I’ll look into building it then...

On Nov 23, 2024, at 8:15 PM, d-millar @.***> wrote:
Sorry, ignore the "starti" comment - not relevant for raw- or remote-gdb, but I still think this might be the issue.
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2495794185, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V633R32LM62E7CCXJQ7T2CFHF7AVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG44TIMJYGU.
You are receiving this because you authored the thread.

Ok, I’m all setup to debug with Eclipse now. Where do I need to add breakpoints to see what is going on?

On Nov 23, 2024, at 9:50 PM, Jonathan Reynolds @.***> wrote:
In this case my target is a remote device (a 3ds), but this issue happens before I even try to connect to it. Even running raw gdb without trying to connect to anything has the issue. I did try ctrl-c and entering “interrupt” in the terminal just in case, but nothing happened. I’ll look into building it then...

On Nov 23, 2024, at 8:15 PM, d-millar @.***> wrote:
Sorry, ignore the "starti" comment - not relevant for raw- or remote-gdb, but I still think this might be the issue.
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2495794185, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V633R32LM62E7CCXJQ7T2CFHF7AVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJVG44TIMJYGU.
You are receiving this because you authored the thread.

I tried this, but I didn’t see any issues… stepped a few times and then it was done and the terminal was running. I discovered another clue though. It seems that arm-none-eabi-gdb IS in fact running immediately, but the process is getting hung up when it launches from the ghidra terminal. I see it in Activity Monitor taking up 100% of one of the cpus. It stays there for around 5-6m and then disappears and that is when the terminal window finally updates. Running from a standard terminal window it just instantly launches… maybe it’s trying to communicate with the terminal that launched it and failing? I did see that what ghidra launches is called a “pseudo terminal” so maybe there are differences there?

On Nov 24, 2024, at 9:34 AM, d-millar @.***> wrote:
OK, in the current master, there is no raw-gdb.sh. Raw-gdb.sh is implemented as local-gdb.sh with no "Image" parameter. If I set "gdb command" to "/opt/homebrew/bin/arm-none-eabi-gdb", "Run command" to "starti", "Architecture" to "armv7", and everything else blank/unchecked, the Eclipse console window shows:
DEBUG New Pty: /dev/ttys003 at (112,117)   (UnixPty.java:48)
INFO  local Pty session. PID = 39869   (LocalProcessPtySession.java:34)
DEBUG 2024-11-24 12:26:27 Background processing started...   (ToolTaskManager.java:332)
DEBUG 2024-11-24 12:26:27 Task Start: Auto-Map by Module   (ToolTaskManager.java:337)
DEBUG (52176 ms) HANDLING: startTx(0,Create Root Object)   (TimedMsg.java:33)
DEBUG (4 ms) HANDLING: endTx(0)   (TimedMsg.java:33)
DEBUG 2024-11-24 12:26:27 Task Completed: Auto-Map by Module (0.106 secs)   (ToolTaskManager.java:442)
DEBUG 2024-11-24 12:26:27 Background processing complete (0.106 secs)   (ToolTaskManager.java:356)
From a breakpoint at that LocalProcessPtySession address, you should be able to walk forward through the code in UnixShellScriptTraceRmiLaunchOffer.java and TraceRmiLauncherServicePlugin.java.
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2496128394, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V635CKITC6GKCRNZBGLL2CIE3XAVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJWGEZDQMZZGQ.
You are receiving this because you authored the thread.

Hmmm, the subtleties of the pseudo-terminal are, I'm afraid, a bit of a mystery to me.  @nsadeveloper789 will have more insight on this as he implemented them.  If at any point you find a generically available target exhibiting the same behavior, I can definitely take a stab at debugging this.  Maybe, let's see first what @nsadeveloper789 says.

Here's another interesting thing... the pid of arm-none-eabi-gdb is 1 higher than the terminal process is that expected?

I think that's expected, i.e. arm-none-eabi-gdb is launched from the shell, so I would expect arm-none-eabi-gdb's pid to be at least the terminal's+1.

Does this target have a GUI component by any chance?  i.e. is it possible the remote display variables not getting passed through the terminal?

No, it’s just in the terminal.

On Nov 24, 2024, at 5:18 PM, d-millar @.***> wrote:
Does this target have a GUI component by any chance? i.e. is it possible the remote display variables not getting passed through the terminal?
—
Reply to this email directly, view it on GitHub https://github.com/NationalSecurityAgency/ghidra/issues/7217#issuecomment-2496487506, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF6V632NYCFWA4U6HB22VZ32CJ3HFAVCNFSM6AAAAABSLRM22CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJWGQ4DONJQGY.
You are receiving this because you authored the thread.

I tried running it from the old debugger targets window and got this error. Maybe this is the reason and the new flow doesn't catch it?

Yeah, I don't think that's related. There were  a lot of problems with the terminal in the old mode of running, which was one of the motivations for switching to the python-based variant.  I am running local-gdb.sh with arm-none-eabi-gdb and no target without a problem on my mac.  I think if the mi2 issue were still present for the python version that wouldn't work.

OK, just another data point: I am able to connect and debug an armv7 game emulator using remote-gdb.sh (with the /bin/bash edit and the full path to arm-none-eabi-arm), so am definitely thinking (as, I think, you are) that the failures have to do somehow with the specifics of your target.

I don't think it has anything to do with my target because it also happens with raw gdb which isn't connecting to a target. Seems more likely that it's something with my machine that's configured differently from yours. Are you running the latest version of arm-none-eabi-gdb from brew? Maybe a different version of java?

I suppose I should also explain about timeout and the Keep button. This is already in our internal ticketing system: When the launcher runs, Ghidra simultaneously listens on a socket, expecting a connection from the script. That connection's timeout is set according to the #@timeout header, or 10 seconds if not specified. When that timeout expires, we close the socket and display the error dialog. We recognize that closing the socket there is a little pre-emptive. The Keep button allows you to read the Terminal output and maybe diagnose things, but it doesn't (yet) afford the launcher any extra time.

Alright, let's see how close I can get to your setup:
Sadly< I have no way to get the first thing to match, but I feel like it's unlikely to be the culprit:
OS:  macOS 15.1.1 M1 Max
Java Version: openjdk 21.0.3 2024-4-16 LTS (OK, also different but again unlikely)
Ghidra Version: 11.2.1
Ghidra Origin: installed from source
built as described on the github.com/NationalSecurityAgency/ghidra, up to and including prepDev step
Ghidra modification:  Ghidra/Debug/Debugger-agent-gdb/data/debugger-launchers/local-gdb.sh
changed to use "#!/bin/bash"
python version: 3.9.20
bash version: GNU bash, version 3.2.57(1)-release (arm64-apple-darwin)
arm-none-eabi-gdb:  15.2, installed via brew
Experiment:
./Ghidra/RuntimeScripts/Linux/ghidraRun
fresh project
Configure and Launch... gdb
Image:
Arguments:
gdb command: /opt/homebrew/bin/arm-none-eabi-gdb
Run command: starti
Architecture:
Inferior tty: unchecked
Terminal output:
GNU gdb (GDB) 15.2
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=aarch64-apple-darwin24.0.0 --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:67: SyntaxWarning: invalid escape
sequence '\['
  AVAILABLE_PATTERN = re.compile('Available\[(?P<pid>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:68: SyntaxWarning: invalid escape
sequence '\['
  BREAKPOINT_PATTERN = re.compile('Breakpoints\[(?P<breaknum>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:69: SyntaxWarning: invalid escape
sequence '\['
  BREAK_LOC_PATTERN = extre(BREAKPOINT_PATTERN, '\[(?P<locnum>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:70: SyntaxWarning: invalid escape
sequence '\['
  INFERIOR_PATTERN = re.compile('Inferiors\[(?P<infnum>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:71: SyntaxWarning: invalid escape
sequence '\.'
  INF_BREAKS_PATTERN = extre(INFERIOR_PATTERN, '\.Breakpoints')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:72: SyntaxWarning: invalid escape
sequence '\.'
  ENV_PATTERN = extre(INFERIOR_PATTERN, '\.Environment')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:73: SyntaxWarning: invalid escape
sequence '\.'
  THREADS_PATTERN = extre(INFERIOR_PATTERN, '\.Threads')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:74: SyntaxWarning: invalid escape
sequence '\['
  THREAD_PATTERN = extre(THREADS_PATTERN, '\[(?P<tnum>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:75: SyntaxWarning: invalid escape
sequence '\.'
  STACK_PATTERN = extre(THREAD_PATTERN, '\.Stack')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:76: SyntaxWarning: invalid escape
sequence '\['
  FRAME_PATTERN = extre(STACK_PATTERN, '\[(?P<level>\\d*)\]')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:77: SyntaxWarning: invalid escape
sequence '\.'
  REGS_PATTERN = extre(FRAME_PATTERN, '\.Registers')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:78: SyntaxWarning: invalid escape
sequence '\.'
  MEMORY_PATTERN = extre(INFERIOR_PATTERN, '\.Memory')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:79: SyntaxWarning: invalid escape
sequence '\.'
  MODULES_PATTERN = extre(INFERIOR_PATTERN, '\.Modules')
/Users/llero/git/ghidra/Ghidra/Debug/Debugger-agent-gdb/build/pypkg/src/ghidragdb/methods.py:80: SyntaxWarning: invalid escape
sequence '\['
  MODULE_PATTERN = extre(MODULES_PATTERN, '\[(?P<modname>.*)\]')
Requires an argument. Valid arguments are arm, armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5te, xscale, iwm
mxt, iwmmxt2, armv5tej, armv6, armv6kz, armv6t2, armv6k, armv7, armv6-m, armv6s-m, armv7e-m, armv8-a, armv8-r, armv8-m.base, ar
mv8-m.main, armv8.1-m.main, armv9-a, arm_any, auto.
Connected to Ghidra 11.3 at <IP_ADDRESS>:61504
ARM:LE:32:v8 not found in compiler map
(gdb)

So, I guess, where are we differing?

I can confirm that adding the timeout allowed everything to run as normal (aside from the enormous wait). I also see that I may have 2 installations of java (one though brew and one through an externally downloaded package) and they might be conflicting with each other so I'll try and resolve that later tonight and see if that is my issue. Will update the thread with my findings.

Excellent - thank you!

How do you see the version of bash installed?

On Nov 25, 2024, at 7:10 AM, d-millar @.***> wrote:
bash version: GNU bash, version 3.2.57(1)-release (arm64-apple-darwin)

"bash --version" for me
which bash == /bin/bash

Ok mine is:
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
... strange that mine has a "23" at the end but is otherwise identical.

Do you see this when you run bash from the terminal?
jonreyno@Jonathans-MBP ~ % bash
The default interactive shell is now zsh.
To update your account to use zsh, please run chsh -s /bin/zsh.
For more details, please visit https://support.apple.com/kb/HT208050.

yes, same same

Ok, I cleaned up the other java installation, but it didn't make a difference. I did notice that my python is 3.12.2 though... not sure if that would make a difference?

We also differ here:
Yours:
This GDB was configured as "--host=aarch64-apple-darwin24.0.0 --target=arm-none-eabi".
Mine:
This GDB was configured as "--host=aarch64-apple-darwin23.4.0 --target=arm-none-eabi".

I think the 23/24 diffs are just a result of the fact that I'm running Sequoia.  Am not at my computer right now, but, when I am, I can certainly test against Python 3.12.  I generally use 12 or 13, but 9 is baked into the Sequoia release, so was defaulting to that one.

Just so we could rule OS version out, I upgraded to Sequoia. Unfortunately it didn't change anything...

Ok, I've just had a breakthrough! I went ahead and recompiled the latest Ghidra on Sequoia and lo and behold it ran the terminal immediately! So seems like the issue was a combination of OS + building latest. Now I need to solve this other issue where my debugger window is in a state where it no longer updates. None of the windows are populating and resizing doesn't refresh the windows either. I could only tell the terminal ran immediately due to the debug spew. By the way, I had gotten into this state even before I upgraded to Sequoia. Any ideas?

Is this going to limit what I can do with Ghidra btw? What will I not be able to do without a compiler map for the processor my target uses?

Hmmm, I just added that message - maybe that wasn't a good idea.  I should probably modify it so it's not a source of distress.  That said, it should have no negative impact at all AFAICT, i.e. walking the source, am pretty sure the compiler is just set to "default", which will end up treating your target as though it was compiled with gcc.  This mostly matters on Windows targets where the compiler actually affects the language model.

To follow up, it seems that gdb is only running for me on a debug build of Ghidra. I tried running via ghidrarun on the same build and it did the same hanging thing. Also... when I do run in debug and attach to my 3ds I think something is wrong because I don't get any trace info. Seems like it can't read the memory, but I can see the registers. Any ideas?
This is what it looks like when I first attach:

This is what the terminal outputs if I resume then interrupt again:

If you go to the Regions view and from the pull-down at the top right choose "Force full-view", you should have memory visible in the Dynamic Listing.  To get the Dynamic Listing to track a program loaded in the Static Listing is a little more work.  I recommend perusing the discussion in #7176 or any of the other references to arm-none-eabi-gdb or gdb-multiarch in Issues. The basic problem is your gdbstub on the 3ds (probably) does not support the command "info proc mappings", so Ghidra doesn't know where anything lives or what memory is valid.  Luckily, it's very easy to fake out the command, and we supply a template for doing so.
The InvalidObjPathError messages are a little more disturbing.  Not sure I know what's going on there.  As in #7176, you might try using the command "set debug remote 1" at the first break to set RSP into verbose mode.  Might be more obvious what packet is triggering the error.

I've lost track of what configuration is at play in each of these. When you run via ./ghidraRun, is this an official release (11.2.1), or did you do a full build with Gradle? What branch/revision?

It happens with the latest public release as well as a locally built version at latest. Strangely, debug was also not working on both the public release AND the locally built version when I ran on Sonoma, but after upgrading to Sequoia, debug on my locally built version works just fine (but ghidrarun still doesn't work).

In either case, since we have different behavior in debug vs ghidraRun, this is going to be difficult to track down. Next time it happens, run jps from a terminal to get Ghidra's PID, then jstack to dump that stacks of every thread. There will be a lot. My best guess is the Swing (AWT) Event thread and some other thread (probably the one performing the launch) will be in deadlock, and I'd like to know where.

I'm about to take a trip, but I will try this when I return in about a week.

re/2:

Best option here is to debug from your IDE and set a breakpoint on InvalidObjPathError. I'd like to know what path it's trying to get. When it hits, it should be in TraceRmiHandler#getObject(ObjPath path, boolean required). Inspect the path variable.
Also, take a look further up in the Terminal window and see if there are any other "Exception in batch operation" messages above those. It's possible a request to create the object failed earlier, which would cause these missing object (path) errors. Start at the top and find the first such error.

Will do, thanks! Not sure if it's related to these errors, but I did follow d-millar's advice and fake out the info proc mappings which made the memory visible, but I keep finding myself in a situation where Ghidra and gdb get out of sync. For example, Ghidra thinks we're paused, but gdb says we're still running. Once this happens my only option seems to be to disconnect and shutdown the 3ds since it still thinks it's being debugged.

re/3:

@d-millar has set you in the right direction. Note that at the moment "Force Full View" is only a partial solution. The better way is to use the script template to fake them out.
The relevant part of that long conversation is around here: gdb error: Assertion `current_thread_ != nullptr' failed #7176 (comment). You may need to read upward for some context.
You'll need info proc mappings to work to see dynamic memory.
To synchronize it with the static listing, may also want maint info sections -all-objects working. Depending on circumstances (e.g., use of ASLR or not) there may be easier methods to synchronize.

I did the info proc mappings stuff and that seems to be working. I'll look into the static listing stuff next week when I'm back. Thanks for the help!

Thanks for the info. Definitely interested in figuring out the state-out-of-sync thing, perhaps when you return. It's one thing when gdb and the target seem out of sync, but if gdb and Ghidra disagree, then our integrations need work. Enjoy your trip!


Tip73 Adding New Tip Java

Tip73 Adding New Tip Java

Adding brand new tip to the repo
Copy content was edited, and formatted for markdown
Unable to validate code (unfamiliar with validating in Java; attempted and failed)

Need to do:

[ ] Validate code snippet

Can you check out this file? It's throwing a syntax error. @Roseywinter


Need configuration for repos in a site

Will repo locations for MaaS streams as well as platform packages be part of the site design or will they be configured as part of the MaaS service deployment? If the former, need to add them to the Drydock object model.

Wouldn't that somewhat depend on whether we have some sort of local repo (with some convention that asserts its always the same regardless of a location) vs it might vary from deployment to deployment. If its the later I think it becomes part of the UnderCloud configuration information. Which in my mind is either a subset of a Site Description (Site Manifest) or a standalone SiteUnderCloudConfigManifest. The later case we would have workflows to manage that, similar to any other site workflow . But i.e. operations to modify configuration of UnderCloud components . i.e. k8s, docker, dry dock (maas) etc.
I think I am leaning towards the later. Which in a sense maps to "MaaS streams as well as platform packages WILL be part of the site design"


Support parallel Vlt based task execution

To achieve this, try to move dependency related with current working directory in VltApp class

this fragment to be analyzed, how to hijack cwd vault-cli-3.1.24-sources.jar!/org/apache/jackrabbit/vault/cli/VaultFsApp.java
   File cwd;
        try {
            cwd = new File(".").getCanonicalFile();
        } catch (IOException e) {
            throw new ExecutionException(e);
        }
        ExportRoot exportRoot = ExportRoot.findRoot(cwd);

Did you consider contributing to vlt as an alternative approach?

Best 4. Option or optionally 1 😉 2 and seem unacceptable (too high risk over value added)

@chutch - you're right.
After the small talk with @pun-ky, we decided to fork vlt codebase and refactor following code:
`File cwd;
try {
cwd = new File(".").getCanonicalFile();
} catch (IOException e) {
throw new ExecutionException(e);
}`
to:
`File cwd;
try {
cwd = createCurrentWorkingDirectory();
} catch (IOException e) {
throw new ExecutionException(e);
}
...
protected File createCurrentWorkingDirectory() throws IOException {
return new File(".").getCanonicalFile();
}`
This approach gives a possibility to override this method and then speciflying cwd path.
In matter of further releases of vlt tool, this change should be cosidered as a contribution to official vlt codebase.

@chutch - you're right.
After the small talk with @pun-ky, we decided to fork vlt codebase and refactor following code:
asdf
`File cwd;
try {
cwd = new File(".").getCanonicalFile();
} catch (IOException e) {
throw new ExecutionException(e);
}`
to:
`File cwd;
try {
cwd = createCurrentWorkingDirectory();
} catch (IOException e) {
throw new ExecutionException(e);
}
...
protected File createCurrentWorkingDirectory() throws IOException {
return new File(".").getCanonicalFile();
}`
This approach gives a possibility to override this method and then specifying cwd path.
In the matter of further releases of vlt tool, this change should be considered as a contribution to official vlt codebase.

the elegant way to implement is to stick to CmdRcp / do it in the same way
https://github.com/apache/jackrabbit-filevault/blob/trunk/vault-cli/src/main/java/org/apache/jackrabbit/vault/cli/CmdRcp.java#L41

to be covered in #633


Adding tests to Newsfeed page

:white_large_square: UI

[ ] Identify and resolve any new warnings in the console
[ ] Identify and resolve any new errors in the console
[ ] If there are modifications to configurations such as vite.config.ts, tsconfig.json etc., ensure to include a description

:white_large_square: Automation Scripts

[ ] Identify and resolve any new warnings in the console
[ ] Identify and resolve any new errors in the console
[ ] If there are modifications to configurations such as vite.config.ts, tsconfig.json etc., ensure to include a description

Add unit tests to newsfeed page

LGTM, thanks @martindevelops21


General Plan/Feature List

Based off of mal-id-cache, but nicer since I dont have to deal with python async things.
Store state in an db/file locally, see config file for ranges.
General Strategy/improvements from mal_id_cache:
Use search indexed by reverse ID to check ranges of MAL pages, stopping at the page specified by the local database state if we dont find anything.
instead of deleting/rebuilding cache every 'x' days, use the index (this) of all (unapproved/approved entries), and check against the current pages' last ID on the page, to see if we've passed it.
We have to cache the last unapproved anime/manga ID (while its unapproved), since (in mal_id_cache terms), its used as the 'base case' for the -2's page search. If:

entry was denied (its no longer on the MAL index page), we should use the next smallest MAL id as the oldest value, and cache that.
entry was approved (but theres no way to know that, till you actually iterate through search pages till you reach the oldest unapproved entry), then it can be added to known IDs and the oldest unapproved entry can be changed to the next oldest unapproved Id, which would determine the next "till we reach last unapproved entry runs" loop condition.

The names from the mal index page should be parsed, and compared against the known names. Its possible that entries are merged/deleted on MAL (https://myanimelist.net/forum/?topicid=1795522), so in that case, the Hiyori combiner would be sent some sort of message which describes "this may have changed", but its not certain. Hiyori can use the cached attributes to check against the ID that has changed, to determine if it was just a change to the title, or a merging of entries. Define some enumeration that describes how to deal with deleted/merged entries, as opposied to unapproved -> approved entries, as far as updating the global index. This will never work 100% (since an entry could still change without having the MAL name change, and a name can change without the MAL entry having being merged/replaced), but its better than not implementing it at all.
It may be possible to skip pages while iterating, if you know the next ID is more than 50 IDs back (which would be done by sorting a list of unapproved+approved), see the oldest unapproved manga entries, but this isn't necessary. In the best case, it reduces the requests made by 5 every 10 days or so.

just going to highlight this part because Im often confusing/double-guessing myself as to whether or not caching the last unapproved entry is necessary.
It is not necessary.
We can figure out what the last unapproved item was, by doing the set difference of all the IDs with the approved set.
If what was the last unapproved entry was denied, it no longer exists, so we don't have to check that far back. The next time we calculate the oldest unapproved ID, it'll be the next oldest unapproved entry, which is fine -- since the old one 404s now.
If what was the last unapproved entry was approved, the whole point of checking that as a 'page range' is that we'd find it, so we'd find it when we check the unapproved 'page range' ((-2) in mal-id-cache)'

Again, to dispute the commit message from then:
if the last entry was approved, theres a possibility
that the last entry is not found, since this uses
the last unapproved ID as the loop condition
to go back till when '-2' is the key
for unapproved entries.

at the point at which you're deciding what the last unapproved ID is, if that entry was approved, we're not aware of that -- its not the in the approved set of IDs
so, we assume its unapproved and go back that many pages, find it and mark it approved
next time, we dont go back that far, which is correct


us-va-city_of_manassas

{
    "coverage": {
        "country": "us",
        "state": "va",
        "city": "Manassas"
    },
    "data": "http://gisdata.ci.manassas.va.us/GIS_Site/Index.html",
    "type": "http",
    "website": "http://www.manassascity.org/index.aspx?NID=1083"
}

@jalbertbowden The data is definitely in raster form but I can't find any download link to process the raw data. Probably worth contacted them.

Closing as stale - we have a statewide layer.


MyCarePlanner - add functionality to allow patients to delete their data in the SDS for VA integration

The VA imposes a stipulation that patients be able to request to delete, or delete themselves, any data that they may have within the SDS.
By far the best way to handle this is to use built-in HAPI-FHIR delete APIs, and it is suggested to add a mechanism in the MyCarePlanner app to facilitate the user performing this action.
How, specifically, that should be accomplished is TBD.  However, we should dig into what such a call would look like and see about implementing something along those lines.
See:

http://hl7.org/fhir/R4/http.html#delete
https://hapifhir.io/hapi-fhir/docs/server_jpa/configuration.html#cascading-deletes
https://hapifhir.io/hapi-fhir/docs/server_jpa/configuration.html#controlling-delete-with-expunge-size
https://smilecdr.com/docs/fhir_repository/deleting_data.html (this one relates to Smile CDR, which I believe is related / integrated with HAPI FHIR but I can't say for sure)

That's probably enough to go on for now.

I do see in the SDS application.yaml that there are commented out references to delete_expunge_enabled so I think perhaps if we set that to true, that the SDS ought to be able to handle expunge requests.
all needs to be tested of course, but this would definitely be the best way to go about handling this VA requirement

Discuss during next technical meeting @joelmontavon


Unable to run include_recipe 'openvpn::server'

[2016-05-30T00:52:24+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2016-05-30T00:52:24+00:00] ERROR: could not find recipe server for cookbook openvpn
==> default: [2016-05-30T00:52:24+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

I can work around it by specifying the type as server and running include_recipe 'openvpn' instead

I am seeing this too. I am not sure what is going on but when I do a fork of this repo and then point Berksfile to it, I can run include_recipe 'openvpn::server' just fine.

master is on 2.1.1 while supermarket is on 2.1.0
2.1.0 only has the generic default recipe. https://github.com/xhost-cookbooks/openvpn/tree/v2.1.0

There wont be anymore releases for v2. We do need contributors for https://github.com/xhost-cookbooks/openvpn/milestones/v3. Use of the server recipe works fine in master.


I need some examples

How should I add icons? I need some examples.
For example, ask_allow_block.png
What is the code of?

As I said in the description, this isn't a Tkinter project, and I don't really have plans with it other than including it in sv-ttk, but here's a little example
import tkinter
from dialogs import ask_allow_block

root = tkinter.Tk()

root.tk.call("source", "sun-valley.tcl")
root.tk.call("set_theme", "dark")

icon = tkinter.PhotoImage(file="~/Pictures/foo.png")

ask_allow_block("Spam", "Ham egg", icon=icon)

root.mainloop()


Non-supported typings as ReturnType.

There seems to be an issue with (yet) non-supported typings, even if the type in question is only a return type.
With the latest version (via pip) and python 3.8.5, this example code
from plum import dispatch
from typing import Dict

@dispatch
def foo(x: int, y: str) -> Dict[int, str]:
    return {x: y}

print(foo(1, "1"))

yields the following error:
Traceback (most recent call last):
  File "main.py", line 5, in <module>
    def foo(x: int, y: str) -> Dict[int, str]:
  File "/home/bob/dev_env/lib/python3.8/site-packages/plum/dispatcher.py", line 38, in __call__
    signature, return_type = extract_signature(method)
  File "plum/function.py", line 81, in plum.function.extract_signature
  File "/home/bob/dev_env/lib/python3.8/site-packages/plum/type.py", line 353, in ptype
    f'There is currently no support for "typing.{obj.__name__}". '
  File "/home/bob/anaconda3/lib/python3.8/typing.py", line 760, in __getattr__
    raise AttributeError(attr)
AttributeError: __name__

Is this expected behavior or is there any way to resolve this?

Hey @pdeibert,
Currently, the Dict type from typing is not supported, but it should be relatively easy to add support for it.
Moreover, unfortunately the error message There is currently no support for "typing.{obj.__name__}". (...), which would've been descriptive, raised an exception, because __name__ is not available. That's very sloppy on my part.
I'm currently on holidays, so I won't be able to add support for Dict and fix the error message right now, but I will be able to fix those when I get back.

I've added support for typing.Dict in the latest release v1.5.0. Your snippet should now work:
from plum import dispatch
from typing import Dict

@dispatch
def foo(x: int, y) -> Dict[int, str]:
    return {x: y}

>>> foo(1, "1")
{1: '1'}

>>> foo(1, 1)
TypeError: Cannot convert a "Dict[builtins.int, builtins.int]" to a "Dict[builtins.int, builtins.str]".


In autocomplete, I need my ngModel value to be as 'Id' not as 'text'.Help me solve this!!

Hi,

I have used like this . in my ng model i am getting text(display-property-name) in my ngModel variable. , but i need value (value-property-name) in my ngModel variable.
<input class="form-control" auto-complete [(ngModel)]="sortObj.ResponsibleId" [source]="individuals"
display-property-name="EmployeeGroupName"  value-property-name="EmployeeGroupId"  accept-user-input="true"/>

How to set width 100% ?

Thanks for using this module. You can see your ngModel value by using ``{{sortObj.responsibleId | json}}. If your type of ngModel is an object, e.g. a JSON,  you will see an object, if not, you will see a string.

You can override your css. For example,

.my-div .ng2-auto-complete{
  width: 100%;
  input{
    width: 100%;
  }
}

Closed for inactivity

Hi,
Can anyone explain me how to use an id as ngModel value and text in the dropdown, just like how we do in any html select.
Thanks in advance.
Sudeep


Add name information directly on the haploweb

Let's add a button that displays each haplotype name next to the corresponding circle.

Nice, but it would be nice to be able to change the font and font size, as well as to be able to nudge the text to the left, to the right, to the top or to the bottom (i.e. implementing four arrows).

It's done now so I close this.


Support for DELETE, HEAD, OPTIONS, TRACE HTTP methods

I was using DELETE in test and noticed its absent from MockServerServlet. I think other methods might also be useful even though use cases for them are rare.
There were no unit tests for POST and PUT (only for GET) so I didn't provide unit tests for added methods as they all delegate to mockResponse() like doGet does)

I'll merge this in but I think some tests should be added.  I agree there weren't any before but I'll fix that when I get a chance.

Thanks!


🐛 Combo time is not clear

Describe the bug
You can still combo just after the timer reaches end (like one second after), need to go deeper in the logic of the combo to understand what is the problem and update the UI to display time remaining accordingly
To Reproduce
Steps to reproduce the behavior:

Match a color to start a combo
Get the next color exactly when the UI bar reach 0
You'll get a +2 even if you expect to have missed the combo

Not needed anymore with new combo system


Vulnerability roundup 110: binutils-2.35.2: 1 advisory [7.8]

search, files

[ ] CVE-2021-45078 CVSSv3=7.8 (nixos-21.11, nixos-unstable)

CVE details
CVE-2021-45078
stab_xcoff_builtin_type in stabs.c in GNU Binutils through 2.37 allows attackers to cause a denial of service (heap-based buffer overflow) or possibly have unspecified other impact, as demonstrated by an out-of-bounds write. NOTE: this issue exists because of an incorrect fix for CVE-2018-12699.

Scanned versions: nixos-21.11: 3ddd960a3b5; nixos-unstable: 5aaed40d22f.
Cc @ericson2314

See also: #147859

Already fixed in #151658


Alert Stream: enable expert mode

Hi mezz64,
First of all thanks for the work on this module.
I use it primarily as a binary sensor in home assistant, and see a use for creating (optionally) multiple motion sensors per camera if the configuration is set to "expert mode".
I believe the starting point to validate the camera capability using the /ISAPI/System/Video/inputs/channels/1/motionDetectionExt call to get marker XML <activeMode>expert</activeMode>
adding to the API for "extended motion".
Do you see value in investigating this path?
Regards

It could be a worthwhile addition.  I'll need to play with the expert mode on my own cams to make sure I can debug locally.  Not sure when i'll have time to get to it, but i'll leave this issue open as a reminder.

Ok, thanks. Time is always the enemy!
Let me know if you would like any assistance. I have written some routines consistent with PyHik which grab the data.

I'm always open to PR's.  Feel free to submit one with your changes and i'll make some time to review it.

@mezz64: could you please review PR for this issue?


Add JSqueezeFilter.

Can the composer.json suggest be updated.

Current coverage is 86.53% (diff: 100%)

No coverage report found for master at 0db3762.

Powered by Codecov. Last update 0db3762...5971472

Can the composer.json suggest be updated?

Done. I would also suggest removing jsmin from the suggests list and deprecating it's filter class. It's no longer maintained.

I can deprecate the jsmin filter.

This is good to go then.


Update setting-up-a-connection-to-a-virtual-machine-in-visual-studio.md

Correcting instruction 1 in the  "Starting the debugger" section to say that the "Attach to process" option is in the "Debug" menu, instead of the "Tools" menu

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

Thanks @kevinchannon for the PR, this change should be live within a few minutes


Create action

Ref https://github.com/FuelLabs/action-fuel-toolchain and https://github.com/actions-rs/cargo
We want an action like the cargo action above that allows users to run forc after it's been installed with the fuel-toolchain action above. So something like
on: [push]

name: CI

jobs:
  build_and_test:
    name: Sway project
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Fuel toolchain
        uses<EMAIL_ADDRESS>      - name: Run forc build           # <--- step is what this issue is for
        uses: FuelLabs/action-forc@v1
        with:
          command: build

I don't think this is necessary. It's easy to run the forc CLI in a workflow step with any options desired. This would just add overhead IMO.


☂ Review unhandled events for beta

This is a subset of:

#135

For the beta milestone, we won't handle all the events in the Zulip API. But we should review the list of them and identify any that should be handled for the beta (and aren't already).
We'll then file issues for those, in the beta milestone.

Done. See #135 for details.
It turns out we're nearly done with the events we'll want for the beta! The main such issue, which I just filed after this review, is:

#346

which calls for handling the event types subscription, user_topic, and muted_topics which is a deprecated form of the latter.
There's also one we already had in the tracker:

#165 (calling for handling submessage events)

though that's in the back half of the beta milestone, where I'd feel pretty OK with a beta that left it out.


Fix incorrect xaml source code in InfoBadgePage.xaml

Description

Self-explanatory
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Linked to #822.

mention issue #822

Looks great! Thank you @HO-COOH for fixing that. I'm approving it now :)


Inference on our own images

Hi! Thank you for your work. Like some others, I've modified the code to take my own dataset and get predictions on it using dummy values for the ground truths, but the points look nothing like expected.  Any help would be appreciated.
Hey, I rewrote a script to do inference on single image. However, I observed that the predicted points are not correct after transformation. Any suggestions relating to it?
Originally posted by @testingshanu in https://github.com/HRNet/HRNet-Facial-Landmark-Detection/issues/7#issuecomment-502136273
Thank you! Ana

@analogously
Hi,
I think, center and scale must be calculated exactly, not dummy values.
If you don't do that, you should try.
https://github.com/HRNet/HRNet-Facial-Landmark-Detection/issues/3 will be helpful.
FYI!


Redo op cost for array functions

After talking to Divran about the op cost of array functions and why they cost more than the same function for tables he said that they just use the wrong cost.
This being said I think the op cost should be either the same as the table cost or less as they're arrays. At the moment the only real reason to use arrays is when working with the default functions in E2, as all the functions cost ~5 more, so you'd just be wasting ops.
Another example of this is iterating through an ordered array vs ordered table. Each test is using 5 number entries and a numeric for loop.
Array - 202
Table - 181
I would've tested foreach loops but I don't believe they take into account the op cost for getting the value as for the same test above it costs 139 ops for arrays. And for the time being you can't iterate over numeric indexes in tables.

+1
Simply accessing from an array (e.g. return myArray[1,number]) is almost three times as costly ops-wise as "accessing" a normal variable (unscientific test). I don't know if that makes technical sense, but it feels a little unfair to me as a user. In extreme cases, one might be tempted to have 40 separate variables and a ton of duplicated code instead of using an array just so you don't blow the budget. Which would be horrible :)

yay more issues that have been completely forgotten


Failure in cubic_bezier_perf__e2e_summary: Could not create an OpenGL, Vulkan or Software surface

Happened on https://github.com/flutter/flutter/commit/7181c7a86af164af24e27fe50bc8a4753857485e , then passed on re-run.
compilation true --ez enable-dart-profiling true --ez start-paused true --ez verbose-logging true com.example.macrobenchmarks/com.example.macrobenchmarks.MainActivity
2020-10-15T14:37:16.561227: stdout: [+1027 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.example.macrobenchmarks/.MainActivity (has extras) }
2020-10-15T14:37:16.561823: stdout: [        ] Waiting for observatory port to be available...
2020-10-15T14:37:16.823428: stdout: [ +261 ms] E/flutter (29914): [ERROR:flutter/shell/platform/android/android_context_gl.cc(182)] Could not create an EGL resource context
2020-10-15T14:37:16.827168: stdout: [   +3 ms] E/flutter (29914): [ERROR:flutter/shell/platform/android/android_context_gl.cc(53)] EGL Error: EGL_BAD_ALLOC (12291)
2020-10-15T14:37:16.827883: stdout: [        ] F/flutter (29914): [FATAL:flutter/shell/platform/android/platform_view_android.cc(97)] Check failed: android_surface_ && android_surface_->IsValid(). Could not create an OpenGL, Vulkan or Software surface to setup rendering.
2020-10-15T15:37:15.149998: Task execution finished

Task failed with the following reason:
Timeout waiting for task completion: Future not completed
Deleting build/ directories, if any.
2020-10-15T15:39:17.868119: Agent ID: flutter-devicelab-linux-42020-10-15T15:39:18.242377: Observatory listening on http://<IP_ADDRESS>:20000/
2020-10-15T15:39:18.937317: Running task with a timeout of null.
2020-10-15T15:39:18.938640:

Also happened on frame_policy_delay_test_android on 046cb5ad074f7bdc44658b4c80a748fff4f589f4

EGL_BAD_ALLOC is a results of the GL (in this case) driver running out of resources. Is there are reduced test case for this? If not, it might depend on what else the device is doing at that time.

No, but totally reasonable that the device could run out of memory. I added some logic to automatically reboot the devices after a certain number of runs, it would be worth scrubbing through the test logs to see if this is still happening


Call t.end to finish tests (latest tap compatibility)

Fixes  https://github.com/thlorenz/inline-source-map/issues/18

Even though not a huge fan, I'll merge this if you update the tap dependency in this package to 8 as well.
I'd love it even more if we'd switch over to tape as I prefer that these days, but that maybe too much work.

Better later than never ;) I'll have a look.


Remove unused &mut self in key constraint extension parsing

Following on from #58, I noticed that key constraint extensions don't need &mut self in method calls either.
Thanks for the pickup @baloo!

One would have assumed I could have read through the other items of the struct :clown_face: .
Thanks!


Check shape, input on compile_onnx_model.py

Summary
On frontend compiler exception, check the input shape and input to improve logging back to user.
This is useful for when users forget to include -s or -i.
Justification
I understand arg_parser.py is convenient common code, but that design prevents checking of required args. Current program failures are not very descriptive for the user. Potentially, the other compile scripts should be updated to check required params as well.

Thank you for your suggestion.
Our organization's policy prohibits directly into this repository. Therefore, we have merged your patch into the next release candidate (probably v2.4.0) in our local development repository.

Understood.
These policies make me sad! I think my changes could be improved slightly; I might update the PR one last time.


empty_clicked signal doesn't fire if Tree has hide_root enabled

Godot version
4.1.2.stable.mono
System information
Windows 10 - Forward+ Vulkan
Issue description
In GDScript, empty_clicked signal doesn't fire if Tree has hide_root enabled. Have not tested C#.
Steps to reproduce

Make a scene with a tree. Add a root item. Connect empty_clicked signal to a print or something. It should print when empty space is clicked
Set hide_root to true. It no longer prints when empty space is clicked.

Minimal reproduction project
N/A

I can confirm this, I just tried it in my project.
If the tree has no items and root is hidden then empty click will not trigger.
However it the tree has items and root is hidden then empty click will trigger.
So workaround for this is to not hide root if the tree is empty and also make sure you handle right click on empty / root item the same way. Then hide root once you add something to the tree.

Experiencing the same bug at the moment. Anybody working on fixing this at the moment?

For me the signal is not emitted regardless of hide_root, if there are no items.

For me the signal is not emitted regardless of hide_root, if there are no items.

I don't know if this is something that should matter. If there are no items to begin with, should root be hidden at that point? Because the first TreeItem which you'd create won't show up anyway. Maybe this should be an update to the documentation of the signal?


can't update "undefined" players

[20:37:44] Updating price for undefined...
never gets passed that error.
Also, what players/bidding settings have people found that work? I'm struggling

check out a few posts I made on the elitePVPers forums about settings, they might help you
http://www.elitepvpers.com/forum/fifa/4231209-release-free-bot-fifa-17-autobuyer-6.html
Now, when it comes to you're 'undefined' error, try re-installing, or just clearing your player list.

Do you have any weird looking players in your list (No name or picture)?  If so, clear it out and re-build it.


tag/release missing for v2.4.2

Simply missing the tag for selecting the most recent version you have published.

Thanks, pushed now.


How to save and load ANN data?

I found export(), but no "import". Also export() outputs string, however in JS we expects JSON to play with.

The output format is implemented in the original FANN source code which is why it's a string rather than a JSON blob. You can import by using the string as the first argument in FANN.create(myExportedString).

Nice! Thanks!
I had never worked with Emscripten, but... What you think about having a JSON based get/set methods for weights? Can you point a right way to do it?


Invalid address length, expected 40 got 34 bytes

JsonRpcError: Invalid address length, expected 40 got 34 bytes
    at JsonRpcError.ExtendableBuiltin (file:///Applications/WebchainWallet.app/Contents/Resources/app.asar/app/index.js:25590:30)
    at new JsonRpcError (file:///Applications/WebchainWallet.app/Contents/Resources/app.asar/app/index.js:25619:116)
    at file:///Applications/WebchainWallet.app/Contents/Resources/app.asar/app/index.js:25656:19

the wallet address wasn't complete


News and Events

Create news and events section and handle async operations.
Sort news by most recent (or featured) and sort events by closest upcoming.

Relies on #7


Travis: Prevent .lastUpdated file in Maven directory from always

updating the Travis cache.
This will cut down the test duration of shard 2 by ~25 seconds.
The Java test time doesn't seem to increase when the file is no longer
cached.
@enisoc

LGTM


Test parity across languages

.NET, Java and Python

PR: https://github.com/Azure/azure-sdk-for-net/pull/5639


error when building docker

Good Morning,
when I am building the docker image I get the following error:
Collecting urllib3<1.27,>=1.21.1
Downloading urllib3-1.26.2-py2.py3-none-any.whl (136 kB)
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
lxml from https://files.pythonhosted.org/packages/8e/9c/74248ebfd8893bc8ae87abdcc15dd195d01a737ec6e5f91fa503f667e1b9/lxml-4.6.2-cp39-cp39-manylinux1_x86_64.whl#sha256=7e9eac1e526386df7c70ef253b792a0a12dd86d833b1d329e038c7a235dfceb5 (from -r /src/requirements.txt (line 2)):
Expected sha256 7e9eac1e526386df7c70ef253b792a0a12dd86d833b1d329e038c7a235dfceb5
Got        5e153b711867e66826c7354753674e4fe4baae5c58dd20681fe4029f004e28fb
urllib3<1.27,>=1.21.1 from https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473 (from requests->-r /src/requirements.txt (line 4)):
    Expected sha256 d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473
         Got        69d396d850e63a8aea3d4b22a3ae6197b34574e6264ba8b08cff41f37f0ebc8e

WARNING: You are using pip version 20.2.4; however, version 20.3 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
The command '/bin/sh -c pip install -r /src/requirements.txt' returned a non-zero code: 1
[root@localhost inventory-hunter]#

Can you git pull and try again using this build command instead:
$ docker build --build-arg requirements=requirements_lite.txt -t inventory-hunter .