From RosCostmap not converting mid values

Ros Costmap

Converted Costmap

@AlexReimann did you see this problem?

Was a problem with the occupancy grid converter from a .pgm file which had incorrect values in it.


A mysql comment (eg -- some comment) at the start of a migration causes a database error

Bug description
When a sql migration contains a comment in the first line, the migration fails because of a "SQL syntax" error.
This appears to be because the sql is being reformatted and the second line is appended to the end of the first, thereby becoming part of the comment.
This seems to be part of a wider issue that sql migrations are being processed / formatted before they are executed on the database.
I'd like to understand why the migrations are being changed at all; it seems like the easiest way to avoid errors is to send the sql exactly as it is in the migration so that developers can fix issues without having to understand the inner workings of the prisma-migrate code.
How to reproduce

Create a mysql migration containing a comment in the first line, eg:

-- this migration backfills some data
UPDATE table1
SET column1 = 1;

Run yarn prisma migrate dev or npm prisma migrate dev

Expected behavior
The migration to successfully apply without errors.
Prisma information

The prisma schema doesn't matter, as the migration sql could be anything.
Environment & setup

OS: Mac OS
Database: MySQL
Node.js version: 14.16.1

Prisma Version
2.28.0

A normal migration created by Prisma Migrate usually has a comment in the first line:
model Foo {
  id      Int                      @id @default(autoincrement())
  content Unsupported("tsvector")?
}

-- CreateTable
CREATE TABLE "Foo" (
    "id" SERIAL NOT NULL,
    "content" tsvector,

    CONSTRAINT "Foo_pkey" PRIMARY KEY ("id")
);

To double check I also manually created a new migration folder with a file similar to yours, and it works just fine with prisma migrate dev or prisma migrate deploy.
This is the version I am on:
λ npx prisma -v
Environment variables loaded from .env
prisma                  : 3.4.1
@prisma/client          : 3.4.1
Current platform        : windows
Query Engine (Node-API) : libquery-engine 57771c0558568c7d08bd34c7248af5244ae16bd9 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 57771c0558568c7d08bd34c7248af5244ae16bd9 (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core 57771c0558568c7d08bd34c7248af5244ae16bd9 (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt 57771c0558568c7d08bd34c7248af5244ae16bd9 (at<EMAIL_ADDRESS>Default Engines Hash    : 57771c0558568c7d08bd34c7248af5244ae16bd9
Studio                  : 0.438.0

Can you please try with this newer version or provide some more information what you are doing? Can you share the actual migration file you are using maybe?
What output are you getting for the error message? Can you active DEBUG=* before running that?
Thanks.

Ping @luisgregson

Can you take another look @luisgregson? Otherwise we will have to close this issue.


Refuel not working correctly

It did not even try to refuel, it just stopped, turned around ship and then located target.

Hey there, for me to be able to help you I'm going to some more details about what happened. Also, please attach your autopilot.log.

https://pastebin.com/BrYk7U0d

I thought I was having a similar issue with it skipping the refuel step. However it was working I just wasn't comfortable with how low it got before it triggered.
You can change the refuel threshold from 33% to 100% to check and see if its triggering.
That is located in the dev_autopilot.py and is part of the Refuel function.
If that still does not fix the issue check the star class. I think the refuel step only triggers when scoopable_stars = ['F', 'O', 'G', 'K', 'B', 'A', 'M']

An easy thing to do for exploration would be to filter your route by the KGB-FOAM (scoopable star classes) at least that's what I did and it worked just fine, since then any star on the route would be scoopable.

No no, It was trying to refuel, but it did loop too soon. Not around star but before it. Not sure why.

Or is loop before star normal procedure before aligning to target?

Hey there, this project has been on a hiatus for a while so please forgive my late reply. The autopilot assumes fuel has been checked before it is started, so if you had low fuel and turned on the autopilot expecting it would try to refuel immediately, that is not the case. The procedure it follows is to only attempt refueling after a jump, and as @hbzxc stated, it will only refuel on scoopable stars, so the ideal is to set your route filter to said stars as recommended by @ScreaminSteve. I hope this answers your question.


Build failure with QT5 (5.5)

I am desperately trying to get Capybara Webkit running on CircleCI's Ubuntu machine.
Our tests were failing locally due to Capybara Webkit not being able to load our assets.
This problem has been manifesting itself as ElementNotFound errors, as well as JS not executing properly under test:
Capybara::ElementNotFound:
       Unable to find css ".dropdown .spec-actions"
     # /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.1/lib/capybara/node/finders.rb:44:in `block in find'
     # /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.1/lib/capybara/node/base.rb:85:in `synchronize'
     # /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.1/lib/capybara/node/finders.rb:33:in `find'
     # /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.1/lib/capybara/session.rb:699:in `block (2 levels) in <class:Session>'
     # ./spec/features/environments_actions_spec.rb:12:in `block (2 levels) in <top (required)>'

Luckily, updating to QT5 and rebuilding solved that issue for us, but only locally.
I am now trying to do the same for our CircleCI builds.  I've set up the machine to use QT5, but I am getting the following output at the end of gem install capybara-webkit --verbose:
current directory: /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-webkit-1.12.0
make "DESTDIR=" clean
make: *** No rule to make target `clean'.  Stop.
current directory: /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-webkit-1.12.0
make "DESTDIR="
ok
current directory: /opt/circleci/.rvm/gems/ruby-2.3.0/gems/capybara-webkit-1.12.0
make "DESTDIR=" install
ok
Building has failed. See above output for more information on the failure.
Successfully installed capybara-webkit-1.12.0

The "above output" it's referring to is the "no rule to make target clean" line.  It seems like everything was going just fine until this step.  Is there something I need to configure here, or could this be a bug?  It says the build failed, but it seems to be installing Capybara Webkit (using QT5).
However, after the install when we run our tests, we are still getting ElementNotFound and JS failures, but only on CircleCI.

Nothing obvious jumps out at me. Are you using Trusty on Circle? Could you paste the full build log and your circle.yml?

@jferris We were using Circle's Trusty machines, so it is possible there is an issue with Capybara Webkit on Trusty.  Hacking away at this problem over the past few days, that's the best diagnosis I've come up with (assuming I didn't accidentally do something weird, which is certainly also a possibility).  I've been running tests with Capybara Webkit locally under El Capitan with zero issues after upgrading QT.
Our circle.yml has been through so many iterations it would basically be useless to post it, but in general our .yml sets the QMAKE env variable to the right path for QT5.5, then does gem install capybara-webkit, and then does bundle install.

Any resolution here? I'm also having the same issue.

Closing due to lack of reponse


Design two diagrams for Fabric and Azure data architecture

Feature #5
Description:
Acceptance Criteria:
Other Consideration:

https://bcgov-my.sharepoint.com/:f:/g/personal/vlad_rutstein_gov_bc_ca/Eul25m6iCDBCpB8t_6LoEl0Bkof0FjPACE-7C0Id2lqwjw?email=Vlad.Rutstein%40gov.bc.ca&e=rkNPNW


[BUG] After upgrade from 4.8.2 to 4.9.0-2 on Debian 12 Google SAML integration stops working with "internal server error" and "Failed to get saml header"

After upgrade from 4.8.2 to 4.9.0-2 on Debian 12 Google SAML integration stops working with "internal server error" and "Failed to get saml header"
Steps to reproduce the behavior:
Upgrade wazuh-dashboard 4.9.0-2 (from 4.8.2) on Debian 12
Choose "single sign-on" login (multiple auth activated, basicauth works without issues)
Instead of redirect to SAML IDP we immediately get a {"statusCode":500,"error":"Internal Server Error","message":"Internal Error"}

Wazuh dashboard logs show:
2024-09-10T11:05:18.878159+02:00 wazuhdash01 opensearch-dashboards[2079]: {"type":"log","@timestamp":"2024-09-10T09:05:18Z","tags":["error","plugins","securityDashboards"],"pid":2079,"message":"Failed to get saml header: Authentication Exception :: {"path":"/_plugins/_security/authinfo","query":{},"statusCode":401,"response":"Authentication finally failed"}"}
2024-09-10T11:05:18.881592+02:00 wazuhdash01 opensearch-dashboards[2079]: {"type":"error","@timestamp":"2024-09-10T09:05:18Z","tags":[],"pid":2079,"level":"error","error":{"message":"Internal Server Error","name":"Error","stack":"Error: Internal Server Error\n    at HapiResponseAdapter.toError (/usr/share/wazuh-dashboard/src/core/server/http/router/response_adapter.js:127:19)\n    at HapiResponseAdapter.toHapiResponse (/usr/share/wazuh-dashboard/src/core/server/http/router/response_adapter.js:83:19)\n    at HapiResponseAdapter.handle (/usr/share/wazuh-dashboard/src/core/server/http/router/response_adapter.js:79:17)\n    at Router.handle (/usr/share/wazuh-dashboard/src/core/server/http/router/router.js:175:34)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at handler (/usr/share/wazuh-dashboard/src/core/server/http/router/router.js:140:50)\n    at exports.Manager.execute (/usr/share/wazuh-dashboard/node_modules/@hapi/hapi/lib/toolkit.js:60:28)\n    at Object.internals.handler (/usr/share/wazuh-dashboard/node_modules/@hapi/hapi/lib/handler.js:46:20)\n    at exports.execute (/usr/share/wazuh-dashboard/node_modules/@hapi/hapi/lib/handler.js:31:20)\n    at Request._lifecycle (/usr/share/wazuh-dashboard/node_modules/@hapi/hapi/lib/request.js:371:32)\n    at Request._execute (/usr/share/wazuh-dashboard/node_modules/@hapi/hapi/lib/request.js:281:9)"},"url":"https://wazuhdash.domain.com/auth/saml/login?nextUrl=%2F&redirectHash=false","message":"Internal Server Error"}
Tried to redo everyting at https://documentation.wazuh.com/current/user-manual/user-administration/single-sign-on/administrator/google.html again but makes no difference.
There were not issues at all with the SAML integration when using Wazuh 4.8.2
Expected behavior
Expected redirect to SAML IDP to get a ticket to POST at ACS url but never gets that far.
OpenSearch Version
Using Wazuh 4.9.0-2 indexers
Dashboards Version
4.9.0-2
Plugins
Out of the box
Host/Environment (please complete the following information):

OS: Debian 12 on servers, windows on clients
Browser and version [e.g. 22]: Does not seem relevant

I don't want to steal this issue, but I am having this issue, and on the Wazuh Indexer, during reboot:
`[2024-09-11T10:37:40,728][ERROR][c.a.d.a.h.s.HTTPSamlAuthenticator] [wazuh-index] Error creating HTTPSamlAuthenticator. SAML authentication will not work
java.lang.IllegalArgumentException: Illegal base64 character 20
at java.base/java.util.Base64$Decoder.decode0(Base64.java:852) ~[?:?]
at java.base/java.util.Base64$Decoder.decode(Base64.java:570) ~[?:?]
at java.base/java.util.Base64$Decoder.decode(Base64.java:593) ~[?:?]
at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.createJwkFromSettings(AuthTokenProcessorHandler.java:245) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.(AuthTokenProcessorHandler.java:113) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator.(HTTPSamlAuthenticator.java:148) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.lambda$newInstance$1(DynamicConfigModelV7.java:426) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) [?:?]
at org.opensearch.security.securityconf.DynamicConfigModelV7.newInstance(DynamicConfigModelV7.java:424) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.buildAAA(DynamicConfigModelV7.java:323) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.(DynamicConfigModelV7.java:101) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigFactory.onChange(DynamicConfigFactory.java:285) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.notifyAboutChanges(ConfigurationRepository.java:430) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.reloadConfiguration0(ConfigurationRepository.java:419) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.reloadConfiguration(ConfigurationRepository.java:402) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.initalizeClusterConfiguration(ConfigurationRepository.java:227) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.lambda$initOnNodeStart$0(ConfigurationRepository.java:318) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
[2024-09-11T10:37:40,736][WARN ][o.o.s.s.ReflectionHelper ] [wazuh-index] Unable to enable 'com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator' due to java.lang.reflect.InvocationTargetException
[2024-09-11T10:37:40,739][ERROR][o.o.s.s.DynamicConfigModelV7] [wazuh-index] Unable to initialize auth domain saml_auth_domain=AuthcDomain [http_enabled=true, order=1, http_authenticator=HttpAuthenticator [challenge=true, type=saml, config={idp={configuration details, authentication_backend=AuthcBackend [type=noop, config={}], description=null] due to OpenSearchException[java.lang.reflect.InvocationTargetException]; nested: InvocationTargetException; nested: RuntimeException[java.lang.IllegalArgumentException: Illegal base64 character 20]; nested: IllegalArgumentException[Illegal base64 character 20];
org.opensearch.OpenSearchException: java.lang.reflect.InvocationTargetException
at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:73) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.lambda$newInstance$1(DynamicConfigModelV7.java:426) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?]
at org.opensearch.security.securityconf.DynamicConfigModelV7.newInstance(DynamicConfigModelV7.java:424) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.buildAAA(DynamicConfigModelV7.java:323) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigModelV7.(DynamicConfigModelV7.java:101) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.securityconf.DynamicConfigFactory.onChange(DynamicConfigFactory.java:285) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.notifyAboutChanges(ConfigurationRepository.java:430) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.reloadConfiguration0(ConfigurationRepository.java:419) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.reloadConfiguration(ConfigurationRepository.java:402) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.initalizeClusterConfiguration(ConfigurationRepository.java:227) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at org.opensearch.security.configuration.ConfigurationRepository.lambda$initOnNodeStart$0(ConfigurationRepository.java:318) [opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
... 12 more
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Illegal base64 character 20
at com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator.(HTTPSamlAuthenticator.java:154) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
... 12 more
Caused by: java.lang.IllegalArgumentException: Illegal base64 character 20
at java.base/java.util.Base64$Decoder.decode0(Base64.java:852) ~[?:?]
at java.base/java.util.Base64$Decoder.decode(Base64.java:570) ~[?:?]
at java.base/java.util.Base64$Decoder.decode(Base64.java:593) ~[?:?]
at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.createJwkFromSettings(AuthTokenProcessorHandler.java:245) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at com.amazon.dlic.auth.http.saml.AuthTokenProcessorHandler.(AuthTokenProcessorHandler.java:113) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator.(HTTPSamlAuthenticator.java:148) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at org.opensearch.security.support.ReflectionHelper.instantiateAAA(ReflectionHelper.java:62) ~[opensearch-security-<IP_ADDRESS>.jar:<IP_ADDRESS>]
... 12 more`
Key point being: Unable to enable 'com.amazon.dlic.auth.http.saml.HTTPSamlAuthenticator' due to java.lang.reflect.InvocationTargetException

Oh yeah, I should add, this comes from the "wazuh-cluster.log" file, which lives on the Wazuh Indexer node.

config.yml.txt
config.yml.original.txt
Had to change file type to txt, obfuscated fqdns and key even though they are not really sensitive, not sure what you mean with a backup, like the original config.yml before I edited? That should just be the out-of-the-box config.yml i guess, i'v uploaded that one as well. I did not get an option to overwrite config.yml when upgrading the indexer to 4.9.0-2 and there is no config.yml.dpkg-dist.

I'm also noticing those "illegal base64 character" errors in the indexer logfiles as zeddD1abl0

I just noticed that in https://documentation.wazuh.com/current/user-manual/user-administration/single-sign-on/administrator/google.html for 4.9 it says:
Generate a 64-character long random key using the following command.
openssl rand -hex 32
The output will be used as the exchange_key in the /etc/wazuh-indexer/opensearch-security/config.yml file.
But in 4.8 it says to use the x509 certificate from the metadata file. By generating a random key instead everything works fine again. Not sure what that exchange_key is actually used for.

@awmol You saved my bacon here! Just experienced the same thing, so strange as I upgraded the test box, also with SAML config and the issue didnt present. Guessing that depending on what data is in the current exchange_key, it may work or it may throw the java.lang.IllegalArgumentException: Illegal base64 character 2f error


Fix Common Lisp Getting Started URL

Added missing URL title description

Signed-off-by: Emil Hammarström<EMAIL_ADDRESS>

Ah good catch, thanks!


Change containing element to HTML5  element

Before I do the work, I wanted to get your thoughts on this change. I would like to change the <span> that the time is held in to instead be a <time> element. This would also include the datetime attribute.
For example, the HTML result would look like this:
<time datetime="2013-11-29">2 years ago</time>
This will of course help with search engine indexing/crawling as well as HTML5 semantics.

+1

I'm not sure the default value should be changed as span is guaranteed to be free of needless styles.
As for using the time tagName you can already do that by setting the component prop:
<TimeAgo component="time" ... />

Hope that works...

@nmn I think the time tag is for display date/time in HTML that's why is there now https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time
Normally you should use it. I prefer have it by default and even add datetime attribute by default instead of use a non-semantic tag as span

According to the mozilla article you sent me:
This element is intended to be used presenting dates and times in a machine readable format.

TimeAgo is clearly NOT machine readable, so I think span is the correct tagName to use still.
Further:

you can use whatever tagName (using the component prop) you want, AND set whatever attributes you want. (the attributes that react-timeago doesn't use are automatically passed through).
You can wrap a span in any tag, for the same semantic meaning.
You can even pass a custom component as the component prop for even more flexibility.

So I don't think a change is needed here.
I'm open to a counter-point.

All the semantic tags are for computers not for human. Article, H1, Main, Time .... tags are just for computers to know more about your code, that's all, supporting the SEO and those things (read what @jamez14 wrote)
Yes indeed, you can customize that but you are missing the whole point about this ticket. Even he is asking for datetime because again Search Engine + SEO + HTML5 Semantics
P.S: I am not here to counter-point, I just think is a valid reason, if you don't like it, I can't do anything about, it's your repo.

This is a tiny component, and I'm just want to do the right thing. Hence I'm even doing this long discussion.
After re-reading the article it seems that the time tag is the semantic tag as long the the datetime attribute is also set.
I will think about an elegant way to fall back to the old functionality and change the defaults. I will also need to check that browsers don't have any default styles for the time tag.
Thanks for discussing this with me.

@nmn any time.
Developers should care about the styling btw, I think this component is fine as it without any styling. The responsibility of upgrade/update isn't you, in my opinion.
Even that this shouldn't break anything this is just the default style of that element.
display: inline;
height: auto;
width: auto;

Thanks for finding that out for me.
BTW, that is what I was trying to say. spans don't have any real default styling, I didn't want to change that by changing the tag name.


[CBR-227] Remove legacy wallet layer

This was never used, and will never be used. That is unfortunate, but at this
point won't change, and having the legacy layer makes it more awkward to modify
the layer since we have to make modifications to a layer that is never actually
used.
Description

Linked issue

Type of change

[ ] 🐞 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)
[ ] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[ ] I have read the style guide document, and my code follows the code style of this project.
[ ] If my code deals with exceptions, it follows the guidelines.
[ ] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.
[ ] CHANGELOG entry has been added and is linked to the correct PR on GitHub.

Testing checklist

[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

QA Steps

Screenshots (if available)

Nope, there aren't :) Thanks!


improvements to in-memory-cache

The in-memory cache used in the controller has some deficiencies that we should address:

it does not expire entries in the cache pro-actively, hence an inconsistency with the database will cause stale records to be observed until the controller is restarted
it is prone to a race between a read and write (delete or update) because the state transition modeling is not complete
it does not coalesce requests (no hit under miss)

@starpit FYI.

It does not currently support horizontal scaling of controller --- let's keep this in mind since this will come relatively soon.

sketch of state diagram:

edge labels:

R_i, U_i, D_i: read, update, or delete initiated
*_f with underbar: operation completes with failure
*_f with overbar: operation completes with success
exp: timed expiration

transient states:
I: invalidate cache entry, and return to S_0
FF: request fails fast, no change to state of cache entry

we have amended the state diagram shown in the picture so that, rather than failing fast on read-under-write, we read-around the cache. this allows us to preserve sequential consistency, meanwhile avoiding pollution of the cache with zombie entries

#1302 was merged and addresses the main issues described here. Horizontal scalability can be discussed e.g. in #788


Source Code for The Longest Common Subsequence in C++

Related Issue
Closes: #689
Describe the changes you've made
Adding Source Code for The Longest Common Subsequence in C++
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
NA
Language used for coding
C++
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have documented the code.
[x] New and existing unit tests pass locally with my changes.

Please review my code ;-)


chore: capture initial branch policy settings

Capture current policy state so that we can make versioned changes to branch protection policies. This will enable policy history, auditing, review, standardization, and templatization. We will update policy in later PR.
We can ignore the rule that states: At least one value under RequiredStatusChecks must be specified when RequiresStrictStatusChecks is true. This is getting removed

https://github.com/microsoft/GitOps.Branches/pull/73
https://github.com/microsoft/GitOps.Branches/issues/72

This branch protection policy will not take effect until https://github.com/microsoftgraph/.github/blob/main/policies/branch-protection-sdks.yml has been removed.

@MIchaelMainer perhaps we should close this as we have rehomed this repo into the microsoft org rather than in the microsoftgraph org?


Undefined symbols for architecture x86_64

I am running into this error when trying to use the sendRequest, the only "thing different" that I think I am doing is embedding APIKit and LlamaKit into an umbrella framework called ProductHuntKit
let request = ProductHunt.Endpoint.Posts(day: .Today)

ProductHunt.sendRequest(request) { response in
    switch response {
    case .Success(let box):
        let content = box.unbox

    case .Failure(let box):
        let alertController = UIAlertController(title: "Error", message: box.unbox.localizedDescription, preferredStyle: .Alert)
        let action = UIAlertAction(title: "OK", style: .Default, handler: nil)
        alertController.addAction(action)
        self.presentViewController(alertController, animated: true, completion: nil)
    }
}

Undefined symbols for architecture x86_64:
  "__TIZFC6APIKit3API11sendRequestFMS0_US_7Request_U__FTQ_10URLSessionCSo12NSURLSession7handlerFGO8LlamaKit6ResultQQ_8ResponseCSo7NSError_T__GSqCSo20NSURLSessionDataTask_A0_", referenced from:
      __TFC11ProductHunt20DetailViewController11viewDidLoadfS0_FT_T_ in DetailViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Anything comes to mind?

You may forget to link APIKit and LlamaKit to your application target. Make sure the build target that links to ProductHuntKit also links to APIKit and LlamaKit like below.

When I remove APIKit from "Linked Frameworks and Libraries", the same error occurred.

thanks for the reply, but should that happen? Both APIKit and LlamaKit are linked to the ProductHuntKit, linking them twice will defeat the purpose of the ProductKit.framework

Yes, they should be also linked to the build target even if ProductHuntKit contains them in ProductHuntKit.framework/Frameworks/. The error always occurs when ProductHuntKit links to other libraries, so it is not a problem of APIKit.
If you really want to keep ProductHuntKit.framework as a single framework, add source code of APIKit and LlamaKit to the build target. It is still safe way because Swift has namespace.

Thank you


Doc fix

I accidentally merged new connectors.md with the previous approved merge (smaller fixes),
had some minor issues, fixed

accidentally merged after pushing the connector.md (new file). Had to make some minor changes,
thanks!


Feat:  Dark mode support for standard editor UI (a.k.a. "skin") moono-lisa

Since the skin for ckeditor4 is not under development now for several years. The dark mode support works by patching and replacing all explicit color values #000 by corresponding css variables.
The new private folder contains the original moono-lisa skin and a short python script to patch it. Upon running it will regenerate the css files in the project's static folder.
Since icons are stored in a large bitmap with fixed colors, icons made dark mode aware by adding filter: brightness(3).

Codecov Report

Merging #592 (ed528a2) into master (07d707c) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head ed528a2 differs from pull request most recent head e1c582b.

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


Link to example is not working

Dear Team,
Link to documentation example from Continia is not working

Best regards,
Krzysztof

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

ID: 0738b431-7018-e6a4-ae1f-21799b52f368
Version Independent ID: 7ea9a2e0-49fa-0e67-53ca-cd0872382355
Content: Help and Customer Support - Business Central
Content Source: dev-itpro/developer/readiness/readiness-checklist-h-help-support.md
Service: dynamics365-business-central
GitHub Login: @a-emniel
Microsoft Alias: a-emniel

Can we use this link instead? https://docs.continia.com/en-us/continia-document-capture

Thanks for catching this. The topic will be updated with the next refresh - please use this link for an example page: https://docs.continia.com/en-us/continia-document-capture. Thanks.


Remove suggestion of usage Debian Unstable repos on RPi

Replacing Debian Stable repositories with Debian Unstable repositories and further system update effectively converts Debian Stable into Debian Unstable (rolling development version , which is generally not recommended for production).
Prior to version 3.7, Thingsboard had dependency on Java 11 which was not available from the Debian Stable/Bookworm official repositories (however, it was temporally kept on repos of "oldstable" and "unstable" Debian versions).
Thingsboard v3.7 depends on Java 17 LTS and the required updated package “openjdk-17-jdk” is available in the Debian Stable repositories, so nowadays there's no need to use extra sources for Java packages.
PR description
The documentation updated for ...
https://thingsboard.io/docs/user-guide/install/rpi/
Link checker
The links will be checked by the build agent automatically once you create or update your PR.
You can use the following command to check the broken links locally.
docker run --rm -it --network=host --name=linkchecker ghcr.io/linkchecker/linkchecker --check-extern --no-warnings http://<IP_ADDRESS>:4000/

Already merged different way of the installation


Capybara README remark clarification

From the Capybara README

Note: capybara-webkit depends on QtWebkit which went EOL quite some time ago. There has been an attempt to revive the project but capybara-webkit is not yet (AFAIK) compatible with the revived version of QtWebKit (could be a good OSS project for someone) and as such is still limited to an old version of QtWebKit. This means its support for modern JS and CSS is severely limited.

Is someone comment on the status of capybara-webkit based on what's written above? Is this still true? Is it likely to change?

I haven't had a chance to look into what QtWebKit is up to lately, but as far as I know, this is still true.
Qt replaced QtWebKit with QtWebEngine, which is not backwards compatible (it would mean rewriting parts of capybara-webkit) and it doesn't support everything we use. Using that would basically mean making a capybara-webengine project instead, and nobody has undertaken that effort.
There was some effort to use CEF as an alternate backend for Capybara, but it was abandoned.
If anybody has results from trying to build against the revived QtWebKit project, I'd love to hear about them.
This all basically means that capybara-webkit uses an old version of WebKit, so it's not a good choice for testing a fancy JavaScript WYSIWYG editor, but it continues to work well for testing basic JavaScript functionality in Rails applications.
I'm closing this issue, as it's not a bug in capybara-webkit, but feel free to continue the conversation.


Fix: improve displayed buffers

This PR fixes the following issues.

buffers with buflisted set to false are also displayed
terminal buffers are not displayed immediately after opening

Thank you so much. I never believed that someone will contribute. Also don't forget to add yourself to the README contributors.

Sorry, would you do it?  I feel bad creating a new PR just for this.
https://github.com/futsuuu/BufferTabs.nvim/commit/cd87b21


Releasing code to use DinoV2 to calculate Feature loss.

This code is designed for my personal projects, where I use VGG as the backbone. However, I have also conducted a few tests using DinoV2 as the backbone, and the results have been quite good. Although there may be room for further improvement, it already performs really well for my own projects.
https://github.com/BurguerJohn/torch-felix/blob/main/example_dinoV2_loss.py
You can learn more about the code here:
https://github.com/BurguerJohn/torch-felix
My projects typically require all layers of the pre-trained model to function optimally, so you might need to modify the code to suit your specific needs. Nevertheless, I hope this serves as a helpful starting point.

I cannot say that I understand much, but based on the code and the README, the code is used to compute a distance between features, and this distance would be an L2 loss between the concatenated outputs of all the layers.

Sorry, I will try to update the readme later to explain better, but it is pretty much this paper with some improvements and flexibility that is easy to plug in Dino and other models:
https://paperswithcode.com/method/vgg-loss
Usually used for super resolution loss and models that output some image.


Option for padding with space when line number is enabled for programlisting?

In current state (1.9.0 / 3e8fbc2d) the generated programlisting with line numbers enabled as in default setting.
For lines that are not numbers the content of   would be empty:
https://github.com/docbook/xslTNG/blob/985d770e9cd44d520044b435dfc9aa45b1473399/src/main/xslt/modules/verbatim.xsl#L434-L440
It often not a good practice to have empty span. The result without the CSS that specifies alignment would also look ugly, either by using text base browsers (w3m) or using Safari screen reader for example.
(defun make-bp (hm)
  (let* ((m (* 2 hm))
        (bp (make-noise m))
        last
5        void)
    (loop
       (setf last (find-location 1 bp))
       (setf (apply #'aref bp last) 0)
       (setf void (find-location 0 bp))
10       (setf (apply #'aref bp void) 1)
       (if (equal void last)
           (return bp)))))

verses
  (defun make-bp (hm)
    (let* ((m (* 2 hm))
          (bp (make-noise m))
          last
5         void)
      (loop
         (setf last (find-location 1 bp))
         (setf (apply #'aref bp last) 0)
         (setf void (find-location 0 bp))
10       (setf (apply #'aref bp void) 1)
         (if (equal void last)
             (return bp)))))

I did an ugly XSLT template to demonstrate the idea
<xsl:variable name="nlength"
                    select='string-length(
                            string(array:size($lines) + $starting-line-number - 1))'/>
...

  <xsl:sequence select="if ($numbered
                        and (array:size($lines) ge $minlines)
                        and (($index = 1 and $number-first)
                        or ($ln mod $every-nth = 0)))
                        then substring(string($ln) || '    ',0, $nlength + 1)
                        else substring('        ',0, $nlength + 1)"/>

In fact I'm curious if there is a reason not using HTML table to display code listing like

123
line1
line2
line3

which have the advantages: does not require CSS to look nice, copy would not include the line numbers, works well with w3m.
and the current approach does looks good when the browser does not expand the vertical separate line:
With netsurf http://www.netsurf-browser.org and my own CSS

With Prince https://www.princexml.com and using paged XSL and CSS setup:

I'm sure I was motivated to "avoid using tables for layout" but your observations are spot on. In particular, I was unaware that some of the paged media browsers had fixed inter-line spacing.
I used to use tables as you suggest; I'll see about putting that code back in and perhaps making it the default.

I did a few experiments over lunch. The whole situation is fairly grim.
You're absolutely right that the current technique is a mess if you don't have the CSS. So tables look like they might be better.
What I'd really like to do is one tr per line with one td for the line number and one td for the line data. That makes sense and to some degree works best. It makes cutting and pasting the listing problematic, but the CSS user-select property can fix that. It won't fix it on text browsers, but there's probably nothing we can do there. It appears that NetSurf ignores the user-select property though. Alas.
Making a one-row, two cell table, where each cell contains a really long pre kind of works, though I worry about alignment across page breaks and with any sort of user CSS. (But that's true of the current design, I suppose). It works for most browsers, even NetSurf which has really wildly large line spacing. It does this with lynx:
                                Article wrapper

1

5

10

<?xml version="1.0" encoding="utf-8"?>

   <title>Article wrapper</title>
   <programlisting language="xml"><inlinemediaobject>
         <imageobject>
           <imagedata fileref="programlisting.002.xml"
                      format="linespecific"/>
         </imageobject>
      </inlinemediaobject></programlisting>

That's kind of awful, but I'm not sure it's actually worse than the current behavior:
                                Article wrapper

1<?xml version="1.0" encoding="utf-8"?>

   <title>Article wrapper</title>
   <programlisting language="xml"><inlinemediaobject>
5         <imageobject>
           <imagedata fileref="programlisting.002.xml"
                      format="linespecific"/>
         </imageobject>
      </inlinemediaobject></programlisting>
10

To be perfectly honest, I'm strongly tempted to leave the listings just plain and apply the line numbers dynamically with JavaScript when the page is rendered. That won't work for print, of course, and I suppose cutting-and-pasting from PDF is a thing so the one-row-per-line approach is probably bad there too.
I think I'll add a table verbatim style using the one-row-two-cell tecnique and I might also add a javascript style.

Thanks for that!
For one-row two cell table with narrow screen, w3m would not wrap like lynx but instead able to scroll the page horizontally if in interactive mode, even in dump mode it would allow text to exceed the col width so I think it is not too bad.
A Common
Lisp
prototype
I've
written
before
the APL
one:

   (defun make-bp (hm)
     (let* ((m (* 2 hm))
           (bp (make-noise m))
           last
5          void)
       (loop
          (setf last (find-location 1 bp))
          (setf (apply #'aref bp last) 0)
          (setf void (find-location 0 bp))
10        (setf (apply #'aref bp void) 1)

The problem I could see with alignment of two cell table is when font-size of line numbers and the code are not same and when the browser does not recognize line-height (netsurf), but if they are just save monospace font there should be no alignment issue.

Is there a list of the approaches that have been tried so far, and their pros/cons? Or the specific constraints the solution needs to operate under?
My go to solution for this is normally something like https://sylvaindurand.org/using-css-to-add-line-numbering/ (writing from phone, so tricky to see what the code already does). As a technique it's worked for 8 years...

Pure CSS actually supports modulo n line numbering. https://www.w3.org/Style/Examples/007/evenodd.en.html

This is what I could archive with
 with my XSLT customization: https://ldbeth.sdf.org/articles/blue-noise.html
(I scrubbed the html file with tidy program). It would be nice it could help.
https://gist.github.com/LdBeth/93ec3b8cd6c12501d8a88547d2ee6fd0

Thanks. I think I've got the table-based verbatim elements working, but that's lead me to find a bug in how footnotes are handled in verbatim environments. Hopefully I can fix that tomorrow morning. I'm about done for the day.

Ironically, in the course of adding the table format, I reworked the way line numbers are presented and now they work just fine in the line style. I added leading spaces so that they would be right-aligned correctly and a following space to separate them from the line that follows. In a "normal" CSS presentation, this is irrelevant as the alignment properties do the right thing, but in a plain-text presentation, it improves the layout so much I wish I hadn't bothered with the table stuff :-)
On the plus side, I did fix a nasty bug in the way footnotes were handled in verbatim environments.
I also added a $verbatim-number-separator parameter, by default |, that is only visible in plain text presentations:
 8 |      hostname RTA
 9 |      router ospf
10 |          ospf router-id <IP_ADDRESS>      ^1
11 |          network <IP_ADDRESS>/24 area 0

Unclear if I should enable the separator by default.

This looks nice, I don’t insist on having table if the presentation without CSS/plaintext is repaired.


SO-4345: Map compare improvements

Codecov Report

Merging #702 into 7.x will increase coverage by 0.00%.
The diff coverage is 70.00%.

@@            Coverage Diff            @@
##                7.x     #702   +/-   ##
=========================================
  Coverage     58.50%   58.51%
- Complexity    12533    12543   +10
=========================================
  Files          1751     1753    +2
  Lines         64451    64514   +63
  Branches       6375     6383    +8
=========================================
+ Hits          37706    37749   +43
- Misses        23764    23777   +13
- Partials       2981     2988    +7

Impacted Files
Coverage Δ
Complexity Δ

...al/snowowl/core/codesystem/CodeSystemRequests.java
93.33% <ø> (ø)
16.00 <0.00> (ø)

...wowl/core/compare/ConceptMapCompareChangeKind.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...international/snowowl/core/request/TermFilter.java
58.97% <0.00%> (-3.82%)
9.00 <0.00> (ø)

.../compare/MapCompareSourceAndTargetEquivalence.java
42.85% <42.85%> (ø)
5.00 <5.00> (?)

.../core/request/ConceptMapCompareRequestBuilder.java
63.63% <50.00%> (-11.37%)
2.00 <1.00> (ø)

...pare/ConceptMapCompareConfigurationProperties.java
84.00% <84.00%> (ø)
8.00 <8.00> (?)

.../snowowl/core/compare/ConceptMapCompareResult.java
70.00% <90.00%> (-5.00%)
4.00 <1.00> (ø)

...snowowl/core/request/ConceptMapCompareRequest.java
95.83% <93.47%> (-0.60%)
21.00 <14.00> (-3.00)

...index/src/com/b2international/index/es/EsNode.java
84.88% <0.00%> (-1.17%)
15.00% <0.00%> (-1.00%)

... and 3 more

Continue to review full report at Codecov.

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


Launch tensorboard from the CLI

🚀 Feature

add command to edit DB
add controller to launch TB work

Needs a way to give the TB work access to the logs for that run / sweep (i.e. may need to merge multiple logs folders).

Closed by https://github.com/Lightning-AI/lightning-hpo/pull/90.


Test if AWSClient discovery works when OpenSSL FIPS is turned on

Added a test for showing that OpenSSL Fips mode turned on and the AWSClient discovery actually works.
tests issue https://github.com/hazelcast/hazelcast-cpp-client/issues/337

Windows test PASSed.

Linux test PASSed.

Windows test PASSed.

Linux test PASSed.

Windows test PASSed.

Linux test PASSed.

Linux test PASSed.

Windows test PASSed.

Linux test PASSed.

Windows test PASSed.


Flagging some tests as flaky.

Should we mark the remaining census tests to be flaky as well?
On Thu, Apr 23, 2015 at 4:46 PM, Nicolas Noble<EMAIL_ADDRESS>wrote:

You can view, comment on, or merge this pull request online at:
https://github.com/grpc/grpc/pull/1360
Commit Summary

Flagging some tests as flaky.

File Changes

M test/core/end2end/gen_build_json.py
https://github.com/grpc/grpc/pull/1360/files#diff-0 (114)
M tools/run_tests/tests.json
https://github.com/grpc/grpc/pull/1360/files#diff-1 (28)

Patch Links:

https://github.com/grpc/grpc/pull/1360.patch
https://github.com/grpc/grpc/pull/1360.diff

—
Reply to this email directly or view it on GitHub
https://github.com/grpc/grpc/pull/1360.

All of them ?


Add get_nanarray method

As discussed many times, it is much more familiar for many people to work with classical arrays rather than masked arrays. Right now, we have to use the gu.spatial_tools.get_array_and_mask method to convert between the two, which is a bit unintuitive. Additionally, the get_array_and_mask method is made to work with any type of input to homogenize the behaviour of some functions. This is not needed when working with a Raster object that always has the same .data.
In this PR, we add the Raster class method get_nanarray to return a NaN array, with argument return_mask (defaults as False) to possibly the original mask of valid data as well.
The behaviour is the following:

The NaN array corresponds exactly to Raster.data.filled(fill_value=np.nan).squeeze(), i.e. the data with masked values replaced by NaNs, and squeezed (2D array if there was only a single band);
The mask corresponds exactly to np.ma.getmaskarray(Raster.data).squeeze(), i.e. the squeezed mask if one existed for the masked array .data, or an array filled with False the same shape as .data otherwise.

Resolves #277

Good point, it seems this depends if there are unvalid values to mask in the input masked array: https://github.com/numpy/numpy/blob/v1.23.0/numpy/ma/core.py#L3776
I will add tests to check the behaviour!

Good point, it seems this depends if there are unvalid values to mask in the input masked array: https://github.com/numpy/numpy/blob/v1.23.0/numpy/ma/core.py#L3776
I will add tests to check the behaviour!

In that case, we should just make sure that it always returns a copy (the safest option anyway). Adding a .copy() after .filled() should do it?

I added the copy() just for when the array has no invalid masked by checking with np.ma.is_masked(). This way the copying does not happen twice when invalid values exists (could be bad for performance).


Multiple Identity Servers - Same Replicated Backend

Hi,
TLDR;
o Can an identity server font-end and back-end be replicated like ASP.NET Cookie Authentication?
Full Version
I have an ASP.NET MVC Core website (1.1.0) that is distributed into remote areas with a replicated SQL Server back-end. Due to reasons I also need the head office server to provide front-ends for fall back data entry if the remote sites are unable to work for any reason.
Due to the way the application is configured I need to run separate web front ends for each of the servers. I would like to implemented identity server 4 to allow SSO across each site in the head office.
Before starting this journey, is it possible to replicate the back-end to different machines and have a scaled out solution? This is essentially multiple-end points with a single replicated database.
I could not find any information on this setup in the documentation. Is this supported and/or is there any information about setting up this scenario I should be aware of?
I should note that the remote sites are behind satellite links so very remote and cannot guarantee internet access availability. Hence why we distribute the server so they can do required data entry and replication happens when there is an up-link available.
Thanks in advance for any information/assistance that can be given.

Yes, absolutely.
An IdentityServer is just a normal web application with our middleware for protocol support.

Thanks for the information. That is what my take was, IdentityServer4 it is just essentially middl-ware for authentication that can use an EF store for persistent storage. I just was hoping security was similar to asp.net authentication where the users key is stored in the db.

IdentityServer4 it is just essentially middl-ware for authentication

No - IdentityServer is the protocol implementation (validating incoming protocol requests, producing responses).
Authentication is done by yourself, e.g. using ASP.NET Identity or any other user mgmt library that you prefer.

Ok, thanks for the clarification. Guess I have more reading to do and playing with it to fully understand how to slip it into my current environment.


2024.2 not installing with poetry on linux

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
This might be a user error on my end, but I am trying to update from pyansys 2024.1.7 to 2024.2.0 for Ansys Notebook. We are using poetry to manage our packages, but 2024.2.0 fails because I think pyworkbench relys on wmi which requires pywin32. I don't think this will work on linux, which is what our notebook image is based on using python 3.9.12.

Most packages that have pywin32 as a requirement with the sys_platform being windows like this:

However, wmi adds the dependency like this:

If this is just an issue on my end, please just close the issue.
📝 Steps to reproduce

Create a poetry project with python 2.9.12 (on mac or linux)
Add pyansys[all] 2024.2.0

💻 Which operating system are you using?
Linux
📀 Which ANSYS version are you using?
No response
🐍 Which Python version are you using?
3.9
📦 Installed packages
pyansys 2024.2.0

Hmm that might be because you are using conda I guess... Using pip directly installation works fine, you can check this in the wheelhouses we build. So it is installable in Linux as well - see for example https://github.com/ansys/pyansys/actions/runs/9874700254/job/27269666702
Nonetheless I agree this problem has to be solved - however I think it is a PyWorkbench issue. Transferring it to them.

See https://github.com/ansys/pyansys/actions/runs/9874700254/job/27269665551#step:4:519 specifically where this [[wmi[[ package gets installed in Python 3.9


Pin all workflow actions to specific SHA

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

Project coverage is 96.99%. Comparing base (ed41710) to head (3106e62).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #130      +/-   ##
==========================================
+ Coverage   96.66%   96.99%   +0.33%
==========================================
  Files           5        5
  Lines         510      433      -77
==========================================
- Hits          493      420      -73
+ Misses         17       13       -4

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


please expose update-sri file to cdn capability

I'm using katex 0.12 in node for static rendering.
Doing so includes:

install katex npm package
import and use renderToString
in order to use katex css CDN for production I need to copy-paste the correct link from the documentation. (the one generated by update-sri)

It would be nice if I could get the link from the npm katex package so that there will be less chance of breakage when updating katext version (no copy-pasting, just include something like katex.cdnMetadata.minCssUrl and katex.cdnMetadata.minCssIntegrity in my server-side template)

That's a neat idea.  I think one of the things that's challenging is how to actually include it in the JavaScript bundle since that'll change its SHA.  Adding it to the package.json could work but it wouldn't be as convenient.

We could add it to package.json, and KaTeX could import its own package.json and export it...
If this doesn't work out, adding the URL at least would be nice... But the URLs do tie us to a specific CDN. Would it be better for the user to manufacture the URL using the already-available katex.version, and maybe the soon-to-be-available katex.minCssIntegrity? I'm not sure.

I think it should be simple enough to store the values in a separate json file (e.g., package.json) and have a field like katex.cdnMetadata.minCssIntegrity act as a memoized getter that just read the value from that json and cache the result.

Such fields don't have to be packed into the bundle, but can still be part of the npm package, no? So if the bundle is generated from some entry point just exclude cdnMetadata from being resolved in that bundle.


registering

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/101882
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.0.0 -m "<description of version>"<PHONE_NUMBER>260a7fb8cc9a153ff6225279d048fd
git push origin v1.0.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/101884
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" a362ae11e5bbf2dbacb06d96222472266940a543
git push origin v0.1.0

@JuliaRegistrator register

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/101884
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 941f2bb14be537ab16e53af1e985589439724405
git push origin v0.1.0

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/101884
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 7e63c662e1a51b9ceffd4b21f1f3c116b1944f5b
git push origin v0.1.0


Re-implements RandomCrop to support different crop_type

This PR re-implements RandomCrop to support more crop_type following the official Detectron2.
The original implementation of RandomCrop is a special case when crop_type='absolute'.

Please merge the newest DETR branch and resolve the comments.


Removal of acls is not working

I've found a bug related to removal of acls after a change in the topology, e.g. removal of a consumer on a topic will not remove the acls for that user. As I understand the code I cannot see that removal of acls is working for any case actually. The problem is originally in AccessControlManager:
public void clearAcls() {
try {
clusterState.load();
if (allowDelete) {
plan.add(new ClearAcls(controlProvider, clusterState));
}
} catch (Exception e) {
LOGGER.error(e);
} finally {
if (allowDelete && !dryRun) {
clusterState.reset();
}
}
}
ClusterState is given to the ClearAcls action, but in the finally block the clusterState is reset and all bindings that ClearAcls should later remove are cleared. So when the ClearAcls action is run there are no bindings to remove acls for.
It was initially a bit confusing that there was a test in AccessControlManagerIT named testAclsCleanup that seemed to verify the acl removal feature. But this test is actually broken because when executing accessControlManager.apply() in the test there are actually three actions that are executed in this order:

ClearAcls
SetAclsForConsumer
ClearAcls

So when the last ClearAcls action is run then the clusterState is again populated with the 3 bindings from SetAclsForConsumer...so they will be removed.
I already have a fork with a fix for this bug and I'm happy to contribute a PR for the fix.

@akselh please all PR are very welcome!

i am sorry about the bug.

Just happy to help :-)

fixed with #75


Various NDK-related improvements

ndk-build is now invoked with NDK_DEBUG argument reflecting debug
setting
gdbserver and gdb.setup are copied into APK
APK is rebuilt when native sources are recompiled

I've been meaning to fix the repackaging apk part at least. Thanks

No problem.  I've been working on a project that makes use of the NDK, so these changes have helped make things better for me, especially the debugging-related bits.  The only other thing would be really nice is for the compile to kick off on a native source change, including javah-generated headers.

That part is easy, see https://github.com/pfn/keepshare/blob/master/build.sbt#L46
I haven't had a chance to put that into the plugin yet. (generated javah should result in a build as java sources would have changed though...)


Patch 1

New verse added.

Ahoy, @Manishak798!
Thank you for your interest in the project. We're trying to keep main branch separate from other changes (more details in CONTRIBUTING.md).
Cheers!


Can't use wslgit.exe with SmartGit 18

I'm using SmartGit on Windows 10 and I can't get wslgit.exe working with this application. I get this error:

Any idea why this is happening? It works on the command line:

Am I doing something wrong?

It looks like the backslashes are removed/escaped somewhere in the process of running the command in WSL.
Can you try to set the (Windows) environment variable WSLGIT_USE_INTERACTIVE_SHELL to false and see if that makes any difference? See Advanced Usage in the readme for more details on the flag.
Thinking about it, the reason might be that relative paths with backslashes are passed. Currently, only absolute paths in the arguments are translated from the Windows representation to their Unix representation inside WSL. This is enough for VS Code or the command line, where either absolute paths are used, or you can specify relative paths with forward slashes. I'm not sure if you could configure SmartGit to, e.g., pass absolute paths.

Ok. The other solution, of course, is adding support for relative paths to wslgit. It came up a few times already, but I haven't found the time/need to implement it properly.
To support relative paths, we would need to check every argument (with a backslash in it) if it is actually a file relative to the current working directory. However, this doesn't work with non-existing files, e.g. git rm a file that was already deleted from the file system. On the other hand, not checking the argument at all and just changing backslashes to forward slashes might accidentally modify other arguments like commit messages, etc. So there is no ideal solution.

@andy-5 I reached to SmartGit about this and it went like this:

Me: Is it possible to configure SmartGit to use absolute paths to files when invoking Git commands? This might help fix this issue: https://github.com/andy-5/wslgit/issues/37

Support: No, this is not possible. Git does not need this and it would be redundant information.

Me: As you can see from the issue I linked, it would not be redundant information... Could you consider adding an option to always use absolute paths instead of relative? It shouldn't be that time consuming to implement such feature.

Support: I still think, this is a problem of wslgit. If it should be a Git replacement, then it should accept the parameters like Git. The absolute path is redundant, because the Git executable is started in the repository's root directory.

Not sure what could be the best course of action here...
Of course none of this would be needed if SmartGit added proper WSL support like VS Code does in some places. Until then, I have to resort to solutions like wslgit, unfortunately it's not working for me with SmartGit.
It does work nicely on the command line. I even configured GPG signing inside WSL and wslgit worked just fine. Kudos, you did an awesome job :)

Well, too bad, but I get their point.
As I said, support for relative paths could be added, but it wouldn't work with non-existing files. I'll leave this issue open for now, maybe I, or someone else, finds some time to work on it.

I've just added support for relative paths to wslgit, with the restriction mentioned above that they are only recognized if the referenced file exists on the filesystem.
A test build with this feature is available here. Can you please test with this binary and report back if the integration with SmartGit now works?

@andy-5 I've been on vacation, give me a couple of days to test this and I'll report back as soon as I can. Thanks.

@andy-5 It almost worked, but now I don't think you can do anything about it...

SmartGit is using temporary files created on the host system and path translation between Windows/WSL is not working properly. But now the ball is on their court...
P.S: The test build is again flagged "unsafe" as before.
Feel free to close this issue if there's nothing else for us to discuss. I'll email SmartGit about this. Thanks for your support.

Interesting, I didn't know about the --file flag for commit. VS Code passes the commit message via stdin. But it should be possible to fix path translation to work also for this case. I'll try when I have some spare time.

There is a new test build available which now also translates paths inside arguments like --file=C:\some\path\message.txt.
This should hopefully fix the issue above and allow you to commit using SmartGit.
Regarding wslgit being flagged as "unsafe", I've found their support to be very responsive. Just submit the executable as a false positive on their site and link to this repository/issue and maybe also to the test build itself.

@andy-5 @rfgamaral the commit works. But now the push does not. Here is the command invoked for push:
C:\bin\wslgit.exe -c 'credential.helper=C:/Program\ Files\ \(x86\)/SmartGit/lib/credentials.cmd' push --porcelain --progress --recurse-submodules=check origin refs/heads/test:refs/heads/test
The command hangs indefinitely

Thanks for the update. At least some progress, but the cmd script credential helper will not work inside WSL and I'm not sure I can do anything about it.
Setting [credential] in .gitconfig sounds interesting. Which settings did you specify there?
Does a manual push using wslgit work? You could test the exact command from SmartGit (minus the credential.helper part) or just something like
C:\bin\wslgit.exe push

If both of these do not work, or require user interaction to enter username/password, you probably need to configure credentials for git inside WSL, independent of SmartGit. For example by setting up a SSH key which is allowed to push to your repository.

Hey guys, latest version v0.8.0 seems to have fixed all the problems for me, commit, push and pull seem to work fine now. I do not have [credential] section on my .gitconfig.
As soon as possible I'm going to test running npm scripts invoked by Git hooks and report back. If those work (I hope so and I believe they will), we can close this issue; unless someone else still has a problem.

The Git hooks seem to be working for me. Although I still have a tiny issue with them, which I'll be able to fix with v0.9.0 (due to WSLGIT).
It didn't fix all the problems with Smartagit though... Trying to stage deleted files doesn't work. However, I'm also using wslgit.exe v0.8.0 in VS Code and staging files work fine there. What could possibly be different from both of these applications and when both are using the same wslgit.exe?

Tried the v0.9.0-alpha10 and wslgit stopped working for me:

It looks like the space in the credential.helper path is not properly escaped. I guess this is due to the switch to wslpath for translating windows paths to linux. I'll look into it.

The space should be ok, but the regexes is not considering double-quote character as invalid in a windows path, which it should. Unix filenames can have " but windows can not :) I'll push a PR.

Great, thanks @carlolars. I've merged your PR, and there is now a new alpha build for testing.
@rfgamaral The PR automatically closed this issue. If there is still a problem, feel free to reopen it.

Oops I wrote the magic word fixes in the PR... Didn't mean to close this issue.

Great, thanks @carlolars. I've merged your PR, and there is now a new alpha build for testing.
@rfgamaral The PR automatically closed this issue. If there is still a problem, feel free to reopen it.

Sorry guys, this doesn't seem to have fixed the issue:

But we're getting closer :)
I see what is causing that error, the argument to wslpath is quoted so \  is literary interpreted as backslash and space and \( as backslash and parenthes, not as an escaped space or escaped parenthes.
$ wslpath 'C:/Program\ Files\ \(x86\)/gnupg/bin/gpg.exe'
/c/Program/ Files/ /(x86/)/gnupg/bin/gpg.exe
# Not quoting the argument works correctly:
$ wslpath C:/Program\ Files\ \(x86\)/gnupg/bin/gpg.exe
/c/Program Files (x86)/gnupg/bin/gpg.exe

The quoting was deliberate, but maybe it is not required? (The usage example for wslpath shows quoted argument)
My worries was that if a path contained a space it would only translate up to the space, but maybe all paths that contain spaces will have the space correctly escaped?
https://github.com/andy-5/wslgit/blob/3dd36bd198419ce33c67a02e3d131bc33d5c920a/src/main.rs#L26
The quoting is also present when transating unix-windows:
https://github.com/andy-5/wslgit/blob/3dd36bd198419ce33c67a02e3d131bc33d5c920a/src/main.rs#L88

The quotes for the wslpath argument should be there, but there is an issue with them described in #91. But that issue won't solve this issue entirely.
The problem is the argument
"credential.helper=C:/Program\ Files\ \(x86\)/SmartGit/lib/credentials.cmd"
The space characters and the parentheses are escaped unix-style, but the cmd.exe shell does not need escaping of space and parentheses. The argument must instead be within quotes, which it is, to keep a string with a space as one argument.
So cmd.exe escapes each backslash with a new backslash, making the backslashes actual backslashes, which are considered as path separators by wslpath.

I just read about credential.helper and realized this is only used to authenticate with https connections for Git repositories and I personally only use ssh connections. So, I've added the following to my ~/.gitconfig:
[credential]
    helper = cache

SmartGit no longer adds credential.helper to Git commands and the above is no longer a problem. Of course, this is a workaround...

So cmd.exe escapes each backslash with a new backslash, making the backslashes actual backslashes, which are considered as path separators by wslpath.

This was not quite correct, cmd.exe escapes backslashes but for wslpath they are just several consecutive backslashes which wslpath merges into just one.
And SmartGit likely does not use cmd.exe but invokes the git process directly.
But the main problem is still the same; the backslash when escaping the characters are used as actual backslashes. Is it working if using Git-For-Windows?
I would say that the argument string is incorrectly formatted, the characters should not be escaped in that string.
@rfgamaral How did you make SmartGit use the credential.helper? I downloaded the lastest portable version of SmartGit and it does not add the credential.helper and I don't have it configured elsewhere.

@rfgamaral How did you make SmartGit use the credential.helper? I downloaded the lastest portable version of SmartGit and it does not add the credential.helper and I don't have it configured elsewhere.

I didn't do anything, it was there by default for me... And I can't find a setting (inside SmartGit) anywhere to disable it. Not sure where it's coming from to be honest. All I found was this: https://www.syntevo.com/doc/display/SG/Using+the+Git+credentials+manager
But helper = manager won't work with  wslgit.exe, there's no such thing as manager inside WSL. That's why I used cache. Which will ask for you credentials (for https authentication) every time and store them in memory for a period of time.

Ignoring the credential manager issue for now, I believe all my SmartGit issues have been fixed with 0.9.0-alpha11. Here's my full configuration:
Environment variables:
WSLGIT_MOUNT_ROOT=/
WSLGIT_USE_INTERACTIVE_SHELL=true

~/.bashrc (inside WSL, only file sourced):
if [ "${WSLGIT}" -eq "1" ]; then
    if [ -d "$HOME/.node/bin" ]; then
        export PATH="$HOME/.node/bin:$PATH"
    fi

    return;
fi

SmartGit Hooks Example:

Good job @andy-5 and @carlolars, thank you so much 🙇

There's still one small issue with the latest wslgit version (0.9.0) and SmartGit. Basically, when trying to stage a deleted file I get the following error:

However, using the same wslgit.exe file, VS Code can successfully stage the deleted file.
Do you think this can be fixed somehow?
P.S: I'm already used to build wslgit from source so let me know if you want me to quickly test some change to attempt fixing the compatibility with SmartGit once and for all :)

What a coincidence, yesterday I was thinking that it might be a good idea to at least document in an issue the problem with relative paths to files that don't exist on the filesystem. See #96 😄
The problems are that wslgit treats each argument separately with no knowledge about which git command it belongs to and therefore don't know what to expect, and it's approach to git arguments is "if it looks like a path then it is a path".
Absolute paths are easiest as they always starts with C:\ or some other letter, relative paths to existing files are also easy since it is possible to check if the file exists.
But relative paths to deleted files are worse since it could also be a RegEx, and changing the slashes would break it. VSCode is using absolute paths to files so that's why it works.

Hum, interesting, will follow that issue :)
I'm wondering if there's any change with SmartGit 19, I haven't upgrade myself yet...


Challenge - ES6: Use export to Reuse a Code Block - Added solution

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

Thank you for your contribution. Looking forward to more contributions from you! 🎉


METRON-1266 Profiler - SASL Authentication Failed

When running the Profiler on a cluster that has multiple nodes and is secured by Kerberos, it was observed that the HBaseBolt was unable to write to HBase.  The Storm worker running the HBaseBolt logged the following exception.  This does not occur all the time and does not occur in all environments.
2017-10-19 14:51:00.146 o.a.h.h.i.AbstractRpcClient [ERROR] SASL authentication failed.
The most likely cause is missing or invalid credentials. Consider 'kinit'.
javax.security.sasl.SaslException: GSS initiate failed
...

Changes
To fix this, the topology.auto-credentials property needs to be set on the Profiler topology when running in a Kerberized environment.  This is similar to how the other topologies, like Enrichment, are already configured.
After finding this, the big mystery for me was why this bug did not cause this issue in all kerberized environments, all the time.  Surely this miss should break the Profiler when running in any Kerberized environment and so should have been caught sooner.
The problem is obviously that a ticket cannot be found to authenticate when attempting to flush profile measurements to HBase. Due to this configuration miss, the Profiler topology itself is not able to generate Kerberos tickets for authentication.  At the same time, if the ticket cache on the worker node is already populated with a valid ticket, then this issue will not occur.  The ticket cache can be populated if another process generates a ticket or a user manually kinits on the same node.
This explains why the problem occurs sporadically and only in some environments.  This issue is less likely to occur in an environment, like Full Dev, where there are fewer, more active nodes.  In this case, it is likely that some other process or user already pre-populated the ticket cache.  In a larger, multi-node cluster, the ticket cache is less likely to be populated.
That's my working theory at least.  Feel free to refute.
Testing
I tested this by applying the fix in a 12 node Metron cluster.  This fixed the problem and allowed the Profiler to write to HBase.  I also tested this in Full Dev on both plain vanilla mode and after kerberization.
To test this change, follow these steps.

Stand-up Full Dev and run the Metron Service Check.
Using Ambari change the profiler duration from 15 minutes to 1 minute.  Then restart the Profiler.
Create a simple Profile following these instructions.
Wait a few minutes for the Profiler to gather data and flush.
In the Stellar REPL, run PROFILE_GET to retrieve the data from HBase.  Ensure that data can be retrieved.
Kerberize the cluster and run the Metron Service Check.
Update the Bro sensor stub at /opt/sensor-stubs/bin/start-bro-stub and include --security-protocol=SASL_PLAINTEXT as an argument to the kafka-console-producer.sh command.  Then run the script in a terminal so that data is flowing through Metron.  Also see this for more information.
Wait a few minutes for the Profiler to gather data and flush.
In the Stellar REPL, run PROFILE_GET to retrieve the data from HBase.  Ensure that new data is being written, post-kerberization.

Pull Request Checklist

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[x] Has your PR been rebased against the latest commit within the target branch (typically master)?
[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?
[x] Have you included steps or a guide to how the change may be verified and tested manually?
[x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
[ ] Have you written or updated unit tests and or integration tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

oh god, that's weird.  +1 by inspection, let's get this in master asap


support enableFailthrough

support a parameter, enableFailthrough, which gives programmatic control over whether or not the cache should error on redis failure (e.g. lost connection) or fail through to the underlying promise
if failthrough is enabled, orchard should emit a failthrough event

closed with https://github.com/kurttheviking/orchard/commit/e192ce0c4564127ee2643a15796fea9a2d58e931


How to configure transport

Issue template

Hardware description: NUCLEO-F767ZI
RTOS: FreeRTOS
Installation type: micro-ROS utilities for STM32Cube
Version or commit hash: galactic

Steps to reproduce the issue
Publish serially to ROS2 on a remote PC using port forwarding, every 60 ms, using micro-ROS Agent.
Expected behavior
Able to transmit for 2 hours or more.
Actual behavior
[micro_ros_agent-3] [1651760373.442743] error    | InputMessage.cpp   | log_error                | deserialization error  | buffer:
[micro_ros_agent-3] 0000: 81 01 A9 85 07 01 1A 00 85 BE 00 05 14 11 00 00 BA AD A3 04 0A 00 00 00 31 31 00 00
[micro_ros_agent-3] [1651760373.442777] error    | Processor.cpp      | process_write_data_submessage | deserialization error processing WRITE_DATA submessage | client_key: 0x28F21A49

Stops transmitting after this.
Additional information
I found this issue #2 on how to solve this, but I don't know how to configure this from the micro-ROS Agent files in ROS2. Didn't find these parameters in the CMake files or .xml files.
How do I do this? The information on how to do this is still TODO, but I really need to know as soon as possible.
This only happened for STM32, I was able to transmit for 2 hours with ESP32 and Arduino every 60 ms, and it also works with all with every 80 ms and 100 ms.
I'm using the multiserial Agent if it makes any difference.
Code: main.txt

I don't think your problem is related to that issue, as that would also happen on other platforms.
The problem is related to your print statements, you are using the same huart3 for micro-ROS and for printing debug info:

_write custom implementation:
HAL_StatusTypeDef status = HAL_UART_Transmit(**&huart3**, (uint8_t *)data, len, 1000);

micro-ROS transport configuration:
rmw_uros_set_custom_transport(true, (void *)**&huart3**, ...

This is messing with the agent, which is trying to read the debug info as a payload.


Usage with different configuration

The example uses the following parameters in configuration:
LOFREQ		= 80
HIFREQ		= 7500
ENORMALISE	= FALSE
ESCALE		= 1.0```
The lofreq, hifreq values are also hardcoded in gen_list.c.

I would like to use MFCC_E_D_A_Z and the default HTK values for LOFREQ (??), HIFREQ (??), ENORMALISE (T), ESCALE (0.1). Can you provide some guidelines?

I find this project very useful, thanks a lot for sharing.

As I discuss in the notebook below, the "gen_list.c" file isn't strictly neccecssary, unless you need absoluttely identical results to HTK:
https://github.com/danijel3/PyHTK/blob/master/python-notebooks/HTKFeaturesExplained.ipynb
I suggest you let the Python class generate the filter (the method "create_filter" is run automatically if you don't load the the filters from the file) and simply ignore the gen_list.c program altogether.
If you still need the program, for some reason, the only way to fix it is to manually change the program, generate a list of filters to your spec, and use the gnereated filters wherever you need it.
To get energy instead of 0th cepstral coefficient (so _E instead of _0) you simply need to set 'raw_energy' to true in the constructor. The LOFREQ and HIFREQ can also be set using the constructor.
The energy normalization.scaling (ENORMALISE/ESCALE) isn't implemented here. To quote from HTK book:

This log energy measure can be normalised to the range $-E_{min}..1.0$ by setting the Boolean configuration parameter ENORMALISE to true (default setting). This normalisation is implemented by subtracting the maximum value of $E$ in the utterance and adding $1.0$. Note that energy normalisation is incompatible with live audio input and in such circumstances the configuration variable ENORMALISE should be explicitly set false. The lowest energy in the utterance can be clamped using the configuration parameter SILFLOOR which gives the ratio between the maximum and minimum energies in the utterance in dB. Its default value is 50dB. Finally, the overall log energy can be arbitrarily scaled by the value of the configuration parameter ESCALE whose default is $0.1$.

There is a slight problem with how to define "the utterance". There is generally a problem with doing normalization, on any features, so it's a good idea to think this through before using such options.
Still, I can implement these two features, if you think it's worth it. Lemme know what you think should be done.

Thank you for the information.

Target kind: What about support for _Z (zero mean static coef)?
Filter map: I generated a filter map using gen_filt.c because the python code does not support omitting hifreq and lofreq (default HTK config), but gen_filt does.
Energy normalization: here again, the point was to support default HTK configuration. However, I agree that this is a non-issue for most use cases.

Target kind

Didn't do that cause I thought this was more appropriate to perform after feature extraction. All features need to be nomalized/standardized in a consistent manner. Regradless if they are MFCCs or whatever.
For sake of HTK support, I can do this as well.

Filter map

Not sure what you mean by "omitting". Those are parameters, just like any other. You can define them using the constructor, or use the default values, as shown in the documentation.

Energy normalization

I will leave this issue up, until I do the following features:

ENORMALIZE
ESCALE
_Z feature

Personally, I wouldn't use those anyway, but for sake of HTK compatibility, they should be done. I'll just need a few days to find some free time to do that.
Is there anything else that is missing?
You think we should have a feature to parse the HTK config files, or is using the constructor sufficient for most people?

Hi,
_Z: I tried to zero mean the features but that didn't work well (resulted in high max diff). I couldn't find good documentation about this option. What are considered as static coefficients?
Filter map: If you look at the code of gen_filt you will notice that lo/hi are allowed to have a value of -1, which is handled differently compared to positive values. This is the default behavior of hcopy. Passing -1 to the python code won't behave the same.
Parsing config: though it would be nice, I wouldn't bother with that. It would require a lot of effort. Determining the constructor parameters was straight forward (for supported configuration, as discussed above).
I ported PyHTK to cpp, using Armadillo as a replacement to numpy, just in case someone needs this functionality in a cpp codebase; will publish soon.

To standardize the features, you may use a different library. Simplest would probably be sklearn.preprocessing.StandardScaler The important part is to compute the statistics on the wohle corpus, rather than individual utterance, prior to standardizing the features. Otherwise, you may have to use something like online normalization, but that has a whole different kind of problems.
'static coefficients' are the first features containing normal MFCCs/filterbank/energy - as opposed to deltas/acceleration which are used to model the change in the signal. To quote from HTKBook:

When delta and acceleration coefficients are requested, they are computed for all static parameters including energy if present.

lo/hi are allowed to have a value of -1

I think this is poor coding practice. In some situations, it's neccesssary, due to language limitations, but in Python we really don't need to have such "features". If someone doesn't need to modify lo and hi freuquencies, they can just use the constructor defaults.
In HTK, if you set these values to <0, it simply uses ~0 for lo, and Nyquist frequency for hi. I guess, it wouldn't hurt to set to these values if anyone enters something that is out of range. So if they do put -1, it would correct it to such values, anyway.

I ported PyHTK to cpp

Just wondering - is this better than simply using HTK?

Fixed in ba64fcb43a792c9c26afbd45bcec3c9bb98a6582
Please veify if everything is wokring for you.

The code to bound low_freq/hi_freq to the [0, nyquist] range should be performed before the call to create_filter. Other than that all is working perfectly :+1:
Thanks again for all your effort.
I won't use the cpp port either, but a colleague of mine wanted it in cpp, planning to adjust it for online feature extraction to be used along with a custom classifier he is working on. I'm not familiar with the details yet.

Good point. Didn't test that. It's all fixed in 412bfafb8961a18d5c1d0487763ba6f08c744671 now.


Combine QC checks for first and second release

Make easy QC lists, especially for camera. Provide some code to access


ValueError: Dimension 0 in both shapes must be equal, but are 2 and 1 From merging shape 1 with other shapes. for 'vgg16_default/rpn_cls_score_reshape/concat/concat_dim' (op: 'Pack') with input shapes: [1], [2], [1].

Hi, all
Help!  After downloading imagenet_weights and faster_rcnn_models from pre-trained model here， I run index_es.py like this:
export WEIGHT_PATH=/home/ceshi/search/visual_search/imagenet_weights/vgg16.weights
export MODEL_PATH=/home/ceshi/search/visual_search/faster_rcnn_models/vgg16_faster_rcnn_iter_70000.ckpt
export INPUT=/home/ceshi/search/visual_search/INPUT

python index_es.py --weight $WEIGHT_PATH --model_path $MODEL_PATH --input $INPUT

Got this error:
Loading caffe weights...
Done!
Traceback (most recent call last):
  File "index_es.py", line 104, in <module>
    sess=sess)
  File "/home/ceshi/search/visual_search/visual_search/extractor.py", line 53, in __init__
    tag='default', anchor_scales=anchors)
  File "/home/ceshi/search/visual_search/visual_search/lib/nets/vgg16.py", line 496, in create_architecture
    rois, cls_prob, bbox_pred = self._vgg16_from_imagenet(sess, training)
  File "/home/ceshi/search/visual_search/visual_search/lib/nets/vgg16.py", line 347, in _vgg16_from_imagenet
    rpn_cls_score_reshape = self._reshape_layer(rpn_cls_score, 2, "rpn_cls_score_reshape")
  File "/home/ceshi/search/visual_search/visual_search/lib/nets/vgg16.py", line 178, in _reshape_layer
    reshaped = tf.reshape(to_caffe, tf.concat(0, [[self._batch_size], [num_dim, -1], [input_shape[2]]]))
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1061, in concat
    dtype=dtypes.int32).get_shape(
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 611, in convert_to_tensor
    as_ref=False)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 676, in internal_convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 937, in _autopacking_conversion_function
    return _autopacking_helper(v, inferred_dtype, name or "packed")
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 900, in _autopacking_helper
    return gen_array_ops._pack(elems_as_tensors, name=scope)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 1949, in _pack
    result = _op_def_lib.apply_op("Pack", values=values, axis=axis, name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2632, in create_op
    set_shapes_for_outputs(ret)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1911, in set_shapes_for_outputs
    shapes = shape_func(op)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1861, in call_with_requiring
    return call_cpp_shape_fn(op, require_shape_fn=True)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.py", line 595, in call_cpp_shape_fn
    require_shape_fn)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.py", line 659, in _call_cpp_shape_fn_impl
    raise ValueError(err.message)
ValueError: Dimension 0 in both shapes must be equal, but are 2 and 1
	From merging shape 1 with other shapes. for 'vgg16_default/rpn_cls_score_reshape/concat/concat_dim' (op: 'Pack') with input shapes: [1], [2], [1].

I also tried endernewton/tf-faster-rcnn,  and the demo.py works ok. Which goes:
2017-09-15 08:51:59.013136: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: Tesla K40m
major: 3 minor: 5 memoryClockRate (GHz) 0.745
pciBusID 0000:04:00.0
Total memory: 11.17GiB
Free memory: 10.92GiB
2017-09-15 08:51:59.013227: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2017-09-15 08:51:59.013270: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y
2017-09-15 08:51:59.013313: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K40m, pci bus id: 0000:04:00.0)
Loaded network output/res101/voc_2007_trainval+voc_2012_trainval/default/res101_faster_rcnn_iter_110000.ckpt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000456.jpg
Detection took 2.319s for 300 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000542.jpg
Detection took 0.659s for 151 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001150.jpg
Detection took 0.724s for 178 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001763.jpg
Detection took 0.844s for 224 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/004545.jpg
Detection took 0.413s for 300 object proposals

environment：
os: Ubuntu 16.04
tf: tensorflow-gpu (1.3.0)  1.2.0 also does not work
Python: 2.7.12
gpu: Tesla K40m
Cuda compilation tools, release 8.0, V8.0.61
cudnn tried 5.0/6/7

Hi @zyq001,
You have to use tensorflow version 0.12.1.


[Bug]: PydanticUserError for Pydantic v2

What happened?
If environment has Pydantic v2 installed, an error is raised when importing modules from Neuroconv.
since we have #264 going on, this should be fixed when updating everything to Pydantic v2. Meanwhile, I'll leave a workaround here for anyone facing the same problem.
The error can be avoided by adding @root_validator(skip_on_failure=True) in these two files:

_zarr_models.py
_base_models.py

Steps to Reproduce
from neuroconv.tools.spikeinterface import write_sorting

Traceback
File "/mnt/shared_storage/Github/si-dendro-apps/si_kilosort25/nwb_utils.py", line 2, in <module>
    from neuroconv.tools.spikeinterface import write_sorting
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/__init__.py", line 1, in <module>
    from .basedatainterface import BaseDataInterface
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/basedatainterface.py", line 9, in <module>
    from .tools.nwb_helpers import make_nwbfile_from_metadata, make_or_load_nwbfile
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/tools/__init__.py", line 3, in <module>
    from .nwb_helpers import get_module
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/tools/nwb_helpers/__init__.py", line 2, in <module>
    from ._dataset_configuration import (
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/tools/nwb_helpers/_dataset_configuration.py", line 15, in <module>
    from ._models._zarr_models import ZarrBackendConfiguration, ZarrDatasetIOConfiguration
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/tools/nwb_helpers/_models/_zarr_models.py", line 46, in <module>
    class ZarrDatasetIOConfiguration(DatasetIOConfiguration):
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/neuroconv/tools/nwb_helpers/_models/_zarr_models.py", line 97, in ZarrDatasetIOConfiguration
    def validate_filter_methods_and_options_length_match(cls, values: Dict[str, Any]):
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/pydantic/deprecated/class_validators.py", line 231, in root_validator
    return root_validator()(*__args)  # type: ignore
  File "/home/luiz/anaconda3/envs/env_dendro/lib/python3.10/site-packages/pydantic/deprecated/class_validators.py", line 237, in root_validator
    raise PydanticUserError(
pydantic.errors.PydanticUserError: If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.

Operating System
Linux
Python Executable
Conda
Python Version
3.9
Package Versions
Python 3.10
pydantic 2.5.2
neuroconv 0.4.6
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Have you ensured this bug was not already reported?

Note this is really a side-effect of relenting the DANDI requirements to be extras in #655 - otherwise Pydantic v2 would be outright prohibited in the same environment as NeuroConv
The DANDI team has been hard at work migrating their stuff to V2, expecting that to be released any time now
Until then my recommendation is simply to use NeuroConv in an isolated environment away from anything else that requires Pydantic 2 for the time being

Until then my recommendation is simply to use NeuroConv in an isolated environment away from anything else that requires Pydantic 2 for the time being

@CodyCBakerPhD I don't see how this solves the Issue, which will continue happening when using neuroconv in a Pydantic v2 environment.
It doesn't sound reasonable to prohibit pydantic v2, nor to ignore the error, since it seems consensual the need to update to pydantic v2. Even more if dandi is updating as well. Any other reason why neuroconv should be restricted to v1?
New tools being developed shouldn't be restricted to v1 just because they want to use neuroconv (not dandi).

Please just give it time. We plan to upgrade as soon as upstream supports it
As indicated in the minimal requirements, whenever you install neuroconv it will either reinstall a lower version of pydantic or give the pip warning about environment incompatibilities

sure, not in a hurry, I just think this is an ongoing issue and should be open

This specific error is not an issue that we will directly fix until generic support for v2 occurs, and should never occur unless some developer forces an incompatible environment (natural pip installation would simply fail before this, or force installation of correct dependencies)
If you'd like to open a general issue requesting v2 support go ahead, but it won't make it happen any faster