Format for Recap/Terms

Identify a good format for the end of a chapter to highlight important terms/concepts, tie big ideas together, and leave questions for the reader.

One random thought: Try to weave an idea of our opinions on the notes they should be taking / questions they should be able to answer.


(dev branch) Layer prop validation fails on valid 0 values

The Layer class validates input with if (!property). This fails on 0 values for zoom, latitude, and longitude.

The Layer class validates input with if (!property). This fails on 0 values for zoom, latitude, and longitude.

This has been fixed for a while, closing. Layers now check for property !== undefined.


Doesn't work with client certificates

When both registries use client certificates the migrator doesn't work, it fails with curl => API failure because curl doesn't use Dockers client certificates.

Just to make sure I am fully understanding the root cause of the issue, do you mean when using self signed certificates where you place your cert or CA cert in /etc/docker/certs.d/<registry-fqdn>/ca.crt?

No, the certificates are signed by a public CA. I mean the client certificates placed in /etc/docker/certs.d/client.{pem,key}.

Ah ok, thanks for the clarification.  I'll see if I can add in some detection of client certificates via allowing users to provide /etc/docker/certs.d/ as a volume and utilizing them for the curl commands.

Are you working on this or should I do it? I looked through the code and it doesn't look too difficult.

If you're willing to give it a try, that would be awesome and greatly appreciated!


storage#DeleteBlobIfExists: fix panic if resp==nil

A resp.body.Close() statement was causing nil pointer dereference
panics when deleteBlob() returned an error and hence resp was nil.
Signed-off-by: Ahmet Alp Balkan<EMAIL_ADDRESS>

Travis is pretty bad today. I canceled/restarted build 3 times now in the past 45 minutes and it doesn't even kick off the build. https://travis-ci.org/Azure/azure-sdk-for-go/builds/173056994 I will just go ahead and skip CR as this is a trivial change and we need to vendor this in docker/distribution repo for a release ASAP.


lossing data when inserting data to bitmap table by clickhouse-jdbc

Hi, I have two tables in my system: dm_user_set_mapping_di and dm_user_set_mapping_di_tmp.
CREATE TABLE profile.dm_user_set_mapping_di (  dateUInt32,  userset_keyString,  uvAggregateFunction(groupBitmap, UInt64) ) ENGINE = Distributed(   'perftest_3shards_1replicas',   'profile',   'dm_user_set_mapping_di_local',   cityHash64(userset_key)
CREATE TABLE profile.dm_user_set_mapping_di_tmp (  dateUInt32,  userset_keyString,  u_idUInt64 ) ENGINE = Distributed(   'perftest_3shards_1replicas',   'profile',   'dm_user_set_mapping_di_tmp_local',   intHash64(u_id) )
Firstly, my system load data to "dm_user_set_mapping_di_tmp" by clickhouse-jdbc. And then execute the following sql to load data to "dm_user_set_mapping_di". The problem is that "dm_user_set_mapping_di_tmp"  is accurate , but "dm_user_set_mapping_di" loss data by clickhouse-jdbc. When execute "insert" sql in clickhouse client without clickhouse-jdbc, the data in  dm_user_set_mapping_di" become accurate.
insert into profile.dws_mifi_loan_user_profile_df (date, label_name, label_value, uv)  select date, label_name, label_value, groupBitmapState(toUInt64(u_id)) as uv  from profile.dws_mifi_loan_user_profile_df_tmp  where date=20210423 group by date, label_name, label_value
I think maybe the data doesn't be updated, when the first table loaded data. Should I flush or update data of the first table when loading the second table, even I create a new jdbc connection?
ClickHouse client version <IP_ADDRESS>.
Clickhouse-jdbc version 0.2.6.

@victortony, the SQL you provided is for populating DWS table dws_mifi_loan_user_profile_df, which is different from the dimension table dm_user_set_mapping_di.
If my understanding is correct, I think it's not related to JDBC driver, as the insertion happened on server without involving JDBC driver, if you're certain that no data loss found in the temp table.
ClickHouse 19.16 and 20.3 are no longer supported, so maybe you should try 21.3 or at least 20.8? Moreover, if you can upgrade JDBC driver to 0.3.0, you no longer need the temp table as you can insert RoaringBitmap directly into the AggregateFunction column - please refer to example at here.

@victortony, the SQL you provided is for populating DWS table dws_mifi_loan_user_profile_df, which is different from the dimension table dm_user_set_mapping_di.
If my understanding is correct, I think it's not related to JDBC driver, as the insertion happened on server without involving JDBC driver, if you're certain that no data loss found in the temp table.
ClickHouse 19.16 and 20.3 are no longer supported, so maybe you should try 21.3 or at least 20.8? Moreover, if you can upgrade JDBC driver to 0.3.0, you no longer need the temp table as you can insert RoaringBitmap directly into the AggregateFunction column - please refer to example at here.

不好意思，我把sql中的表格写错了，确认是使用clickhouse客户端进行插入bitmap数据是全的。
我按照您的建议升级到了21.3.8。我的集群是两个节点，升级后，其中一个节点变得非常慢，show tables都要用半分钟。而且插入bitmap整行的的丢失数据，不知道是发生了什么？
看日志一直在报错，错误信息如下：
0. DB::TCPHandler::receiveHello() @ 0xf657442 in /usr/bin/clickhouse

DB::TCPHandler::runImpl() @ 0xf6503f9 in /usr/bin/clickhouse
DB::TCPHandler::run() @ 0xf6633e9 in /usr/bin/clickhouse
Poco::Net::TCPServerConnection::start() @ 0x11d1732f in /usr/bin/clickhouse
Poco::Net::TCPServerDispatcher::run() @ 0x11d18d41 in /usr/bin/clickhouse
Poco::PooledThread::run() @ 0x11e4f469 in /usr/bin/clickhouse
Poco::ThreadImpl::runnableEntry(void*) @ 0x11e4b2ca in /usr/bin/clickhouse
start_thread @ 0x7dc5 in /usr/lib64/libpthread-2.17.so
clone @ 0xf773d in /usr/lib64/libc-2.17.so
(version <IP_ADDRESS> (official build))
2021.04.28 10:54:35.954359 [ 364594 ] {}  ServerErrorHandler: Code: 101, e.displayText() = DB::NetException: Unexpected packet from client, Stack trace (when copying this message, always include the lines below):

I don't think it's related to JDBC driver but something else with your cluster. Below worked for me on a standalone 21.3 server. Perhaps you can consult on Telegram/Slack or create an issue at here with detailed information like steps to reproduce?
drop database if exists testbm;
create database testbm;

CREATE TABLE testbm.dm_user_set_mapping_di (
	date UInt32,upsert_key String, uv AggregateFunction(groupBitmap, UInt64)
) ENGINE = MergeTree() partition by date order by (date, upsert_key);
create table testbm.dm_user_set_mapping_di_tmp (
	date UInt32, upsert_key String, u_id UInt64
) ENGINE = MergeTree()
partition by date order by (date, upsert_key, intHash64(u_id))
sample by intHash64(u_id);

insert into testbm.dm_user_set_mapping_di_tmp
select 20210423, concat('key_', toString(rand64() % 2333)), number
from system.numbers limit 10000000;

insert into testbm.dm_user_set_mapping_di(date, upsert_key, uv)
select date, upsert_key, groupBitmapState(u_id)
from testbm.dm_user_set_mapping_di_tmp
where date=20210423
group by date, upsert_key;

select a.date, a.upsert_key,
	bitmapCardinality(a.uv) - ifnull(b.cnt, 0) as cnt_diff,
	b.bm is null ? 0 : bitmapHasAll(a.uv, b.bm) as has_all
from testbm.dm_user_set_mapping_di a
left join (
	select date, upsert_key, uniqExact(u_id) as cnt, groupBitmapState(u_id) as bm
	from testbm.dm_user_set_mapping_di_tmp
	group by date, upsert_key
	order by upsert_key
) b on a.date = b.date and a.upsert_key = b.upsert_key
where b.date is null or cnt_diff != 0 or has_all != 1
union all
select date, upsert_key, toInt64(bitmapCardinality(uv)) as cnt_diff, toUInt8(0) as has_all
from testbm.dm_user_set_mapping_di
where (date, upsert_key) not in (select distinct date, upsert_key from testbm.dm_user_set_mapping_di_tmp)

@victortony, the SQL you provided is for populating DWS table dws_mifi_loan_user_profile_df, which is different from the dimension table dm_user_set_mapping_di.
If my understanding is correct, I think it's not related to JDBC driver, as the insertion happened on server without involving JDBC driver, if you're certain that no data loss found in the temp table.
ClickHouse 19.16 and 20.3 are no longer supported, so maybe you should try 21.3 or at least 20.8? Moreover, if you can upgrade JDBC driver to 0.3.0, you no longer need the temp table as you can insert RoaringBitmap directly into the AggregateFunction column - please refer to example at here.

hi, 升级到21.3.8还是有问题，我的tmp表数据量是对的 ，但是使用JDBC执行insert生成bitmap数据量总差很多，在clickhouse客户端执行就一条不差。
insert into profile.dws_mifi_loan_user_profile_df (date, label_name, label_value, uv) select date, label_name, label_value, groupBitmapState(toUInt64(u_id)) as uv from profile.dws_mifi_loan_user_profile_df_tmp where date=20210423 group by date, label_name, label_value
导入数据相关代码：
`
/**

生成connection
@return
*/
def getConnection(): ClickHouseConnection = {
val dataSource = new ClickHouseDataSource(CH_URL)
dataSource.getConnection(CH_USERNAME, CH_PASS)
}

/**

导入数据
@param iterator
@param sqlTemplate
@param date
*/
def batchImportData(iterator: Iterator[Row],
sqlTemplate: String,
date: String) = {
var index = 1
val conn = getConnection()
val psmt = conn.prepareStatement(sqlTemplate)
while (iterator.hasNext) {
val row: Row = iterator.next()
var fieldIndex = 1
row.schema.fields.foreach(field => {
field.dataType match {
case StringType =>
psmt.setString(fieldIndex, row.getAsString)
case LongType =>
psmt.setLong(fieldIndex, row.getAsLong)
case IntegerType =>
psmt.setInt(fieldIndex, row.getAsInt)
case _ => println(s" other type: ${field.dataType}")
}
fieldIndex += 1
})
psmt.addBatch()
if (index % BATCH_COUNT == 0) {
psmt.executeBatch()
psmt.clearBatch()
}
index = index + 1
}
psmt.executeBatch()
// psmt.clearBatch()

//关闭链接
psmt.close()
conn.close()

}`
生成bitmap相关代码：
`  /**

生成画像
@param date
*/
def buildBitmap(date: String): Unit = {
val conn = getConnection()
val stmt = conn.createStatement()
val sql = BITMAP_GENERATION_SQL_TEMPLATE.format(date)
stmt.executeQuery(sql)
stmt.close()
conn.close()
}`

main方法
    val insertSql = buildPrepareSqlTemplate(df)      df.repartition(PARTITION_NUM).foreachPartition(iterator => {       batchImportData(iterator, insertSql, date)     })     logger.info("begin to generate bitmap...")     buildBitmap(date)     logger.info("after generate bitmap...")

Not sure if it's related to #655. Does the latest code on develop branch work for you?

hi, is it merged into any release version?

hi, is it merged into any release version?

Not yet. You'll need to check out code from develop and build a snapshot package by issue mvn clean package.


Adds 'spe container get' command. Closes #6083

Adds spe container get command. Closes #6083

Thank you, we'll try to review it ASAP!

Hi @nanddeepn, just to inform you, when developing new commands, we require all new commands to use ZOD instead of the old implementation. ZOD simplifies validating options and setting up telemetry.
If you're looking for examples, you can check login, flow recyclebinitem restore, flow recyclebinitem list and few other commands. So next time, please, use the new ZOD approach, thanks!

Ready to merge 🚀

@nanddeepn I tried to merge this one but I had a really hard time doing so due to almost 40 commits that are not part of this change 😮.
I think something got wrong when you rebased this branch against main 🤔.
May I kindly ask you to try to rebase it again or open a new PR with your changes and just tag me over in that one so that it will get me unblocked to move forward with this change? 🙏

Hi @Adam-it
I have raised a new PR at https://github.com/pnp/cli-microsoft365/pull/6507
Closing this one. Please review.

Hi @Adam-it
I have raised a new PR at https://github.com/pnp/cli-microsoft365/pull/6507
Closing this one. Please review.

Thank you for letting me know. I will let the team know that this PR is ready to be merged and someone else will process it as in December I will be on a short break from this repo.
Unfortunately it will be very hard for me to find even 10 min time for activities in this project during this month ☹

Hi @Adam-it
I have raised a new PR at #6507
Closing this one. Please review.

Thank you for letting me know. I will let the team know that this PR is ready to be merged and someone else will process it as in December I will be on a short break from this repo. Unfortunately it will be very hard for me to find even 10 min time for activities in this project during this month ☹

Totally understand, and I appreciate your efforts so far. Enjoy your well-deserved break!

Totally understand, and I appreciate your efforts so far. Enjoy your well-deserved break!

Thanks 🤩😍.
Unfortunately it's not a break but I will be super engaged in other work and I will simply have even less time then usual 😅


Is it possible to Filter in Jira after issues that have Gerrit Review Links

Hello,
Is it possible to Filter in Jira after issues that have Gerrit Review Links ?
See similar question here.
https://community.atlassian.com/t5/Marketplace-Apps-Integrations/Filter-issues-with-Gerrit-Review-links/qaq-p/1314311

Is there any news about this question ?

Hi @vinczepaula,
I'm also looking for a solution here.
I'm looking for either a Jira Structure Formula, or even better a JQL query to look for Gerrit Review Links.
@jhansche is there any option for this?`
Thanks!

No, the plugin queries gerrit only when you view an issue. There is no central storage of all known reviews and the issues they mention. Without that, there would be no way to implement this filter.
Maybe you'd have better luck trying to filter the other way? Use gerrit search predicates to find what you need, and extract Jira issues from those.


 We should support most of these eventually!
Some that come to mind:

[ ] GitLab
[ ] GitHub gists
[ ] bitbucket

For GitLab instances a URL like https://gitlab.com//.git should work (for example the USGS instance https://code.usgs.gov/usgs/whcmsc-rdc).
I'd add osf.io to the list of sources

I think repo2docker itself would "just work" with any git repository as you pass it a URL. That means to enable other git based hosts it is binderhub that needs working on. For hosts that aren't git based: should we add "general purpose file downloading" to repo2docker or a new tool or...?

This would be a great boost for us to promote Binder here at USGS.

repo2docker doesn't know anything about GitHub. This needs to be in binderhub, which has the concept of 'providers'. We currently only implement a GitHub provider, but implementing a gitlab provider should be pretty easy.

@yuvipanda shall I close this issue and open it in binderhub?

@choldgraf yup!

opened: https://github.com/jupyterhub/binderhub/issues/184


Can this be used alongside MO2?

I have installed it the usual way as per the instructions and it works. I downloaded a massive collection Immersive & Adult - Steam Deck edition and everything was fine. However, I also have MO2 installed via STL. The game through steam is running forced compat with STL to launch the game. If I enable the gui option for MO2 it will eventually open it up where the game can be launched from there using SKSE.
Otherwise I can skip the launch of MO2 and boot into the game. I have SKSE installed inside the gamedir as well as the mod through this vortex iteration.  I'd like to be able to use Vortex to download the mods and MO2 to manage them but so far I haven't been able to get a seamless experience, especially when it comes to certain scripts and files that technically cannot be "installed" via a mod manager yet Vortex does just fine.
Am I asking for too much here? If They both cannot be used together on the deck then my next question is do I need to remove the STL forced compat and instead use the SKSE file to launch?

Can MO2 and Vortex even be used alongside each other on Windows?
Since they handle things in very different ways, I'd expect them to be completely incompatible.

From what I've found they can but I'm not sure how to do it. Technically they both can't manage the same game but  merging should be possible. I attempted to import my mods by pointing it at the vortex staging and downloads folder but beyond that I didn't have the metadata and it was too difficult to deal with.
After a few days of playing with it it works pretty well with some minor hiccups. Don't know if it's related but I think it crashes my input causing none of the deck controls to work sometimes forcing me to bust out my bt keyboard. In addition if I close it the executible is still running in the background so I can't launch it again without killing it.


added analytic content for Cisco SEG

Proposed Changes
Analytic content for Cisco SEG data connector

@aprakash13 Please review analytic and hunting queries. Thanks

Workbook queries are failing. Please look into it.

Workbook queries are still failing. Please help with it.

@aprakash13 please verify the changes made and approve. Thanks.

@spsocprime team...Can you please double check the feedback suggested related to the queries have been implemented.
and mark them as resolved.

Workbook queries are failing. Please look into it.

fixed


test(protocol): bypass receive function in EtherVault.sol

concern in https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/contracts/bridge/EtherVault.sol#L42-L47
receive() external payable {
        // EthVault's balance must == 0 OR the sender isAuthorized.
        if (address(this).balance != 0 && !isAuthorized(msg.sender)) {
            revert B_EV_NOT_AUTHORIZED();
        }
    }

as the code say // EthVault's balance must == 0 OR the sender isAuthorized., we can bypass this receive() function by
using selfdestruct to force transfer ETH to the contract

@tapakornl  Thank you for reviewing the code and offer the extra test. However, the latest code for our next testnet is in this PR: https://github.com/taikoxyz/taiko-mono/pull/15316 (branch: alpha-6) where EtherVault has been deleted.


[BUG] Tracker is still being opened in a tab, even tho it was unchecked, when clicking Batch Transfer

Browser：Microsoft Edge
Browser Version ：Version 99.0.1141.0 (Official build) Dev (arm64)
Script manager extension[e.g. tampermonkey Violentmonkey]：Violentmonkey
easy-upload version：3.03

Describe the bug
My "Transfer to" is set up with 2 trackers: BHD and SC.  It used to be BHD, SC and KG.  I removed KG from both the search and the transfer in the settings.  Now only BHD and SC are listed.  When I click on Batch Transfer, tabs for BHD, SC and KG open. KG shouldn't open anymore.
To Reproduce
Enable BHD, SC and KG for transfer
Click Batch transfer and see all 3 of them open in new tabs
Go into settings and unselect KG and save
See that only BHD and SC are now listed
Click Batch transfer again
Tabs for BHD, SC and KG will open
Expected behavior
Only tabs for the trackers that I have as checked in the settings should Batch transfer
Screenshots
The 3 tabs that opened:

Additional context
I've refreshed the page and even closed my browser and it still happen. I dont know if I need to clear my localStorage or what.  I thought I'd report this in case something isn't being deleted when it should.

Ah oops, I unchecked it from the search and transfer but didn't scroll far enough down to see the 'batch transfer' section


Question

Do you know how to setup ScoreHUD with mineflow

?

ScoreHUD and mineflow are not compatible.
To show scoreboards with mineflow, you can use these actions.

How do I get there tho

Click the <Edit action> > <Add action> > Scoreboard buttons on your recipe.


Show the open object on Database Navigator

Is your feature request related to a problem? Please describe.
A nice feature would be to show the object on the database navigator, based on the open tab.
At the time of this writing - DBeaver version 24.0.5 - this feature is not available.
When you open DBeaver, the entries on the Database Navigator are not expanded, so you may not know which already open (as a tab) object belongs to which connection and database.

This feature is common to IDEs like IntellliJ or Visual Studio Code, like this:

Describe the solution you'd like
Be able to have the option on the contextual menu (right-click on that open object tab) to identify the object on the Database Navigator.
Thanks in advance for considering it! :pray:

Hi, @dxps.
Have you tried using Link with editor  button?

Hi Elisabeth,
Thanks for the hint! :pray:  Indeed, that option is handy as well. I must have missed that.
I'll close the ticket as I consider having enough for the stated need.
All the best and keep up the good work!


ESMValTool doesn't appear to respect Slurm directives

Describe the bug
I am running the recipe_extreme_events.yml recipe on our compute cluster via a batch script. In my config-user.yml file, I have max_parallel_tasks: 1 set. When I run the recipe, the output to the screen includes:
2024-04-10 16:16:34,968 UTC [6077] INFO    Running tasks using at most 1 processes

as expected. The recipe takes just over 4 hours to run. However, when I have max_parallel_tasks: null set in my config-user.yml file, and #SBATCH --ntasks=12 in my batch script, the output to the screen includes:
2024-04-11 08:00:50,294 UTC [29906] INFO    Running tasks using at most 48 processes

This is unexpected! I would expect this to say 12 processes here. It didn't complete within the time I provided (5 hours), which is potentially a whole other issue! 😢

Emma, from the docs: Set to null to use the number of available CPUs. - so the Python processes spawn to the available numbers of CPU cores on the node that's running them - 48 in that case; the SLURM number of tasks is different than the number of processes that the Python interpreter executing the work is requesting: I believe to get correct 1-to-1 mapping of the Python procs onto the SLURM tasking, you'd need to set ntasks-per-node to be equal to the max_parallel_tasks https://stackoverflow.com/questions/51139711/hpc-cluster-select-the-number-of-cpus-and-threads-in-slurm-sbatch


KMS not responding

I tried running py-kms with python3 and 2 both give me the same error after the last git pull
`/usr/bin/python /opt/py-kms/py2-kms/server.py -s -v DEBUG
Client sending
===============>                Server received RPC Bind Request !!!
Server parsing RPC Bind Request...
Server generating RPC Bind Response...
Client receiving
<===============                Server sending RPC Bind Response...
RPC Bind acknowledged !!!
Client sending
===============>                Server received RPC Activation Request !!!
Server parsing RPC Activation Request...
Server processing KMS Activation Request...
Exception happened during processing of request from ('95.xx.83.xx', 42209)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 652, in init
self.handle()
File "/opt/py-kms/py2-kms/server.py", line 158, in handle
res = str(handler.populate())
File "/opt/py-kms/py2-kms/rpcBase.py", line 42, in populate
return self.generateResponse(self.parseRequest())
File "/opt/py-kms/py2-kms/rpcRequest.py", line 21, in generateResponse
responseData = kmsBase.generateKmsResponseData(request['pduData'], self.config)
File "/opt/py-kms/py2-kms/kmsBase.py", line 329, in generateKmsResponseData
return messagehandler.executeRequestLogic()
File "/opt/py-kms/py2-kms/kmsRequestV5.py", line 71, in executeRequestLogic
responseBuffer = self.serverLogic(decrypted['request'])
File "/opt/py-kms/py2-kms/kmsBase.py", line 177, in serverLogic
count = int(kmsitem['NCountPolicy'])
ValueError: invalid literal for int() with base 10: ''
Client sending
===============>                Server received RPC Bind Request !!!
Server parsing RPC Bind Request...
Server generating RPC Bind Response...
Client receiving
<===============                Server sending RPC Bind Response...
RPC Bind acknowledged !!!
Client sending
===============>                Server received RPC Activation Request !!!
Server parsing RPC Activation Request...
Server processing KMS Activation Request...
Exception happened during processing of request from ('95.xx.83.xx', 59443)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 652, in init
self.handle()
File "/opt/py-kms/py2-kms/server.py", line 158, in handle
res = str(handler.populate())
File "/opt/py-kms/py2-kms/rpcBase.py", line 42, in populate
return self.generateResponse(self.parseRequest())
File "/opt/py-kms/py2-kms/rpcRequest.py", line 21, in generateResponse
responseData = kmsBase.generateKmsResponseData(request['pduData'], self.config)
File "/opt/py-kms/py2-kms/kmsBase.py", line 329, in generateKmsResponseData
return messagehandler.executeRequestLogic()
File "/opt/py-kms/py2-kms/kmsRequestV5.py", line 71, in executeRequestLogic
responseBuffer = self.serverLogic(decrypted['request'])
File "/opt/py-kms/py2-kms/kmsBase.py", line 177, in serverLogic
count = int(kmsitem['NCountPolicy'])
ValueError: invalid literal for int() with base 10: ''
----------------------------------------`

I tested the KMS server in the folder previous "py-kms_2018_11_15.zip" all KMS Server in there just work fine

@ricktendo
do you have enabled your firewall ?

I just updated to the latest version, activated successfully


dockerUsername should be hyperledger

Description:
Summarize the changes you're submitting in a few sentences, including Jira ticket ATL-xxxx if applicable.
Link to any discussion, related issues, and bug reports to give the context and help the reviewer understand the PR.
Alternatives Considered (optional):
Link to existing ADR (Architecture Decision Record), if any. If relevant, describe other approaches explored and the selected approach. Documenting why the methods were not selected will create a knowledge base for future reference, helping prevent others from revisiting less optimal ideas.
Checklist:

[ ] My PR follows the contribution guidelines of this project
[ ] My PR is free of third-party dependencies that don't comply with the Allowlist
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked the PR title to follow the conventional commit specification

Close in favor of https://github.com/hyperledger/identus-mediator/pull/331


Section ".f-example" border width (very low priority)

This is a super nit picky one.... (sorry)
To better reflect and emulate what we see in Zeplin lets change that 3px border on ".f-section .f-example" to 2px.  Zeplin actually shows "1px solid rgba(0, 0, 0, 0.12)" for that border, but this 'stands out' too much from the ' language-markup' below – so in retaining our #f7f7f7 color the 2px gets our border just a tad thinner for that modern / clean look we see in the Zeplin examples.

@fuhton
Change has been made to this PR: https://github.com/JDRF/design-system/pull/21

Merged.

@fuhton
Created a PR with this separate change:
https://github.com/JDRF/design-system/pull/26

Merged and confirmed.


waiterApiBranch Review

Pull Request for waiterApi, demonstrating further functionality of the Restaurant project, adding waiterAPi, Order, and menuItem functionality.

Looks good! Nice documentation


dep found dependency in the node_modules

I'm developing AWS Lambda in Golang and using serverless/serverless for the deployment. However, after running dep init I found a dependency that I'm not using github.com/fnproject/fdk-go.
Greping the project directory shows that serverless tool has the project templates stored in the node_modules and dep considered that as a dependency:
$ grep -r "fdk" *
...
node_modules/serverless/lib/plugins/create/templates/fn-go/hello/func.go:	fdk "github.com/fnproject/fdk-go"
...

What version of dep are you using (dep version)?
v0.5.1
What dep command did you run?
dep init

Hey! You should be able to use this to ignore package paths - I'd suggest using it in this case. https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md#ignored


correct zone to enter for Promise.then callbacks

I have been working to get proper support for Promises in async-listener, and took a very different direction then what zone.js appears to be doing.  I was wondering what the best approach is since these libraries have fairly similar goals.
The question I have is:
For a promise, how should callbacks passed to then, catch and chain (currently looks like chain  is not implemented in zones) be bound to.
zones appears to be binding to the zone that was active when the promise is first created.
the patch I have been working on for async-listener (https://github.com/hayes/async-listener/blob/4cbbec288ed5e034415b1d4fbb480468627e889d/index.js#L260) binds callbacks to the context that was active when it was accepted or rejected.
My thinking with this was that the callback to a then would be a continuation from the previous async task, for example parsing a response would be a continuation from the request rather than the event handler that initiated the request.
I do not usually use Promises in my own code, so I am hoping to get some opinions from other people about the best way for this to work.  I also do not know about the internal implementation of zones in different browsers, only the implementations in v8 used in iojs 1.0, 2.0 and node 0.12, all of which seem to be good about always using the promise.constructor property when creating new promises for continuations. Implementing continuations in the way I have done for async-listener is definitely a lot more complex/complicated.
Feel free to close this is not relevant, or the wrong place to talk about this.
thanks for any input!

For a promise, how should callbacks passed to then, catch and chain (currently looks like chain is not implemented in zones) be bound to.

I think chain is not in naitve Promise

zones appears to be binding to the zone that was active when the promise is first created.

The callback are actually bound to the active zone when then (or catch) is called
I am not familiar with async-listsener, coudl you please expand on its goal and what you are trying to achieve ?

Sorry, I did not word that correctly, callbacks are bound to when then is called (then returns a promise, which is what I meant when I said promise is created).
V8 exposes a chain method on the promise prototype: https://github.com/v8/v8-git-mirror/blob/master/src/promise.js#L384
Async-listener is an api that was orinially designed for node, but has since been removed in favor of a lower level api.  It now exists as a polyfillfor the original api that monkeypatches all the async methods in node. It basically provides a way to share context between async calls similar to zone.js.
Async listener is a bit lower level then zones and does not directly create contexts, instead it allows a user to add a listener for any point when an async callback is created which can return an object that is passed to hooks that are run before and after the callback is executed.  This is the api continuation-local-storage is built on (much closer to the api zone.js exposes).
My goal here was to figure out what the reasoning was behind zone.js binding at the active zone at the time then or catch was called rather than at the time the promise was resolved.  zone.js
Its likely that the same approach would make sense in both libraries so I just wanted to understand the reasoning behind the decision.

Async-listener is an api that was orinially designed for node, but has since been removed in favor of a lower level api. It now exists as a polyfillfor the original api that monkeypatches all the async methods in node. It basically provides a way to share context between async calls similar to zone.js.

Interesting... we should have "something" working in the node.js env, I'll take a deeper look at your project.

My goal here was to figure out what the reasoning was behind zone.js binding at the active zone at the time then or catch was called rather than at the time the promise was resolved. zone.js

I think that if you make a parallel with an event listener, it is easier to understand. You want the listener to execute in the zone where is was set up.
Note that this behavior is also what Dart implement - Dart has native support for Zones

Thanks for the info, I think this makes sense.  For async-listener, event-listeners can be ignored as being synchronous (for the most part).  I can see why promises would follow the same pattern in zone.js.
Currently async-listener is mostly being used for APM products and long stack traces, so for us I think it makes sense to link the continuations to the thing that resolved the promise rather than the thing that created it.
Both approaches have their places, and I think in browsers (especially with some of the newer apis) promises will be resolved from outside the application, so linking to that does not make as much sense, node and browsers have very different concerns.
Thanks again


NNI does not support shmMB parameter in pai mode

For a standalone PAI jobconfig, I can configure shmMB in the config yaml file on web, which works ok for my training;
However, for NNI PAI mode, if I configure shmMB in the exp_pai.yml, and run the command:
nnictl create --config exp_pai.yml

then the error occurs:
ERROR: Your config file is not correct, please check your config file content!
Key 'trial' error:
Wrong key 'shmMB' in {'gpuNum': 2, 'shmMB': 8196, 'command': 'bash test.sh', 'codeDir': '/bigdata/gemfield/.', 'outputDir': 'hdfs://<IP_ADDRESS>:9000/nni', 'dataDir': 'hdfs://<IP_ADDRESS>:9000/DataSet/data2016', 'memoryMB': 8196, 'cpuNum': 2, 'image': 'gemfield/pytorch4hdfs:1.0.1'}

If I decide to not set shmMB in exp_pai.yml, then the job will fail during the training phase because of the shm limit.

NNI does not support this param yet, we will support this feature in this sprint.
https://github.com/Microsoft/nni/issues/842


HEDA update Primary Contact field on HH Account whenever there is a new Contact added to the Account

**lurch: add

Tracking W-022720

Included in beta release 1.50 (Beta 1)


Image classification using VGG on CIFAR100 dataset

Please navigate to tasks/computer-vision/image-classification and do 'mlflow run .'
Expect to obtain ~68% test accuracy after 200 epochs of training.

@srikanth-sfu Thanks for creating this model! Please update the README.md to include dataset download instructions.

Dataset download happens automatically -- you don't have to download it manually, and just need a few hundred megabytes.

Hi @srikanth-sfu. Thank you for your pull request.
I like the large number of passable parameters in MLproject :+1:. I ran a test run with mlflow run . -P epochs=10, which succeeded without error :100::
Train Epoch: 10 [0/50000 (0%)]	Loss: 1.208239
Train Epoch: 10 [12800/50000 (26%)]	Loss: 1.373618
Train Epoch: 10 [25600/50000 (51%)]	Loss: 1.378196
Train Epoch: 10 [38400/50000 (77%)]	Loss: 1.471107
Saving current best model....

Test set: Average loss: 1.7339, Accuracy: 5279/10000 (53%)

Training Done. Accuracy = 52.790000
Best model saved in models/

That's 53% accuracy with only 10 epochs! Changing the hyperparameters might improve the accuracy with 200 epochs, but 68% is good.
I have a few questions:

How does one set the parameter enable-cuda to False? Namely,
will [True, 'True', 'true', 1] all map to True and everything else maps to False?
After 200 epochs, does the improvement in accuracy mostly level off?
How long did it take to do 200 epochs on your setup?

Hi @mlaradji,

Currently, it works only for True/False -- true/1 doesn't work as of now (Note True/'True' are equivalent here.).

Yes. Training loss, which is what we need to track, stabilizes towards the end (Note a caveat where there is a brief increase in training loss for a couple of epochs and fallback again to the lowest of its values soon) -- accuracy behaves in an analogous manner.

On my GTX 1080 Ti GPU, it took me 1.5 hours to train for 200 epochs.

@srikanth-sfu Please delete your README_srikanth.md file since you already have tasks/computer-vision/image-classification/9945345b-9c32-45ba-a079-b9f7d6a2f515/README.md

Done!

@srikanth-sfu Thanks for making these modifications!
@mlaradji This pull request is ready to be merged.


Syntax highlighting makes part of command look like comments

File: toolbox/faqs/troubleshoot.md

this part:

docker-machine create --driver virtualbox default

after -- (double dash) it looks like it is a comment and looks like you shouldn't type --driver...
Can you make that look as it is not a comment?

Solvable if someone adds none after the triple backticks on the example

Change the syntax highlighting hint to none.

#dibs

This renders correctly now, this issue can be closed.

Thanks


"pn_jobids_lst" not defined

Hi,
I Just want report this error.
Bacula enterprise version 12.6.4, CentOS 7.9.2, mysql catalog,  python3.6.
[root@bacula-dir src]# python3.6 baculabackupreport.py -e<EMAIL_ADDRESS>-f<EMAIL_ADDRESS>--dbtype mysql --dbpass passwordSecret

Traceback (most recent call last):
  File "baculabackupreport.py", line 1072, in <module>
    print(pn_jobids_lst)
NameError: name 'pn_jobids_lst' is not defined`

I just add " pn_jobids_lst = [] " at line 1071 before the error and after the report finish without problems.
I hope this help or maybe has some impact.
Thanks for your work.

Thank you for the report.
Hmmm, what version is printed at the bottom of the report?  I just added some new features today, and made some commits, there should not be any 'print(pn_jobids_lst)' in the code unless I accidentally committed and pushed some testing version. :)
I have done a little more work this evening, so I may have already fixed this issue.

Hi !
Sorry, the print() was added by me in order to debug not in your code but the error with the var is the same.
At this line 1071 ->    if len(pn_jobids_lst) != 0:
Report version:
Bacula Backup Report - v1.20 - baculabackupreport.py
By: Bill Arlofski<EMAIL_ADDRESS>(c) July 26, 2021
Great news, take a look and I will be follow the commits.

OK, I have reproduced the problem and I think I have fixed it. I will push a new version (1.21) shortly.
The issue was that you apparently do not have any copy or migration jobs and because of this, that variable does not get created, but then I was referencing this non-existent variable later in the code.
Thank you again for the report.


Default font size may be still missing

I saw your new commit. You set the font as FreeMono if Arial not found. But the problem of font not found still happens when I try to run the program on the Azure DSVM or DLVM.
So the better way, as i think, is to mention this problem in the Readme so that people will know everything they have to have before the program runs successfully.

Damn.. will add this info to readme


Feature Request: Renderer Dependencies

Describe the feature request
Right now, synchronising renderers is extremely barebones. By default, renderers will submit work whenever requested, and that work doesn't wait on anything. There is a RendererOption which causes render() to block until the work has finished, but that's only useful if everything needs to stop until some render work is done.
It is common for a renderer to do work that is depended on by another, but we don't want to halt the CPU until the initial work is done. The golden solution to this would be a render graph, but I don't think that's necessary. Instead, renderers (or the device itself) should be able to register dependencies between renderers, like subpass dependencies in vulkan.
Example - Renderer Specifies Dependency:
tz::gl::RendererHandle rh = //...
tz::gl::RendererInfo rinfo2;
//...
rinfo2.add_dependency(rh);

Example 2 - Device Specifies Dependencies:
tz::gl::RendererHandle rh = //...
tz::gl::RendererHandle rh2 = //...
tz::gl::device().add_dependency(rh, rh2); // rh2's render/compute work now waits on a semaphore to be signalled by the completion of rh's work.

The former is probably ideal instead of the latter, but implementation details may necessitate the latter. I don't think a render graph should be considered unless neither of these work or it turns out to be super fiddly/difficult in practice.
Justification
Render passes depending on each other is ubiquitous, and the lack of this feature forces us to use RenderWait in places where it's not necessary. The biggest example of this is dbgui - right now the dbgui intermediate renderer has RenderWait because it needs to be done by the time the dbgui final renderer invokes. This forces the cpu to wait for each intermediate render pass, which is awful for perf. With this new feature, RenderWait can be removed from that renderer and instead we specify a dependency for the final renderer on the intermediate renderer (note that im not sure how this will work in practice as the intermediate renderer may run several times before the final renderer does, which might cause semaphore shenanigans)
Additional context
zeux.io does list some flaws with this approach in the render graph portion, which is worth bearing in mind. Especially as there is a nonzero chance we are forced to use a render graph in the future.

API for this now exists at 688066ededfac36462dae15d93fc187efcbc93f4 however there is no implementation.

I have been working on an implementation for this for the past few months. It can be found on the vk_device2 branch.
The following syntax/API was introduced to specify renderer dependencies at vk_device2 - 289568f:
tz::gl::renderer2& compute_worker = tz::gl::get_device2().get_renderer(compute_workerh);
tz::gl::renderer2& renderer = tz::gl::get_device2().get_renderer(rendererh);
tz::gl::get_device2().render_graph().timeline = {compute_workerh, rendererh};
tz::gl::get_device2().render_graph().add_dependencies(rendererh, compute_workerh);

The timeline represents the expected order of execution of renderers throughout the frame. In this example rendererh depends on compute_workerh, meaning that synchronisation logic will ensure that the render work for rendererh will not begin until the work for compute_workerh has completed.
This means that it is now possible to call renderer.render(...) wrongly. If you run render on renderers not matching the order you specified, you will run into sync errors. To remedy this, a new tz::gl::device::render() function has been added. This will invoke render() on all the renderers in the timeline in the order you specified in the timeline. Renderer dependencies shall be respected. Obviously if you need to do some cpu work between renderer invocations then you can't use this - in that scenario you will just need to make sure you invoke the renderers in the correct order yourself.
If you ever try to invoke a renderer when the timeline is empty, a warning will be emitted. If it's just a single renderer, the sync logic would've been trivial anyway so unlikely to be any harm. If you expect to run a whole game's render pipeline though without populating the render graph then you are doomed to fail.
Note that this is only implemented for the new vulkan renderer, and this work isn't even merged to master yet.

The aforementioned work is now complete, and is available (read: mandatory) in Topaz 4.0. Closing.


Bug with sliced extensions

Resource: https://hl7.org/fhir/R4/Patient.html
Endpoint:
http://localhost:8085/tofhir/fhir-definitions?q=elements&profile=https://www.medizininformatik-initiative.de/fhir/core/modul-person/StructureDefinition/PatientPseudonymisiert
onFHIR: REDCap common data model
toFHIR Mapping Repo: https://gitlab.srdc.com.tr/medic/redcap-integration-mapping
Mapping: Patient mapping in erker-mapping
Path: address.extension
There is missing data on sliced extensions:
Response:

The response that should be

Difference is isArray and dataTypes fields.

We handle the extension in the front-end now. Hence, this issue can be closed.


redirect-ssl not working on generated content

Hi,
i need to do an ssl redirect on my site to obtain from http://mysite.com to https://mysite.com
All the contents are created with Nuxt and the final version is generated via:
npm run generate command
But when I try to upload the site to my server (with a simple Apache installation and a valid certificate) if I use http protocol it does not redirect to https protocol.
Could you please show me the exact passes to implement your plugin in this cases?
Kindly,
Roberto

This question is available on Nuxt community (#c3)

This won't work because you don't have a nuxt server running on generated projects


Suggestion: allow users to manually enter a value for "Sky Rotation" instead of using a slider

currently the only way to change sky rotation is with a slider that can go from 0.000 to 360.000 and doesn't allow for some rotation values (you can only go up or down by 4.794 on 1360x768). allowing users to enter a value between 0.000 and 360.000 by pressing LMB/Left click on "Sky Rotation" would allow the user to use sky rotation values they can't use because of the slider.

I'm pretty sure you just have to right click the textbox.


no response body property - TypeError: Cannot read properties of null (reading 'trim')

Same error as https://github.com/joolfe/postman-to-openapi/issues/198 , if body field is missing in a response.
See reproduction.
npx -y pmpact https://gist.githubusercontent.com/YOU54F/994b85ff830ed2f6f21057779c0a40f0/raw/41d3286503714bca5914df7da54a665c83a84c60/pact.json  > postman-collection.json && npx -y p2o postman-collection.json
❯ npx -y pmpact https://gist.githubusercontent.com/YOU54F/994b85ff830ed2f6f21057779c0a40f0/raw/41d3286503714bca5914df7da54a665c83a84c60/pact.json  > postman-collection.json && npx -y p2o postman-collection.json
TypeError: Cannot read properties of undefined (reading 'trim')

modifying the input file to have "body": {} in the response body
https://gist.github.com/YOU54F/994b85ff830ed2f6f21057779c0a40f0/revisions#diff-5f14bf76a8d5411742e1d427c982aca6fd3cc539aec6c998ddca5bb7f19c5565R63
returns in the OAS being returned
npx -y pmpact https://gist.githubusercontent.com/YOU54F/994b85ff830ed2f6f21057779c0a40f0/raw/5665d6625bc0f692f730bac058e4456c5bfe565b/pact.json > postman-collection.json && npx -y p2o postman-collection.json
Returns
openapi: 3.0.0
info:
  title: Pact - pactflow-example-consumer - pactflow-example-provider
  version: 1.0.0
servers:
  - url: http://{{url}}
paths:
  /product/10:
    get:
      tags:
        - default
      summary: a request to get a product
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer 2019-01-14T11:34:18.045Z
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
          content:
            application/json:
              schema:
                type: object
              example:
                id: '10'
                type: CREDIT_CARD
                name: 28 Degrees
  /product/11:
    get:
      tags:
        - default
      summary: a request to get a product
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer 2019-01-14T11:34:18.045Z
      responses:
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
              example: {}
  /products:
    get:
      tags:
        - default
      summary: a request to get all products
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer 2019-01-14T11:34:18.045Z
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json; charset=utf-8
          content:
            application/json:
              schema:
                type: object
              example:
                - id: '10'
                  type: CREDIT_CARD
                  name: 28 Degrees

Not urgent for me, just been playing around with the tool and noted this. Great work BTW

@YOU54F thanks for report the issue,
This is a tricky one... the error is produced because the body in the response is undefined, I'm not able to generate a postman collection file with an undefined body using postman app or online version... but as this is easy to fix I have just released a new version 2.7.2 solving this.
Best Regards.


Introduce new functional APIs

These new functional APIs (jaxsim.api) will soon replace those based on OOP (jaxsim.high_level).

Switch to kiss. The former OOP pattern, although more user friendly, fights back the functional JAX approach and required complex decorators to maintain and debug.
Easier for users to extend / modify the logic. Instead of changing something deep down in the framework, they just have to update / rewrite a single function.
Applying jax transforms like jax.vmap and jax.grad is more simple being more vanilla.

Furthermore, this PR:

Introduces new functions to operate on links and joints through their indices. Although I never liked this approach (and using names is still an option), having also functions operating on indices enables the use of jax.vmap to iterate on links and joints.
Introduces a new logic to get a good initial set of soft-contacts parameters based on the model inertial properties. In the past, tuning these parameters by hand has been quite difficult. The new logic provides a good starting point from which users can start iterating.
The existing fixed-step integrators have been rewritten from scratch. The new structure is now compatible with the introduction of variable-step integrators (in a future PR). So far, only the explicit schemes have been ported. This time, all of them with variants that integrate the quaternion on $\text{SO}(3)$.

Some implementation detail that might ease the review process and the transition to the new APIs:

The key data structures are now JaxSimModel and JaxSimModelData.
Most of API functions take them as first two arguments. In order to have more stable APIs, and allow us to change the signature of functions in future versions, all others arguments are enforced to be kwargs.
The velocity representation is now part of data (still as static attribute).
The soft-contacts parameters is now part of data. Therefore, in a vectorized scenario, there could be different parameters for each data instance, enabling domain randomization on these parameters.
The terrain instead is global and stored inside the model (therefore, it is not possible to parallelize a model over different terrains, that makes sense at least for now).

Next steps:

Port semi-implicit integration schemes to the new APIs.
Introduce variable-step integrators.
Merge jaxsim.api.model.JaxSimModel with jaxsim.physics.model.PhysicsModel.
Introduce a new pytree KynDynParameters to store inside JaxSimModel the model parameters, so that we can differentiate against them as well (we need also decent setters/getters).
Introduce error handling for link/joint indices out of bound, and data objects not compatible with model.

📚 Documentation preview 📚: https://jaxsim--88.org.readthedocs.build//88/

The MWE of the new functional APIs is the following script. Resulting video attached.

MWE
import pathlib

import jax.numpy as jnp
import jaxsim.api as js
import numpy as np
import resolve_robotics_uri_py
import rod
from jaxsim import VelRepr, integrators

# Find the urdf file.
urdf_path = resolve_robotics_uri_py.resolve_robotics_uri(
    uri="model://ergoCubSN001/model.urdf"
)

# Build the ROD model.
rod_sdf = rod.Sdf.load(sdf=urdf_path)

# Build the model.
model = js.model.JaxSimModel.build_from_model_description(
    model_description=rod_sdf.model,
    gravity=jnp.array([0, 0, -10.0]),
)

# Reduce the model.
model = js.model.reduce(
    model=model,
    considered_joints=tuple(
        [
            j
            for j in model.joint_names()
            if "camera" not in j
            and "neck" not in j
            and "wrist" not in j
            and "thumb" not in j
            and "index" not in j
            and "middle" not in j
            and "ring" not in j
            and "pinkie" not in j
        ]
    ),
)

# Build the model's data.
# Set already here the initial base position.
data0 = js.data.JaxSimModelData.build(
    model=model,
    base_position=jnp.array([0, 0, 0.85]),
    velocity_representation=VelRepr.Inertial,
)

# Update the soft-contact parameters.
# By default, only 1 support point is used as worst-case scenario.
# Feel free to tune this with more points to get a less stiff system.
data0 = data0.replace(
    soft_contacts_params=js.contact.estimate_good_soft_contacts_parameters(
        model, number_of_active_collidable_points_steady_state=2
    )
)

# =====================
# Create the integrator
# =====================

# Create a RK4 integrator integrating the quaternion on SO(3).
integrator = integrators.fixed_step.RungeKuttaSO3.build(
    dynamics=js.ode.wrap_system_dynamics_for_integration(
        model=model,
        data=data0,
        system_dynamics=js.ode.system_dynamics,
    ),
)

# =========================================
# Visualization in Mujoco viewer / renderer
# =========================================

from jaxsim.mujoco import MujocoModelHelper, MujocoVideoRecorder, RodModelToMjcf

# Convert the ROD model to a Mujoco model.
mjcf_string, assets = RodModelToMjcf.convert(
    rod_model=rod_sdf.models()[0],
    considered_joints=list(model.joint_names()),
)

# Build the Mujoco model helper.
mj_model_helper = self = MujocoModelHelper.build_from_xml(
    mjcf_description=mjcf_string, assets=assets
)

# Create the video recorder.
recorder = MujocoVideoRecorder(
    model=mj_model_helper.model,
    data=mj_model_helper.data,
    fps=int(1 / 0.010),
    width=320 * 4,
    height=240 * 4,
)

# ==============
# Recording loop
# ==============

# Initialize the integrator.
t0 = 0.0
tf = 5.0
dt = 0.001_000
integrator_state = integrator.init(x0=data0.state, t0=t0, dt=dt)

# Initialize the loop.
data = data0.copy()
joint_names = list(model.joint_names())

while data.time_ns < tf * 1e9:

    # Integrate the dynamics.
    data, integrator_state = js.model.step(
        dt=dt,
        model=model,
        data=data,
        integrator=integrator,
        integrator_state=integrator_state,
        # Optional inputs
        joint_forces=None,
        external_forces=None,
    )

    # Extract the generalized position.
    s = data.state.physics_model.joint_positions
    W_p_B = data.state.physics_model.base_position
    W_Q_B = data.state.physics_model.base_quaternion

    # Update the data object stored in the helper, which is shared with the recorder.
    mj_model_helper.set_base_position(position=np.array(W_p_B))
    mj_model_helper.set_base_orientation(orientation=np.array(W_Q_B), dcm=False)
    mj_model_helper.set_joint_positions(positions=np.array(s), joint_names=joint_names)

    # Record the frame if the time is right to get the desired fps.
    if data.time_ns % jnp.array(1e9 / recorder.fps).astype(jnp.uint64) == 0:
        recorder.render_frame(camera_name=None)

# Store the video.
video_path = pathlib.Path("~/video.mp4").expanduser()
recorder.write_video(path=video_path, exist_ok=True)

# Clean up the recorder.
recorder.frames = []
recorder.renderer.close()

Video
https://github.com/ami-iit/jaxsim/assets/469199/d92e53e3-e71b-4b5a-84e4-e563d94dec3e

Some comment:

With the automatic computation of the soft-contact parameters, using the fixed-step RK4 integrator with quaternion on $\text{SO}(3)$ with $\Delta t = 0.001 s$ is enough to have a stable simulation.
Stepping the ergoCub robot, reduced to have 23 DoFs, takes:%timeit js.model.step(...)
968 µs ± 137 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)

obtaining therefore a real-time-factor of 1.

Thanks for working on this @diegoferigo, it looks pretty neat! Could you please add the new modules in the docs?

Thanks for working on this @diegoferigo, it looks pretty neat! Could you please add the new modules in the docs?

I don't want to waste time now to fix the documentation, I'll do it as soon as things get more stable. I expect problem with math rendering etc, and I don't want to dedicate time to it at this early stage :) It has to be done before the next release.

I don't want to dedicate time to it at this early stage :)

Agreed!

I have a couple more comments:

If we want the old OOP structure to follow a deprecation cycle, I believe it can be worth adapting the tests in order to validate the new API. It's probably worth testing it anyway
It's not clear to me how to change the pose parameters. In the older API you could call e.g.  model.reset_joint_positions(...), what should a user modify now, the JaxsimModelData using the replace method?

C.C. @traversaro

I have a couple more comments:

If we want the old OOP structure to follow a deprecation cycle, I believe it can be worth adapting the tests in order to validate the new API. It's probably worth testing it anyway

I already have local tests. They will be added in a new PR.

It's not clear to me how to change the pose parameters. In the older API you could call e.g.  model.reset_joint_positions(...), what should a user modify now, the JaxsimModelData using the replace method? In that case, if I'm not mistaken, it would be something like:

Although the new functional APIs will get merged into main, they are not yet 1:1 with the OOP ones. I'm still working on resources to simplify reset and actuation. Now you need to alter directly data.state as you found out.

@flferretti I just added JaxSimModelData.reset_* methods.


chore(master): release 1.0.3

:robot: I have created a release beep boop
1.0.3 (2023-08-09)
Miscellaneous

deps: update dependency pestphp/pest to v2.13.0 (f462c44)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-stripe-webhooks/releases/tag/v1.0.3 :sunflower:


TypeError: Cannot read property 'state' of undefined

Happening with node-0.8.0 and mocha-1.2.2
/home/src/cartodb/superagent/node_modules/mocha/lib/runner.js:410
  if ('failed' == runnable.state) return;
                          ^
TypeError: Cannot read property 'state' of undefined
    at Runner.uncaught (/home/src/cartodb/superagent/node_modules/mocha/lib/runner.js:410:27)
    at process.uncaught (/home/src/cartodb/superagent/node_modules/mocha/lib/runner.js:443:10)
    at process.EventEmitter.emit (events.js:115:20)

Invocation is:
mocha --require should --reporter dot --timeout 100 --growl test/node/*.js

From top-dir of superagent master

Yup, closing since it was fixed in https://github.com/mochajs/mocha/commit/b255074d3104fd8b7dd1697740696bf38fe96783 :)


[GSSoC'23] Enhancing the readability of some pages by changing the css.

Please assign this to me.

I am interested to work on this issue please assign me this task under gssoc.

Dear Administrator, I request to be assigned GSSOC-23. With my skills and dedication, I am confident in resolving the issue efficiently and contributing to the project's success. Thank you.


feat: Action to display inputs to a workflow

Description
Action to display the inputs to a workflow in the logs and, optionally, on the GitHub summary
Related issue: (MOT Recalls) (BL-15334
Before submitting (or marking as "ready for review")

[ ] Does the pull request title follow the conventional commit specification?
[ ] Have you performed a self-review of the code
[ ] Have you have added tests that prove the fix or feature is effective and working
[ ] Did you make sure to update any documentation relating to this change?

GitHub already logs inputs in the default logs:


Support absolute time on Observable.timer

Just what it says. We should be supporting absolute time on Observable.timer in a similar fashion to RxJS 4.

I can work on this one.

I just couple of minutes late than @luisgabriel to work on this ;)

@kwonoj feel free to take this one then. I'm not sure how soon I'll be able to work on it. ;)

@luisgabriel no, it's completely ok. :)

Do you two need a tie breaker? Because I'll just do what I do with my kids and say @luisgabriel was "here first."

Took this one to close opened issues.


Non-trivial example

Is there a non-trivial example of a flow where steps are not running directly in the FlowSpec, but in different docker container?
    @step
    def a(self):
        # Step should be processed by a worker running "DockerImageA"
        self.next(self.b)
   @step
    def b(self):
        # Step should be processed by a worker running "DockerImageB"
        self.next(self.end)

Yes, indeed - you can run on AWS Batch with your own container -
@batch(image="my_image")
@step
def step(self):
    ...

Is there a way to run such a flow locally?

Not currently. What would be your use-case? You can specify specific dependencies locally using the @conda decorator as well.

Essentially testing workflows locally, where some of the steps are built by other teams in potentially other languages.

We don't support this today on the local instances. Our recommendation is to use @conda and/or execute in the cloud.

Does @savingoyal 's last response answer your question? I'm wondering if we can close this issue as "will not fix".

Sorry for the delay. Yes it's answering my question.


Support Aggregated ClusterRoles

e.g. https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles

This may automagically work, But we need to test it


convert files from CRLF to LF

MAKE SURE TO PRESERVE HISTORY

it appears to affect more than just the changelog


Resulting image is larger than source image with no operations

I have tested this on following image which has size 13.3 kb.
https://www.google.co.in/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png
If I pass this image through sharp without any operations, the size becomes 30.3 kb. Why there is increase in size?

Hello, that logo will probably have been pngcrushed to death. Take a look at #333, specifically the compressionLevel(9) and withoutAdaptiveFiltering() suggestions.


content/ja/docs/concepts/storage/volume-snapshot-classes.md is outdated

This is a Feature Request

What would you like to be added
Update content/en/docs/concepts/storage/volume-snapshot-classes.md to follow the en updates.
Why is this needed
content/ja/docs/concepts/storage/volume-snapshot-classes.md is outdated.
Comments
/language ja
/assign
diff
https://gist.github.com/oke-py/990b03c0e1a47239d10ef6fdf8989018

/close


Google Chrome blocks the download claiming it contains Win32/Malgent!MTB malware

Describe the bug
Google Chrome blocks the download claiming it contains Win32/Malgent!MTB malware
To reproduce
Steps to reproduce the behavior:
On the page https://github.com/win32ss/supermium/releases/tag/v124 go to the "Assets" section and click on the link "supermium_124_32_setup.exe" (https://github.com/win32ss/supermium/releases/tag/v124#:~:text=supermium_124_32_setup.exe)
Desktop

OS: Windows 11 Pro 64
Chrome 127.0.6533.89 (Versão oficial) 64 bits

Screenshots

@vacari It's been reported before, it's a false flag  https://github.com/win32ss/supermium/issues/765  and https://github.com/win32ss/supermium/issues/315

@vacariJá foi relatado antes, é uma bandeira falsa #765 e #315  #748

Ok Thank you!

I reopened just to report that after disabling Chrome Security then Windows Security also reports Virus and remove file, as below:
webfile: G:\supermium_124_32_setup.exe|https://objects.githubusercontent.com/github-production-release-asset-2e65be/638089306/7edd9b3e-c204-4f7a-9a5a-302f3b09b9e6?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240806%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240806T023231Z&X-Amz-Expires=300&X-Amz-Signature=0292369e0a7eab385050f064285c71ab550480ffb7f40f5e74668bf88ee77db5&X-Amz-SignedHeaders=host&actor_id=6704887&key_id=0&repo_id=638089306&response-content-disposition=attachment%3B%20filename%3Dsupermium_124_32_setup.exe&response-content-type=application%2Foctet-stream|pid:18708,ProcessStart:133673851561375293

You might have to disable Windows Security to get it installed then delete the setup file and reenable security.  The actual browser doesn't trigger security it's something about how the 32bit setup installer is made that causes a false flag.  It REALLY is 100% safe.

I installed on Windows XP with a Kaspersky antivirus, reported progwrp.dll as malware.

just false flag

Just encountered this when trying to resurrect an ancient Windows Vista computer (over the phone! lol) that had Chrome version like 40-something (or whatever the latest version on Vista was). Unable to download anything from GitHub due to GitHub not supporting browsers that old. Found the download (win32) on another site that worked, and got this error. Google results on how to get around it were next to useless since all the instructions were for later versions of Chrome. Finally found this, showing the old Chrome settings you need to disable, and thought I'd add it here in case it helps anyone: https://www.youtube.com/watch?v=ROqKE5h6Tk4

@random-pixels :
Supermium's dedicated homepage comes into two flavours:
https://www.win32subsystem.live/supermium/
https://www.win32subsystem.live/supermium/legacy/
which should be compatible with (especially the "legacy" one) down to Internet Explorer 6 (default browser on a fresh installation of WinXP); both flavours contain links to the latest Supermium installers :wink: ...
As for Vista SP2, IE9 has no issues there:

IE isn't a Google product, so they can't interfere with the download via their "Security Protection" :angry:  ...
TL;DR: One shouldn't need/rely on Google Chrome 49 :-1: under Vista to fetch and install latest Supermium there :stuck_out_tongue_winking_eye:  ...

The 32 bit Supermium installer is a major issue for many AVs. Most of the detections disappear if I remove the registry modification part of the installer, which isn't a valid solution. But I will be modifying this section to add an option to write to HKCU instead of HKLM, which should impact the heuristic view of the installer.

@random-pixels :
Supermium's dedicated homepage comes into two flavours:
https://www.win32subsystem.live/supermium/
https://www.win32subsystem.live/supermium/legacy/

Thank you so much for this! Unfortunately, this site did not show up in Google's search results, nor was it mentioned on the GitHub page's Readme, so I didn't know it existed. I would much rather have gotten the file from an authorized source than a third-party downloader, but there you have it. Luckily we got it up and running and it works great (just slowly, which is understandable for a modern browser on such an old machine). Hopefully it helps someone else though!

Thank you so much for this!

You're most welcome! :smile: ...

this site did not show up in Google's search results

... key word there being "Google" :rage: ; don't you see the pattern? "They" are the arch-enemies of everything "legacy"...

nor was it mentioned on the GitHub page's Readme, so I didn't know it existed.

FWIW, there's a very prominent link to the official site once one arrives to the main Supermium GitHub repo page :wink:  :

... but, of course, you need a fairly recent browser to properly render that page...
Best regards :smile: !

Recently, a modification was made to the Supermium installer to incorporate the option to install Supermium for the whole system (writing to HKLM and placing shortcuts in All Users desktop) or for an individual user (writing to HKCU and placing shortcuts in the user's desktop folder). These changes reduced the number of VirusTotal detections on the 32 bit Supermium installer from 17/75 to 8/75.
Actually, there is one change I have to make; all registration keys must go into HKLM even on a per-user install if it's on something older than Windows 8 (this isn't documented officially by MS, only deep in the Chromium source code, and I was wondering why there was no Supermium registration in the default programs list on XP or 7 with a per-user install). This would have another impact on the AV results.


Minor Update: Capitalize Check in Excercise 1 Page

Capitalize "Check" in these Check buttons

Assign to florence


Is there a callback when controls are visible or hidden?

I need to understand when controls of YouTube player are visible to add some logic

Unfortunately no, the IFrame API doesn't expose such callback.


mistake in Verify Your Full Vending Machine Implementation

Have a mistake " 1) "before each" hook for "vendingMachine should have a function called insertCoin" "
But the problem was in using
if (!canAfford(amount))
instead of
if (!this.canAfford(amount))
in balanceMachine.js

After reading your post, I'm still face the same error. It should be focused on the decreaseBalance() method of the balanceManager.js.
I think it had to be with the return, any thoughts on what else could be?

On the balanceManager canAfford should only return. I commented the throw new Error part and it pass the test. I've no idea why since in the previous exercise it was checking for it.
canAfford: function(amount){
    /*if(!this.isValidAmount(amount)){
      throw new Error('Invalid Input');
    }*/
    return amount <= balance;
},

balanceManager.js
canAfford: function(amount){         return amount <= balance;  }
vendingMachine.js
`var balanceManager = require('./balanceManager');
var changeHandler = require('./changeHandler');
var productInventory = require('./productInventory');
module.exports = {
insertCoin: function(coinType){
var value = changeHandler.getAmount(coinType);
balanceManager.increaseBalance(value);
},
releaseChange: function(){
var currentBalance = balanceManager.getBalance();
balanceManager.decreaseBalance(currentBalance);
return this.convertToChange(currentBalance);
},
convertToChange: function(amount){
var coins = {
'p': 1,
'n': 5,
'd': 10,
'q': 25
};
var coinsByAmount = ['q', 'd', 'n', 'p'];
var change = [];
for(var i in coinsByAmount){
  var coinType = coinsByAmount[i];
  var coinValue = coins[coinType];

  while(amount >= coinValue){
    change.push(coinType);
    amount -= coinValue;
  }
}
return change;

},
vendProduct: function(productId){
var product = productInventory.getProduct(productId);
balanceManager.decreaseBalance(product.price);
return product;
},
getProducts: function() {
return productInventory.getProducts;
}
};`


Serial console freezes on APU2

After writing OPNsense-17.1-OpenSSL-serial-amd64.img to a USB flash drive and installing to mSATA SSD on APU2, booting OPNsense results in a hang before it can display the "login:" prompt.
It starts to print the line "FreeBSD/amd64 (OPNsense.localdomain) (ttyu0)" very slowly but fails and then repeats the process of printing the line again. It never gets the "login:" prompt. You can login using the web interface though.
I am using 115200 8N1 for the serial console.

Installing all updates to upgrade to 17.1.2 changes the Primary Console in System > Settings > Administration to "VGA Console". After changing to "Serial Console" it starts trying to display the login  prompt but fails as mentioned above.

This doesn't sound normal. Is your BIOS up to date, have you double-checked with an older image?

BIOS is 3/7/2016. Newer BIOS version adds iPXE which I don't need. Console login is working with latest pfSense and LEDE distributions.

Ok, knowing about other distros is nice, but doesn't help us diagnose. I need to know of 16.7 serial images are different. :)

Works fine on 16.7 if I Ctrl-C after it boots to installer on USB. Shows login prompt and can login as root.
17.1 USB boots straight to login prompt and freezes.

without a password? what kind of serial are you using? built-in or usb?

Yes, I enter root user and press enter so logs in on 16.7 booted from USB without password. Physical RS-232 port on apu2c4 board exposed through chassis connected using serial cable to FTDI USB-serial adapter on Windows running PuTTY at 115200 8n1.

Alright, the password-less login is the FreeBSD standard, not the one we use, which brings us a bit closer, but still not quite.
There's a full walk through (in German) for the APU.2C4 here also using Putty: https://forum.opnsense.org/index.php?topic=3528.0
Would you mind going through it to see where things don't work as expected for you?

Any interaction before the login prompt works fine. I can press keys for manual interface assignment or go through installer process. It is just as soon as it gets to login prompt it freezes.

This should have be tested on released images for 17.1.4 and 17.7-RC1 (this week). Feel free to reopen. Thanks!


add consumers count field to filters and output of list-topics

Adding consumers count field to list-topics filters and output. Example:
topic_name>list-topics
Topic Name                                                  Consumers  Enqueued  Dequeued

ActiveMQ.topic                                                    0          7         0
I run "sbt test" but even without any changes I get
Failed tests:
[error]         amazonmq.cli.command.QueueCommandsTests
[error]         amazonmq.cli.command.TopicCommandsTests
against AWS MQ 5.15.15 and 5.15.10 (help says that amazonmq.cli has "ActiveMQ 5.15.11 compatibility")
Can you please point to instruction for testing?

Hi,
Thanks for your pull request. I am no longer actively maintaining this repo so I will archive it. Feel free to clone the repo and create your own releases.
Regarding the failed tests; they are 'integration tests' and require a configured amazon-mq (test) broker in amazonmq-cli-test.config. Hope this helps.


Added A login page for this website

Description
(Write your answer here.)
Checklist

[x] I am making a proper pull request, not a spam.
[x] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
#126
(Write your answer here.)
Add relevant screenshot or video (if any)
(Add here)

@tjanhvi Please check this link. The div for login is not in the center. Check that


Try cmake fix from xeus

Trying https://github.com/jupyter-xeus/xeus/pull/301

Converting to draft as we should not merge this


chore: add .NET Framework integration tests

Codecov Report

Merging #219 (a567c21) into main (d39ace7) will increase coverage by 0.53%.
The diff coverage is 95.34%.

@@            Coverage Diff             @@
##             main     #219      +/-   ##
==========================================
+ Coverage   89.85%   90.39%   +0.53%
==========================================
  Files          76       86      +10
  Lines        2475     2717     +242
  Branches      308      353      +45
==========================================
+ Hits         2224     2456     +232
- Misses        181      185       +4
- Partials       70       76       +6

Impacted Files
Coverage Δ

...y/Descriptors/MappingBuilder/CtorMappingBuilder.cs
71.42% <0.00%> (-11.91%)
:arrow_down:

...k.Mapperly/Descriptors/Mappings/ArrayForMapping.cs
100.00% <ø> (ø)

...ptors/Mappings/NewInstanceObjectPropertyMapping.cs
100.00% <ø> (ø)

src/Riok.Mapperly/Emit/SourceEmitter.cs
100.00% <ø> (ø)

src/Riok.Mapperly/Helpers/SymbolExtensions.cs
85.71% <62.50%> (-9.29%)
:arrow_down:

...apperly/Descriptors/SimpleMappingBuilderContext.cs
76.92% <75.00%> (-0.86%)
:arrow_down:

...tFactories/GenericTargetObjectFactoryWithSource.cs
80.00% <80.00%> (ø)

...s/ObjectFactories/SimpleObjectFactoryWithSource.cs
80.00% <80.00%> (ø)

...tors/ObjectFactories/GenericSourceObjectFactory.cs
85.71% <85.71%> (ø)

...bjectFactories/GenericSourceTargetObjectFactory.cs
92.85% <92.85%> (ø)

... and 29 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[NEW] Invite users via a "share" type button

In order to increase the adoption of Rocket.chat, I think it's really important to make it easy to invite non-rocket users. I'm opening this issue for Android specifically. The issue across all platforms is #2181.

@rafaelks can you clarify what you mean by needing an API? I think this can be done inside the Android client only. See my comment at the end of this issue: https://github.com/RocketChat/Rocket.Chat/issues/2181.

@rafaelks
That approach definitely has some benefits but also some drawbacks and so let's discuss the two approaches. @graywolf336 has asked us to move feature discussions to the forum so I will do that and post the link back here.

https://forums.rocket.chat/t/invite-new-users-feature/668

I'm fine with closing this and continuing the discussion there.


fix(ngSrc) don't update the src property for iframe elements in IE:

no longer set the "src" property on iframe elements in Internet Explorer to avoid sending a duplicate request for iframe content
Closes #9843

I signed it!

Closing this. I re-opened a new pull request with the correct email address attached to the commits. #12479


I am unable to use the GPU of my 3060 for inference.

Hello, I tried following the instructions and installed the necessary packages for GPU acceleration using the command "pip install torch "optimum[onnxruntime-gpu]". However, when running it, I encountered an error and couldn't process with GPU acceleration.
2023-09-01 10:26:44.946 - INFO - cli - Separator beginning with input file: I:\02.当时的我们.flac
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\pypoetry\Cache\virtualenvs\audio-separator-NjHMt13R-py3.10\Scripts\audio-separator", line 6, in <module>
    sys.exit(main())
  File "I:\分離\python-audio-separator\audio_separator\utils\cli.py", line 98, in main
    separator = Separator(
  File "I:\分離\python-audio-separator\audio_separator\separator.py", line 119, in __init__
    raise Exception("CUDA requested but not available with current Torch installation. Do you have an Nvidia GPU?")
Exception: CUDA requested but not available with current Torch installation. Do you have an Nvidia GPU?

I have an Nvidia graphics card 3060.
I also used poetry to deploy the virtual environment, but encountered the same error message. How can I solve this problem? I am using Windows system with Python 3.10.10. Thank you!

I don't have a CUDA GPU or a Windows machine to test, but my guess would be uninstalling torch before installing it again with flags such as pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 --upgrade --force-reinstall might get you working.
If not, try googling "install torch with cuda" and see if the internet can help more than me 🤞
If you figure it out please share your learnings here, we can update the docs to help other windows users!

Hello, I didn't follow the instructions in the document to install PyTorch. Instead, I used
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
But recently, I happened to be researching other projects and also installed.
NVIDIA CUDA Toolkit
This is installed using the CUDA installation package found on the NVIDIA official website.
I'm not sure if it was pip that made it work or if it was because I installed this official version of CUDA, but now I can successfully use GPU for inference.
Thank you for providing the information.


pre-trained model not found

Hi,
I'm wanted to experiment with the model presented in your paper. Unfortunately however, I'm not capable of running the model out of box because the pre-trained model is missing.
Also the link on the Warwick website seems to be broken, could you help me?
Thanks in advance.

Hi @JMBokhorst
A list of the pre-trained models in this reppsitory can be found at the bottom of the README here. If you plan to use HoVer-Net out  of the box in another project, then you may instead by more interested in this model that has been trained on around 200,000 nuclei and has been optimised for inference. Let me know if you have any further questions.

Closing this issue, but please comment if you have any further questions


FEATURE REQUEST: Upload multiple photos

Uploading one photo at a time just isn't feasible.

Hi @addohm, thanks for raising this. I'm afraid I'm not actively developing or supporting this project beyond significant bugs (it was primarily built as a portfolio project). However, you're welcome to fork and modify it if you like.
Having said that, it should be possible to bulk upload/populate model data (i.e. photo files and their associated info) programatically. My memory is a little hazy, so I'd recommend taking a look through Django's documentation:
https://docs.djangoproject.com/en/4.1/howto/initial-data/
https://docs.djangoproject.com/en/4.1/topics/migrations/#data-migrations
https://docs.djangoproject.com/en/4.1/ref/models/querysets/#bulk-create
You can also see how I programmatically created (mock) file uploads here: https://github.com/Cmastris/django_photo_gallery/blob/main/photo_gallery/photos/tests.py
Hope that helps!


Enable disabling --cfg fuzzing_repro

Changing RUSTFLAGS causes a recompile of the entire project so for projects that are expensive to build this option being enabled by default means that workflows which switch back-and-forth between fuzzing and running individual tests generate a full rebuild every time. This adds a --no-cfg-fuzzing-repro option on the cargo fuzz run CLI to disable this --cfg argument from being passed.

(Basically, I didn't fully think through the recompilation repercussions when reviewing #344, so I think it is worth revisiting that choice now that we are aware of them.)

I think requiring a recompile of the whole fuzz target is perhaps not the right default. I'd be open to changing cfg(fuzzing_repro) from the default to an option. But I'd like to hear what @Manishearth and @mgeisler think about that.

I see what you mean: turning the flag off by default would be less invasive.
However, @alexcrichton, don't you have the same problem with the #[cfg(fuzzing)] option when flipping between cargo test and cargo fuzz?

Ah that's not an issue for me since I personally rarely test when using cargo fuzz. If I do then I do cargo test and cargo +nightly fuzz and there's no overlap as two different compilers are used.
When fuzzing though i do very frequently switch between "run the fuzzer for a bit" and then "rerun each failing test case to debug"

I agree, I was a little worried about this when the original thing landed and I think it's better to go back to the original default.

Ah that's not an issue for me since I personally rarely test when using cargo fuzz. If I do then I do cargo test and cargo +nightly fuzz and there's no overlap as two different compilers are used.

Ah, smart :smile: Does this not suggest another work-around for you: use cargo +stable test for your testing, cargo +nightly fuzz for the general fuzzing and cargo +beta fuzz run fuzz_target artifact for the run that reproduces a failure.
Of course, this is just a silly way of getting Cargo to cache the build output across all three kinds of invocations. From a quick skim of Build cache, it seems using a separate Cargo profile for the reproducing run would be useful for you?

I agree, I was a little worried about this when the original thing landed and I think it's better to go back to the original default.

Taking this out again is of course an option — but it suggests that the cfg(fuzzing) should also go, no? It has the same compilation overhead, from what I understand. But perhaps it's more acceptable because the cost is paid at different times?
I do see a good reason for keeping fuzzing as a command line flag (instead of letting people set it by hand in RUSTFLAGS): it establishes a standard where libraries can use fuzzing to fix random seeds and so on. The fuzzing_repro flag is more for ad-hoc exploration so it doesn't matter so much.

Personally this PR is not going to be a great solution for me. I'll probably always forget to pass --no-cfg-fuzzing-repro and by the time I remember it it's too late. I would personally prefer to not pass cfg(fuzzing_repro) by default. In fuzzing I've done I've used log::debug! or log::log_enabled! to print/display expensive things, I've never wanted to use #[cfg(fuzzing_repro)] as an entirely separate compilation. That's all to say, I'm also not a fan of this PR and I would prefer to go back to the prior default.
That being said, I'm happy to defer whwat y'all feel is best. I don't want to presume one way's the best over another. I'll figure out how to make this manageable in my workflow no matter what the end solution is. As-is today works find if I set a different target directory.

and cargo +beta fuzz run fuzz_target artifact for the run that reproduces a failure.

Alas I don't believe this works because fuzzing only works on nightly, not on beta.

it seems using a separate Cargo profile for the reproducing run would be useful for you?

Indeed! It's what I'm doing now. Personally I'd rather not have to do this either.

it suggests that the cfg(fuzzing) should also go, no?

I've personally used this before and found it useful, but I also use it very rarely as I typically don't want the code I'm testing/running to be that different from what I'm fuzzing.

Personally this PR is not going to be a great solution for me. I'll probably always forget to pass --no-cfg-fuzzing-repro and by the time I remember it it's too late. I would personally prefer to not pass cfg(fuzzing_repro) by default.

Just to be clear, I'm fine with removing the flag again since it has poor interaction with a typical workflow.

In fuzzing I've done I've used log::debug! or log::log_enabled! to print/display expensive things, I've never wanted to use #[cfg(fuzzing_repro)] as an entirely separate compilation.

Makes sense! My experience has been the opposite, as in  I typically don't have logging available in my crates — but this is a good approach which I could adapt.

Yeah I think we should move forward with changing the default back to what it was and adding an opt in flag for this mode.

Ok I've updated this PR to being a revert of #344 instead of adding a new CLI flag. (under the assumption that this is still possible with RUSTFLAGS).

as in I typically don't have logging available in my crates

Oh I do also want to be clear I'm not necessarily advocating that this is the "one true way" to do so. I've also use things like env::var("....") in the past to help control fuzzing runtime which I've found works pretty well too, for example FUZZ_PRINT_HUGE_DEBUG_REPR cargo +nightly fuzz run foo ./test-case or something like that.

Thanks for the discussion everyone.

(under the assumption that this is still possible with RUSTFLAGS).

Sounds great, I'll be trying out using a cargo profile for this next time I run into this — I don't think I knew that I could make my own profiles back when I made the PR 😄

as in I typically don't have logging available in my crates

Oh I do also want to be clear I'm not necessarily advocating that this is the "one true way" to do so. I've also use things like env::var("....") in the past to help control fuzzing runtime

Thanks, makes a lot of sense! It's good that you mentioned logging — I think I should look into using it more for my own projects... since it is a very good tool 🙂

Hello, should the Rust Fuzz Book be updated to remove the mention of the config flag? https://rust-fuzz.github.io/book/cargo-fuzz/guide.html

@emaxx-google good catch! Would you be up for sending a PR to https://github.com/rust-fuzz/book ?

@emaxx-google good catch! Would you be up for sending a PR to https://github.com/rust-fuzz/book ?

Sure. I'm just unsure if the discussions settled on any specific alternative that'd supersede this deleted functionality, or if anyone is working on one.

No one is working on anything, AFAIK.


Subsetting emojis from an emoji font results in a non-working font

Using Node.js 23.1.0 on Windows 11 23H2, I've tried to subset a small number of emoji from Noto Color Emoji which I've downloaded from Google Fonts. For context, I'm looking to address https://github.com/godotengine/godot-demo-projects/issues/1119 without committing a 24 MB file to that repository.
Using the following script:
#!/usr/bin/env node
const fs = require('fs');
const subsetFont = require('subset-font');

const inputFile = 'NotoColorEmoji-Regular.ttf';
const outputFile = 'NotoColorEmoji-Regular-subset.woff2';
const subsetText = '🥳🧁🍰🎁🎂🎈🎺🎉🎊📧〽🧿🌶🔋😂❤😍🤣😊🥺🙏💕😭😘👍😅👏';

const mySfntFontBuffer = Buffer.from(fs.readFileSync(inputFile));
(async () => {
  const subsetBuffer = await subsetFont(mySfntFontBuffer, subsetText, {
    targetFormat: 'woff2',
  });

  fs.writeFile(outputFile, subsetBuffer, 'binary', (err) => {
    if (!err) {
      console.log(`Subset written to: ${outputFile}`);
    } else {
      console.error(err);
    }
  });
})();

package.json:
{
  "type": "commonjs",
  "dependencies": {
    "subset-font": "^2.4.0"
  }
}

The font generation process works, but the resulting font doesn't have working emoji, even though they are included in the font. You don't see emoji when trying to enter them using an emoji keyboard (or copy-pasting from a website listing emoji).
I've tried both WOFF2 and SFNT (.ttf) output to no avail.
Wakamai Fondue has this to say about the generated subset:

The original TTF in comparison:

Loading the original font in Godot 4.3:

Loading either of the subset fonts:

Can you confirm that the same subsetting works with hb-subset?

Can you confirm that the same subsetting works with hb-subset?

I've tried and it didn't work in Godot either.
NotoColorEmoji-subset.zip
Command line:
hb-subset NotoColorEmoji-Regular.ttf \
  --text="🥳🧁🍰🎁🎂🎈🎺🎉🎊📧〽🧿🌶🔋😂❤😍🤣😊🥺🙏💕😭😘👍😅👏" \
  --output-file="NotoColorEmoji-Regular-subset.ttf"

However, this is actually most likely a Godot bug, so I'll close this for now.


How to run "ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0][1]alphamerge" -vcodec qtrle out.mov"

@u2takey great. thanks.


Messages disappear after disconnect

When getting a message (in my case from the computer via a python script) I'd expect it to stay visible until I dismiss it, or at least until the display timeout passes; right now, a message will  vibrate once regardless of the pattern configured, it gets displayed and goes away when the connection closes, leaving the screen with  "no messages"; if several messages are received in a short time, the last one does vibrate according to the configured pattern, but they disappear just as fast.
Initially I thought it was a matter of the app loading twice or some hidden timeout, but then I tried the same call the script makes (something along the lines of GB({"t": "notify", "src": "Linux", "title": "Notice", "body": "test"});) in the IDE, and messages didn't disappear. I then made the script stay connected for a few more seconds, and the messages disappear roughly 1s after the connection closes.
This is ... inconvenient to say the least; ~is it intentional? is there any workaround for this?~ edit: looks like it's intentional and there isn't a workaround https://github.com/espruino/BangleApps/blob/master/apps/android/boot.js#L54

I believe that was introduced as a result of my issue here:
https://github.com/espruino/BangleApps/issues/909
Although since the possibility to delete separate (or all) messages was introduced after that, the "remove messages on disconnect" might no longer be serving much of a purpose (but maybe it should be an option in settings, to cater to different use cases).

I thought the problem was read messages popping up again, removing everything is a bit extreme :)

Oh this text got a bit long...
Preamble:
The #909 is very practical when using gadgetbridge on a android device that is typically "near to the clock". For me it is better to have no more messages as I have them at the phone when not confirmed via bangle - this is the case on a disconnect

(in my case from the computer via a python script)

So I guess you run a local programm e.g. on a fixed machine and interface with bangle by using adapter "bangle/apps/android" with frontend "bangle/apps/messages".
Of yourse when you leave the BT-range of the fixed device and having it running as a (maybe backend) programm it is not usefull (for you) that the messages are cleared.

Btw. thanks for mentioning

..leaving the screen with "no messages"

I created one separate issue  #1267 for that - otherwise this text would be to huge to read

So finally - from my POV there are 2 solutions for your custom integration @m0n5t3r

Solution 1. android (and ios) adapter apps are getting a setting/sub setting to deactivate that messages are cleared on disconnect.
It is easy to implement but feels a bit of missusing in the context of a external programm (the ios-adapter does the same "clearAll()" on disconnect). Nevertheless it is maybe also usefull for some users with a large home that often forgot their mobile because all they need is on bangle smile
Solution 2. You or someone else create a new generic adapter that provides one message type "notify" and does not clear on disconnect. If you are the owner of the mentioned python programm you can even request a list off all the messages in the python programm and decide which to clear, to be marked read or has to stay unread or flagged as even new on a (re)connect.
This is a bit theoretic because I have absolute no idea what you use your programm and what messages you are exchanging.
If it is e.g. a raspberrypi with smarthome it could be usefull to have dedicated new message types that will be handeled directly by you adapter (e.g. a window open alert or something else)
if your programm is running on a router that also serves telephone calls it can be a use case to give some messages to the messages app
... require("messages").pushMessage(event); }

and some you will handle with a own widget/app
Storytime ending ;-)

I think having a setting here makes a lot of sense. We already have a settings menu for Android so adding this should be no big deal. I'll look into adding that.

sorted now - just change it in Android settings


noir-wasm-testing needs to be enabled to test noir_wasm

Problem
noir-wasm-testing needs to be used to test out bleeding edge noir_wasm as part of the workflow. For this, nargo needs to be built and ran during the same workflow.
Happy Case
noir_wasm gets tested during the workflow by using noir-wasm-testing and against bleeding edge nargo
Alternatives Considered
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
Yes
Support Needs
No response

Duplicate


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've started rerendering the recipe as instructed in #34.
If I find any needed changes to the recipe, I'll push them to this PR shortly. Thank you for waiting!
Here's a checklist to do before merging.

[ ] Bump the build number if needed

Fixes #34

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

ℹ The recipe is not parsable by parser conda-recipe-manager. Your recipe may not receive automatic updates and/or may not be compatible with conda-forge's infrastructure. Please check the logs for more information and ensure your recipe can be parsed.
ℹ PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12067790946. Examine the logs at this URL for more detail.


The podsmiter

Fixes #366.  If integration tests fail in a way that leaves pods stuck in Terminating, you can cargo run --bin podsmiter to delete the pods, after which the namespaces will clear up automatically.
(As an alternative to a post-test cleanup script, we could modify the integration tests to force-delete the pods in its cleanup; I haven't done that because I thought there might be cases where we'd want to look at stuck ones before blowing them away; but it would certainly be easier if we didn't care about that.  Having a script also allows cleanup if the test process fails to clean up for whatever reason.)

Fixed your comments @thomastaylor312 - thanks!  Ready for you to take another look when convenient.

After discussion we are merging this despite the ongoing CI issues because we believe those relate to the state machine refactoring in progress.