broadcast notifications with custom type

With this commit we will be able to broadcast native laravel notifications with custom "type" attribute. For now "type" attribute is always the name of notification class (e.g App\Notifications\Services\Orders\NewOrder) which is written here: "Illuminate\Notifications\Events\BroadcastNotificationCreated" in "broadcastWith" method. We can see that for now framework just merges payload with this array:
[
'id' => $this->notification->id,
'type' => get_class($this->notification),
]
but I want to be able to customize "type" attribute.
I am suggesting to modify broadcastWith method and add check so that if there is a "broadcastAs" method in notification class, framework will use the returned value instead of get_class($this->notification).
We have such functionality for events, and with this functionality frontend application will not be somehow connected with backend application's class name.

No plans to change this right now.


Items in the order file are no longer case sensitive

I propose that items in the order file are no longer case sensitive because I name my readme files: Readme.md.
There is an automatic system that allows the readme file to be in the first position, however in the code we add README. This does not allow me to take advantage of this feature.
// we always want to order README.md. So add it if not in list yet
string readmeEntry = order.FirstOrDefault(x => string.Equals("README", x, StringComparison.OrdinalIgnoreCase));
if (string.IsNullOrEmpty(readmeEntry))
{
    order.Add("README");
    message.Verbose($"'README' added to order-list");
}

First, totally sorry for the delay, totally missed your PR!
Linux, MacOs and Windows (with NTFS) are all case sensitive OS when it comes to files. So I would prefer to have it case sensitive. Now debate is open.
And I would suguest to use linq in a different way, so rather then Contains, that would work as well:
order.Where(x => string.Compare(x, Path.GetFileNameWithoutExtension(fi.Name), StringComparison.InvariantCultureIgnoreCase)==0);

For the order with the readme, you always want to have the README first?


fix issues with stack commands

@tjholm should we move the pass phase detection to the individual providers? Since providers that don't use Pulumi probably won't need that value it feels appropriate for them to check for it themselves on start.

@tjholm should we move the pass phase detection to the individual providers? Since providers that don't use Pulumi probably won't need that value it feels appropriate for them to check for it themselves on start.

Makes sense. At the moment the providers don't contain any prompting ability, so we can move it to the nitric provider section of the CLimI for now until we design an API that can interact bidirectionally with the CLI


Fix actors e2e test

Expected Behavior
Existing tests should pass.

Steps to Reproduce the Problem
Run E2E tests

/assign

Able to reproduce it offline.

The problem is similar to https://github.com/dapr/dapr/issues/3451
https://github.com/dapr/js-sdk/blob/6beae03cdd75f05554758db7b95158645497b5a0/src/implementation/Server/HTTPServer/HTTPServer.ts#L109-L119
Adding a sleep(10s) at line 109 fixes the problem.

@XavierGeerinck @amulyavarote any thoughts on how to fix this gracefully?

Aha, this might indeed be due to the Actor Placement tables.
TO fix we can either:

Check if the placement tables were updated (not sure how)
Wait for Xs (I waited for 4s before if Actors were used)

Personally, I would like to see an isPlacementTable updated field or /actors/healthz endpoint in dapr/dapr since this would fix this as it should
What do you think?

Yup, I was thinking about the 1st point but it looks like a TODO on the runtime side? We can check-in with the 2nd point as an immediate fix and I can follow up with dapr/dapr for healthz capabilities in actor.

Agreed


C#: Fix Basis(Vec3,Vec3,Vec3) constructor

Now it sets axes in order to match GDScript implementation.
Fixes #19511

Admittedly I haven't tested this, but is this really all it took? What put me off trying to fix it before was the 3 axis constructor is used internally in several places, such as Identity and SetDiagonal (which shouldn't make a difference, i guess) but also ConstructFromAxis, which is in turn used by othonormalize and others. Would this not result in the basis being transposed after these operations?


Add XCM Tools follow-up

Project Abstract

Please replace these instructions with a brief description of your project summarising key points (1-2 paragraphs).
If your application is a follow-up to a previous grant, please mention which one in the first line of the abstract and include a link to previous pull requests if applicable.

Grant level

[x] Level 1:  Up to $10,000, 2 approvals
[ ] Level 2:  Up to $30,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied and aptly renamed (project_name.md).
[x] I have read the application guidelines.
[x] Payment details have been provided (bank details via email or Polkadot (USDC & USDT) address in the application).
[x] I am aware that, in order to receive a grant, I (and the entity I represent) have to successfully complete a KYC/KYB check.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
[ ] I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

Thanks for the application. Could you submit your KYC data through this link (assuming you are applying as an individual; otherwise, please use this link)?

Thanks. I have submited my KYC data.

Hi, @keeganquigley
The main reasons for the lack of maintenance in the past 5 months are as follows:

The xcm protocol has only been updated once in the past few months. I also discovered compatibility issues after the upgrade during recent use, and will support it after this update.
It is true that this project has not received much attention from developers, and has not received any issues or feature requests. In addition, I have not encountered any obvious problems during use.

In building the tool out, what are some ways you would look to increase dev engagement with the tool?
I think improvements can be made in these:

I used github to search for 'polkadot xcm' and did not find this project. This will cause developers looking for related open source tools to be unable to find xcm-tools. I will modify the project's description & website & topics to improve Matches for github/google searches.

Provide code examples (links to projects) on some questions about xcm in forum/Stack Overflow to improve interactivity with developers.


Update to ruby 3.3

Was looking and noticed we are behind a few versions.

@ngan did this in https://github.com/Gusto/buildkite-builder/pull/113


Use Ruby 2.2 on Travis

I think this will Just Work; let's find out.

:heart:

@matthewd @tenderlove @jrafanie @Fryguy Do the passing tests on Travis mean we should try going to Ruby 2.2?  Are there any other files to update to specify which version of Ruby ManageIQ depends on?

I was expecting it to be faster than 2.0, rather than slower :confused:... but it's green. ¯\_(ツ)_/¯
I did a quick grep for '2.0', and didn't spot anything obvious. Presumably there's something somewhere that says which version to use when running it locally.. but maybe that's in the guides repo?

Well, I'd like to get the lib minitest tests fixed since they're not being run right now https://github.com/ManageIQ/manageiq/pull/3136

@matthewd can you also bump the centos nightly appliance to use 2.2.2?
We might also want to force developers to 2.2.2 at some point here

We could also dump this once we're forcing everyone onto 2.2.2.
https://github.com/ManageIQ/manageiq/blob/11ac7c824ffb84d313d0bfe05b88b19eddc8b8f3/lib/util/extensions/miq-net-http.rb#L8
So much code to :scissors:

@jrafanie @matthewd #3136 has been merged

Per @jrafanie, when should we force developers to use Ruby 2.2 by updating this?  cc @Fryguy @matthewd @tenderlove

Absent any other reason to delay further, I suggest we allow a week or two for transition, so that people don't need to swap ruby versions between active branches. Much easier if there's a small period where both versions work.

My personal belief is we announce that we're requiring ruby 2.2 on master very soon and then explicitly require ruby ~> 2.2.
Unless I'm mistaken the ruby option to bundler doesn't seem to allow ~> 2.2.0 as we don't want to force users/developers to maintain patchlevel compatibility.  We'll have to keep the existing Gemfile hack unless we found an alternative.

I agree with @matthewd and @jrafanie


Native python object as return crashes node

If you create a function that returns a object that is not parable into erlang terms, the node crashes.
An example, create module tdf.py:
def to_die_for(cant_handle_empty_args_yet=None):
    import datetime
    return datetime.datetime.now()

start everything up and from erlang call:
<EMAIL_ADDRESS>'tdf', 'to_die_for', [<<"foo">>]).

node dies with RecursionError maximum depth

I think i had this covered, but i will review it.

Datetime is a recursive object which refers to another datetime (field max) which refers... and so on. The only reasonable way would be to detect these loops, or not feed it with recursive objects.
(atom'datetime', {atom'hour': 0, atom'microsecond': 0, atom'year': 1, atom'day': 1, atom'month': 1, atom'minute': 0, atom'second': 0, atom'tzinfo': None, atom'min': datetime.datetime(1, 1, 1, 0, 0), atom'resolution': datetime.timedelta(0, 0, 1), atom'max': datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)})
Note the last one (field max) which is also a datetime, and it also has field max etc

Wouldn't it be enough to convert the more standard object types, in builtin module. Like

int
float
list
tuple
dict
bytes
string
whatever standard object I've missed

There is already limitation in conversion between string list and erlang binary  and list.
I have some code that keeps context on python side and you can reference them wen calling functions later on. I've made some hacks to make it work with the current Pyrlang, but that could give us an idea of how to move forward.

That sort of works.
But some types don't match Erlang. Example: Binary can be bytes or bits (bytes with last byte incomplete). Or list can be a normal list or an improper list (ending with something non-NIL). For this I have binary and list class wrappers, and they are optional (you pass flags to decoder), i think i have set simple decoding to be the default.
I can solve this by ignoring duplicate/recursive objects.

I have added cycle detection you can try now.
Also empty parameter lists should work.


Resources for writing AppArmor profiles are no longer valid

File: engine/security/apparmor.md
The links for the resources on writing AppArmor profiles take you to wiki pages that are no longer available.
Quick Profile Language

Old: http://wiki.apparmor.net/index.php/QuickProfileLanguage
New: https://gitlab.com/apparmor/apparmor/wikis/QuickProfileLanguage

Globbing Syntax

Old: http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference#AppArmor_globbing_syntax
New: https://gitlab.com/apparmor/apparmor/wikis/AppArmor_Core_Policy_Reference#apparmor-globbing-syntax

I'll try to submit a PR here shortly.

  Google took me to the 17.09 docs 🤦♂


GraphQL Schema Transform Minor Bug in Resolver Logic

Describe the bug
I create a schema for account, which stores userId, fullName, email.
At the account level, I gives

Cognito Admins Group full CRUD permission
AWS iam service full CRUD permission
Owner him/herself RU permission (so owner can change fullName and email)

At the userId field, I gives

Owner him/herself R permission (I don't want owner to be able to change/update its userId for obvious reason)

type account
	@model(subscriptions: null)
	@key(fields: ["userId"])
	@auth(
		rules: [
			{
				allow: groups
				groups: ["Admins"]
				operations: [create, read, update, delete]
			}
			{
				allow: private
				provider: iam
				operations: [create, read, update, delete]
			}
			{ allow: owner, ownerField: "userId", operations: [read, update] }
		]
	) {
	userId: String!
		@auth(
			rules: [
				{ allow: owner, ownerField: "userId", operations: [read] }
			]
		)
	fullName: String
	email: String
}

Expected behavior
I expect Cognito Admins Group and AWS iam service have full CRUD permission in user accounts.
Actual behavior
AWS iam service has full CRUD permission in user accounts, but Cognito Admins Group don't. Cognito Admins Group isn't able to read userId on a listAccounts query.
To enable it, I have to re-specify Cognito Admin Group permission at userId.
userId: String!
		@auth(
			rules: [
				{
					allow: groups
					groups: ["Admins"]
					operations: [create, read, update, delete]
				}
				{ allow: owner, ownerField: "userId", operations: [read] }
			]
		)

I suspect this to be a minor bug in the resolver logic.

Hello @xitanggg currently if you introduce a field rule it will override the object rule. To ensure that the owner can also read userId you would need to add that rule in the field as well. This is a part of some optimizations we are considering for @auth.

Thanks for your response. @SwaySway So with my example, I expect the field rule userId of the owner to only override the object rule of the owner, but it seems to remove the object rule of the groups as well.


KeyboardInterrupt

Traceback (most recent call last):
File "C:\nunif\train.py", line 22, in
main()
File "C:\nunif\train.py", line 18, in main
args.handler(args)
File "C:\nunif\waifu2x\training\train.py", line 37, in train
trainer.fit()
File "C:\nunif\nunif\training\trainer.py", line 114, in fit
self.env.train(
File "C:\nunif\nunif\training\env.py", line 141, in train
self.train_backward_step(loss, optimizers, grad_scaler,
File "C:\nunif\waifu2x\training\trainer.py", line 222, in train_backward_step
super().train_backward_step(loss, optimizers, grad_scaler, update)
File "C:\nunif\nunif\training\env.py", line 63, in train_backward_step
self.optimizer_step(optimizers, grad_scaler)
File "C:\nunif\nunif\training\env.py", line 52, in optimizer_step
grad_scaler.step(optimizer)
File "F:\1\envs\nunif\lib\site-packages\torch\cuda\amp\grad_scaler.py", line 341, in step
retval = self._maybe_opt_step(optimizer, optimizer_state, *args, **kwargs)
File "F:\1\envs\nunif\lib\site-packages\torch\cuda\amp\grad_scaler.py", line 287, in _maybe_opt_step
if not sum(v.item() for v in optimizer_state["found_inf_per_device"].values()):
File "F:\1\envs\nunif\lib\site-packages\torch\cuda\amp\grad_scaler.py", line 287, in
if not sum(v.item() for v in optimizer_state["found_inf_per_device"].values()):
KeyboardInterrupt

This error occurs when you interrupt the program by pressing Ctrl+C (on windows Ctrl+Break).

Can this be fixed? So that there is no error, but there is an exit from the program.

At the moment, I do not believe graceful shutdown is needed.
That is a pain to implement in multi-threaded/multi-process environment, and there is no advantage to me if that feature is implemented.


add_player packet issue

Hi i have client connected to the server that is looking for the add_player packet when this is ran locally on a test bds server the client can receive the packet and extract the data required. but when the client is connected to the production server it never receives the add_player packet. Have you seen this before?

can u give us ur code?

//Load config file.
const fs = require('fs')
const config = JSON.parse(fs.readFileSync('config.json', 'utf-8'))
const uuid = require('uuid');
// load discord.js
const { Client, GatewayIntentBits, EmbedBuilder} = require('discord.js')
const { MessageContent, GuildMessages, Guilds, } = GatewayIntentBits
let channel = config.channel
const token = config.token
let paradoxChannel = config.paradoxLogsChannel
var paradoxLogs = config.ParadoxEnabled
const correction = {
"§r§4[§6Paradox§4]§r": "Paradox",
"§4[§6Paradox§4]": "Paradox",
"§r": "",
"§6": "",
"§4": ""
};
//Device OS ids to be converted to more friendly names
var DeviceOS;
// create new discord client that can see what servers the bot is in, as well as the messages in those servers
const client = new Client({ intents: [Guilds, GuildMessages, MessageContent] })
client.login(token)
// load Bedrock-Protocol
const bedrock = require('bedrock-protocol');
const { resourceUsage } = require('process');
// bot options
const options = {
host: config.ip,   // optional
port: config.port,         // optional, default 19132
username: config.username,   // the username you want to join as, optional if online mode
offline: config.AuthType    // optional, default false. if true, do not login with Xbox Live. You will not be asked to sign-in if set to true.
}
// join server
const bot = bedrock.createClient(options)
bot.on('spawn', () => {
console.log(Bedrock bot logged in as ${bot.username})
})
// when discord client is ready, send login message
client.once('ready', (c) => {
console.log(Discord bot logged in as ${c.user.tag})
channel = client.channels.cache.get(channel)
if(paradoxLogs === true){
paradoxChannel = client.channels.cache.get(paradoxChannel)
}
if (!channel) {
console.log(I could not find the channel (${config.channel})!)
process.exit(1)
}
if(!paradoxChannel){
console.log(I could not find the channel (${config.paradoxLogsChannel})!)
process.exit(1)
}
})
client.on('messageCreate', (message) => {
if(message.author.bot === true){
/**This check will prevent a loop back mesasge.
* If the incoming message is from a bot it will ingore it.
*/
}else{
//We will then send a command to the server to trigger the message sent in discord.
const cmd = /tellraw @a {"rawtext":[{"text":"§8[§9Discord§8] §7${message.author.username}: §f${message.content}"}]}
bot.queue('command_request', {
command: cmd,
origin: {
type: 'player',
uuid: '',
request_id: '',
},
internal: false,
version: 52,
})
}

})
bot.on("packet", (packet) =>{
if(packet.name ==='add_player'){
console.log(packet);
}
})
//Send connecting players device os to discord.
bot.on('add_player', (packet) => { // Listen for chat messages
switch(packet.device_os){
case "Win10":
DeviceOS = "Windows PC";
break;
case "iOS":
DeviceOS = "Apple Device";
break;
case "NintendoSwitch":
DeviceOS = "Nintendo Switch";
break;
case "Android":
DeviceOS = "Android";
break;
// just send default
default:
DeviceOS = packet.device_os;
console.log("DeviceOS defaulted to packet.device_os");
}

if(config.useEmbed === true){
    const msgEmbed = new EmbedBuilder()

.setColor(0x00FFFF)
.setTitle('Server Name ')
.setDescription('[In Game] '+ packet.username +'Has joined the server using: ' + DeviceOS)
channel.send({ embeds: [msgEmbed] });
}else{
channel.send([In Game] **${packet.username}** Has joined the server using: ${DeviceOS});
}
})
//Redirect in-game messages to Discord channel
bot.on('text', (packet) => { // Listen for chat messages
//Check to see if packet is a json_whisper
if(packet.type === "json_whisper")
{
const msg = packet.message;
var obj = JSON.parse(msg)
if (obj.rawtext[0].text.includes("Discord")){
//dont send the message otherwise it will loop
return;
}
//check for paradox messages now these could be sent to a diffrent channel if required.
if(paradoxLogs === true){
if (obj.rawtext[0].text.startsWith("§r§4[§6Paradox§4]§r")){
var paradoxMsg = obj.rawtext[0].text
const correctedText = autoCorrect(paradoxMsg, correction);
if(config.useEmbed === true){
const msgEmbed = new EmbedBuilder()
.setColor(0x00FFFF)
.setTitle('Server Name ')
.setDescription('[In Game] '+ correctedText)
paradoxChannel.send({ embeds: [msgEmbed] });
return;
}else{
paradoxChannel.send([In Game] Paradox: ${paradoxMsg});
return;
}
    }
}
if (obj.rawtext[0].text.startsWith("§r§4[§6Paradox§4]§r")){
    var paradoxMsg = obj.rawtext[0].text.replace("§r§4[§6Paradox§4]§r","");
    if(config.useEmbed === true){
        const msgEmbed = new EmbedBuilder()
        .setColor(0x00FFFF)
        .setTitle('Server Name ')
        .setDescription('[In Game] '+ "Paradox" +': ' + paradoxMsg)
        channel.send({ embeds: [msgEmbed] });
        return;
    }else{
        channel.send(`[In Game] Paradox: ${paradoxMsg}`);
        return;
    }

}
//Check to see if player message is using a chat rank system. where the message maybe a json_whisper.
    const pattern = /§7(.+?): (.+)/;
    var matches = pattern.exec(obj.rawtext[0].text);
    const Playername = matches[1]
    const PlayersMessage = matches[2].replace("§r","");
    if(config.useEmbed === true){
        const msgEmbed = new EmbedBuilder()
        .setColor(0x00FFFF)
        .setTitle('Server Name ')
        .setDescription('[In Game] '+ Playername +': ' + PlayersMessage)
        channel.send({ embeds: [msgEmbed] });
        return;
    }else{
        channel.send(`[In Game] **${Playername}**: ${PlayersMessage}`)
        return;
    }

}
//Normal chat message no formatting required.
if(packet.source_name === bot.username){
/**If the chat system using json the source_name will be undefind
* if this is a normal chat packet the the user name will be in that
* field and if so if it is the bot we dont want to cause a loop.
*/
    }else{
        if(packet.message.includes("§e%multiplayer.player.joined")){
            return;
       }
        if(packet.message.includes("§e%multiplayer.player.left")){
            if(config.useEmbed === true){
                var msg = packet.parameters+ " Has left the server."
                var username="Server"
                const msgEmbed = new EmbedBuilder()
    .setColor(0x00FFFF)
    .setTitle('Server Name ')
    .setDescription('[In Game] '+ username +': '+msg)
    channel.send({ embeds: [msgEmbed] });
    return;
       }else{
           channel.send(`[In Game] **${username}**: ${msg}`)
           return;
       }
        }
        if(config.useEmbed === true){
            const msgEmbed = new EmbedBuilder()
.setColor(0x00FFFF)
.setTitle('Server Name ')
.setDescription('[In Game] '+ packet.source_name +': '+packet.message)
channel.send({ embeds: [msgEmbed] });
   }else{
       channel.send(`[In Game] **${packet.source_name}**: ${packet.message}`)
   }
    }

})
function autoCorrect(text, correction) {
const reg = new RegExp(Object.keys(correction).join("|"), "g");
return text.replace(reg, (matched) => correction[matched]);
}

Everything works fine on the test server and all events are sent to discord, but on the public server where the client connects to a public ip everything is sent but the add_player packet message

even debugging in vs code the break point is never triggered if set

How are you sure this is an issue with bedrock-protocol and the packet is just not being sent by the server? This sounds like adupe of https://github.com/PrismarineJS/bedrock-protocol/issues/243

Well odd thing is if I connect two instances to the server it will get one add_player packet and message sent back to discord and then messages are duplicated as expect so it could be an issue with the server

Can't reproduce, this could be the server intentionally not sending it that information, seems like a dupe of #243. It's not possible for packets to be dropped in transit per the stream encryption that Minecraft does.

Hi since updating the server it is sending the packets as expected so not sure what was causing it very random will close this one off


Adjust a rule's priority of evil-matchit in web-mode and html-mode

https://github.com/redguardtoo/evil-matchit/issues/119
In web-mode and html-mode, evil-matchit must adjust the rule's priority,  if not, it will jump to the end of the buffer when current line has a if keyword.
I think this adjust can be integrated into doom.
(evilmi-load-plugin-rules '(web-mode) '(simple template html))

html-mode also need this adjust.

We no longer use evil-matchit. It was removed in 5d94f048b6b7.

But % still bound to evilmi-jump-items now. Maybe evil-collection still use evil-matchit ?
evilmi-jump-items is an interactive and compiled function defined in
evil-matchit.el.

Signature
(evilmi-jump-items &optional NUM)

Documentation
Jump between items.

Key Bindings
evil-matchit-mode-map <normal-state> %
evil-matchit-mode-map <visual-state> %

References
evilmi-jump-items is unused in evil-matchit.el.

% is bound to evil-jump-item. Evil-collection does not install evil-matchit. Perhaps you're on a 10+ month old commit of Doom? Or you've installed it yourself in your private config?

So sorry for this. Yes, I add this package myself, because the default evil-jump-item can't work with html tag.


tools/Wasm.mk problems

the idea to build wasm modules using nuttx headers is broken
it produces very WAMR specific modules (it seems targeting WAMR's LIBC_BUILTIN). if we want to build wasm modules, it's better to target wasm32-wasi.
WCC detection is broken. for example, github ubuntu-22.04 runners have /bin/clang, which confuses the detection.
CONFIG_INTERPRETERS_WASM vs CONFIG_INTERPRETERS_WASM3 typo

my proposal: remove it
an alternative:

target it to wasm32-wasi
have an explicit config to enable it (disable it by default)

@yamt
We are not using the implementation of wasi/wasi-libc. We have a python script to parse nuttx csv files(syscall/libc/libm) to automatically generate nuttx syscall/libc/libm glue codes. Currently, this feature works as expected without boundary checking in wamr, but it still needs some work if enable boundary check.

@yamt We are not using the implementation of wasi/wasi-libc. We have a python script to parse nuttx csv files(syscall/libc/libm) to automatically generate nuttx syscall/libc/libm glue codes. Currently, this feature works as expected without boundary checking in wamr, but it still needs some work if enable boundary check.

where can i find the python script?

where can i find the python script?

I will upload a draft ASAP

why do you prefer the "no sandbox" approach?
doesn't it spoil many of benefits of wasm?

@yamt Please refer to this PR https://github.com/apache/nuttx-apps/pull/2058


Subscript out of bounds error when running library(MetaboShiny)

running start.metshi(inBrowser = T) opens and closes with the following errors:
start.metshi(inBrowser = T)
[1] "Orca isn't working, please check your installation. If on Mac, please try starting Rstudio from the command line with the command 'open -a Rstudio'"
Listening on http://<IP_ADDRESS>:8080
Warning: Error in [[: subscript out of bounds
46: MetaboShiny::getOptions
45:  [C:\Program Files\R\R-3.6.0\library\MetaboShiny/server.R#184]
2: shiny::runApp
1: start.metshi
Warning: Error in [[: subscript out of bounds
75: MetaboShiny::getOptions
74: MetaboShiny::setOption
73: observeEventHandler [C:\Program Files\R\R-3.6.0\library\MetaboShiny/server.R#951]
2: shiny::runApp
1: start.metshi
Warning: Error in [[: subscript out of bounds
75: MetaboShiny::getOptions
74: MetaboShiny::setOption
73: observeEventHandler [C:\Program Files\R\R-3.6.0\library\MetaboShiny/server.R#962]
2: shiny::runApp
1: start.metshi
Warning: Error in [[: subscript out of bounds
75: MetaboShiny::getOptions
74: MetaboShiny::setOption
73: observeEventHandler [reactive/aesthetics.R#36]
2: shiny::runApp
1: start.metshi
Warning in match(x, table, nomatch = 0L) :
closing unused connection 8 (~/MetaboShiny/saves/admin/options.txt)
Warning in match(x, table, nomatch = 0L) :
closing unused connection 7 (~/MetaboShiny/saves/admin/options.txt)
Warning in match(x, table, nomatch = 0L) :
closing unused connection 6 (~/MetaboShiny/saves/admin/options.txt)
Warning: The 'plotly_click' event tied a source ID of 'A' is not registered. In order to obtain this event data, please add event_register(p, 'plotly_click') to the plot (p) that you wish to obtain event data from.
[1] "Closing metaboShiny ~ヾ(＾∇＾)"

Running on Docker, this error persists. Perhaps it is something in the saves/admin/options.txt file (however, checking ls does not give odd rows).
This is the options file content:
db_dir = ~/MetaboShiny/databases
work_dir = ~/MetaboShiny/saves/admin
proj_name = MY_METSHI
ppm = 2
packages_installed = Y
font1 = Pacifico
font2 = Pacifico
font3 = Open Sans
font4 = Open Sans
col1 = #000000
col2 = #DBDBDB
col3 = #FFFFFF
col4 = #FFFFFF
size1 = 40
size2 = 20
size3 = 15
size4 = 11
taskbar_image = metshi_logo.png
gtheme = classic
gcols = #1C1400&#FFE552&#D49C1A&#EBC173&#8A00ED&#00E0C2&#95C200&#FF6BE4&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF&#FFFFFF
gspec = RdBu
mode = complete
cores = 1
apikey =

Thanks for putting it on Github Bart! Makes it a bit easier for me to keep a mental overview :D
I will be rolling out a version today that should have this issue fixed. It was due to some new options being added that are not in the older options files - I will be merging with the DEV branch soon, if you want you can already switch to there:
devtools::install_github("UMCUGenetics/MetaboShiny", ref="dev")

to see if you still run into issues. I will be merging with Master at the end of the day too :)

Oh and also, if you want to export figures, orca is a bit necessary, it is easier to install through conda : O Once installed, it can be used(at least in my case) either through running metshi from the command line or opening rstudio through:
open -a rstudio

in the command line.

RStudio:
Thanks, the fix worked. I had to remove the previous folder tree ~/MetaboShiny/{databases,saves/admin} in order to have it work. The localhost 8080 now opens the app! So RStudio is covered.
Docker:
Pulling the new docker image results in an updated image with a few new downloads. However, running the commands results in the out of bounds error again, so perhaps the docker image is not updated with the @dev yet?


Create & publish NuGet package for WinSW

For .NET projects NuGet is a preferable package manager.
It would be great to support this repository together with Maven

If you look at Chocolatey for Business -- it has a very easy simplistic package creator. You can even try it out for a while too (full featured).

@kenmaglio I do not consider enterprise tools for the build flow

So, it is here: https://www.nuget.org/packages/WinSW/


MINOR: leave no trace example

Example of how to use .... untested.

Thanks @sunnysideup, but I'll gracefully decline as this is very specific to your use-case and not something I feel should be in the README :)
On that note, I see you really take a long approach to finding the latest release - git checkout ... (which is excluded in your code), git fetch...  etc. Your entire 36+ line script could be replaced with just the following 3 lines:
wget -q -O - https://github.com/axllent/ssbak/releases/latest/download/ssbak_linux_amd64.tar.gz | tar -zxv ssbak
./ssbak save . ./backup.sspak
rm -f ssbak

That is fine. Did not know about latest.
On Tue, 25 Jul 2023, 17:52 Ralph Slooten, @.***> wrote:

Thanks @sunnysideup https://github.com/sunnysideup, but I'll gracefully
decline as this is very specific to your use-case and not something I feel
should be in the README :)
On that note, I see you really take a long approach to finding the
latest release - git checkout ... (which is excluded in your code), git
fetch... etc. Your entire 36+ line script could be replaced with just the
following 3 lines:
wget -q -O - https://github.com/axllent/ssbak/releases/latest/download/ssbak_linux_amd64.tar.gz | tar -zxv ssbak
./ssbak save . ./backup.sspak
rm -f ssbak
—
Reply to this email directly, view it on GitHub
https://github.com/axllent/ssbak/pull/7#issuecomment-1649165051, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABIZ4TJSJUB3U4XE22XIELXR5NI7ANCNFSM6AAAAAA2U4YCWU
.
You are receiving this because you were mentioned.Message ID:
@.***>

The latest always points to the latest release, however it is only useful (in a script like this) if the file is named the same for each release.
If you require a version number in the filename then you can do a little extra parsing beforehand (still much easier than checking out a repo), such as:
VERSION=$(curl --silent --location "https://api.github.com/repos/axllent/ssbak/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')

Happy hacking! :rocket:


Enhance composite with new functionalities (bottom, right, opacity, width)

Feature request
What are you trying to achieve?
I am trying to apply a watermark on top of an image.
In my scenario, the watermark should go to the bottom right corner but with some margin (so gravity: southeast doesn't work; I know I could just add transparent pixels as a margin to the image, but that is not ideal).
The watermark could also have a opacity (that is not always the same value) so being able to set it as an option would be optimal (instead of creating multiple watermarks with different levels of opacity).
Last, the watermark should be resized in % based on the original image width (exactly like lightroom does when exporting). So if, for example, you set a watermark width 25% on a 500x500px image, the watermark will be 125px wide.
When you searched for similar feature requests, what did you find that might be related?
#3277 also talks about the bottom/right functionality on top of the existing top/left options
What would you expect the API to look like?
For bottom and right, they should work exactly like top and left
For opacity, it should be a number (either 0 to 100 or 0 to 1) where 0 is fully transparent (invisible) and 100 fully opaque.
For width, it could accept a number (to use as % of the image width) or a string so the user can specify the exact width in px or a width in % (width: 250px or width: 25%)
What alternatives have you considered?
Having a different watermark image for each opacity, size and with margins... but that is for sure not optimal since I would need hundreds of different images.
Generating the watermark with sharp and editing it before passing it as Buffer to the image could solve the width and opacity issues... but being able to provide some simple options to the composite image would be more ideal.
Please provide sample image(s) that help explain this feature
The watermark is at the bottom/right corner with 10px margin, 75% opacity and its width is 10% of the image width.

I can see the value in exposing bottom and/or right and use these to calculate values for top and/or left on-the-fly, as the dimensions might not be known, and this is probably a common-enough use case. Happy to accept a PR, if you're able.
I'm less sure about adding opacity as full control is already available over this - images to be composited can use an alpha channel. Resizing images during composition would introduce way too much complexity, sorry.


Please update for Windows 10

<EOM>

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

ID: 050dc241-8019-e6b2-1cfd-39f95f6fb41d
Version Independent ID: 7d358f76-efc4-7492-d416-106523d17181
Content: Quickstart - LTI - Microsoft Deployment Toolkit
Content Source: sccm/mdt/lite-touch-installation-guide.md
Product: configuration-manager
Technology: configmgr-osd
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Thanks for the feedback. We recently moved this content to a new GitHub repository, so this issue is no longer tracked with the original article. As part of that process, we reviewed our backlog of feedback, and made some tough decisions on items that we don't think we'll realistically ever address. If you're passionate about this specific feedback, please refile it on the current article, now under docs.microsoft.com/mem/configmgr.


Let the RD driver itself expose subgroup caps

Eventually, I'd even let the RD class to report ClientVersion and TargetVersion itself for further polishing of responsibility distribution.

Poke @BastiaanOlij

Looks great, thanks!


Manually set

Dear,
We are now getting an "event" for the correct address when we execute a "requestStatus" call. How do we go about receiving an event when a switch is set manually ?
Kind regards,
Thomas

what do you mean by when a switch is set manually?

Dear Abel,
When we use a button to manually switch the actor, we want to read the status of the actor, this is (as far as we know) now not possible. We can read the status of an actor switched by the software we are developing but when it is switched manually there is no readable status change.
kind regards,
Thomas

Check the README
Requesting status

If you to be notified you just need to subscribe the delegates
If KNX is not sending the events, you need to configure the actuators to send them

Hey Abel,
Thanks again for the help, we managed to find our problem and found a fix for it.
Kind regards,
Thomas


Migrate to native URL

Historically ufo was started as a polyfill for URL when there were no enough browser coverage and also due to behavior variations. Now that URL is an standard de-facto, we can migrate to it for all (for parse/stringify) or at least for resolve/normalize Utils.
One of the biggest breaking change side-effects of this is that we will encode more characters even then they not not necessary and parsable. The initial behavior was taken from vue-router that preferred to keep URL readability and encode in must-have situations only. (one example: https://github.com/unjs/ufo/pull/164)
Second thing to consider is the performance part which probably worth a decent benchmark against URL implementation of major JS runtimes (Browsers, Node, Bun, Deno, Cloudflare workers) comparing to current regex based parseURL.

I get it from the Mulesoft - https://help.mulesoft.com/s/article/java-lang-IllegalArgumentException-Malformed-URI-while-migrating-to-Mule-4
Mulesoft still supports RFC 1738 where "{", "}", "|", "", "^", "~", "[", "]", and "`" are unsafe characters.

Originally posted by @enkot in https://github.com/unjs/ufo/issues/165#issuecomment-1933938777

+1 on ufo/url, that'd be great.


'order by time desc' query does not order by time with different tags

Testing out #2022 I came across this problem.  Version 0.9.4-rc1
Using CLI:
> insert test-sensor value=12
> insert test-sensor value=13
> insert test-sensor value=14
> insert test-sensor value=15
> insert test-sensor,tag=example value=16
> select * from "test-sensor" order by time desc;
name: test-sensor
-----------------
time				tag	value
2015-09-11T04:08:33.108825071Z		15
2015-09-11T04:08:30.996790711Z		14
2015-09-11T04:08:29.676833764Z		13
2015-09-11T04:08:59.500124703Z	example	16
2015-09-11T04:08:27.837381605Z		12

Note that most recently added point is 4th in the list.  Adding another point with a different tag:
> insert test-sensor,tag2=example2 value=17
> select * from "test-sensor" order by time desc;
name: test-sensor
-----------------
time				tag	tag2		value
2015-09-11T04:08:33.108825071Z				15
2015-09-11T04:08:30.996790711Z				14
2015-09-11T04:08:29.676833764Z				13
2015-09-11T04:15:14.500959481Z		example2	17
2015-09-11T04:08:59.500124703Z	example			16
2015-09-11T04:08:27.837381605Z				12

Note that most recently added point is again 4th in the list.

Seeming related problem today in case it helps track this issue down.
I'm finding it hard to reproduce, but when I selected data in time ascending order (default) I get all of the data.  When I queried in reverse order, I get only two points (see below).  Tried the same query again later, and all of the data came in, but with the order messed up as previously reported (below)
> select * from "test-sensor-3";
name: test-sensor-3
-------------------
time				lat	lng	sensor_id	sensor_name	tag	value
2015-09-10T20:08:28.975Z			55		test-sensor-3		33
2015-09-10T20:08:33.089Z			55		test-sensor-3		33
2015-09-10T20:08:33.853Z			55		test-sensor-3		33
2015-09-10T21:05:42.792Z			55		test-sensor-3		33.5
2015-09-10T21:18:28.038513909Z							example	33
2015-09-10T22:11:32.837607829Z					test-sensor-3	example	33
2015-09-11T00:48:58.924000001Z								99
2015-09-11T18:01:52.093000001Z	49	123						12
2015-09-11T18:02:18.138000001Z	49	123						12
2015-09-11T18:03:02.085000001Z	49	123						12
2015-09-11T18:03:03.461000001Z	49	123						12
2015-09-11T18:03:04.612000001Z	49	123						12
2015-09-11T18:05:22.531000001Z	49	123						12

> select * from "test-sensor-3" order by time desc limit 1000;
name: test-sensor-3
-------------------
time				lat	lng	sensor_id	sensor_name	tag	value
2015-09-10T22:11:32.837607829Z					test-sensor-3	example	33
2015-09-10T21:18:28.038513909Z

later:
> select * from "test-sensor-3" order by time desc;
name: test-sensor-3
-------------------
time				lat	lng	sensor_id	sensor_name	tag	value
2015-09-10T22:11:32.837607829Z					test-sensor-3	example	33
2015-09-11T18:08:30.275000001Z								12
2015-09-11T18:08:15.035000001Z								12
2015-09-11T18:05:22.531000001Z	49	123						12
2015-09-11T18:03:04.612000001Z	49	123						12
2015-09-11T18:03:03.461000001Z	49	123						12
2015-09-11T18:03:02.085000001Z	49	123						12
2015-09-11T18:02:18.138000001Z	49	123						12
2015-09-11T18:01:52.093000001Z	49	123						12
2015-09-11T00:48:58.924000001Z								99
2015-09-10T21:18:28.038513909Z							example	33
2015-09-10T21:05:42.792Z			55		test-sensor-3		33.5
2015-09-10T20:08:33.853Z			55		test-sensor-3		33
2015-09-10T20:08:33.089Z			55		test-sensor-3		33
2015-09-10T20:08:28.975Z			55		test-sensor-3		33

+1

I see the same issue here. As soon as a new tag comes in, sorting in descending order gets confused.
I looks a little bit to me, like every time a new tag comes in, it starts a new "group" that is sorted on it's own.

+1

closing in favor of https://github.com/influxdb/influxdb/issues/4235, which although newer, has more conversation


feat: allow passing credentials via constructor

Closes #19
Allow passing credentials via constructor

added ability to pass wallet private key and OpenAI key through constructor
refactored test setup for better maintainability

@starc007 great additions, thanks for the PR!


odo url create should try to use an existing endpoint in the devfile rather than creating a new one

/kind bug
you using?

Basically following instructions:  https://odo.dev/docs/deploying-a-devfile-using-odo/#deploying-an-open-liberty-application-to-an-openshift--kubernetes-cluster
Steps

Start from a minikube+ingress cluster ctx
git clone https://github.com/OpenLiberty/application-stack-intro.git && cd application-stack-intro
odo create myopenliberty
odo url create --host $(minikube ip).nip.io
odo push

Actual behavior
In devfile.yaml
I see two endpoints:
components:
- container:
    endpoints:
    - exposure: public
      name: ep1
      path: /
      protocol: http
      targetPort: 9080
    - exposure: public
      name: mol234-9080
      path: /
      protocol: http
      targetPort: 9080

$ odo push

Validation
✓  Validating the devfile [75690ns]
Creating Kubernetes resources for component mol234
✓  Waiting for component to start [5s]
✓  Waiting for component to start [12ms]
⚠  Unable to create ingress, missing host information for Endpoint ep1, please check instructions on URL creation (refer odo url create --help)

Expected behavior
I think odo should reuse my devfile's existing endpoint.   I think the devfile should not need an update and I think the warning message on 'ep1' should not be issued (potentially confusing the user).
I had wondered if maybe odo should handle this via an 'odo url update'  rather than 'odo url create'.   However, thinking about it more, the odo URL constuct already spans across and abstracts the details of each of:

state in the devfile.yaml
state in the odo env.yaml
state in the cluster

I think instead odo url create should do the right thing and use the existing devfile endpoint, as long as it detects there's nothing incompatible about the request.
One other point leading me to this conclusion is noting that I don't need to pass the --port to created the ingress-based endpoint...somehow odo uses the '9080' from my devfile endpoint even though it creates a new endpoint.
Background
We pre-defined the 'ep1' endpoint in the devfile so that, on OpenShift, odo push will cause a usable OpenShift route to be created without an odo url create
Bigger goal
My main goal is to include a pre-defined endpoint such that on each of simple:  OpenShift, k8s+ingress scenarios, I can at least avoid rewriting the devfile on url create.
Any logs, error output, etc?

@kadel @scottkurz What will be the behavior if the cloned devfile has multiple endpoints in a minikube setup? Should the first url create command update one of them and keep the others or delete the rest as well?

$ odo push

Validation
✓  Validating the devfile [75690ns]
Creating Kubernetes resources for component mol234
✓  Waiting for component to start [5s]
✓  Waiting for component to start [12ms]
warning  Unable to create ingress, missing host information for Endpoint ep1, please check instructions on URL creation (refer odo url create --help)

Do we know for sure that we're not hitting the behaviour reported/discussed in #4270? I'm asking because the warning message @scottkurz is seeing here is being reported even when things work just fine. I saw this message quite recently when working with minikube + ingress.

I think odo should reuse my devfile's existing endpoint. I think the devfile should not need an update and I think the warning message on 'ep1' should not be issued (potentially confusing the user).

@mik-dass this sounds along the lines of what I was saying on the call yesterday - if endpoint ep1 already exists for the port & protocol combination 9080 & http, subsequent attempt to create an endpoint mol234-9080 should fail instead of overriding the existing endpoint ep1 in the devfile.

What will be the behavior if the cloned devfile has multiple endpoints in a minikube setup?

Do you mean multiple endpoints for same port+protocol combination? Unless someone has manually put this information in a devfile, should the library even allow such multiple endpoints in devfile.yaml? Is it valid from devfile schema point of view?

@mik-dass this sounds along the lines of what I was saying on the call yesterday - if endpoint ep1 already exists for the port & protocol combination 9080 & http, subsequent attempt to create an endpoint mol234-9080 should fail instead of overriding the existing endpoint ep1 in the devfile.

This issue seems to be about removing the unusable URLs from the devfile or updating the existing ones with the new info.

Do you mean multiple endpoints for same port+protocol combination? Unless someone has manually put this information in a devfile, should the library even allow such multiple endpoints in devfile.yaml? Is it valid from devfile schema point of view?

There is no such limitation mention in the schema so I think it is a valid.

@kadel @scottkurz What will be the behavior if the cloned devfile has multiple endpoints in a minikube setup? Should the first url create command update one of them and keep the others or delete the rest as well?

I admit I haven't used components exposing multiple endpoints yet.
But from the help text in odo help url create:

  --port int            Port number for the url of the component, required in case of components which expose more than one service port (default -1)

it seems you would need to pass the port as an argument, so instead of:

odo url create --host $(minikube ip).nip.io

I'd have to do

odo url create --host $(minikube ip).nip.io --port 9080

and perhaps if there are two endpoints both with the same port it would be an error?     (That also implies that it is an error to add a second endpoint with the same targetPort, which also supports treating this issue as a concern).
UPDATE with 2.0.7
I just tried this again with 2.0.7 and it seems to work exactly as I'd hoped.     It seems this may have been fixed already?

UPDATE with 2.0.7
I just tried this again with 2.0.7 and it seems to work differently. A second, new endpoint is created and my original endpoint is deleted (or you might say overwritten).

I've tried this with
▶ odo version
odo v2.1.0 (6040118b0)

And I see original behavior as reported in the issue description.
My take on this is:
Case 1:
If devfile has only one endpoint and the user runs odo url create without specifying port. Odo should assume that the user wants to add or override information for the existing URL.
Example:
if  devfile contains
      endpoints:
        - exposure: public
          path: /
          name: ep1
          targetPort: 9080
          protocol: HTTP

running odo url create --host example.com will just attach hostname to the existing ep1 endpoint. This means that it will add the following to env.yaml and it won't touch devfile.yaml
Url:
  - Name: ep1
    Host: <IP_ADDRESS>.nip.io
    Kind: ingress

Case 2:
If devfile has multiple endpoints running odo url create without --port will error out telling the user that --port is required because there are multiple endpoints in devfile.
Case 2a:
Running odo url create  with --port  that already exists in devfile will result in adding additional information to the endpoint. This is the same situation as in Case 1
Case 2b:
Running odo url create  with --port  that doesn't exists in devfile, will create a new endpoint in devfile.yaml

Currently the default path value seems to be / for odo URLs but devfile doesn't have any default value for path. Should we remove it? Or should we treat the empty path to be /?

Currently the default path value seems to be / for odo URLs but devfile doesn't have any default value for path. Should we remove it? Or should we treat the empty path to be /?

Based on how URL works empty path and / should mean the same thing.

Based on how URL works empty path and / should mean the same thing.

But should we write the default value / to the devfile like we do currently or leave it with empty value?

Should we write the default value / to the devfile, like we do currently, or change the current behavior and leave it with empty value?

Empty if path was not specified. If it was specified (even in case someone put /) it should have the correct value.
odo url create  - no path in endpoint
odo url create --path /asfd - endpoint should have  path: /asfd
odo url create --path / - endpoint should have  path: /

Empty if path was not specified. If it was specified (even in case someone put /) it should have the correct value.

OK then we would need to change the current behavior of defaulting the value to / and saving it in the devfile.

@kadel @scottkurz Please check if https://github.com/openshift/odo/pull/4567 satisfies your requirements. One concern is that this behavior can end up overwriting endpoint values set by other tools or set manually.

@kadel @scottkurz Please check if #4567 satisfies your requirements. One concern is that this behavior can end up overwriting endpoint values set by other tools or set manually.

@mik-dass could you mention more what scenario were you concerned about overwriting values with?
If we needed to, I wonder if it'd help to have a new odo url update subcommand to distinguish btw. new vs. existing endpoints.  But I think of 'url' as an odo construct rather than a devfile construct so create seems appropriate to me, and I think Tomas' breakdown:  https://github.com/openshift/odo/issues/4493#issuecomment-818667275  makes sense.
Commented in #4567 that the fix looks good to me.

@mik-dass could you mention more what scenario were you concerned about overwriting values with?

I meant if the user edits the devfile manually and triggers odo url create, we might end up overriding his changes.
# user manually changes the endpoint values in the devfile
odo create <component_type>
odo url create

This might end up overwriting his changes.
Though after a discussion with @kadel , we decided not to worry about such scenarios for now.

I meant if the user edits the devfile manually and triggers odo url create, we might end up overriding his changes.

this is ok
odo url create is a command that can edit devfiles. Users running this should be expected that devfiles will be modified.


Fix  UI and UX

Hello @anuragverma108 , I want to fix the UI and UX of Your webpage.
Please assign me this issue with the Hacktoberfest Label.

Hello @anuragverma108,
I am actively participating in Hacktoberfest 2024. I came across your repository, and I am very interested in contributing to it. I would love to work on this repo or any other task where you feel I can provide value. So Please assign me this repo.


File-based SEC EDGAR parser

I currently implement the SEC EDGAR API, but the API is still relatively new and doesn't contain all the data that may be available through the SEC EDGAR historical data file archives. I think we'd want to use the file-based SEC EDGAR data as an alternative to using the SEC EDGAR API in cases where a company's data cant be found through the API. Just glancing at how the data files are organized, I don't think itd be too big of an effort to implement. A first implementation should probably have the following elements

[ ] Methods for crawling through the index files for each year and quarter
[ ] Methods for parsing index files and storing them into SQL tables
[ ] Methods for getting filings based on an index entry
[ ] Methods for storing filings in SQL tables and querying them from SQL tables
[ ] Options for enabling the file-based methods as an alternative to the API methods in cases of errors

I messed around with this a bit. I'm not sure if this feature is quite worth the effort. The general workflow is as follows:

Use bs4 to crawl through the /Archives/full_index URL links and download the tables for each quarter-year pair to get filing URLs for each company
Use bs4 to parse a filing and search through  tags
Look through  tags to get metadata about each XBRL tag
Store tags in their own table

This is really straightforward, but I wonder if this is just replicating what the SEC EDGAR REST API is already doing behind-the-scenes. I'm going to pause for now until I find that this is not the case

Settled on this not being worth the effort and will close this. Can be reopened if necessary


Refactor QAE using the Grover operator

Summary
Part of the Finance refactor, where the GroverOperator is used in both Grover's algorithm and all Amplitude Estimation algorithms.
Details and comments
Updates the signature to comply with the GroverOperator names and the plan for Grover's algorithm and uses the GroverOperator internally where possibly. The old tests are maintained in test_amplitude_estimation_circuitfactory until the circuit factories are deleted.
The tests should also be refactored at some point to test less standard cases (to be faster) and more corner cases (to test more precisely). But this is part of a later PR.
Draft because the

docstrings need to be double-checked
the tests aren't completely ready yet
the Git history must be cleaned up

Given the various changes to the Grover and AE algos at what point is a reno release note relevant. It could be done for here to note the changes on how these are built out.

I added a reno 👍
Also I removed the deprecation warnings if a CircuitFactory is passed, since there are still several classes based on the circuit factory (mainly MultivariateProblem and UnivariateProblem) that should be deprecated, along with a suggestion on how to use circuits instead, before raising warnings in QAE. The goal for this is this release, but I'd rather do all deprecations together.


datalog: hide/remove MY_DATA.HTM when data logging activity is not taking place

Once MY_DATA.HTM exists on the MICROBIT drive it does not seem that it can be removed. You still have a MICROBIT drive that shows a MY_DATA file with nothing in it even if you flash a new program  that does not contain data logging APIs.
In a classroom environment with shared micro:bits, this might be confusing/worrying to people who are handed a micro:bit with an empty file on it called MY_DATA, that when opened exposes some buttons and a link to microbit.org.
is it possible to hide/remove the file if a program is flashed that does not use the data logging APIs.
a
The MakeCode editor has an option to 'full' erase the data and I would expect this to have the same effect of removing the file.
Another option would be to add some indicator that the file is only useable/populated when using the data logging feature or if no data is found, link people directly to microbit.org or to this article on the MY_DATA file https://support.microbit.org/en/support/solutions/articles/19000127398-my-data-htm

@finneyj I think the outcome of our discussion about this that we would hide the file on 'full' erase? Is that your understanding too?

Yes - I think we've already applied that here:
https://github.com/lancaster-university/codal-microbit-v2/commit/fb96113f8549f0ea0627e0e9ad14fa58b370402f

Tested and can confirm it works 👍
Thanks Joe!


Remove optimiser type piracy. Make optimiser and builder "deep" hyper-parmaters

This PR resolves #129 and #124
It also updates the examples/

Codecov Report

Merging #135 (655c8e2) into dev (efa3a4c) will decrease coverage by 0.11%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev     #135      +/-   ##
==========================================
- Coverage   92.13%   92.01%   -0.12%
==========================================
  Files           7        6       -1
  Lines         267      263       -4
==========================================
- Hits          246      242       -4
  Misses         21       21

Impacted Files
Coverage Δ

src/classifier.jl
100.00% <100.00%> (ø)

src/common.jl
91.66% <100.00%> (+0.36%)
:arrow_up:

src/core.jl
89.74% <100.00%> (-0.51%)
:arrow_down:

src/image.jl
100.00% <100.00%> (ø)

src/regressor.jl
100.00% <100.00%> (ø)

src/MLJFlux.jl

Continue to review full report at Codecov.

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

Fail on nightly does not appear related to changes in this PR.
https://github.com/FluxML/MLJFlux.jl/pull/135/checks?check_run_id=2588862626

@DilumAluthge Looks like latest Flux requires julia 1.6. I've updated the github action CI but not sure how to update buildkite, which I guess is going to fail when we attempt to push this PR down to master after the current PR.


Performance counter CSR registers that are not implemented are seen as implemented

Hi,
The attached code tries to read a mhpmcounter23h that is not implemented, on the spike side it throws an exception, but on the DUT side it commits because the register is seen as implemented. With the knowledge that this register is only available in 32 bits, I launched the code in NaxRiscv 64 bits.
basic_test_0_csrrci.zip
Execution Result
[info] *** DUT missed a trap ***
[info] commit error
[info] - std::exception

Spike.log
core   0: 0x0000000080000160 (0x00001817) auipc   a6, 0x1
core   0: 3 0x0000000080000160 (0x00001817) x16 0x0000000080001160
core   0: 0x0000000080000164 (0xa7880813) addi    a6, a6, -1416
core   0: 3 0x0000000080000164 (0xa7880813) x16 0x0000000080000bd8
core   0: 0x0000000080000168 (0xb970fbf3) csrrci  s7, mhpmcounter23h, 1
core   0: exception trap_illegal_instruction, epc 0x0000000080000168
core   0:           tval 0x00000000b970fbf3

Tracer.log
rv rf w 0 0 32<PHONE_NUMBER>001160
rv commit 0<PHONE_NUMBER>000160
rv rf w 0 0 32<PHONE_NUMBER>000bd8
rv commit 0<PHONE_NUMBER>000164
rv rf w 0 0 32<PHONE_NUMBER>000000
rv rf r 0 4 2967<PHONE_NUMBER>000000
rv rf w 0 4 2967<PHONE_NUMBER>000000
rv commit 0<PHONE_NUMBER>000168

https://github.com/SpinalHDL/NaxRiscv/blob/5211920b9f945963135419126087c998828f7d07/src/main/scala/naxriscv/misc/PerformanceCounterPlugin.scala#L49-L55
In this part of the code you filter the CSRs that are needed according to XLEN and the privilege which gives us the csrFilter list which contains the implemented registers
https://github.com/SpinalHDL/NaxRiscv/blob/5211920b9f945963135419126087c998828f7d07/src/main/scala/naxriscv/misc/PerformanceCounterPlugin.scala#L58
In this line you include all the performance CSR registers that exist in the RISCV specification, which can be decoded.
https://github.com/SpinalHDL/NaxRiscv/blob/5211920b9f945963135419126087c998828f7d07/src/main/scala/naxriscv/execute/CsrAccessPlugin.scala#L160-L165

The decode list includes all the registers in the specification, but should we only include the list of implemented registers? Any suggestions on how to fix this?

How to synchronise Spike with the DUT on the number of performance counters implemented ?

At the moment, if we are trying to access a performance csr register that is present in the RISCV specification but not implemented on NaxRiscv, we do not have a trap.

Thanks ^^
Should be fixed with the above commit.

How to synchronise Spike with the DUT on the number of performance counters implemented ?

In general what i do, is that i configure NaxRiscv to have as much counters than Spike.
But more generaly, it should be when the user ask RVLS to create a new CPU isntance, more parameters should be given to specify this kind of implementation specific caracteristics.

Hi,
The attached riscv-dv generated code attempts to access mhpmcounter10, which is not implemented in either the DUT or Spike. This results in a segmentation fault and the code fails. Below is the specific line of code causing the issue:
    800001b6:	b0aa15f3          	csrrw	a1,mhpmcounter10,s4

Knowing that I have modified the number of HPM counters in Spike to ensure consistency between the DUT and Spike but that doesn't change anything:
https://github.com/SpinalHDL/riscv-isa-sim/blob/5b37ab699f6176ea7f2d2b3187f75625eca7e511/riscv/processor.h#L22
#define N_HPMCOUNTERS 7 //29

Results:

With the regression simulator:

./obj_dir/VNaxRiscv --name dv --output-dir failed --load-elf basic_test_1.o --start-symbol _start --pass-symbol pass --fail-symbol fail --no-putc-flush --seed 96102624 ${ARGS} --trace-ref

*** MISSMATCH PC DUT=80103000 REF=8010301c ***

TIME=574
LAST PC COMMIT=80103000
INCOMING SPIKE PC=80101bf8
ROB_ID=x1c
FAILURE dv

With RVLS using SocSim

[info] **************************************************
[info] DUT-PC =<PHONE_NUMBER>0001b6, REF-PC=800001b6, INST = b0aa15f3
[info] Debug: CSR_MHPMCOUNTER3 = 0xb03, CSR_MHPMCOUNTER31 = 0xb1f, csrAddress = 0xb0a, csrReadData = 0x0
[info] Warning: csrmap[0xb0a] is null. Skipping write.
[info] # A fatal error has been detected by the Java Runtime Environment:
[info] #
[info] #  SIGSEGV (0xb) at pc=0x00007ffa1f6e01e8, pid=2445164, tid=0x00007ffa68e47640
[info] #
[info] # JRE version: OpenJDK Runtime Environment (8.0_432) (build 1.8.0_432-8u432-ga~us1-0ubuntu2~22.04-ga)
[info] # Java VM: OpenJDK 64-Bit Server VM (25.432-bga mixed mode linux-amd64 compressed oops)
[info] # Problematic frame:
[info] # C  [rvls.so+0x3a91e8]  processor_t::get_csr(int, insn_t, bool, bool)+0x58
[info] #
[info] # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
[info] #
[info] # An error report file with more information is saved as:
[info] # /media/big_dd/nanotrust/bi262934/naxriscv_tuleap/naxriscv_dv_vf/NaxRiscv/hs_err_pid2445164.log
[info] #
[info] # If you would like to submit a bug report, please visit:
[info] #   http://bugreport.java.com/bugreport/crash.jsp
[error] Nonzero exit code returned from runner: 134
[error] (Compile / runMain) Nonzero exit code returned from runner: 134
[error] Total time: 12 s, completed 10 déc. 2024 00:09:08

failed_test.zip
Could you please provide guidance on how to handle this mismatch or segmentation fault when accessing unimplemented HPM counters?
Thank you!


Znap compile parse error

.znap.compile:278: parse error near `bindkey'
.znap.compile:zcompile:47: can't read file: /home/patrick/.local/share/zsh-snap/prezto/modules/editor/init.zsh

Using latest version 7a18a8468c5b2722bfa71ae5ce413696e8935df3. Didn't have this problem a few days ago so should be fairly recent.

This doesn't fix it unfortunately. There are actually more errors than this one. If I delete all .zwc from my home directory and run znap compile I get,
.znap.compile:zcompile:47: can't write zwc file: /home/patrick/.local/share/zsh-snap/fast-syntax-highlighting/→chroma/-git.ch.zwc
.znap.compile:zcompile:47: can't write zwc file: /home/patrick/.local/share/zsh-snap/fast-syntax-highlighting/→chroma/main-chroma.ch.zwc
.znap.compile:278: parse error near `bindkey'
.znap.compile:zcompile:47: can't read file: /home/patrick/.local/share/zsh-snap/prezto/modules/editor/init.zsh
.znap.compile:3065: parse error near `}'
.znap.compile:zcompile:47: can't read file: /home/patrick/.local/share/zsh-snap/prezto/modules/prompt/external/powerlevel10k/internal/p10k.zsh

.znap.compile:zcompile:47: can't write zwc file: /home/patrick/.local/share/zsh-snap/fast-syntax-highlighting/→chroma/-git.ch.zwc
.znap.compile:zcompile:47: can't write zwc file: /home/patrick/.local/share/zsh-snap/fast-syntax-highlighting/→chroma/main-chroma.ch.zwc
.znap.compile:278: parse error near `bindkey'
.znap.compile:zcompile:47: can't read file: /home/patrick/.local/share/zsh-snap/prezto/modules/editor/init.zsh
.znap.compile:3065: parse error near `}'
.znap.compile:zcompile:47: can't read file: /home/patrick/.local/share/zsh-snap/prezto/modules/prompt/external/powerlevel10k/internal/p10k.zsh

Sorry, but I cannot reproduce any of that. Did you make sure to restart your shell after updating Znap?

Huh. These files got compiled in the background without issues. Maybe because I was fiddling with my config while this was happening?
Thanks for looking at this and sorry for the trouble.


Join by Zoom App doesn't work in VL/HCC Clowdr

See attached screenshot. The "Join By Zoom App" button is disabled, and has been so for a couple of hours.

This is Safari 13.1.2.

Thanks for reporting this - I just fixed it (there was a configuration error in the zoom meeting)

Thanks!


Avoid deprecated Ansible yum task form

Replace yum task form which is now deprecated.

@mbiarnes @mareknovotny Please take a look, thanks!


Missing images under 'Elements' Section

Element 1, 2  & 3 image symbols are missing.
This is a very useful resource thank you.

I fixed this problem in my Turkish C++ fork. And I accidentally posted a comment on an irrelevant issue in this project while closing closing issue. Sorry for the latter.


leptos 0.7 compatible?

is this component compatible with leptos 0.7?

already check pull request


install.sh fails on curl redirect

Curl fails here, because Github added permanent redirect for that URL:
https://github.com/hardwario/bc-raspbian/blob/04b8e58b5a5a3cc05c14e1d7a6a1e09b99798c14/install.sh#L86
Adding -L parameter to curl fixes it.

Thank you


Support combination of revocable / non-revocable credentials and timestamp override

@whalelephant is this ready to merge? Any blockers here?

Do we need any updates to the FFI wrappers? If so could you point me in the right direction on what needs to be fixed?

The wrapper has been implemented and this is ready to be merged. But it is breaking change for anoncreds_verify_presentation interface.

Can we merge this or would another review be good here?


inv how much ram needs during use (profiling)

Motivation
Describe the need or frustration that motivated you to make this suggestion. Please note that the
goal of this project is to provide a general-purpose template project, so please take care when
suggesting features that may be specific to a particular use case.
Suggested Solution
Describe your suggested solution to the need or frustration that you are experiencing.
Alternatives
Describe any alternative solutions or features you considered and why you believe your suggested
solution is preferable.
Additional Information
Provide any additional information that you believe may help us evaluate your suggestion.

This already exists in #12


Leave user on Settings tab after changing Light Mode or Language

Switch Language or Base Currency take quite long time


Ignore padding tokens when using Translation Task + padding='max_length'

🐛 Bug
When using the Translation Task, we need to ensure that we skip padding tokens within the loss calculation. Currently we do not replace the padding with -100, which could be deterimental.

Hi @SeanNaren, I'm looking to contribute in ML-Software projects and have been using pytorch-lightning myself (read: I'm a fan!). Can you tell me where to get started for this issue? I'd like to scope if I can devote some of my time fixing this one.

@SeanNaren would you have some points on how/where to start? :rabbit:

Hi @SeanNaren, @Borda, I think here is what is being asked to be modified.
I referred to this example.
In here, we use TranslationTransformer for the training purpose, and it inherits from Seq2SeqTransformer. If we see this line, we see that the output is loss, logits, however here the loss is calculated taking the padding token into account.
I found the answer about how to solve it, and it is described by the Hugging Face community here.
So, I guess the change to be made is (in simple language), in the same line, i.e here:

Obtain the loss, logits from the common step
Initialize the Cross-Entropy loss with ignore_index = -100.
Make the indexes which are 0 to -100
Calculate the final loss and then perform the steps as usual.

Hope this helps in solving the issue.

@spranjal25 are you fine with @uakarsh suggestion?

@spranjal25 are you fine with @uakarsh suggestion?

Yes, that's very helpful. I think I can get started on it. Will pick this up ASA I get some free time, are we looking at a timeline here though @Borda?

not a special rush :)


nixosTests.knot: test zone transfer over quic

Description of changes
https://github.com/NixOS/nixpkgs/pull/293693#issuecomment-1981080978

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Wondering if we should AXFR over QUIC in addition to plain AXFR.

Wondering if we should AXFR over QUIC in addition to plain AXFR. Would require setting up ns3, which shouldn't be too difficult.

Or we just add the same remote twice, one w/o quic? Dunno if it works.

Worth a try!

@ofborg test knot


mesa is probably having some serious problem

Very rarely long compilation ends up in compiler crashing.
When relaunched it goes on fine. I have only seen this kind of memory corruption compiling mesa woth lto but since we don't this is strange.
Another problem pointing to mesa is that in 45 and 45_1 I was able to freely recompile mesa and switch version amongs 23.3.0 and 24. Now even attempting to rebuild mesa without valgring makes the os break completely.
This needs to be investigated: my ipothesis is that xorg-xwayland needs to be compiled after our custom mesa, and possibly some other package in common among our sessions too.

Very rarely long compilation ends up in compiler crashing.

Do you have a stack trace?

Very rarely long compilation ends up in compiler crashing.

Do you have a stack trace?

No, but I am compiling stuff just to see of it crashes. In such case I will post the printed stacktrace

There we go. Just now.
fs/xfs/xfs_iomap.c:1467:1: internal compiler error: Errore di segmentazione
 1467 | }
      | ^
0x1f84ca6 internal_error(char const*, ...)
        ???:0
0x6f5c1c pop_scope()
        ???:0
0x6f6594 pop_file_scope()
        ???:0
0x7e4b9a c_common_parse_file()
        ???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues> for instructions.
make[4]: *** [scripts/Makefile.build:244: fs/xfs/xfs_iomap.o] Error 1
make[3]: *** [scripts/Makefile.build:485: fs/xfs] Error 2
make[3]: *** Attesa per i processi non terminati....


Support OSX  and Linux on ARM64, Linux on PPC64LE

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

The failures for macOS on ARM64 are known by @analytophile. Merging.


Bring text generation eval closer to parity with compare-mt

It would be nice to improve the features for text evaluation closer to parity with compare-mt. This will require things such as:

[x] Token-level evaluation instead of example-level evaluation
[x] More features
[ ] Pairwise demonstration of sentences/examples that are much better or worse for a particular system
[ ] Pairwise demonstration of n-grams that are much better or worse for a particular system

PR implementing "1." and "2.": https://github.com/neulab/ExplainaBoard/pull/175

The third bullet is covered by https://github.com/neulab/ExplainaBoard/issues/272
The fourth bullet may be interesting, but not planned at the moment.


add code to handle exceptions without traceback

Problem: SATOSA log includes traceback for errors that are sufficiently clear from the error message.
Tracebacks are difficult to handle for line-oriented logs and should be eliminated (but this will take time & effort)
This PR introduces SATOSAErrorNoTraceback and bases SATOSAConfigurationError on it.
The satosa_saml_metadata.py script gets a separate handling.

this branch did not contain the intended code changes


How to reduce confidence threshold for lpr reading?

Is it possible to get a license plate with a lower confidence value if no readings appear? Like I'm fine with an LPR reading with a score of 0.5, etc.

Yes, this is possible. You can pass config=dict(threshold_o=.5) to recognition_api.
https://github.com/marcbelmont/deep-license-plate-recognition/blob/master/plate_recognition.py#L48


Error when dropping builder asset

The @dcl/inspector in main seems to be in a broken state.
When drag and dropping a builder asset in the inspector within VSCode, there is an error:

The asset is downloaded and shows up in the File System tab, but the entity is not created in the Hierarchy and nothing shows up on the Renderer.
Steps to reproduce:

Launch @dcl/inspector locally from main branch as always with npm start
Launch the VSCode extension locally with the .env using this config:

LOCAL_DEV_SERVER=Inspector
LOCAL_DEV_PORT=8000

Go to a new folder and Create Project > Standard project
Once ready, drag and drop an asset from the Asset Packs tab into the Renderer

updating to @dcl/inspector@next on the editor seems to fix the problem 👌


Export Expenses -> ERROR: Array to string conversion

Describe the bug
2022-02-17 22:07:04] production.INFO: Exporting "expense" to /home/argavirt/phpvms7.argavirtual.com/storage//app/import/export_export_expense.csv.csv
[2022-02-17 22:07:04] production.ERROR: Array to string conversion {"userId":1,"exception":"[object] (ErrorException(code: 0): Array to string conversion at /home/argavirt/phpvms7.argavirtual.com/vendor/league/csv/src/Stream.php:315)
Version
7.0.0-dev+220211.78fd83
To Reproduce
Steps to reproduce the behavior:
In admin click in Expenses, in Menu, Export to CSV
Result:
500
Server Error
Expected behavior
Export Expenses to CSV
Screenshots

Additional context
laravel-2022-02-17.log
log`)

Also effects latest dev 7.0.0-dev+220217.648659
Test with php 8.0.15
Previous php versions (like 7.4.xx) was working fine 'cause I have my expenses exported and imported before.


add a way for associate a name to a aprticular value. name to show when hover the graph. by exemple gor enum valurs

done in 58d94344c365209adc1fd3ef72e822f32111ed0f


Update to SenzingAPI 3.8.0

See https://github.com/Senzing/g2-sdk-go/issues/95

Pull requests:

https://github.com/Senzing/g2-sdk-go-base/pull/105
https://github.com/Senzing/g2-sdk-go-base/pull/107


Unable to display home page if running in subfolder and no trailing slash in url

What steps will reproduce the problem?
Access with http://localhost:8080/dev/yii-demo/public (without trailing slash)
What is the expected result?
Display normal homepage
What do you get instead?
Displaying We were unable to find the page .
Additional info

Using yii-demo in subfolder /dev/yii-demo/public
Working properly if accessed with trailing slash

Q
A

Version
dev

PHP version
7.4

Operating system
ubuntu

@roxblnfk would you please check this one?

On my dev server it works good :-| I using Apache 2.4 (he automatically redirect to correct url)
I will make tests and fix this bug

I use php built-in server


Shift + Del not working

Hey there.
I'm using v6.3.6 of this mod on 1.10.2 together with forge <IP_ADDRESS>3.
For some reason it seems like Shift + Del is not working anymore (Only Del works fine).
I tested it completly without any other mods and its not working so its not some kind of imcompatibility.
Would be nice if you could fix that issue because i realy miss a fast way to delete all my cobble.

Any chance to see this fixed in 1.10.2 too? Or is 1.10 support dropped?

https://minecraft.curseforge.com/projects/trashslot/files/2350629


Movielens preprocessing and schema creation and Ranking model examples

This PR addressing both  https://github.com/NVIDIA-Merlin/models/issues/55, https://github.com/NVIDIA-Merlin/models/issues/54 and DLRM model of this https://github.com/NVIDIA-Merlin/models/issues/57 issue.

@marcromeyn I have done 2 recent commits to my branch movilens_pre but they are not seen here in the commits.. Do you have any idea?

closing due to another PR https://github.com/NVIDIA-Merlin/models/pull/190


Retrieve occurance and media licenses in standardized format

It would be useful to be able to retrieve standardized (SPDX) license identifiers through pybif.
GBIF licenses are listed legal code urls, we would either need to port this, assuming there is no way to convert this using the api.

Sounds good. Perhaps if I make a class for citations, then the class can have a method for giving that output

This is relating to the occurrence search, licenses are included in the occurrence download.
GBIF does not interpret the media license so it cannot be implemented until GBIF standardize media licenses.


[Do Not Merge] Remove unneeded mounts from pgbouncer

After switching the image for pgbouncer from bitnami, this removed any no longer needed emptydir mounts.

@molinamelendezj This only works once we switch images

@tybritten i updated this branch to rerun tests


Add the Safe browsing filter

Problem
We need to add a filter for showing/hiding mature content in the search results. We discussed time ago to not include the filter in the filter sidebar as it is a sensitive criterion.
Alternatives
The proposal shows a Safe browsing link that opens a popover showing a description and a toggle filter. The interaction goes as it follows:

On hover, the Safe browsing turns dark-charcoal.
On click, it opens a popover with a description and a toggle.
When enabling the toggle, the results load again without closing the popover.
Clicking outside closes the popover.

https://user-images.githubusercontent.com/895819/146781237-8cad38bd-124c-4962-9520-bd9f8b757b6e.mp4
Additional context
The popover design has a shadow popover style from the WordPress Design Library.

I think we'll need a VToggle component for this as well. We can copy styles from Gutenberg as I think they're similar, just with differenty colors!

I just commented something related to popover interactions on mobile in #541, and now rambling around the idea of moving the filter to the filter sidebar. That will simplify the interaction on desktop and mobile, and we can move it to the end of the list since it is a sensitive criterion.

When a popover is opened using the keyboard, I think the logical thing to focus when it opens is the toggle. That means the context of the description visually above the toggle could be lose.

I am not sure about focusing the toggle first. The word Safe browsing is not completely clear and it makes sense to me to focus the description first. However, and based on the idea dropped above, I wonder how the a11y navigation works among filters.
Navigating per each checkbox sounds demanding if you want to reach the last category or any filter nearby the end. In that case, I wonder how feasible is to implement a navigation per category, and then enter into it to navigate between the filters. In that way, we can show all filters and allow an easiest navigation. Here is a quick draft of what I am saying.

Navigating per each checkbox sounds demanding if you want to reach the last category or any filter nearby the end. In that case, I wonder how feasible is to implement a navigation per category, and then enter into it to navigate between the filters. In that way, we can show all filters and allow an easiest navigation. Here is a quick draft of what I am saying.

You're describing the same "composite" concept that we discussed for the audio results. I think it's okay to use, but I'm not sure, it might be unusual for a form. The WAI-ARIA examples about grouping form items doesn't mention doing anything like that: https://www.w3.org/WAI/tutorials/forms/grouping/
Gutenberg's block settings sidebar also doesn't do anything like this, but it does allow for collapsing groups of settings that could make navigating through all the settings easier.

It does allow for collapsing groups of settings that could make navigating through all the settings easier.

Right, that makes sense. I think that waiting for navigational data will help us to figure out what is more beneficial.
Going back to the feature. What do you think of the idea below?

Rambling around the idea of moving the filter (safe browsing) to the filter sidebar. That will simplify the interaction on desktop and mobile, and we can move it to the end of the list since it is a sensitive criterion.

Rambling around the idea of moving the filter (safe browsing) to the filter sidebar. That will simplify the interaction on desktop and mobile, and we can move it to the end of the list since it is a sensitive criterion.

Makes sense to me I think... but to clarify, did you mean at the start/top of the list? It would definitely make it simpler to have it in one place on both

Looks good with the toggle button if we go with that proposal. Regarding the move to the filter sidebar, as there are many sources, this filter will end well below, so I think it can be even more discreet than the link with the popover.

I have been playing with a new idea and this one looks good.

The filter is a toggle separated from the filters by a divider with a shorter description below the category title. The action is on the left, and label on the right following the logic of all filters.

The Releases file has been updated with this change on desktop and mobile. The toggle component is from the WP Design Library.

can i work on this?

@anton202 Sure, you can work on this. The team is going to be discussion the handling of 'sensitive' content this week and may make some changes to the language of this control.
For now, if you do work on this please use the phrase 'sensitive content' instead of 'mature content' where relevant. Thank you!

@anton202 we should put this behind a TOGGLE_SENSITIVE_CONTENT feature flag while we do further testing of the UI. Could you update your PR to include that at some point? If you have any questions about feature flags @dhruvkb would be a great person to ask.


Remove as many occurences of tokio::Runtime::block_on from the codebase as possible

Currently, our codebase contains numerous instances of tokio::Runtime::block_on calls to call async code from sync code. While this is necessary when interacting with revm, it unnecessarily causes "freezes" when Hardhat is interacting with EDR through napi. This can be avoided by implementing the EDR traits using the #[async_trait] procedural macro.

If my understanding of JavaScript is correct, it only executes one thread at a time. The way it achieves asynchronous work is through polling of promises. This only works as long as promises don't block. Even a callback-based approach will "freeze" if we keep the block_on calls, so it wouldn't alleviate the situation

I’m not familiar with the details of napi, but in theory we could move the
execution of the bulk of the Rust code to another thread from Rust when JS
calls into Rust and return immediately in the JS thread. Then once the Rust
code is done, it could pass back the result with the callback it received
from JS. This way we could avoid blocking the JS thread.
If we moved the bulk of the Rust code to a tokio worker thread with
‘spawn’, that’d also allow removing ‘block_on’ calls, since the bulk of the
Rust code would be executed in the context of a tokio runtime.
On Fri, 25 Aug 2023 at 17:51, Wodann @.***> wrote:

If my understanding of JavaScript is correct, it only executes one thread
at a time. The way it achieves asynchronous work is through polling of
promises. This only works as long as promises don't block. Even a
callback-based approach will "freeze" if we keep the block_on calls, so
it wouldn't alleviate the situation
—
Reply to this email directly, view it on GitHub
https://github.com/NomicFoundation/rethnet/issues/173#issuecomment-1693572727,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABL7KVVLH4U5FGHHHIXQL3DXXDCYZANCNFSM6AAAAAA354425A
.
You are receiving this because you commented.Message ID:
@.***>

We discussed this on a call, but this is already how our napi implementation works.


Can create path mappings with az resource update --set on Windows but not on Linux.

I'm trying to add path mappings, i'm using the "az resource update" command to get to that goal. Only on windows do i get the expected result, which is the creation of additional path mappings.
Both Windows and Linux are on azure-cli 2.0.80.
Command Name
az resource update
az resource update --name I20200128R4-Test-Server/config/web --resource-group I20200128R4 --resource-type Microsoft.Web/sites/config --set 'properties.virtualApplications=[{\"physicalPath\":\"site\\wwwroot\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/\"},{\"physicalPath\":\"site\\wwwroot\\v2\\flow-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/flow\"},{\"physicalPath\":\"site\\wwwroot\\v2\\iris-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/iris\"}]'
Errors:
No errors, but i does not create the path mappings i need when i use the command on Linux.
To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Have a web app;
Use a ubuntu/debian Linux flavor;
Try to create a path mapping with the "az resource update --set" command

Expected Behavior
"virtualApplications": [
  {
    "physicalPath": "site\\wwwroot",
    "preloadEnabled": true,
    "virtualDirectories": null,
    "virtualPath": "/"
  },
  {
    "physicalPath": "site\\wwwroot\\v2\\flow-server",
    "preloadEnabled": false,
    "virtualDirectories": null,
    "virtualPath": "/flow"
  },
  {
    "physicalPath": "site\\wwwroot\\v2\\iris-server",
    "preloadEnabled": false,
    "virtualDirectories": null,
    "virtualPath": "/iris"
  }
]

Environment Summary
Linux-4.4.0-18362-Microsoft-x86_64-with-debian-buster-sid
Python 3.6.5
Shell: bash

azure-cli 2.0.80

Additional Context

add to S168

@sirwarshade Hi, I have some questions to confirm with you, please take a look:

You mean that the WebApp deployed in a Windows environment can correctly set up path mappings for physicalPath and virtualPath, but the path mapping cannot take effect in WebApp deployed in Linux environment, right?
Do you have this problem when you perform the same operation on portal?

@zhoxing-ms , i execute the azure cli command from a Linux device and it fails but if i execute the azure cli from a Windows device it succeeds.
The web app is allways a .NET 4.7 PaaS service. So Windows

@sirwarshade Hi, az resource update is not designed to support updating the webapp config. (I can't actually update path mappings by executing this command on either Windows or Linux)
It only supports the following functions:

Resources - Update (doc link)
Resources - Update By Id (doc link)

If you want to update the configuration of webapp, the following command should be executed:
az webapp config set --name {resource-name} -g {resource-group} --generic-configurations "{\"virtualApplications\":[{\"physicalPath\":\"site\\wwwroot\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/\"},{\"physicalPath\":\"site\\wwwroot\\v2\\flow-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/flow\"},{\"physicalPath\":\"site\\wwwroot\\v2\\iris-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/iris\"}]}"
Because only this command implements the function of Web Apps - Create Or Update Configuration (doc link)

@sirwarshade You can have a try. If you have any other questions, please let us know.

By the way, there is another unreasonable phenomenon: when the error message contains special characters, it will print a lot of less related error logs more than when there are no special characters in the error message.
The reason for this phenomenon is related to the bug of msrestazure-for-python: https://github.com/Azure/msrestazure-for-python/issues/143. When calling the logging library to print the log, we encountered an exception raised by the __str__ method of msrestazure, which triggered the logic of printing all call stacks. This problem needs to wait for the msrestazure-for-python to be fixed.

Because there is no reply to this question for a long time, I will close it temporarily. If you have any questions, please feel free to let us know.

For me az webapp config set --name {resource-name} -g {resource-group} --generic-configurations "{\"virtualApplications\":[{\"physicalPath\":\"site\\wwwroot\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/\"},{\"physicalPath\":\"site\\wwwroot\\v2\\flow-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/flow\"},{\"physicalPath\":\"site\\wwwroot\\v2\\iris-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/iris\"}]}" this did not work. It gave a bunch of error's
az webapp config set --name testestest1312312325435 -g TeamAzure --generic-configurations '"{\"virtualApplications\":[{\"physicalPath\":\"site\\wwwroot\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/\"},{\"physicalPath\":\"site\\wwwroot\\v2\\flow-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/flow\"},{\"physicalPath\":\"site\\wwwroot\\v2\\iris-server\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/iris\"}]}"' This on the other-hand did work for me. So thank you for at-least giving me a good lead.

@sirwarshade Check out this doc regarding quoting issues you're having. I'm looking at the exact same thing. Doc is going into detail and might give you insights how to handle quotes based on the type of your environment:
https://docs.microsoft.com/en-us/cli/azure/use-cli-effectively?view=azure-cli-latest#quoting-issues

There are various workarounds for this as seen, however these commands only allow you to update the complete list of virtual path mappings for the app service, I cannot just add a single (or multiple) new mapping to the existing list. Is there a command to achieve this?

I just want to comment that I find it very concerning that even Microsoft has put no effort into validating the very content that they publish publicly considering the number of consumers leveraging thier platform.
I refered to Microsoft documentation regarding how to add App Service Path mappings, and why not its their baby, but I couldn't get it to work correctly.  I tried both the Azure cli commands resource and webApp, but Microsoft docuemntation was not correct or didn't have any real examples, so I took the time to delve into this because I too faced the same issues.
I started, as many probably did, with the Configure an App Service app-Map a URL path to a directory that instructs how to add a virtual path, and I too had the very same problems.  Feedback from many regarding this open issue, 11978, spoke of escaping the quotes and even referenced the Microsoft documenmt Tips for using the Azure CLI successfully and yet this document, at least for this purpose, did not ring accuratly.
The document, Configure an App Service app-Map a URL path to a directory, had it wrong in two ways.  First the Json was improperly formated, and the quotes were wrong.  I break down each issue and show how to correct the issue.  Note, all of the commands and Json were tested in Azure Cloudshell 2.47.0.
Let start with the formatting issue since if you correct this issue you'll then be able to see the correct way to use quotes in the Json, at least for the following Azure cli commands:

az resource update
az webapp config

The example Json provided is as listed below.
[
{
"physicalPath"':' "site\wwwroot\public",
"preloadEnabled"':' false,
"virtualDirectories"':' null,
"virtualPath"':' "/"
},
{
"physicalPath"':' "site\wwwroot\app2",
"preloadEnabled"':' false,
"virtualDirectories"':' null,
"virtualPath"':' "/app2"
}
]
When you create an Azure App Service you already be default have a application "/" mapped to a directory "site\wwwroot".  The above Json is instructing that ANOTHER directory "site\wwwroot\public" be mapped to the application "/" which throws an exception because the virtual path needs to be unique, because we already have a mapped application "/" to directory "site\wwwroot".  This Json will never work unless we change the virtual path, lets make it "/Public".
[
{
"physicalPath"':' "site\wwwroot\public",
"preloadEnabled"':' false,
"virtualDirectories"':' null,
"virtualPath"':' "/Public"
},
{
"physicalPath"':' "site\wwwroot\app2",
"preloadEnabled"':' false,
"virtualDirectories"':' null,
"virtualPath"':' "/app2"
}
]
Now we attempt to use the above Json with the below Azure cli command.
We now get a whole new exception:
InvalidArgumentValueError: Failed to parse string as JSON:
{
Error detail: Expecting property name enclosed in double quotes
Well, this tells us everything.  I then noticed that within the Json are some random single quotes, ', which were breaking the Json format.
[
{
"physicalPath": "site\wwwroot\public",
"preloadEnabled": false,
"virtualDirectories": null,
"virtualPath": "/Public"
},
{
"physicalPath": "site\wwwroot\app2",
"preloadEnabled": false,
"virtualDirectories": null,
"virtualPath": "/app2"
}
]
I now execute the below Azure cli resource command and it successfully created the mapped directories.
az resource update --resource-group someResourceGroup --resource-type Microsoft.Web/sites/config --name someApp/config/web --set properties.virtualApplications="[{"physicalPath": "site\wwwroot\public","preloadEnabled": false,"virtualDirectories": null,"virtualPath": "/Public"},{"physicalPath": "site\wwwroot\app2","preloadEnabled": false,"virtualDirectories": null,"virtualPath": "/app2"}]"
So I wanted to apply the Json to the Azure cli webApp command:
az webapp config set --name someApp -g someResourceGroup --generic-configurations "{"virtualApplications": [{"virtualPath": "/","physicalPath": "site\wwwroot","preloadEnabled": true,"virtualDirectories": [{"physicalPath": "site\wwwroot\public","preloadEnabled": false,"virtualDirectories": null,"virtualPath": "/Public"},{"physicalPath": "site\wwwroot\app2","preloadEnabled": false,"virtualDirectories": null,"virtualPath": "/app2"}]}]}"
I am back to the previous exception:
InvalidArgumentValueError: Failed to parse string as JSON:
{
Error detail: Expecting property name enclosed in double quotes
I attempted using single quotes without success.  I then moved to double double quotes, "", and that did the trick.
az webapp config set --name someApp -g someResourceGroup --generic-configurations "{""virtualApplications"": [{""virtualPath"": ""/"",""physicalPath"": ""site\wwwroot"",""preloadEnabled"": true,""virtualDirectories"": [{""physicalPath"": ""site\wwwroot\public"",""preloadEnabled"": false,""virtualDirectories"": null,""virtualPath"": ""/Public""},{""physicalPath"": ""site\wwwroot\app2"",""preloadEnabled"": false,""virtualDirectories"": null,""virtualPath"": ""/app2""}]}]}"
So, for some reason the Azure cli resource & webApp are not consistent how it handles the Json quotes.  The Microsoft Azure cli team should work together to figure out why there is a difference with how quotes are managed between the two command groups.  Please feel free to validate my findings.
I do want to mention that I changed the structure of the Json because I needed to map another mapped application as displayed below.
{
""virtualApplications"": [
{
""virtualPath"": ""/"",
""physicalPath"": ""site\wwwroot"",
""preloadEnabled"": true,
""virtualDirectories"": [
{
""virtualPath"": ""/Public"",
""physicalPath"": ""site\wwwroot\public""
}
]
},
{
""virtualPath"": ""/app2"",
""physicalPath"": ""site\wwwroot\app2"",
""preloadEnabled"": true
}
]
}

My 2 cents here, I have been able to make it work in bash creating a json file and using it with azure client:
echo "{\"virtualApplications\":[{\"physicalPath\":\"site\\\\wwwroot\",\"preloadEnabled\":false,\"virtualDirectories\":null,\"virtualPath\":\"/\"},{\"physicalPath\":\"site\\\\wwwroot\\\\someApp\",\"preloadEnabled\": false,\"virtualDirectories\": null,\"virtualPath\": \"/blueprints\"}]}" > json.txt
az webapp config set --resource-group someResourceGroup  --name someApp --generic-configurations<EMAIL_ADDRESS>