what's this?help。。

t_total value of -1 results in schedule not being applied
Killed

got same error dont know what is that yet

Do you need this project, too? We can talk together. I've been working on this project for days

i need some help...

I succedded complete the build of the ner :)
In the file "C:\Program Files\Python39\Lib\site-packages\torch\nn\functional.py"
add line 2264 -
target = target.type(torch.long)
add line 1852 -
input = input.type(torch.LongTensor)
I don't know if it is the solution now ill try to run the project

Now the project seems to run on my computer. I havent tried to use it but the commands in the README executed fine

I succedded complete the build of the ner :)
In the file "C:\Program Files\Python39\Lib\site-packages\torch\nn\functional.py"
add line 2264 -
target = target.type(torch.long)
add line 1852 -
input = input.type(torch.LongTensor)
I don't know if it is the solution now ill try to run the project

but i run it on centos,i don't know wh

Now the project seems to run on my computer. I havent tried to use it but the commands in the README executed fine

I particularly want to know what happens when the program runs properly，I think you'll need a JSON file to test it

我成功完成了 ner 的构建 :)
在文件“C:\Program Files\Python39\Lib\site-packages\torch\nn\functional.py”中
添加第 2264 行 -
target = target.type(torch.long)
添加第 1852 行 -
input = input.type(torch.LongTensor)
我不知道这是否是现在尝试运行该项目的解决方案

I added the code according to your method, but that problem still appears

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

我添加的代码位于 nn\functional.py 下的 Torch 模块中。
你应该运行构建，看看你是否在我得到它们的同一点得到错误。
该工具本身会在您编写时获取推文，提取 ioc 并对它们进行分类。

I added the code according to your method, but it did not solve the problem of Killed after ner was constructed. I was never able to build ner correctly.

我添加的代码位于 nn\functional.py 下的 Torch 模块。
你应该运行，你是否在我得到它们的相同点得到
该工具会在你看照片时获取推文，提取 ioc 并对它们进行分类。

我按照你的方法加了代码，但是没有解决ner构建后Killed的问题。我永远无法正确构建 ner。

I know that the program automatically extracts IOC from tweets and classifies them. I would like to know if you can normally use NER to extract IOC after completing the construction of NER

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hello, I would like to ask how this tool can get json format tweets by itself?

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hello, I would like to ask how this tool can get json format tweets by itself?

You can actually get the JSON format of tweets via Twitter's own API or through other tools

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

This is the JSON text content that needs to be predicted：
[{
"full_text": "Some maybe new WARPRISM dropping BEACON\nhttps://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036...",
"entities" : {
"urls":[]
}
},
{
"full_text": "#Trickbot\n162[.]248[.]225[.]122\n\nhttps://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary\n\nMalDoc distribution: https://t.co/gSNAo...",
"entities" : {
"urls":[]
}
}]
and this is what the program predicted：
[{"iocs": {"hashes": {"sha1": [], "sha256": ["a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "md5": []}, "ips": [], "urls": {"urls": ["https://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "domain": []}}, "entities": [], "context": [], "externals": []},
{"iocs": {"hashes": {"sha1": [], "sha256": [], "md5": []}, "ips": ["<IP_ADDRESS>"], "urls": {"urls": ["https://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary"], "domain": []}}, "entities": [], "context": [], "externals": []}]
It looks not bad

Some may new WARPRISM drop BEACON\nhttps://www.virustotal.com/gui/file/a8

Thank you for your information. I guess it is due to the problem of my graphics card driver that I cannot build the model correctly. I would like to ask if you are running this project on the Windows platform? And I read in the author's paper that this program should have more functions.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

This is the JSON text content that needs to be predicted：
[{
"full_text": "Some maybe new WARPRISM dropping BEACON\nhttps://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036...",
"entities" : {
"urls":[]
}
},
{
"full_text": "#Trickbot\n162[.]248[.]225[.]122\n\nhttps://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary\n\nMalDoc distribution: https://t.co/gSNAo...",
"entities" : {
"urls":[]
}
}]
and this is what the program predicted：
[{"iocs": {"hashes": {"sha1": [], "sha256": ["a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "md5": []}, "ips": [], "urls": {"urls": ["https://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "domain": []}}, "entities": [], "context": [], "externals": []},
{"iocs": {"hashes": {"sha1": [], "sha256": [], "md5": []}, "ips": ["<IP_ADDRESS>"], "urls": {"urls": ["https://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary"], "domain": []}}, "entities": [], "context": [], "externals": []}]
It looks not bad

This is my generated model_conf.json, is it the same as yours
{
"attention_probs_dropout_prob": 0.1,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"max_position_embeddings": 512,
"num_attention_heads": 12,
"num_hidden_layers": 12,
"type_vocab_size": 2,
"vocab_size": 30522
}

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

This is the JSON text content that needs to be predicted：
[{
"full_text": "Some maybe new WARPRISM dropping BEACON\nhttps://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036...",
"entities" : {
"urls":[]
}
},
{
"full_text": "#Trickbot\n162[.]248[.]225[.]122\n\nhttps://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary\n\nMalDoc distribution: https://t.co/gSNAo...",
"entities" : {
"urls":[]
}
}]
and this is what the program predicted：
[{"iocs": {"hashes": {"sha1": [], "sha256": ["a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "md5": []}, "ips": [], "urls": {"urls": ["https://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "domain": []}}, "entities": [], "context": [], "externals": []},
{"iocs": {"hashes": {"sha1": [], "sha256": [], "md5": []}, "ips": ["<IP_ADDRESS>"], "urls": {"urls": ["https://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary"], "domain": []}}, "entities": [], "context": [], "externals": []}]
It looks not bad

This is my generated model_conf.json, is it the same as yours
{
"attention_probs_dropout_prob": 0.1,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"max_position_embeddings": 512,
"num_attention_heads": 12,
"num_hidden_layers": 12,
"type_vocab_size": 2,
"vocab_size": 30522
}

I have the same result as you

我添加的代码位于 nn\functional.py 下的 Torch 模块中。
你应该运行构建，看看你是否在我得到它们的同一点得到错误。
该工具本身会在您编写时获取推文，提取 ioc 并对它们进行分类。

嗨，伙计，你能给我更多关于这个项目是如何构建的信息吗？我还是不能完全运行

我更改了 ner/builder.py 中的第 325 行代码： loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)). 现在我可以build ner。但是好像数据集中的数据太少了，构建的ner无法预测好的结果。

我添加的代码位于 nn\functional.py 下的 Torch 模块中。
你应该运行构建，看看你是否在我得到它们的同一点得到错误。
该工具本身会在您编写时获取推文，提取 ioc 并对它们进行分类。

嗨，伙计，你能给我更多关于这个项目是如何构建的信息吗？我还是不能完全运行

我更改了 ner/builder.py 中的第 325 行代码： loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)). 现在我可以build ner。但是好像数据集中的数据太少了，构建的ner无法预测好的结果。

这是需要预测的 JSON 文本内容：
[{
"full_text": "Some may new WARPRISM drop BEACON\nhttps://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c9033f659c933
" {
"urls":[]
}
},
{
"full_text": "#Trickbot\n162[.]248[.]225[.]122\n\nhttps://www.virustotal.com/gui/ip-address /<IP_ADDRESS>/summary\n\nMalDoc 分布：https://t.co/gSNAo...",
"entities" : {
"urls":[]
}
}]
这就是程序预测的：
[{"iocs": {"hashes": {"sha1": [], "sha256": ["a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036,"ips:"], "ips:", "] urls": ["https://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "domain": []"},"sentities,"external:"], []},
{"iocs": {"hashes": {"sha1": [], "sha256": [], "md5": []}, "ips": ["<IP_ADDRESS>"], " urls": {"urls": ["https://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary"], "domain": []}}, "entities": [], “上下文”：[]，“外部”：[]}]
看起来还不错

这是我生成的model_conf.json，和你的一样吗
{
"attention_probs_dropout_prob": 0.1,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size" ：3072，
“max_position_embeddings”：512，
“num_attention_heads”：12，
“num_hidden_layers”：12，
“type_vocab_size”：2，
“vocab_size”：30522
}

我和你的结果一样

Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/root/TwiTi/ioc_extractor/main.py", line 44, in
main()
File "/root/TwiTi/ioc_extractor/main.py", line 33, in main
tweets, args.expand_external
File "/root/TwiTi/ioc_extractor/ioc_extract_manager.py", line 77, in ioc_extraction
orig_text = tw['full_text']
TypeError: string indices must be integers
Why did this error occur。。。。。

I noticed that the Classfify module seems to be missing input files, so I can't run it. Anyone experiencing this problem

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

The code i added is at the torch module it self under nn\functional.py.
U should run the build and see if u get error at the same points i got them.
The tool itself gets tweets as u wrote, extracts the iocs and classify them.

Hi buddy, can you give me more information on how this project was built? I still can't run it fully

I changed the 325th line of code in ner/builder.py : loss = loss_fct(logits.view(-1, len(LABELS)), b_labels.view(-1).type(torch.long)).Now I can build ner.But it seems that there are too few data in the data set, and the constructed ner cannot predict good results.

This is the JSON text content that needs to be predicted：
[{
"full_text": "Some maybe new WARPRISM dropping BEACON\nhttps://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036...",
"entities" : {
"urls":[]
}
},
{
"full_text": "#Trickbot\n162[.]248[.]225[.]122\n\nhttps://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary\n\nMalDoc distribution: https://t.co/gSNAo...",
"entities" : {
"urls":[]
}
}]
and this is what the program predicted：
[{"iocs": {"hashes": {"sha1": [], "sha256": ["a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "md5": []}, "ips": [], "urls": {"urls": ["https://www.virustotal.com/gui/file/a85ce74c8fc41e1b88a5c85a35087e16123f41f3e22f69c923550ac43499c036"], "domain": []}}, "entities": [], "context": [], "externals": []},
{"iocs": {"hashes": {"sha1": [], "sha256": [], "md5": []}, "ips": ["<IP_ADDRESS>"], "urls": {"urls": ["https://www.virustotal.com/gui/ip-address/<IP_ADDRESS>/summary"], "domain": []}}, "entities": [], "context": [], "externals": []}]
It looks not bad

This is my generated model_conf.json, is it the same as yours
{
"attention_probs_dropout_prob": 0.1,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"max_position_embeddings": 512,
"num_attention_heads": 12,
"num_hidden_layers": 12,
"type_vocab_size": 2,
"vocab_size": 30522
}

I have the same result as you

方便留个联系方式吗，想请教一下搭建中的一下问题。

@summernote5288 请问可以留个联系方式吗，想咨询一下使用中的问题，或者查看我主页，有我的邮箱。


updated copliot and copilot-chat to be compatible with vscode 1.88.1

Description of changes
updated vscode-extension-github-copilot and vscode-extension-github-copilot-chat version to make it compatible with vscode 1.88.1 (nixpkgs-unstable).
Things done
I have identified working versions with nix4vscode and tried the versions localy with extensionsFromVscodeMarketplace  on my local PC.

Please, split the commits per package. Instructions at:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vscode/extensions/README.md

Result of nixpkgs-review pr 305633 run on x86_64-linux 1

2 packages built:

vscode-extensions.github.copilot
vscode-extensions.github.copilot-chat

Result of nixpkgs-review pr 305633 run on x86_64-linux 1

2 packages built:

vscode-extensions.github.copilot
vscode-extensions.github.copilot-chat

Commit message should be: vscode-extensions.github.copilot: 1.172.758 -> 1.180.827
Notice, when building, you run: nix build .#vscode-extensions.github.copilot (package github.copilot is not that)


UI-finished implementation to avoid unnecessary get position api call

This PR:

implement logic to only call get position call when necessary
add a additional reducer action getSelectDagPosition within workflow reducer to save the position of the selected dag

Linear Discussion:
https://linear.app/aqueducthq/issue/ENG-1060/bug-dag-node-positioning-repeatedly-fetched-from-api-on-sidesheet-open
Test:

https://www.loom.com/share/3fad3b7d158646678922a6a7f7295518

Would like a review

@Boyuan-Deng, what is the status on this PR?

@Boyuan-Deng, what is the status on this PR?

Still working on making some changes. Waiting to meet andre after lunch for additional context around the changes

@Boyuan-Deng @agiron123  is this PR good?

@Boyuan-Deng @agiron123 is this PR good?

Still working on cleaning up a few things. Should be done tonight.


Preselect all capture agent inputs when scheduling new event

Aims to fix #941.
When scheduling a new event, if the selected capture agent has any inputs, the inputs are all preselected per default now. At least one input must remain selected. Input name should be rendered nicer now.
Note that these changes are only for when scheduling a new event (except the input name rendering), because the linked issue only talked about scheduling new events. For now I would leave the discussion on how this should work for existing events to a separate issue/pr.
For testing this, a capture agent with inputs must be configured in your Opencast. If you do not have a "real" capture agent, a dummy capture agent can still be configured. See the Opencast docs for more info: https://docs.opencast.org/develop/developer/#architecture/capture-agent/capture-agent-input/#setting-input-options
Quick showcase of the PR in action:
Bildschirmaufzeichnung vom 2024-11-12 11-05-41.webm

I tested this with an Extron SMP (2 inputs, channel A and B) and a pyCA (no input) and it worked as expected for both.
I only have a few minor comments:

When no input is selected, the next button is greyed out and not clickable, but there is no indication for the user to know what is missing. Can you add some information to indicate that at least one channel needs to be selected? Perhaps a text message like the one that appears when you select an end date that is in the past?
If the CA has inputs, the inputs field should also have a red star symbol like the other required fields.

Perhaps someone who has CAs from other vendors can have a look and see if this works well for them too?

I'm wondering what our expectations for capture agents are for this.
Our documentation states that it's up to the agent to interpret whatever value they get.
Which seems to me like no selection would also be a valid option.
In that sense, we should at least test this with all commonly used agents before merging this:

[ ] Extron SMP
[ ] Adena Arec
[ ] Epiphan Perl
[ ] pyCA
[ ] Galicaster ←(not sure if anyone is still using that)

Or was this behavior already present in the old admin interface?

@JamesUoM @NadiaUoM you guys still using Galicaster?

Hi Greg,
Yes, we still use galicaster.
Thanks & Regards,
Nadia Malek.
From: Greg Logan @.>
Sent: 18 November 2024 23:35
To: opencast/opencast-admin-interface @.>
Cc: Nadia Malek @.>; Mention @.>
Subject: Re: [opencast/opencast-admin-interface] Preselect all capture agent inputs when scheduling new event (PR #979)
@JamesUoM [github.com]https://urldefense.com/v3/__https:/github.com/JamesUoM__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSCBDbivd$ @NadiaUoM [github.com]https://urldefense.com/v3/__https:/github.com/NadiaUoM__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSDswQyB0$ you guys still using Galicaster?

Reply to this email directly, view it on GitHub [github.com]https://urldefense.com/v3/__https:/github.com/opencast/opencast-admin-interface/pull/979*issuecomment-2484388788__;Iw!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSD4s4efZ$, or unsubscribe [github.com]https://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/BFC3B5YBSO7U6YHSBRJJBAD2BJ2TZAVCNFSM6AAAAABRTWWKAKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBUGM4DQNZYHA__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSKsgPZor$.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

... But we are going to move to pyCA by the next academic year.
James
--
James S. Perrin
Media Technologies Team
Office One, Kilburn Building,
The University of Manchester
Oxford Road, Manchester, M13 9PL
e: @.***

From: NadiaUoM @.>
Sent: 19 November 2024 10:38
To: opencast/opencast-admin-interface @.>
Cc: James Perrin @.>; Mention @.>
Subject: Re: [opencast/opencast-admin-interface] Preselect all capture agent inputs when scheduling new event (PR #979)
Hi Greg,
Yes, we still use galicaster.
Thanks & Regards,
Nadia Malek.
From: Greg Logan @.>
Sent: 18 November 2024 23:35
To: opencast/opencast-admin-interface @.>
Cc: Nadia Malek @.>; Mention @.>
Subject: Re: [opencast/opencast-admin-interface] Preselect all capture agent inputs when scheduling new event (PR #979)
@JamesUoM [github.com]https://urldefense.com/v3/__https:/github.com/JamesUoM__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSCBDbivd$ @NadiaUoM [github.com]https://urldefense.com/v3/__https:/github.com/NadiaUoM__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSDswQyB0$ you guys still using Galicaster?

Reply to this email directly, view it on GitHub [github.com]https://urldefense.com/v3/__https:/github.com/opencast/opencast-admin-interface/pull/979*issuecomment-2484388788__;Iw!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSD4s4efZ$, or unsubscribe [github.com]https://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/BFC3B5YBSO7U6YHSBRJJBAD2BJ2TZAVCNFSM6AAAAABRTWWKAKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBUGM4DQNZYHA__;!!PDiH4ENfjr2_Jw!AzI53ToNo0gESJRxIH9oIC99O4aSFwC0W_F-5-sJMrxvcefLcTqOI-0ksvoAeR8X1wwrZveF1spFqsmsQnUwHGuXSKsgPZor$.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>—
Reply to this email directly, view it on GitHub [github.com]https://urldefense.com/v3/__https://github.com/opencast/opencast-admin-interface/pull/979*issuecomment-2485322061__;Iw!!PDiH4ENfjr2_Jw!HXTOWJXAUFJpw0OYLvmzE3671_NUFzzN3mcPdPU4arwk_-3an4UEx5kfnOkfUR54E9DLwVYro-01s4a3e6x_idJOyD65dsGvCA$, or unsubscribe [github.com]https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AAWQ6E7FXOW2DNYO2KEBB432BMIIZAVCNFSM6AAAAABRTWWKAKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBVGMZDEMBWGE__;!!PDiH4ENfjr2_Jw!HXTOWJXAUFJpw0OYLvmzE3671_NUFzzN3mcPdPU4arwk_-3an4UEx5kfnOkfUR54E9DLwVYro-01s4a3e6x_idJOyD5zk2-pyg$.
You are receiving this because you were mentioned.Message ID: @.***>

Can you guys take a quick poke and see if this change breaks things for you while you're still using GC?

Can you guys take a quick poke and see if this change breaks things for you while you're still using GC?

Ok, though I doubt we'll still be using GC when we eventually deploy this code ;-)

Can you guys take a quick poke and see if this change breaks things for you while you're still using GC?

Ok, though I doubt we'll still be using GC when we eventually deploy this code ;-)

BTW I assume Zaragoza will be using GC

This will work fine with GC and matches what we have in the old Admin UI.
NOTE: GC can be configured to "hide" the inputs/tracks from OC and just returns capture.device.names=defaults  if a scheduler requests capture.device.names=defaults or capture.device.names= than all enabled tracks are recorded


Controlling the active tab

While #47 is in progress, is there a way for us to set the active tab from outside the component?
For example, would it be possible to expose
https://github.com/rgossiaux/svelte-headlessui/blob/3c9dcc9b67213f12a02294c2de644e3dec4408ee/src/lib/components/tabs/TabGroup.svelte#L18
as a temporary fix?

This is on the roadmap, yes--it's a recent change to Headless UI that I haven't ported back here yet. Actually the main blocker right now is that I want to merge in some larger typescript changes first (put them in a PR so you can see: #81) before I start catching up to new fixes & changes.

Can anyone show an example on how to use this?

Is there any update on this?

Bumping this thread, any updates here? Currently, I haven't seen any implementations of tabs with svelte that can control externally the active tab.


Fix import source symbol package

This PR changes the naming of symbols from importSrc to use the package name. This handles cases where the package naming is not conventional.
Fixes #648

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


File Encryption plugin not installed. ( but plugin already installed )

Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x ] 3.x
I'm submitting a ...  (check one with "x")
[x ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
File Encryption with "cordova-safe" plugin, not working well.
Expected behavior:
need to implement File Encryption with  "cordova-safe" plugin.
Steps to reproduce:

Related code:
var fileRoot = this.dir.externalRootDirectory + "Audio/" + this.fileName + ".wav";
this.fileEncryption.encrypt(fileRoot , 'passpass');
Other information:
https://stackoverflow.com/questions/44969832/is-cordova-safe-still-working-with-ionic3
Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
cli packages: (D:\recording_project\node_modules)
@ionic/cli-utils  : 1.9.1
ionic (Ionic CLI) : 3.9.1
global packages:
Cordova CLI : 7.0.1
local packages:
@ionic/app-scripts : 2.1.3
Cordova Platforms  : android 6.2.3
Ionic Framework    : ionic-angular 3.6.0
System:
Node : v6.11.2
npm  : 5.3.0
OS   : Windows 10

Hello! Thank you for opening an issue with us!
This appears to be either an issue with the ionic-native wrapper or with the Cordova plugin itself and not an issue with the Ionic Framework. I am moving this issue to ionic-team/ionic-native. Please track the issue over there.
Thank you for using Ionic

This issue was moved to ionic-team/ionic-native#1907

still this issue is coming why it is not fixed?

same here..

any solution for this

No..I also trying to fixed it..
On 22-Nov-2017 4:39 PM, "manojbhardwaj"<EMAIL_ADDRESS>wrote:

any solution for this
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ionic-team/ionic/issues/12711#issuecomment-346318823,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATKD0OwNiMkI5cNPAjSd6mO3hX5wpGD0ks5s5ADXgaJpZM4O9J8U
.

Always not solved for cordova-save / File Encryption !!!
Any help would be appreciated.
Tanks !!!


Unbound local error

Hi,
I am getting the following error message when I run the tracking code in cell 3 for the first example video.
`UnboundLocalError                         Traceback (most recent call last)
 in
25         frame = cv2.resize(frame, None, fx = scaling, fy = scaling, interpolation = cv2.INTER_LINEAR)
26         thresh = tr.colour_to_thresh(frame, block_size, offset)
---> 27         final, contours, meas_last, meas_now = tr.detect_and_draw_contours(frame, thresh, meas_last, meas_now, min_area, max_area)
28         row_ind, col_ind = tr.hungarian_algorithm(meas_last, meas_now)
29         final, meas_now, df = tr.reorder_and_draw(final, colours, n_inds, col_ind, meas_now, df, mot, this)
~\Downloads\tracktor-master\examples\tracktor.py in detect_and_draw_contours(frame, thresh, meas_last, meas_now, min_area, max_area)
69     else:
70         contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
---> 71     img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
72
73     final = frame.copy()
UnboundLocalError: local variable 'img' referenced before assignment`
Would be grateful for any help regarding this!
Best,
Dhanya

Dear Dhanya,
This is a result of different versions of opencv. Unfortunately it's hard for me to debug this at my end but I've made some changes to the code. Could you redownload the tracktor.py file from the examples folder and tell me if it works now?
CHeers!
Vivek

Hi Vivek,
It works beautifully now! Thank you so much :)
Best,
Dhanya


Support pfx TLS option with new pfx() method.

This change introduces the pfx() method for setting the pfx TLS option. This change was last attempted in #685 but that PR did not have tests.
https.request() supports the TLS options of tls.connect(). The pfx option is a string or Buffer containing the private key, certificate, and CA certs of the client in PKCS #12 format.
Agent is modified to also accept the pfx option.
The cert.pfx file is used in testing instead of the CA and certificate files to make sure requests work correctly when presenting the PFX archive instead of its parts. Since the server is uses the same CA and certificate fixtures, the content of cert.pfx is derived from these files using the command:
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem -certfile ca.cert.pem

Thank you for the PR, with the tests 👍

It would be nice to have some way of providing the passphrase for the cert/key file. ATM I can't prepare a PR myself, so I am writing at this place, hoping one of you guys can do that.


[PowerToys Run] add option to only search for folders

When searching for local files it could be convenient to add an option to restrict results to folders.
In part because it would make results faster, and in part because personally I've found that 90% of the times I just want to open a folder and not a file.
This could be as simple as adding a f shortcut. Eg: typing f photos in the query.

good idea @pierbover, we're tracking this suggestion here: #3347
closing as a duplicate


Issue with Docker for windows <IP_ADDRESS>

When running the local-kms container in windows container mode with experimental features turned on (to mix windows and linux containers) the container can be started but not stopped or killed anymore once its running.
Works fine with the previous release <IP_ADDRESS>.

Hi. Thanks for your message.
Local KMS doesn't do anything special in terms of the how it reacts to kill signals. In all versions it just relies on Go's http.ListenAndServe method for persisting the application (and thus the container).
If there's something odd going on within Go, I've just upgraded to 1.12 in the latest push. That may have helped.
Beyond that though I'm afraid I have no experience with windows container mode. I've never heard of not being able to kill a Docker container from the host. Sounds like it may still be a little too experimental! :-)

Thanks for your reply.
I will stick with docker <IP_ADDRESS> for now.
However I'm also running a local dynamodb and s3 instance which don't show those symptoms.
Maybe it's also related to access to the filesystem as the local kms is the only one that reads it'*s config that way.
If you are interested in any logs or experiments I can assist you with just let me know.

Maybe it's also related to access to the filesystem as the local kms is the only one that reads its config that way.

You can supply config via other means. For things like local DynamoDB & S3, I use the aws cli. There shouldn't be any reason you can't config Local KMS the same way.
Or if your config is quite static, it would be quite simple to remove the need for filesystem access by creating your own Dockerfile with your config copied in. That would also mean the container would run without filesystem access, but you'd still get the benefit of seeding.
FROM nsmithuk/local-kms:3
COPY ./init/ /init

Yes, please do send me any details you're able to see.


Copilot does not reference all files specified by #file

Copilot Chat Extension Version: v1.219.0
VS Code Version: 1.91.1
OS Version: macOS Sonoma 14.5
Logs: I don't think I can attach these b/c of corporate data policies, but I'm hoping this is a user error instead of a technical error

Steps to Reproduce:
So, we've got a pretty large codebase with a couple thousand files. When I use @workspace, it never references the files I've specified in my prompt, since I only care about seven files. Thus, I use #file, but this doesn't seem to be working as expected earlier.
step 1: enter something like the following prompt:
"
Hello. I am migrating files from a certain format to a certain format. I am trying to migrate #file:'z.tsx'.
Please see #file:'a.tsx' for an example of before, and #file:'b.tsx' for an example of after.
Those files don't cover all the cases needed by z.tsx, so please see #file:'c.tsx' for an example of [how to do something the old way], and #file:'d.tsx' for an example of [how to do something the new way].
Those files still don't cover all the cases needed by z.tsx, so please see #file:'e.tsx' for an example of [how to do something else the old way], and #file:'f.tsx' for an example of [how to do something else the new way].
With all that being said, please migrate #file:'z.tsx' and print the result. Thanks!
"
step 2: observe Copilot's answer:
"
used 3 references:
z.tsx
a.tsx
b.tsx
[answer which doesn't really make sense, because d.tsx, e.tsx, f.tsx, and z.tsx were not referenced]
"
How come Copilot doesn't recognize the other files I've specified in my answer? Is there a max file limit of 3? Any way to change it? Maybe I'm doing something wrong in my prompt?
Again (since I suspect this will come up), I cannot use @workspace because it doesn't capture all seven files either, even if I use @workspace in addition to the #file command.
Thanks for any and all clarity.

We have limited room for context that can be sent to the LLM. We include as much as we can fit but may not be able to fit everything, depending on the size. In the latest release that just went out next week, we also try to do a slightly better job in fitting part of a file if the entire thing can't fit, and we show a more helpful message on files that weren't able to fit. Sorry for the annoyance and hope that helps.


Make slate packages debuggable locally

Currently there is no easy way to locally test changes in the editor (any package).
The goal is to make it possible to test everything with simple npm start that would run the editor with hot reload of all the packages.

@kamilmielnik do we have a linear task for this? I cannot find it

This has been addressed by #48.
Because the release deliverable is now unbundled (with files separated as they were in source code), it's now possible to link this package to the consuming app with npm link and have nicer debugging experience right in your browser with source maps and manageable file names.


Unidirectional topic operator

This is currently still in draft and not ready for general review. Anyone who is especially interested is welcome to comment. This is based on an earlier draft.
I'm working on a proof of concept which has informed the design so far.

@devguyio

Do you think it's beneficial to find a way to decouple the KafkaTopic CRD from the actual UTO implementation to allow multiple KafkaTopic operators/implementations for such use cases as when topic managed is done via a 3rd party API, the Admin Server or even the Admin API ?
IMHO since this proposal will result in an implementation of a new operator and it includes an API change I think it might be worth considering adding support for a TopicClass pattern (i.e. such as GatewayClass, StorageClass etc)

That's an interesting idea, but I don't see how it helps with using an Admin server. A TopicClass could be used to specify that the operations on the CR happened via an Admin server, but that doesn't change the source of truth. The problem is: when an operator is used the KafkaTopics it consumes become the source-of-truth for the configuration of those topics. Any seperate Admin server (or other tooling):

either talks directly to Kafka via an Admin client, in which case Kafka needs to be the source of truth, else the UTO will overwrite any changes done via the Admin (as called out in this proposal)
or talks to the Kube apiserver, i.e. updates the KafkaTopics (which become the source of truth), leaving the UTO to actually update Kafka. This works without conflict, but means that

either your Admin server needs to know about KafkaTopics (i.e. in general you're locked into using KafkaTopic-aware tooling, which is already mentioned as a Disadvantage in this proposal)
or you get into the game of intercepting the Kafka protocol requests for things like CreateTopics etc. That can be done, but comes with additional deployment costs and it's not ideal for producer and consumer latency to add a proxy. I suppose you could also work around that using multiple listeners and an Authorizer plugin so that the topic mutating RPCs were only allowed for certain listeners which would be proxied, and Produce and Fetch RPCs would use an unproxied listener. But this is now pretty complicated and well outside the scope of this proposal.

the only other alternative is to make Kafka itself the source of truth. Then to allow update of KafkaTopics you're playing a different game: pretending to be a Kube apiserver. Kube has a way of doing that but it comes with a different bunch of compromises:

it's global to the kube cluster (so as with the admission web hook you have a problem mapping KafkaTopics to the Kafka clusters they're supposed to be in).
cluster administrators typically are not at all keen on api aggregation, so while it seems an elegant solution in theory it's unlike to see little in the way of practical uptake.

But having written all of this, I'm still wondering whether I'm missing your point entirely.

@devguyio

Do you think it's beneficial to find a way to decouple the KafkaTopic CRD from the actual UTO implementation to allow multiple KafkaTopic operators/implementations for such use cases as when topic managed is done via a 3rd party API, the Admin Server or even the Admin API ?
IMHO since this proposal will result in an implementation of a new operator and it includes an API change I think it might be worth considering adding support for a TopicClass pattern (i.e. such as GatewayClass, StorageClass etc)

That's an interesting idea, but I don't see how it helps with using an Admin server. A TopicClass could be used to specify that the operations on the CR happened via an Admin server, but that doesn't change the source of truth. The problem is: when an operator is used the KafkaTopics it consumes become the source-of-truth for the configuration of those topics.

What I'm proposing is splitting the source of truth for the "managed" KafkaTopic resources across two or more operators, each reacting only to the KafkaTopic resources with its designated TopicClass.
So basically the changes to Strimzi  would be:

Adding an optional topicClassName field to the KafkaTopic spec.
An OOTB Strimzi UTO that works as follows

Topic management of  KafkaTopic resources with an empty or default topicClassName  && managed != False according to this proposal.
Treat any KafkaTopic resources with topicClassName set to something other than default as "unmanged" and defer its management to another operator.

So for the admin server scenario there will exist another operator e.g. CustomerAdminTopicOperator that provides the `customer-admin-server' class and works exactly as above but only for its designated class.
E.g.

User creates a KafkaTopic resource with topicClassName: customer-admin-server .
Strimzi OOTB UTO observes the resources class name and ignores this resources.
CustomerAdminTopicOperator observes the resource with correct class name and proceeds to do the validation and topic sync using an Admin API
The topic shows up in Kafka and the OOTB UTO considers it as unmanaged, like any other topic.
It's up to the CustomerAdminTopicOperator to ensure no conflict occurring between topics created via KafkaTopics and the Admin API externally (e.g the UI) .

Do you think this would work?
I can imagine there can be some improvements such as moving the topic naming policies to a ConfigMap to be shared by all TopicClass operators etc.

What I'm proposing is splitting the source of truth for the "managed" KafkaTopic resources across two or more operators, each reacting only to the KafkaTopic resources with its designated TopicClass.
So basically the changes to Strimzi would be (in addition to what exists in this proposal):
1. Adding an optional `topicClassName` field to the `KafkaTopic` spec .

2. An OOTB Strimzi UTO that works as follows

   1. Topic management of  `KafkaTopic` resources with an empty or default `topicClassName`  && `managed != False` according to this proposal.
   2. Treat any `KafkaTopic` resources with `topicClassName` set to something other than default as "unmanged" and defer its management to another operator.

So for the admin server scenario there will exist another operator e.g. CustomerAdminTopicOperator that provides the `customer-admin-server' class and works exactly as above but only for its designated class.

@devguyio:

Something like this would be possible anyway because the UTO will do the same label selection on the KafkaTopics is consumes at the BTO does. By configuring a UTO and a CustomerAdminTopicOperator with disjoint label selectors you could partition the resources in a namespace between two (or more) operators. One difference is that the topicClass makes this much more explicit, which might be useful, but doesn't appear to be of fundamental importance.
The behaviour of this CustomerAdminTopicOperator would differ from the UTO how? By talking so an REST Admin server, rather than using Admin directly? That doesn't help with the source of truth problem .I don't think you were suggesting it did, but it's the SoT problem which makes the UTO incompatible with topic management via any other means, and is the biggest weakness of the current proposal IMO.

@ppatierno + @scholzj I think I've addressed all your comments now, if you want to take another look. Thanks!

Thanks for the comments and reviews. I have resolved all remaining open comments.
This proposal has 5 binding votes from maintainers, plus my own as proposer, plus a further non-binding vote.
If anyone has any more comments or votes, please do so by Friday. If there is nothing new I will close the vote and merge this PR on Monday.


hyperlink in benchdnn/Readme.md doesn't work

There is a hyperlink in the first line of benchdnn/Readme.md file "Deep Neural Network Library". But when I clicked the link and browser tried to redirect it, http returns 404. please check and correct it.

Hi @johnvenn,
Indeed! Thanks for the report. Will fix that.


User Can Edit Profile

User will be able to edit their profile
Changing username/email should properly check to see if it’s available before allowing the change
Any other fields should be properly validated
Allow password reset (only if the existing correct password is provided)

https://github.com/ReyMArias/IT202009/commit/8d3c91590c331e86737a176ff0db1ae52402aae4#diff-db48872e458a62279d4d2de8d2177bfbee3b3cf6c9c69f5dda14053b294f5bf6

https://github.com/ReyMArias/IT202009/pull/52


Minor documentation addition/update

Hope this is the rigth place. In "https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.interface.html#arrays-interface" type 'd' double is missing. Could that be added to the 'typestr' list?

not really, that would be the numpy issues tracker. the current version looks correct to me though, it matches np.dtype.kind. 'd' is covered by 'f', there's only one letter for floating-point types.


Allow spirv-fuzz to generate a dead break from the back-edge block of a loop

At present SPIR-V fuzz does not consider generating a dead break from a loop's continue construct to the loop's merge block, as this is usually illegal.  But it is legal if the block being broken from is the loop's back edge block.  It would be good to extend the tool to allow for this case.

@andreperezmaselco This could be an interesting issue

Interesting @paulthomson.
I'll try that after the inline transformation.


USB camera support

Are there any plans to add USB camera support?

The software uses the inbuilt MMAL calls to get the image from the camera. At this time I have no plans to implement USB support.


[NEMO-178] Zero-delay task cloning

JIRA: NEMO-178: Zero-delay task cloning
Major changes:

A state machine per task attempt/its output blocks
Randomly choose one of the available attempt output blocks when fetching data
A cloned task, or a retried task is just another task attempt
ClonedSchedulingProperty: Zero-delay, upfront task cloning

Minor changes to note:

Removes unused code
RuntimeIdGenerator -> RuntimeIdManager
Removes the first hyphens from the ids (e.g., vertex-4 => vertex4)

Tests for the changes:

WordCountITCase#testClonedScheduling

Other comments:

ClonedSchedulingPass at the moment just clones source vertices, as cloning Beam sink vertices appears to cause failures due to a duplicate file name conflict (I'll look into this in a later PR)

resolves NEMO-178

This PR is now ready to be reviewed. :smile:

Thanks @jeongyooneo! I've addressed your comments.


Allow to use variable replacement when defining resource limits and requests

Feature request
Consider this example Task:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: resource-example
spec:
  description: Sample Task to show issues with passing parameters to resources.
  params:
    - name: RESOURCE_MEMORY_REQUEST
      type: string
      default: 1Gi
    - name: RESOURCE_MEMORY_LIMIT
      type: string
      default: 2Gi
  steps:
    - name: noop
      image: registry.access.redhat.com/ubi8/ubi-minimal:8.2
      resources:
        requests:
          memory: $(params.RESOURCE_MEMORY_REQUEST)
        limits:
          memory: $(params.RESOURCE_MEMORY_LIMIT)

When creating such a resource it fails with:
Error from server (BadRequest): error when creating "minimal-resource.yaml": admission webhook "webhook.pipeline.tekton.dev" denied the request: mutation failed: cannot decode incoming new object: quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'

This suggests that webhook is not able to decipher what is the value. And since the value is correct, it should be allowed to do use it this way.
Use case
Main use case is to dynamically change requests and resources based on the runtime requirements. I consider this as a workaround for general lack of a nice way to do it otherwise. But even the workaround doesn't work currently :)

This is very useful for buildah or other image building tasks. Clusters with namespace resource quotas MUST have resource limits and requests defined.
Having to define resources statically on the task level can be annoying, I currently need to modify the task templates, and create buildah-small-1GB-ram, buildah-large-30GB-ram type tasks.
Some image builds can be very trivial and small, while others may include large scale code compilation and need much more resources.
It would be ideal to have this functionality.

/assign

keywords for search: variable substitution

I came across this as I naively hoped to set the resource constraints via parameters. I think this feature is crucial as the place to decide the resource requirements is more likely the pipeline than the task.
I guess the regex validator would need to allow a parameter reference then?

Looks like a duplicate of https://github.com/tektoncd/pipeline/issues/1530, which got closed without resolution

I've had to write automation to create tasks that only differ in the steps resources, so this would be very welcomed. I guess the problem here is that you have to move somewhere else the resources format check as it cannot be anymore in the Task admission webhook.

Also, this produces a CLI bug for tkn as well. I am unable to list valid tasks if an invalid task exists in the cluster.
kubectl get tasks
NAME               AGE
echo-hello         9m50s
echo-hello-world   11m
$ tkn task ls
Error: failed to list Tasks from namespace default: quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'

CC: @piyush-garg WDYT?

To summarize what previous commenters have said, and add a little more detail:
The reason variable replacement currently works on most string fields is because there is no validation on the strings, so "$(params.foo)" is a valid value for many Task fields. However, "$(params.foo)" isn't a valid resource quantity, and fails on the ParseQuantity method when the Task JSON is unmarshalled into a Go struct.
I'm working on a PR to address this by replacing Step.Resources with a struct where Requests and Limits are maps of ResourceName -> string rather than ResourceName -> Quantity (thanks @bobcatfish for the suggestion!). Unfortunately this will require updates to the Tekton CLI and maybe dashboard, to update references to Task.Container.
Other ways of doing this could be special casing param names (e.g. param "resources.requests.memory" is used to replace memory requests), the "patches" syntax suggested by @skaegi in #1530, or support specifying resource requests in TaskRuns, as requested in #4326.

Apologies for the time delay here, but TEP-0094: Configuring Resources at Runtime is now implementable.  This TEP proposes allowing TaskRuns to override the resources specified by Tasks. I believe this will provide similar functionality to what is requested here, while also supporting overriding resource requirements in Tasks that the user isn't responsible for maintaining. I admit that this has the downside of extra verbosity.
We would like to also support parameterizing Task resource requirements. However, this isn't backwards compatible (the way to support this is to change these fields to strings and add our own validation rather than using Kubernetes types, which breaks serialization/deserialization of existing Tasks). I'm helping lead our v1 planning so I will bring up the more general issue of parameterizing non-string Task fields and see if we can address this in our v1 API.

/unassign vinamra28

Step and sidecar overrides have been implemented and should be available in the next release! I'm going to unassign myself for now but leave this issue open as it could still be a valuable FR. Please leave feedback on overrides; it would be great to know if there are use cases going unaddressed.
/unassign

@lbernick Thanks for this! Looking forward to using it!
However our two main use cases are still unaddressed:

we want to modify resources from pipelines, not only from pipelineruns and taskruns - in order to store pipeline definition in a Git repo and create pipeline runs connected to that pipeline
we want to specify sidecars in full from pipelines, not just their resources (see #4235) - in order to e.g. add database containers as sidecars to integration test tasks

(those use cases are in the context of https://github.com/opendevstack/ods-pipeline)

/remove-lifecycle stale
See comment https://github.com/tektoncd/pipeline/issues/4080#issuecomment-1065187669

cc @ywluogg

However our two main use cases are still unaddressed:

we want to modify resources from pipelines, not only from pipelineruns and taskruns - in order to store pipeline definition in a Git repo and create pipeline runs connected to that pipeline

@michaelsauter have you checked out the remote pipelines feature? this was added in v0.35.0 and sounds a lot like what you're describing.

we want to specify sidecars in full from pipelines, not just their resources (see Allow sidecars to be specified in Pipeline/PipelineRun #4235) - in order to e.g. add database containers as sidecars to integration test tasks

Is it fair to say that pipeline-level sidecars might be better to track in #4235? I'm not sure I understand how this relates to parameterizing resource requirements.
An update since I last commented on this issue: we've updated our compatibility policy to clarify that we don't consider a change to the Go libraries a "breaking change" unless it also affects the yaml a user can specify. This means this issue can be tackled at any time, i.e. not tied to our v1 release.

@michaelsauter have you checked out the remote pipelines feature? this was added in v0.35.0 and sounds a lot like what you're describing.

I have seen it! Unfortunately it doesn't quite fit what we do right now. We currently have a custom file in each repo which defines the pipeline, but also has other configuration. The pipeline is not described fully to avoid boilerplate - the user just references some tasks instead of providing a full Pipeline resource. We then read the config file and  automatically inject a task in the beginning and one in finally. See https://github.com/opendevstack/ods-pipeline/blob/master/docs/ods-configuration.adoc#pipeline.

Is it fair to say that pipeline-level sidecars might be better to track in https://github.com/tektoncd/pipeline/issues/4235? I'm not sure I understand how this relates to parameterizing resource requirements.

Totally, #4235 is the right place to track sidecars. You are right that it is unrelated from a tech/feature perspective to the issue here. However I believe it is related on a conceptual level. I believe both sidecars and resource requirements should be defined by the Pipeline(Run) author, not by the Task author. How I am thinking about it, ideally, I would be able to express this:
tasks:
  - name: build
    taskRef:
      kind: Task
      name: build-go
    sidecars:
      - image: busybox
        name: hello-sidecar
        script: |
          echo 'Hello from sidecar!'
    resources:
      limits:
         cpu: 100m
         memory: 128Mi
      requests:
         cpu: 100m
         memory: 128Mi
    workspaces:
    - name: source
      workspace: shared-workspace

The pipeline is not described fully to avoid boilerplate

Just FYI about the new propagated parameters feature and upcoming propagated workspaces feature which are designed to reduce verbosity.

How I am thinking about it, ideally, I would be able to express this:
tasks:
  - name: build
    taskRef:
      kind: Task
      name: build-go
    sidecars:
      - image: busybox
        name: hello-sidecar
        script: |
          echo 'Hello from sidecar!'
    resources:
      limits:
         cpu: 100m
         memory: 128Mi
      requests:
         cpu: 100m
         memory: 128Mi
    workspaces:
    - name: source
      workspace: shared-workspace

Thanks, this example is really helpful. In Tekton we have a concept of "authoring time" (Task/Pipeline) vs "runtime" (TaskRun/PipelineRun) and I think compute resources are something that should be specified at runtime; however, there is some precedent for specifying "runtime" related fields on Pipeline Tasks, e.g. timeout so this could make sense.
Right now, we're implementing task-level resource requirements (example), and as part of the future work for this proposal one thing we are going to consider is deprecating task.spec.steps.resources, task.spec.stepTemplate.resources, and taskRun.spec.stepOverrides. (I didn't mention it in the TEP but task.spec.sidecars.resources also makes less sense to me than taskRun.spec.sidecarOverrides.resources.)
Here's what I'm picturing for our eventual compute resources api (note that none of this is set in stone, it's just my personal opinion about how things should look and will depend on feedback on task-level compute resources):
kind: TaskRun
spec:
  taskRef:
    name: "my-task"
  computeResources:
     requests:
       cpu: 100m
  sidecarOverrides:
    name: my-sidecar
    computeResources:
      memory: 500Mi

or on a PipelineRun:
spec:
  tasks:
  - name: my-task
     taskRef:
       name: my-task
  taskRunSpecs:
  - name: my-task
     computeResources:
        cpu: 100m
     sidecarOverrides:
     - name: my-sidecar
        computeResources:
          memory: 500Mi

It could be totally reasonable to have computeResources under Tasks instead of taskRunSpecs, as you suggest. However that seems like more of a syntax difference than new functionality?
If we do choose to remove task.spec.steps.resources, task.spec.stepTemplate.resources, and taskRun.spec.stepOverrides, I think there's limited value in implementing parameterization of compute resources. I think the best course of action for right now is to continue working on implementation for taskRun.spec.computeResources, get feedback, and then consider our compute resources API as a whole. WDYT? @dibyom @vdemeester curious to get your thoughts as well.

In Tekton we have a concept of "authoring time" (Task/Pipeline) vs "runtime" (TaskRun/PipelineRun) and I think compute resources are something that should be specified at runtime

While I generally agree with the distinction, I think that Task and Pipeline could also be seen as being in two different "times". Tasks are the reusable building blocks, therefore they are authored "earlier" then the pipelines, and the pipelines may want to customise the tasks they are using. For me the customisation of compute resources and sidecars is comparable to passing parameters ...
We have been thinking to simply create PipelineRuns instead of Pipelines from our config file, in order to move into the "runtime", but the downside of that is that e.g. grouping of runs in the UI is lost (we're using the OpenShift console).

To clarify, pipelineRun.spec.taskRunSpecs.stepOverrides and pipelineRun.spec.taskRunSpecs.sidecarOverrides exist already-- the addition is pipelineRun.spec.taskRunSpecs.computeResources.

My understanding though is that sidecarOverrides only allows to override the compute resources of a sidecar, while our goal is to define completely new sidecars (e.g. defining image, env vars etc.). The biggest use case for us is running integration tests against a test database. The task is pretty generic and just invokes the test framework, but each repo may use a slightly different database setup - so ideally it could define the sidecar. And similarly, it would be great to define compute resources because the tests may consume a different amount of e.g. memory, depending on the repo.

/assign

I would actually love to see this issue reopened.
Quick description of our use-case:
We have general purpose pipelines used by multiple teams on different repositories: building images from docker files, building .net apps, building frontends with npm, ...
Depending on the repository the compile/build step can have very different resource requirements.
We already allow teams to write some other configuration for their project into a file in the repository. If we could override the resource requirements and limits via substitution from a different task's result, we could enable teams to specify individual resource requirements per project and still run the same pipeline.

I would actually love to see this issue reopened. Quick description of our use-case: We have general purpose pipelines used by multiple teams on different repositories: building images from docker files, building .net apps, building frontends with npm, ... Depending on the repository the compile/build step can have very different resource requirements. We already allow teams to write some other configuration for their project into a file in the repository. If we could override the resource requirements and limits via substitution from a different task's result, we could enable teams to specify individual resource requirements per project and still run the same pipeline.

I guess you can just use stepOverride

@leoffj Could you let me know if taskRun.spec.stepSpecs.computeResources or taskRun.spec.computeResources address your use case? https://github.com/tektoncd/pipeline/issues/5489 and https://github.com/tektoncd/pipeline/issues/5490 have been created to collect feedback on these features.

I am not really sure how that works.. At which point do you specify the stepOverride and when is it evaluated?
Currently we simply create the pipeline run with a trigger template. If I define the taskRun.spec.computeResources there as a variable, doesn't the substitution happen immediately? My values are only available after cloning the repository and reading them from the file.
Or were you thinking along the lines of just starting a task run from the trigger template, which then fetches the file from our git server and then creates a pipeline run with the proper parameters set?

I was thinking you could specify the pipelinerun in your triggertemplate like this:
apiVersion: tekton.dev/v1
kind: PipelineRun
spec:
  taskRunSpecs:  # taskRunTemplate could also be used here
  - pipelineTaskName: expensive-build-step
     stepSpecs:
     - name: build
        computeResources:
           ...

To clarify, do you store compute resource configuration by itself in the repo, and want your PipelineRun to read that info in one TaskRun and spawn subsequent TaskRuns with the right compute resources? Or are you interested in specifying compute resource configuration on Tekton resources stored in a repo?
I'm not sure how we'd support the former feature but it's not currently supported. (There may be some hacks like having your taskrun call the k8s api to create other taskruns, but this obviously isn't a great ux.) For the latter feature, you might be interested in remote resolution in Triggers (https://github.com/tektoncd/triggers/issues/1539).

We have the first use case. We set it up such that pipelines and tasks are in one repository, and lots of different projects use these pipelines. These projects are e.g. dotnet backends, and have their own repository. We already allow the project teams to place a configuration file in their repositories, which we then evaluate during the pipelinerun (with a task simply reading values from this file, which was previously fetched via git clone) and store them as results of the task. Follow up tasks then reference these results e.g. for the image that should be used, or to determine if certain other steps should be taken.
The idea was, to allow teams to write the compute resources as another parameter to this file. Sadly this does not work out as resource limits and requests do not allow replacement.
Essentially, what I would need is something like
apiVersion: tekton.dev/v1
kind: PipelineRun
spec:
  taskRunSpecs:  # taskRunTemplate could also be used here
  - pipelineTaskName: expensive-build-step
     stepSpecs:
     - name: build
        computeResources:
           requests:
             memory: $(tasks.get-params.results.requests_memory)
             cpu: $(tasks.get-params.results.requests_cpu)
           limits:
             memory: $(tasks.get-params.results.limits_memory)
             cpu: $(tasks.get-params.results.limits_cpu)

but (without having tested it) I think this wont work as those results will only be around after the get-params task was executed.

@leoffj that's correct. It sounds like this is a use case for parameterizing resource requirements that's not met by existing/substitute features, so I'll reopen this issue. Thanks!

/lifecycle frozen

Really, Really need this function, please.


condense r.GitHubClient.ListRunners(ctx, enterprise, org, repo) calls into a single call/cache

Is your feature request related to a problem? Please describe.
The feature is related to a problem as it comes to GitHub API calls.  There are multiple instances in which the GitHubClient.ListRunners is called and returns potentially 100 runner statuses via the API, but as I can tell none of this is shared and rather than using the same response for checking various runners, the call is made recursively through the looping of each runner.  This means for each runner, the API is hit N*N times depending on various stages of the runner life cycle.
Describe the solution you'd like
The solution would be along the lines of storing the runners statuses every minute (perhaps?) or at a various time span that aligns with registration checks, unregistration attempts, etc.  Unless I am misunderstanding the behavior, I do not believe there has to be a specific reason why its called more than once per cycle.
Describe alternatives you've considered
N/A
Additional context
When running 100+ runners to sustain a workload, this call eventually eats through the API limit and kills all the runners.  I believe it is one of the main culprits.

@sledigabel Thanks for the compliment!
Yeah, an in-memory time-based cache would work. I believe the most called APIs various flavors of "List Runners" API so the potential implementation of it could be added to:
https://github.com/actions-runner-controller/actions-runner-controller/blob/f7e14e06e87961a67f46e22cc33ba2c707b6e682/github/github.go#L214-L222

https://github.com/actions-runner-controller/actions-runner-controller/pull/997
I do apologize for this PR likely not being in the contribution feed back...I wanted to share the progress and see what you all thought.

also a side note here: Why isn't the GitHub API status pulled from GitHub and stored w/in the Runner's CRD?  I can imagine that we only need 1 call to the GitHub API per minute to list all runners, in which will update the Status: of an individual runner pod....that will eliminate a ton of GitHub Runner API calls.

Why isn't the GitHub API status pulled from GitHub and stored w/in the Runner's CRD?

@jbkc85 I believe it's k8s custom controller convention to not use resource status for cache. It's for reflecting the source of truth, not for storing the source data or cache.

Linking #1101 from @Djiit

Thanks for the quick reply. Can we help on #997 ? Happy to have a sync anytime [when our timezones crosses].

@Djiit If you could submit a working example of an alternative approach for comparison, that would be great!
I'm currently trying to come up with a more transparent approach than #997, that might work like "cache any HTTP GET requests for up to X seconds", so that we can universally cache any API calls we can cache.

Hi @mumoshu, that would be far better indeed, but is this possible? IIRC the underlying HTTP calls are obfuscated by the GH client? It would have to be pretty selective too as some calls would prob not benefit from being cached (like registration/deregistration, if it fails it needs to be retried etc).

@sledigabel I suppose GitHub has properly designed their APIs to use HTTP GET for "read" requests and POST and PUT for other "write" APIs. I remember the registration/deregistration APIs, for example, were using POST and DELETE respectively. I'd definitely avoid caching POST and DELETE APIs!

I can confirm the preferred way would be to use httpcache at the transport level (see this) on the go-github client repo. Just now in our team, @tdelaune did a small experiment and was able to run some test with a small cache added.

If it can help some others: https://github.com/actions-runner-controller/actions-runner-controller/pull/1103

@jbkc85 that sounds really similar to what we saw as well when debugging, ListRunner and IsRunnerBusy polling is eating the quota.

just for documentation, I have added my code up here: https://github.com/INNOSOLProject/actions-runner-controller/pull/1.  It seems to be working just fine, and is a good MVP going forward I think.

This can be considered done now that we have implemented caching.


Angular MSAL non-interactive way : is scope extended with new permissions automatically w/o interactive consent?

Core Library
MSAL.js (@azure/msal-browser)
Core Library Version
3.2.0
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
3.0.5
Public or Confidential Client?
Public
Description
I extended scope by adding one more delegated permission in Azure and added this permission to scopes for MsalGuardConfiguration. I use this.msalBroadcastService.inProgress$ to aquire token. It seems that the only way to consent new permissions is to re-login, but according to documentation on MSDN it's not necessary (https://learn.microsoft.com/en-us/entra/identity-platform/msal-acquire-cache-tokens#acquiring-tokens-silently-from-the-cache) :

MSAL maintains a token cache (or two caches for confidential client applications) and caches a token after it's been acquired. In many cases, attempting to silently get a token will acquire another token with more scopes based on a token in the cache. It's also capable of refreshing a token when it's getting close to expiration (as the token cache also contains a refresh token).

How can I check that permissions were added on the last token refresh? Should I add some logic to ask for interactive consent? What is the basic flow here?
MSAL Configuration
export function MSALInstanceFactory(): IPublicClientApplication {
  return new PublicClientApplication({
    auth: {
      clientId: ClientId,
      authority:
        'https://login.microsoftonline.com/--',
      redirectUri: '/',
      postLogoutRedirectUri: '/'
    },
    cache: {
      cacheLocation: BrowserCacheLocation.LocalStorage
    }
  });
}

Relevant Code Snippets
CONFIGS:
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
  const protectedResourceMap = new Map<string, Array<string>>();

  protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', [
    '**PERMISSION1**'
  ]);
  protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', [
    '**PERMISSION2**'
  ]); //new one I want to add

  return {
    interactionType: InteractionType.Redirect,
    protectedResourceMap
  };
}

export function MSALGuardConfigFactory(): MsalGuardConfiguration {
  return {
    interactionType: InteractionType.Redirect,
    authRequest: {
      scopes: ['**PERMISSION1**', '**PERMISSION2**']
    },
    loginFailedRoute: '/un'
  };
}

SETUP:

  setupMsalAuthentication(destroyed$: Subject<any>) {
    this.setLoginDisplay();

    this.authService.instance.enableAccountStorageEvents();
    this.msalBroadcastService.msalSubject$
      .pipe(
        filter(
          (msg: EventMessage) =>
            msg.eventType === EventType.ACCOUNT_ADDED ||
            msg.eventType === EventType.ACCOUNT_REMOVED
        )
      )
      .subscribe((result: EventMessage) => {
        if (this.authService.instance.getAllAccounts().length === 0) {
          window.location.pathname = 'link';
        } else {
          this.setLoginDisplay();
        }
      });

    this.msalBroadcastService.inProgress$
      .pipe(
        filter(
          (status: InteractionStatus) => status === InteractionStatus.None
        ),
        takeUntil(destroyed$)
      )
      .subscribe(() => {
        this.setLoginDisplay();
        this.checkAndSetActiveAccount();

        this.router.navigateByUrl('/');
      });
  }

  setLoginDisplay() {
    this.isLoggedIn = this.authService.instance.getAllAccounts().length > 0;
  }

Identity Provider
Azure AD / MSA
Source
External (Customer)

Closing as duplicate. I answered this question in #6815


Signature doesn't clear if background is transparent

If property bgColour is set to 'transparent' the clear button will no longer erase the signature canvas.
This is due to the clearCanvas function using the background colour to draw over the existing signature.

Did you ever fix the transparency problem because when looking at the image when setting the transparancy it still has a white abckground and no alpa channel set

Sorry, haven't had a chance to work on this. PRs welcome!


Suggestion: associate the config to the game

Associate the config to the game, so the user don't have to select the dropdown the config.

Yeah, this is becoming a bit of an issue...
It's important to assign the filters to the game, but most of the other config parts aren't really game specific..
The output settings will be getting changed to be more configurable and then i'll change that config setting to be less about the game, and more about what software you want to send the telemetry to.
So you could have a config that sends MMF for SRS and Simfeedback, sends UDP to SimCommander.
Then you could have another config that just sends UDP to Simhub and SimCommander... something like that.
Then filters get linked to the game config instead of the main config.


Text overwritten

Details

Checklist

[X] Modify src/app/page.tsx ✓ https://github.com/richawo/minimal-llm-ui/commit/464c4ef69e22311016ba74bd59e046f240fa8572
[X] Running GitHub Actions for src/app/page.tsx ✓
[ ] Create src/app/some_style_file.css ▶
[ ] Running GitHub Actions for src/app/some_style_file.css ▶

Sweep: the text can overlap linewise in the assistant message. Please fix this.

@richawo Please check this out! Let me know if it doesn't work :)

@wwzeng1 @kavap thanks for flagging, will check it tonight!


Loading Tiny YOLOv2 for Inference

Hi,
I've trained a single class object detector using the Tiny YOLO model. I used the documentation here on GitHub as well as the SAS documentation as a guide.
After training the model I used the s.save function to save both the weights & attributes for later use. In a new session I've been struggling to load the model+weights and make an inference on some images - I've tried to use model.predict and s.dlScore but both produce the same error.
Here's my code for the model.predict approach:
from dlpy.applications import Tiny_YoloV2

obj_anchors = (4.433616955826258, 0.8040793768832574,
               3.4978464472650543, 0.6520535862178309,
               2.7876855046331777, 0.4014445793224864,
               1.6768336147472485, 0.46881804174965,
               3.123764957760637, 0.5228782337714222)

obj_detection_model = Tiny_YoloV2(s,
                                  n_classes=1,
                                  predictions_per_grid=5,
                                  anchors = obj_anchors,
                                  max_boxes=100,
                                  coord_type='yolo',
                                  max_label_per_image = 1,
                                  class_scale=1.0,
                                  coord_scale=1.0,
                                  prediction_not_a_object_scale=1,
                                  object_scale=5,
                                  detection_threshold=0.2,
                                  iou_threshold=0.2)

obj_detection_model.set_weights('yolov2TrainedWeights_tiny_ctr')

from dlpy.images import ImageTable

predict_tbl = ImageTable.load_files(conn=s, path="/random_imgs/", casout=dict(name='Test_Images'))

predict_tbl.resize(height=416, width=416, inplace=True)

obj_detection_model.predict(data='Test_Images')

Using the dlScore action on an ImageTable containing 416x416 images produces the same error ('Test_Model' is a CAS table containing the same model architecture as above):
s.dlscore(model='Test_Model',
          initWeights='yolov2TrainedWeights_tiny_ctr',
          table = 'Test_Images_Resized',
          copyVars=['_image_'],
          nThreads=10,
          miniBatchSize=1,
          loglevel=2,
          casout={'name':'detections',
                  'replace':True
                  }
          )

I don't think I've loaded the weights/architecture correctly for inference but can't find any similar examples.

When you load the model weight table, do you specify  loadAttrs=True?
If you use DLPy, when saving models, better use model.deploy.

BTW: if you call model.deploy to save the model as sashdat, you can call model.load_weights to load it back. load_weights will load both weights and the model attributes.

Neither model.set_weights or s.dlscore have an option to flag loadAttrs as true.
Do I need to retrain the model to get the architecture, weights, and attributes all together before calling model.deploy?

Also, my use case is to make an initial prediction on an image and crop it to leave only the highest confidence object before processing the image further. Do either the model.predict or s.dlscore functions return coordinates of object predictions on test images so I can manually extract the objects from the input image?

After you save the model, how do you load the table back? loadAttrs is one of options for the loadTable action.
model.predict indeed returns the predicted bounding boxes with the confidence. If you want to use the action to extract all the objects, you can try image.extractDetectedObjects with extractType="CROP".

After you save the model, how do you load the table back?

I have been loading the weights table from SAS Data Explorer to load it into the active caslib before calling model.set_weights and passing the name of the weights table.

model.predict indeed returns the predicted bounding boxes with the confidence. If you want to use the action to extract all the objects, you can try image.extractDetectedObjects with extractType="CROP".

That's great, thanks!

Data Explorer does not load the attrs, I think. Can you try model.load_weights to load it?
I assume you called s.save with saveAttrs=True.

I used s.save twice as the SAS documentation does, seemingly saving both the weights and attrs as 2 separate sashdat files.

I had been using model.set_weights instead of model.load_weights because there is no local copy of the sashdat file to use with model.load_weights, it is only stored on the server side.

Is the best option to just retrain the model and use model.deploy after training to save the weights locally? That way they can be loaded by calling model.load_weights like you suggested.

model.load_weights actually read the files from the server.
If you really want to use your current weights, here are the manual steps:

load the stored attrs table as well.
attach attrs with this:
s.table.attribute(caslib='CASUSER(xxxx)', task='ADD', name='your_model_table_name', attrtable='the_attrs_table_name')

I assume you use casuser as your caslib. Both tables are under casuser.

I think I will retrain and use model.deploy as you suggested since that seems to be better than the s.save method for weights/attrs as in the other SAS documentation.
If I retrain and use model.deploy with an output format of castable does that mean the weights are saved in the current caslib so I can call them using model.load_weights? The DLPy documentation says the "path" option for model.deploy specifies a client-side path, which is why I assumed load_weights read the file from client side as well.

If you store your model as the astore model, it has to be a client-side path since this model will be downloaded to your local client side.
If you store your model as sashdat, it stays on the server side.
DLPy APIs wrap up all the actions to simply the process. But it is still good to play with the action-level codes to get better understanding about what happens under the hood. And the SAS documentation mainly focuses on the action interface. This is why it shows you how to use save to store the model weights and the attrs.

@ethem-kinginthenorth , please update the DLPy doc as well for model.deploy.

If you store your model as the astore model, it has to be a client-side path since this model will be downloaded to your local client side.
If you store your model as sashdat, it stays on the server side.

Thanks for clarifying - I was unsure about this. I will go ahead and use model.deploy and that should hopefully fix my issues for the time being.
Thanks for your help!

Let me know how it goes. If you encounter other issues, please either reopen this or create a new issue.

Adding on the previous thread, the initial error message "Invalid argument" that was received from the dlscore was not really helpful. Will it be possible to add a specific error message when weight attributes are missing? The same goes for the .predict method.
Thanks!

Yes, I indeed polished the message for Viya 3.5 with this:
The model table cannot be loaded successfully. Please check whether the table is complete such as including the table attributes.

That's great! Thank you

Hi, the model.deploy method works fine and I can deploy and load the model in a new session for inference as expected.
However I was wondering if it's possible to change the name of the output CAS table before calling model.deploy, because their names after deploying conflict with the pretrained weights files used initially to train the model that are stored in the working caslib?
For reference, I am able to deploy like this:

But the 3 files that are saved after deploying conflict with the pretrained ones already stored on the server and they can't be renamed on Data Explorer:

when you call TinyYoloV2 to create your model, you can use model_table to specify a different model name.

Thank you!


Non-pointer parameter types in function signatures return incorrect values on armv7

Non-pointer parameter types for function signatures in NativeSymbols return incorrect values for our armv7 toolchain.
They work fine on x64 and aarch64, however.
For instance, the following function declaration:
void leaky_relu_accel(wasm_exec_env_t exec_env,
                      float *X,
                      int x_len,
                      float *Y,
                      int y_len,
                      float alpha);

... fails on armv7 when using:
"leaky_relu_accel",
leaky_relu_accel,
"(*~*~f)"

... we can however work around this issue by using pointer-to-float-notation (while also adapting the function declaration accordingly):
"leaky_relu_accel",
leaky_relu_accel,
"(*~*~*~)"

It would, however, be preferable to able to use the i, I, f and F function signatures accross the board.

@robinvanemden does the target arch support  VFP coprocessor registers? Could you please try adding _VFP for WAMR_BUILD_TARGET when building iwasm? e.g. cmake .. -DWAMR_BUILD_TARGET=ARMV7_VFP, see:
https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/doc/build_wamr.md#configure-platform-and-architecture

@wenyongh changing our WAMR_BUILD_TARGET from -DWAMR_BUILD_TARGET=ARMV7_VFP to -DWAMR_BUILD_TARGET=ARMV7_VFP did indeed resolve this issue. Thanks!
We do prefer to compile a single AOT that can be run on as broad an array of ARMV7 processors as possible. So we might just leave the [_VFP] suffix out and keep the "pointer-to-float-notation" for our function signatures. Benchmarks seem to show no performance differences between both options. Do you foresee any other issues we might encounter by going the "pointer-to-float-notation"-way for now?

Hi, if there are float or double types (not float/double pointers) in the native function's parameters, please do add the _VFP suffix. And it should be OK to skip _VFP if there is no float/double type in the native function's paraments.
It seems a little tricky to use "(*~*~*~)", maybe you can define the native function as:
void leaky_relu_accel(wasm_exec_env_t exec_env,
                      float *X,
                      int x_len,
                      float *Y,
                      int y_len,
                      int32 i32);
{
    float alpha = *(float *)&i32; //or use memcpy
    ...
}

And register it with "(~~i)", and in wasm app, change float to i32 before calling the native func.

@wenyongh We'll adapt our code according to your suggestions - thanks for the clear explanation!


Simplify path completion to not use prefix tree

Motivation
Currently, we build a prefix tree and then search it every time we're serving completion. I've been thinking about whether this is actually what we want to do or not. Creating these trees is super expensive.
Even if we were to maintain them in an index, we'd probably need multiple prefix trees for each thing we want to autocomplete and we'd need to synchronize it - which is also expensive and consumes memory.
I think switching to a simpler approach will prove more beneficial. This is the benchmark of this PR against main.
Warming up --------------------------------------
                 new   412.000  i/100ms
Calculating -------------------------------------
                 new      4.144k (± 1.5%) i/s -     21.012k in   5.071885s

Comparison:
                 new:     4143.8 i/s
                 old:        4.7 i/s - 876.83x  slower

Implementation
Instead of building the prefix tree and searching based on the node value, we just search the $LOAD_PATH using the node.value directly, which only returns results that start with the desired path.

Indeed, when the index is integrated in the Ruby LSP, we won't have to list files anymore. But I'm pretty sure doing a select on the indexed files will still be faster than building and then searching the prefix tree. It might not be 876.83x, but it will still be faster.
Also, when we have the index we'll implement autocomplete for classes, modules and methods. Those will produce even larger prefix trees.
What's the advantage of using the prefix tree? Is there an obvious advantage that's worth paying the performance price?

I'll close this for the time being then. We can do a more in depth exploration once we're ready to implement autocomplete for other things, such as classes and modules.

I'll close this for the time being then. We can do a more in depth exploration once we're ready to implement autocomplete for other things, such as classes and modules.


Pokedollars not showing in dex rewards

The money we get from Dex Ranks are not showed up in the dexrewards GUI and the Luxury rank gave me 30k while the Dream rank (the one after) only gave me 20k.
Have a nice day :D

This issue should now be fixed but if not, please contact us via our Discord to ensure we can address it as soon as possible :)


Rust support

Quite straight forward. I think that adding Inline rust execution would be amazing and should not be too difficult.

I thought Rust is a compiled language, isn't it? Or does Rust also have an interpreter or JITcompiler?

@marcotrosi Go is also a compiled language but we simply compile it before executing. We can do the same for rust by using cargo run I believe.

Cargo run would only work in cargo projects.
The rust compiler sadly does not have a run flag so a solution would be to create a temporary file (compiled from the slide) run it and delete it afterwards.
Might be a bit more effort, but it would allow for any compiled language.

We already write to a temp file (https://github.com/maaslalani/slides/blob/main/internal/code/code.go) so it should be pretty straight forward to add a compile step and run that if it exists on the language struct.
@blu3beri Would you be interested in implementing this? If not I can probably tackle it soon-ish 😄

@marcotrosi Go is also a compiled language but we simply compile it before executing. We can do the same for rust by using cargo run I believe.

Should it really be the task of slides to compile code? Why not letting the user compile the code upfront?  We can do the same for rust by using cargo run I believe.

Should it really be the task of slides to compile code? Why not letting the user compile the code upfront? And where do you stop/where do you draw the line?

Compiling the code upfront would be quite te hassle. Every code block you have in your slides you need to compile and then it just mimics it.
I think that adding compiled languages, as there are quite a few, is a nice feature. But I can understand if it is a bit much.

We already write to a temp file (https://github.com/maaslalani/slides/blob/main/internal/code/code.go) so it should be pretty straight forward to add a compile step and run that if it exists on the language struct.
@blu3beri Would you be interested in implementing this? If not I can probably tackle it soon-ish 😄

Been a while since I've written go, but I will give it a shot.

@marcotrosi Go is also a compiled language but we simply compile it before executing. We can do the same for rust by using cargo run I believe.

Should it really be the task of slides to compile code? Why not letting the user compile the code upfront? And where do you stop/where do you draw the line?

Yea I think it's slides responsibility to execute a code snippet that it finds and return the output. If it needs to compile the code then that's okay. It would be a very big hassle for the user to compile all the code upfront especially if they are changing it often for tweaks.
In terms of implementation, I think if we add an optional field called compile to the struct in languges.go then we can just check if that exists and compile the file first before running the execution command.


Dynamic routing triggers dependencies updated, reloading Page...

https://codesandbox.io/s/young-haze-23h3u
I need to override the less variable
How can it be avoided

https://github.com/antfu/vite-plugin-optimize-persist


balance() does not move the engines

balance() changes the wing box location (xwbox) to trim the aircraft but the engines remain in the initial user-defined position.

Yes that's right. It's something that's been on my list for a bit. As it is currently implemented the engine locations are set in absolute coordinates  and it is self consistent (with the assumption being that the pylons grow/shrink to accommodate the xwbox movement. This is fine if the movement is ~10cm but otherwise perhaps not realistic since we don't model the pylon weight increase/ decrease etc ).
A possible solution is to define the engine locations relative to the wing Xbox. This requires some change to the current arrays and not sure if worth a hot fix given plans to structure-ify the different components.


How to provide the DB connection string in a more secure fashion?

Right now, the connection string is stored in the schema.prisma file in its full glory - host, username, password, you name it. This obviously isn't secure, as it means anyone who has access to the file has full access to the database, yet the file can't simply be git ignored and stored securely, as it also contains the entire data model and is required to actually do back end development.
Is there any way to provide this string from, say, an environment file?

You can use environment variables: https://github.com/prisma/prisma2/blob/master/docs/prisma-schema-file.md#using-environment-variables

Yes, you will provide them using environment variables similar to passing it in javascript. There we also store these secrets in environment variables.


Consider migrating notebooks to new version of lucid?

To try to ensure that notebooks will continue working, we typically pin them to a specific version of lucid, such as:
!pip install --quiet lucid==0.0.5

As seen in #80, this can still lead to things breaking if an underlying library makes breaking changes.  Some possible responses

pin to head
periodically update notebooks to recent versions of lucid (ugh)
find a way to automatically test if notebooks have broken

Pin to head seems like it would lead to even more failures. I see a combination of 2 and 3 as the most likely long-term solution. It's not as bad if we standardize how we import lucid and use text replacement directly on the .ipynb files. I'll read into testing for iPython notebooks.


changed project name to animate-css in bower.json

fixes https://github.com/daneden/animate.css/issues/406
this will resolve issues where the project folder having a .css file extension was causing issues

Happy to merge this if you can address the conflicts :)

As Bower has become deprecated, I think it's not a good idea to change the package name now. I'm closing this.


[Wallet] Funnels around transactions

Expected Behavior
Understanding of where drop off occurs during transactions
Current Behavior
No transaction funnel or data-driven understanding of where drop off occurs

See https://docs.google.com/document/d/1G_XGpggW6cTBENcvs4v6XpaZzkTpST2D0kh31V9OVtU/edit for more details on KPIs to display


[Storage] [DataMovement] Update synchronization for transfer status and directory test recordings

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Storage.DataMovement

https://github.com/Azure/azure-sdk-for-net/issues/32858

CI will fail on Mac OS and Linux OS.
Will be marking all directory tests as live only for now.
https://github.com/Azure/azure-sdk-for-net/issues/33082


.off() is not working properly for listeners added by .once()

This doesn't seem to work as expected:
const emitter = dush()
const hello = () => console.log("You shouldn't see this.")
emitter.once('test', hello)
emitter.off('test', hello)
emitter.emit('test')

Interesting. More and more bugs with that implemantation of .off. I think #7 is related to it too.

Actually, @aishikaty, it not make much sense to off something that is added by once because it is offed by default, internally. That's the whole point of once.\
Nevermind, i got your logic, and it I fixed that, so now it is working. I'm going to push fixes in a bit.


oid: Allow Oid to represent short oids

Add a len field to Oid to allow it to track if it's a short
oid to use as a prefix. This makes the exists_prefix API easier to
use, as you no longer need to track the length yourself.
BREAKING CHANGE: The OidArray no longer implements
Deref<Target=[Oid]>. To access the contained oids, use the iterator
returned by OidArray::iter().
closes #293

@alexcrichton not sure what to do re breaking. I was most of the way done before I realised that the Deref<Target=[Oid]> impl wouldn't work, so decided to send it and see what you think.

I guess since the change to OidArray is breaking might as well drop the len parameter to Odb::exists_prefix at the same time. Will wait for feedback before doing that.

FWIW I think there's already breaking changes queued up so a breaking change is fine, but in general I also wouldn't mind learning a bit more about this. How does libgit2 handle short oids in this case? I think there's a whole slew of functions that all take an oid, and do they all extend a sort id to a full id (failing if that can't be done)? Or do only some functions handle a short id?

FWIW I think there's already breaking changes queued up so a breaking change is fine

How do you track breaking changes? Is my SHOUTING in the commit message good enough?

How does libgit2 handle short oids in this case? I think there's a whole slew of functions that all take an oid, and do they all extend a sort id to a full id (failing if that can't be done)? Or do only some functions handle a short id?

I'm not 100% on this, but from looking at the odb and odb backend APIs, only some handle a short oid. The one's I've seen are labelled _prefix in the name, take a git_oid and a size_t len. Some, like git_odb_exists_prefix also take an out parameter for the full oid.
Functions that take a git_oid without the length parameter have no way to know how much of the oid to treat as significant. The docs on git_object_lookup_prefix give a good idea of what's going on: https://libgit2.github.com/libgit2/#HEAD/group/object/git_object_lookup_prefix
(Also I just learned that I need to reject length less than GIT_OID_MINPREFIXLEN instead of only zero.)

Quick thought here: we could have a second type for possibly-short oids, with conversions where appropriate:

impl From<Oid> for OidPrefix
impl TryFrom<OidPrefix> for Oid (the equivalent given that's not stable yet)

Then we can be really clear in the API which functions accept which kind.

Hm ok so yeah I think it sounds like we shouldn't change Oid itself? It sounds like lots of functions in libgit2 (unrelated to the odb) already assume that it's a "full" oid? If that's true then yeah a separate type sounds fine by me.
In terms of management, I personally just go with publish = false in the manifest which is a reminder to my future self

I'm closing this and will open a replacement with a ShortOid struct soonish.


add testing documentation

This PR include the testing cases.

I have not idea about which number for this chapter to use


EPIC: Manage items

[ ] #12
[ ] User can assign and remove items to / from shelves
[ ] User can assign and remove shelves to / from shops
[ ] User can manage orphaned shelves and items

Tracked as Milestone