Getting cannot parse the request exceptions when trying to create an NSG

I have been trying to create an NSG with the API, but for some reason, I am getting the CloudError: cannot parse the request.
I have a function to read and display existing NSGs in the subscription which works fine so I know it's not an authentication issue.
My API user has the Network Contributor role, but I also tested with it as owner so I don't think it's a permissions issue.
First i set up some security rules and append them to a list:
def security_rule_creation(security_list, name, source_subnet, destination_subnet, protocol,
                           direction, ports, action, priority):
    security_rule = SecurityRule(
        protocol=protocol,
        source_address_prefix=source_subnet,
        destination_address_prefix=destination_subnet, access=action,
        direction=direction, id=name,
        destination_port_range=ports,
        source_port_range="*",
        priority=priority)
    security_list.append(security_rule)
    return

The subnets used whilst i test are just CIDR notated strings like "<IP_ADDRESS>/24".
A security rule example looks like
    security_rule_creation(security_list, "Allow-subnet-Out", source_subnet,
                          destination_subnet, "*", "Outbound", "*", "Allow", 101)

Then I try to create the NSG:
network_security_group_create(network_client, location, rg_name, sec_gr_name, security_list)

def network_security_group_create(client, location, rg, name, rules):

    nsg = NetworkSecurityGroup(
        location=location,
        security_rules=rules,
        )

    try:
        nsg_result = client.network_security_groups.create_or_update(
            rg,
            name,
            nsg
        )
        nsg_result.wait()
   except CloudError as ce:
        print "Request Body: {}\n".format(ce.response.request.body)
        print "Request Headers: {}\n".format(ce.response.request.headers)
        print "Request URL: {}\n".format(ce.response.request.url)
        print
        print "Headers {}".format(ce.response.headers)
        print "Reason {}".format(ce.response.reason)
        print "URL {}".format(ce.response.url)
        print "text {}".format(ce.response.text)
        print "CloudError: {}".format(ce.error)

    return

I'm currently doing a try except to get a better idea of the headers which seem to look ok.
The Request body using example IPs looks like this:
Request Body: {"properties": {"securityRules": [{
    "properties": {
        "access": "Allow",
        "priority": 101,
        "direction": "Outbound",
        "protocol": "*",
        "sourceAddressPrefix": "<IP_ADDRESS>/24",
        "destinationPortRange": "*",
        "destinationAddressPrefix": "<IP_ADDRESS>/16",
        "sourcePortRange": "*"
}, "id": "Allow-subnet-Out"}]}, "location": "someplace"}

The Request URL:
Request URL: https://management.azure.com/subscriptions/111111-1111-1111-1111-111111111111/resourceGroups/RGNAME/providers/Microsoft.Network/networkSecurityGroups/NSGName?api-version=2016-06-01

Am I doing it wrong?

Hi @piter50
I tried exactly your parameters, and I'm not able to reproduce it (on azure-mgmt-network 0.30.0rc6). Could you confirm which version of azure-mgmt-network + msrest + msrestazure you use?
Also, CloudError has a message attribute, could you output the content of it?
FYI @annatisch

The message attribute is also
Message Cannot parse the request.
azure-mgmt-network (0.30.0rc6)
msrest (0.4.3)
msrestazure (0.4.2)

I copied/pasted your code and called it this way:
        security_list=[]
        source_subnet = '<IP_ADDRESS>/24'
        destination_subnet = '<IP_ADDRESS>/16'
        security_rule_creation(security_list, "Allow-subnet-Out", source_subnet,
                               destination_subnet, "*", "Outbound", "*", "Allow", 101)
        network_security_group_create(
            self.network_client,
            'westus',
            self.group_name, "NSGName", security_list)

and I am still unable to reproduce it :(

The error you got is a denied from the RestAPI, so this is unlikely a Python problem, but it does not mean I can't help you to figure out the problem :)
Could check here:
https://azure.microsoft.com/documentation/articles/virtual-networks-nsg/
If you follow all instructions (naming convention, conflict, etc.). You might have just a bad error message from the RestAPI for a simple problem.

The NSG name is unique per the subscription (which is a new Subscription), no funny characters.  I even tested changing the name of the NSG and security rules to short all caps names and still the error persists.  The API access as mentioned is Network Contributor.  location is northeurope.

I figured it out. In my create security rule function,  I was doing id=name, but should have been doing name=name.  Once I amended that it created right away.


Consider changing the middleware api

This is a suggestion for v2
query<C extends UserDatabaseClient, R, T extends unknown[]>(qry: (dbclient: C, ...args: T) => Promise<R>, ...args: T): Promise<R>;

in middleware should in my opinion be like
  query<R>(qry: (dbclient: UserDatabaseClient) => Promise<R>): Promise<R>;

so as to be able to write code like
  const u = await ctx.query(
      (dbClient: PrismaClient ) => {
        return dbClient.dbos_test_user.findFirst({
          where: {
            username: user,
          },
        });
      }
    );

instead of
    const u = await ctx.query(
      (dbClient: PrismaClient, uname: string) => {
        return dbClient.dbos_test_user.findFirst({
          where: {
            username: uname,
          },
        });
      }, user as string
  );

This can be closed since it is partially included in https://github.com/dbos-inc/dbos-transact/pull/461


combine models and domain

I'm creating a new repository in domain and a new model in model. Why should they be in different modules?

rg -l "ly.david.musicsearch.core.models" | xargs -I {} sed -i '' -e "s/ly.david.musicsearch.core.models/ly.david.musicsearch.shared.domain/g" {}


apply command with kubectl integration

Create a wrapper command to validate service unit config, generate manifests, and apply the manifests.
Option1: use os.exec to call kubectl binary
Option2: use go-client to create those kubernetes objects

Closed since this may not be necessary


gauge change position when changing needle value

Important: issues that don't use this template will be ignored/closed.

If you create a new gauge widget it shows up nice and tidy in the middle of the screen.
As soon as you change the value of the needle the complete widget is moved to to left upper
border of the screen.
A clear and concise description of what the bug is.
To Reproduce
scr = lv_disp_get_scr_act(NULL);

static lv_color_t needle_colors[1];
needle_colors[0] = LV_COLOR_BLUE;

mgauge = lv_gauge_create(scr,NULL);

lv_gauge_set_needle_count(mgauge, 1, needle_colors);
lv_obj_set_size(mgauge, 220,220);
lv_obj_align(mgauge, NULL, LV_ALIGN_CENTER, 0, 20);

That works okay,
lv_gauge_set_value(mgauge, 0, 60.0);
But now it jumps.
Expected behavior
Of course only the needle should change.
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
I used the latest software version from git

Is this a custom driver? I see artifacts of the previous gauge which leads me to think there's something up with the way your driver places the image on the framebuffer.

The artefact are the problem, because it means that the gauge is drawn on the wrong place and not in the middle. When it is created it is build correct at the middle, but when you move the needle
it needs to be refreshed and it is drawn again and this did not work.
Perhaps a little bit explanation. :)
I wrote my own widget for my own hardware (Gecko+320x240TFT with ILI9341) and run in the problem. Of course I thought that the reason is my own widget. So I wrote an emulation layer with Qt. lvgl is now running on my PC inside a window with the same problem.
I did this because it is quite easy to debug on so powerful hardware. (quite cool!)
I found this must be some problem around lv_core/lv_refr.c  with lv_inv_area because the value of scr_area are strange. So later at line 350 of lv_ref.c
       vdb->area.x1 = area_p->x1;
        vdb->area.x2 = area_p->x2;

it becomes a wrong value and shift the widget.
For testing purpose I switched of my new widget and use the lv_gauge inside of lvgl and found the same behavier. For this reason I think I am not guilty. :-)
Unfortunatly it is hard to understand the source if you are not the writer, because there are only very few comments and many pointers.

Can you try it with the PC simulator? That's our test bench for seeing whether it's a library issue or not.

It works well in the simulator for me:

Do you use the latest master branch?

I dont think I can try it with the simulator because I am using Centos as operating system.
I did a git pull 1-2weeks ago.
It is strange that it is working for you. I will do some more investigation on my side...

@gaugetester Could you show us your flush_cb implementation? I'm suspicious the problem is there.

It's also strange to me that the gauge needle has no antialiasing in your screenshot. Have you changed any settings relating to that?

My flash cl:
//for qt
void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p)
{
UNUSED(color_p);
MyLCD.x1 = area->x1;
MyLCD.x2 = area->x2;
MyLCD.y1 = area->y1;
MyLCD.y2 = area->y2;
MyLCD.disp = disp;
MyLCD.freshdata = true;
return;
}
void interface_ready(void)
{
MyLCD.freshdata = false;
lv_disp_flush_ready(MyLCD.disp);
}
And this is for the microcontroller:
void hmi_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p)
{
unsigned short x, y;
//Ausgabefenster setzen
setAddrWindow(area->x1,area->y1,area->x2,area->y2);
for(y = area->y1; y <= area->y2; y++)
{
for(x = area->x1; x <= area->x2; x++)
{
pushColor(ili9341_Color233(   lcdram[x][y].byte )  );
}
}
lv_disp_flush_ready(disp);
}
But I dont think there is a problem with flush_cb because it is working first time and I can see that lvgl is changing the value for x1 and y1. If the problem is in my code I expect a problem with pointer that destroy something. But in this case I will need some time to find.

Where does lcdram come from?
I see that you save disp in MyLCD.disp = disp; but you should save color_p instead.
What happens if you create a button like this and try to drag it with your finger?
    lv_obj_t * btn = lv_btn_create(lv_scr_act(), NULL);
    lv_obj_set_drag(btn, true);
    lv_label_create(btn, NULL);

I close this issue because there was no activity here for a while.
If you have remarks about this topic feel free to comment here and reopen the issue.


Add support for the Parabolic Stop and Reverse indicator (PSAR)

Hi,
I wanted to try and implement this indicator. I have based the logic on the interpretation from the Tulip Inidicators library.
Let me know your thoughts. Currently it doesn't seem that this indicator exists here so I figure its better than not having it.

@lteacher Sure I'll verify and merge. Quick question, where did you take the test inputs and expected out?

Yeah sorry I was planning on adding a comment on that. Actually the tests are not really good or accurate. I had a lot of trouble verifying the results.
Initially I used the results from the other library but the results are slightly out as that doesn't return the first calculation which means that it does't increment the acceleration either till next extreme point.
Anyways maybe could use a bit more testing and verification to ensure the values can be verified as the output is used in the expect so obviously thats not really a valid test at all as its not even verified against any other calculation.

@lteacher Thank you for contributing to this repository.
The tests were not consistent with what is in http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:parabolic_sar, but it is close and also stock charts implementation does not return equal number of outputs. I tried this in chart shown below and it looked good, so merged it we can revisit it later and update the tests if necessary.

Ok no worries. Just a note at your image, looks good but noticed that the max is usually .2  but you have it on .02 which is the same as the step increment so it isn't showing the decay one would usually expect.

yeah noticed after taking the screenshot.


[NXdataView] Fix issues with non unique axis labels

When two axes use the same @long_name attribute, we got  an error because we relied on these names to be unique.
This PR fixes this bug and adds an assertion in NumpyAxesSelector.setAxisNames to enforce unicity of names.
It also fixes the bug of the signal name being used by mistake as ylabel instead of the Y axis name , and adds support of a @long_name attribute on the signal dataset.

LGTM


Luis - Publish to Azure Subscription (Not starter key)

Describe the bug
"Luis publish version" does not give option to include the subscription key for an Azure Luis instance and defaults to the starter key. This requires the user to manually go into the portal to publish to the correct service.
Context
Luis Version 2.0.11-2.5.12

I think the current behavior is correct.
luis publish version --appId  --versionId  --region  --staging --authoringKey
What I think you are complaining about is that you can't define a endpointKey for a region from the LUIS command line tool.  That is true, and it's because the LUIS team doesn't have that defined in their API.
There are only 2 ways to get your endpointKey set up right

you have to go into the portal.

OR

You mark your application as public, in which case a LUIS subscriptionKey for the same region as the endpoint can be used as the endpointKey.

Until they give us an API, I have been using the latter approach.  msbot clone actually sets the LUIS app as public for this very reason.

Dupe of #205


Incorrect retrieval of the wmt20 zh-en test set

Hello,
I am a new user of sacrebleu.  Thank you for maintaining this library.
I noticed that the following commands both return the English text, but I believe src should return the Chinese text?
sacrebleu -t wmt20 -l zh-en --echo src
sacrebleu -t wmt20 -l zh-en --echo ref
I found a copy of the Chinese source text from this webpage:
https://www.statmt.org/wmt20/metrics-task.html#testset
sacrebleu -t wmt20 -l en-zh
does not seem to have this problem as its src and ref are the corresponding English and Chinese texts.

I think you may have an old version. What is the output of sacrebleu -V?

It's 2.0.0

Likely there was an early bug and you downloaded it then. Remove ~/.sacrebleu/wmt20 and try again and see if that helps.

I tried and could not reproduce it either.

@wujameszj the workaround I suggested should fix this, can you try it out and report back?

Yes it works!  I removed everything in the directory and now it returns the Chinese version.  Thank you!


node-sqlite3 failng on iojs

Today I tried using IOJS. I spoke to few folks at #iojs today in irc. Someone told me  to inform you that NaN(https://github.com/rvagg/nan) 1.6 supports iojs now.
I got the error below after executing it:
module.js:324
    throw err;
          ^
Error: Cannot find module '/Users/user01/chartservice/node_modules/sqlite3/lib/binding/node-v42-darwin-x64/node_sqlite3.node'

Got this issue as well, its downloading the wrong binding binary or looking in the wrong place for it.

We'll get this working soon. At least these things need to be done:

Upgrade to latest nan 1.5.x, fix any compiler errors
Package binaries, new tag of node-sqlite3
Binaries will not be installable with iojs until https://github.com/iojs/io.js/issues/402 is fixed because modules like node-sqlite3 that use node-pre-gyp to package binaries require https access to AWS S3 (refs https://github.com/iojs/io.js/issues/456 and https://github.com/mapbox/node-pre-gyp/issues/135).

Thanks a lot @springmeyer ! :)

Node-webkit has been renamed to nw.js and its newest versions are based on io.js as well.
The more the merrier, but Windows XP is no longer supported because of iojs/io.js#374.

@Mithgol - thanks for the details. Sounds like that will need some time to resolve itself. I propose I make a new tag (v3.0.4) of node-sqlite3 today that supports node v0.10.x, v0.11.14, and iojs v1.0.2 and worry about webkit/nw.js support in the coming weeks?

Okay, though I have a couple of thoughts about it:

Currently npm says that version 3.0.4 is already published (2 months ago), so the tag has a reason to be somewhat greater (to indicate that it contains today's changes).

Yet another (3.0.5?…) intermediate version of the package (without today's changes) might also be somewhat helpful for people that needed just the ForceSet() changes from #369 (these changes might fix #382 and similar issues) but without iojs-related stuff.

What's the work around? Where's the url to the node v0.11 bins so I can just copy them into the directory myself?

You will have to change the engines selector in the package.json as well. It won't allow you to run sqlite3 on 1.0.x otherwise.

Is there a point in having this engine restriction ? Seems more trouble than it's worth, and if nodejs ever comes out of 1.0 in an incompatible way to iojs, it will not even protect anything...
After removing the engine restriction entirely, it seems the master branch of node-sqlite3 happily compiles for iojs

npm i --force mapbox/node-sqlite3

<EMAIL_ADDRESS>installs and works out of the box with iojs-0.1.2
This issue can be closed.

Okay, closed.

not working with iojs-2.0.0

@EgoAleSum Please create an issue for that. This issue was about supporting io.js 1.X series; 2.X sports an updated V8 engine and breaks binary support, thus needs a new nan (1.8.4) and / or a variety of modifications throughout the codebase.


Reverting to nvm default version Now using node v10.15.3 (npm v6.9.0) repeatedly

Operating system and version:
Ubuntu 18.04.2

nvm debug output:

nvm --version: v0.34.0
$SHELL: /usr/bin/zsh
$SHLVL: 1
$HOME: /home/nate
$NVM_DIR: '$HOME/.nvm'
$PATH: $NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:$NVM_DIR/versions/node/v10.15.3/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/stable/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v11.12.0/bin:$NVM_DIR/versions/node/v11.12.0/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:$NVM_DIR/versions/node/v10.15.3/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn:/usr/local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:/usr/bin/yarn::$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$PREFIX: ''
$NPM_CONFIG_PREFIX: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'zsh 5.4.2 (x86_64-ubuntu-linux-gnu)'
uname -a: 'Linux 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux'
OS version: Ubuntu 18.04.2 LTS
curl: /usr/bin/curl, curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
wget: /usr/bin/wget, GNU Wget 1.19.4 built on linux-gnu.
git: /usr/bin/git, git version 2.17.1
grep: grep: aliased to grep  --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn} (grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}), grep (GNU grep) 3.1
awk: /usr/bin/awk, GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2)
sed: /bin/sed, sed (GNU sed) 4.4
cut: /usr/bin/cut, cut (GNU coreutils) 8.28
basename: /usr/bin/basename, basename (GNU coreutils) 8.28
rm: /bin/rm, rm (GNU coreutils) 8.28
mkdir: /bin/mkdir, mkdir (GNU coreutils) 8.28
xargs: /usr/bin/xargs, xargs (GNU findutils) 4.7.0-git
nvm current:
which node: node: aliased to nodejs
which iojs: iojs not found
which npm: $NVM_DIR/versions/node/v10.15.3/bin/npm
npm config get prefix: $NVM_DIR/versions/node/v10.15.3
npm root -g: $NVM_DIR/versions/node/v10.15.3/lib/node_modules

nvm ls output:

  iojs-v3.3.1
     v10.15.3
       system
          default -> stable (-> v10.15.3)
          iojs -> iojs-v3.3 (-> iojs-v3.3.1) (default)
          node -> stable (-> v10.15.3) (default)
          stable -> 10.15 (-> v10.15.3) (default)
          unstable -> N/A (default)
          lts/* -> lts/dubnium (-> v10.15.3)
          lts/argon -> v4.9.1 (-> N/A)
          lts/boron -> v6.17.0 (-> N/A)
          lts/carbon -> v8.15.1 (-> N/A)
          lts/dubnium -> v10.15.3

How did you install nvm? (e.g. install script in readme, Homebrew):
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

What steps did you perform?
Ran the above and removed export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm from ~/bashrc and placed it into ~/.zshrc

What happened?
When running some commands I get the following over and over again. I've tried setting defaults but, that didn't seem to help.
➜  ~ cd ..
Reverting to nvm default version
Now using node v10.15.3 (npm v6.9.0)
➜  /home

What did you expect to happen?
I expect not to the see the the below message over and over again:
Reverting to nvm default version
Now using node v10.15.3 (npm v6.9.0)

Is there anything in any of your profile files (.bashrc, .bash_profile, .zshrc, etc) that modifies the PATH?

In .zshrc I have the following:

# If you come from bash you might have to change your $PATH.
export PATH="$HOME/bin:/usr/local/bin:/usr/bin/yarn:`yarn global bin`:$PATH"

# nmv
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
#[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

# Linuxbrew
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

# yarn work around
alias node=nodejs

That text, "Reverting to nvm default version", does not come from nvm. Perhaps you've added a script that takes over cd and outputs that? There's a few such scripts in the readme, but none of them are actually part of nvm itself.

Thanks for the reply!  I'm looking into that. In the meantime, I tried removing nvm and starting fresh. I do see there is an issue with install and cd
/home/nate/.nvm/nvm.sh: line 25: cd: -q: invalid option
cd: usage: cd [-L|[-P [-e]] [-@]] [dir]

➜  ~ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13226  100 13226    0     0  56042      0 --:--:-- --:--:-- --:--:-- 56042
=> Downloading nvm from git to '/home/nate/.nvm'
=> Cloning into '/home/nate/.nvm'...
remote: Enumerating objects: 278, done.
remote: Counting objects: 100% (278/278), done.
remote: Compressing objects: 100% (249/249), done.
remote: Total 278 (delta 33), reused 93 (delta 16), pack-reused 0
Receiving objects: 100% (278/278), 142.36 KiB | 3.31 MiB/s, done.
Resolving deltas: 100% (33/33), done.
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/nate/.bashrc
=> Appending bash_completion source string to /home/nate/.bashrc
/home/nate/.nvm/nvm.sh: line 25: cd: -q: invalid option
cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Also, after removal I get the following now:
Reverting to nvm default version
N/A: version "default -> N/A" is not yet installed.

You need to run "nvm install default" to install it before using it.

You should try to remove your override to cd - check your zshrc

Thanks again for you help!
I don't have a manual override that I know of. Nothing in .zshrc that I can see, anyway. I'm using zsh and oh-my-zsh. I tried removing the few oh-my-zsh plugins I had installed but, nothing changed.
I do have a bunch of aliases that I'm not sure where they are coming from. I checked .profile, .bashrc et al. (both in home and /etc too) and .zshrc (which I do use.) I'm currently trying to Google search a way to connect an alias to its file but, not having much luck.
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'

Try type cd

➜  ~ type cd
cd is a shell builtin

hmm, that’s very confusing. The cd -q error seems like something i can address, but that “reverting” output can’t be triggered by nvm.

I do see that nvm debug says that node is aliased to nodejs; that should be removed ASAP. Only ubuntu’s broken repository calls it nodejs.

I also see multiple copies of nvm’s dirs in your PATH (i also don’t know what linuxbrew is, but homebrew often causes issues with node and nvm).

I removed linuxbrew. Going to install nvm again and see how it takes.

I removed yarn as well. The PATH looks more reasonable. So far I'm not getting the cd error any longer and didn't get any errors during nvm install.
I'll include nvm debug and 'nvm ls' so you can see the difference.
What a weird error in that it all things seemed to point nvm itself.
Anyway, I'll see how I manage from here, thanks again for the help!
➜  ~ nvm debug
nvm --version: v0.34.0
$SHELL: /usr/bin/zsh
$SHLVL: 1
$HOME: /home/nate
$NVM_DIR: '$HOME/.nvm'
$PATH: $NVM_DIR/versions/node/v10.15.3/bin:$HOME/bin:/usr/local/bin:$HOME/bin:/usr/local/bin:$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$PREFIX: ''
$NPM_CONFIG_PREFIX: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'zsh 5.4.2 (x86_64-ubuntu-linux-gnu)'
uname -a: 'Linux 4.18.0-16-generic #17~18.04.1-Ubuntu SMP Tue Feb 12 13:35:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux'
OS version: Ubuntu 18.04.2 LTS
curl: /usr/bin/curl, curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
wget: /usr/bin/wget, GNU Wget 1.19.4 built on linux-gnu.
git: /usr/bin/git, git version 2.17.1
grep: grep: aliased to grep  --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn} (grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}), grep (GNU grep) 3.1
awk: /usr/bin/awk, GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2)
sed: /bin/sed, sed (GNU sed) 4.4
cut: /usr/bin/cut, cut (GNU coreutils) 8.28
basename: /usr/bin/basename, basename (GNU coreutils) 8.28
rm: /bin/rm, rm (GNU coreutils) 8.28
mkdir: /bin/mkdir, mkdir (GNU coreutils) 8.28
xargs: /usr/bin/xargs, xargs (GNU findutils) 4.7.0-git
nvm current: v10.15.3
which node: $NVM_DIR/versions/node/v10.15.3/bin/node
which iojs: iojs not found
which npm: $NVM_DIR/versions/node/v10.15.3/bin/npm
npm config get prefix: $NVM_DIR/versions/node/v10.15.3
npm root -g: $NVM_DIR/versions/node/v10.15.3/lib/node_modules

➜  ~ nvm ls
->     v10.15.3
default -> v10.15.3
node -> stable (-> v10.15.3) (default)
stable -> 10.15 (-> v10.15.3) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> v10.15.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.0 (-> N/A)
lts/carbon -> v8.15.1 (-> N/A)
lts/dubnium -> v10.15.3


[common] Make call to chflags platform-conditional on Darwin

The call to 'chflags' causes linux execution of the source compat suite to fail. This fixes it.

@swift-ci please test


<EMAIL_ADDRESS>is outdated

Please consider adding<EMAIL_ADDRESS>to peerDependencies. Current 1.1.0 is outdated.
npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/gatsby-plugin-image
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/gatsby-source-graphcms
npm ERR!   gatsby-source-graphcms@"*" from the root project

@axelra82 happy to accept a PR 😅

Fixed it on #206!
As soon as we publish it as stable, I'll let you know 👊🏻


More Emoji Styles

Could you add a few more faces? The smiling one is a little scary. Thank you!

We add a new emoji category.


Associate guest checkout with account if exists

I want to merge this change because it fixes associating guest checkout emails with an account if it exists.
It fixes #12443

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[x ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

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

According to @fowczarek comment you can check contributing guide, especially: coding style

Thanks for contributing to Saleor @FremahA 🎉

BTW we opened an issue about providing the same logic in other mutation https://github.com/saleor/saleor/issues/12859.

BTW we opened an issue about providing the same logic in other mutation #12859.

Great. Kindly assign me to the new issue.


Improve site using Lighthouse Report

I have taken the liberty to audit our page using Chromium's Lighthouse audit suite and the result is somewhat lacking:

Here is the full report.
We should incorporate as many recommendations as possible.

A subsection (SEO / Meta tags) is also mentioned in #60.


Icons dissapeard when moving

Hi, I love this app, a must microsoft should include as feature for sure, but I'm having some issues making it work properly. Don't know what happend, but suddenly, when I move a tile it dissapears and I have to unpin and pin again to make it. The same when resizing. It fixes by itself but it's quite random.
Any idea?
win10x64march2016

Hey, thanks for that, I'm glad it's of use :)
The problem you're describing unfortunately sounds like an issue with how the start menu operates. I can't actually reproduce your problem, moving icons around manually seems to retain all the icon information for me. This program effectively just creates an XML file for the start menu to interpret.
The instructions here might help (I haven't tried them and I can't really verify their validity) if it's a problem with the tile database, but I'm afraid beyond that I'm not sure I have any other information, that functionality is handled by Windows.
https://community.spiceworks.com/how_to/125068-how-to-fix-your-windows-10-start-menu-reset-tile-database


Storage Permission on Android 13+

storage permission request no working on Android 13

Sorry for the inconvenience. We have fixed this issue in our current development and will notify you once it's released.


Email validation is nullified when email address begins with a double quote

Our platform uses validator.js as our email validator and I have noticed that when I add a double quote in front of an email address with the following forbidden characters ()[]",:;<>@, that the validation becomes nullified.
For example, when I add the following email address wrong()[]",:;<>@@gmail.com then I receive an error. But when I add a double quote in front of the email address, as such "wrong()[]",:;<>@@gmail.com, then the validation is nullified.

Fixed by #902.


Changed applying status

Due to https://github.com/MicrosoftDocs/windows-driver-docs/issues/1753 and https://social.technet.microsoft.com/Forums/en-US/7b1545e2-7cfd-463a-9a3e-cceca35a8b70/linked-article-wrong?forum=win10itprosecurity this article seems to apply not only to Windows 10 mobile but for other variants of Windows 10, too.

Is there anything new on this case?

Can I help you somehow on this case?

Hi @Van-Fouran,
This topic has specific information that makes it applicable only to Windows 10 Mobile.
I added the "applies to" Windows 10 Mobile tag in  the topic at the request of one of the Windows 10 Mobile developers.
I added this text in the following commit on 5/2/2017:
https://github.com/MicrosoftDocs/windows-driver-docs/commit/b0844b5abca78eec9aef64cdcb960bcef7a7a6cd#diff-f85a392184672414e55e29e2e2996b6e
If you check the illustration and the topic text in the "OEM requirements and considerations"
section you'll notice several references that indicate that it is focused on Windows 10 Mobile devices.
I appreciate you submitting a pull request, but am unable to accept it. I would encourage you to continue to with the engage on community on the TechNet Forum site in seeking clarification on your questions on secure boot.
Thanks!

Thanks for the feedback.


Pivot graph of expressions

The equivalent expressions should have one URI in the pivot graph.
The questions are:

What is the pattern of these URIs?

The pattern can be : http://data.doremus.org/expression/<uuid> (see #39)

Should we generate their UUID randomly or in a deterministic way?

I suggest not generating them randomly for not having duplications. We can combine the identifiers of the expressions referring to the same entity. For example: "0182286", "13920876" and "14975" from PP, BNF and RF respectively. But can we have the same identifier through the 3 institutions or they are unique?

Yes, we need to mint a new URI for the expressions in the pivot graph, the pivot being the sum of all graphs minus the duplicates. Yes, the URI should follow the http://data.doremus.org/expression/<uuid> pattern and indeed, the UUID cannot be completely random, since we don't want to have URI collision. The UUID is generally a hash function of some seed, so the question is what should be the seed. The seed could indeed be: "pivot"+[local_ID]+[local_ID]+... for as many matching found for this expression including a single one if this expression is not aligned to any other.


Add license

Please add a license to this repo and biscuit-rust/java. Thanks!

Hello! all the work is now licensed under Apache 2:
https://github.com/CleverCloud/biscuit/commit/0bbd24003537d24de040282cea00a4cf651cf795
https://github.com/CleverCloud/biscuit-java/commit/086a0015c5c9cbe6258574f3ad8ce461e36257e8
https://github.com/CleverCloud/biscuit-rust/commit/916c0098c5b8c76f35cb47a9b48cb3b5dba66e48

Awesome!


created

Created. Shows how to modify PJA stampit examples from Ch 3 to use stampit 2.X.

One little nitpick. Otherwise, good work! =)


Update cause Raspberry Pi hangs/freezes

After i updated Turtlebot folder in my Raspberry Pi of TB3 Burger according to https://discourse.ros.org/t/turtlebot3-software-and-firmware-update-and-waffle-pi/3729, then when I try to catkin_make, Pi will just hang/freeze as

Then I remove turtlebot3_patrol folder and catkin_make again, Pi always hangs/freezes at

Pi will just hang/freeze and even the mouse pointer cannot move at all!
What was happened? Any advice?

Hi :)
I think that this problem is error about multi-core build.
Try catkin_make again with single-core.
catkin_make -j1
Thanks
Gilbert

Thanks Gilbert for your reply.
Justnow I remove the Turtlebot3 folder then clone again from github, then it can compile without freezing.
I will try catkin_make -j1 next time if facing similar problem. Thank you ^^


onConnect & onDisconnect of AbstractInterceptHandler are not called sometimes.

Expected behavior
When a MQTT client connects to the Moquette broker, I expect that AbstractInterceptHandlerImpl.onConnect() method  to be called.
I  added my AbstractInterceptHandlerImpl to the list of InterceptHandlers as the below :
public class AbstractInterceptHandlerImpl extends AbstractInterceptHandler {
   ...
}

AbstractInterceptHandlerImpl mqttEventsListener = ...
List<InterceptHandler> interceptHandlers = new ArrayList<>();
interceptHandlers.add(mqttEventsListener);
...
server = new Server();
server.startServer(config, interceptHandlers, null, authentication, authorization);

Everything works fine in the Moquette, but I have one problem.
Please suppose, I wrote a simple logging (System.out.println) in the onConnect method and also my mqtt client (using Paho library) is connected successfully to the broker. So I expect that see the log in console of my java service.
But what happens in reality is very strange and only sometimes (not always) this log will be printed. In fact the oConnect method will no be called always (so I can not do my business logic properly in it).
When I restart my own java service (the moquette is embedded in it), I see everything works fine until some next hours this problem occurs again.
Notes:

I have more than 300 published messages in one second.
memory usage of my server: 40%
Swap usage:   3%

I'm using the Moquette for  more than 2 years and didn't have this problem. but I don't know why this problem occurs now.
what is the problem?
Moquette MQTT version
0.12.1
JVM version (e.g. java -version)
java 8
OS version (e.g. uname -a)
Ubuntu 18.04

I changed Logging level to the debug for the io.moquette.interception.BrokerInterceptor class and see the below logging in the notifyClientConnected method:
{
 "timestamp":"...",
 "message":"Sending MQTT CONNECT message to interceptor. CId=test, interceptorId=null",
"level":"DEBUG"
}

I'm sorry for this issue. I had a bad mistake and solved it.


[PE-D][Tester A] Unable to add patients who share the same name but different IC

People who share the same name but have different IC are considered 2 unique people. However, the program does not recognize that and only allows one of them to exist in the patient records.

Labels: type.FeatureFlaw severity.High
original: Skeltons/ped#6

Thanks for pointing that out! But due to the limitation of v1.4, since we're not allowed to fix feature flaws, we decide to include this as an enhancement/good to have for future implementation.


ERROR running force:source:deploy:  Unexpected element {http://soap.sforce.com/2006/04/metadata}id during simple type deserialization

Summary
When deploying using Quick Deploy ID, the following error is thrown as follows but the deployment technically works. No change was made to pipeline (pulling latest version).
This means we cannot parse the results from the deploy and use them in the CICD progress afterwards
PS C:\workspace\sfdc> Write-Host "DeploymentID: $deploymentId"
DeploymentID: 0Af2D00000f3vYGSAY
PS C:\workspace\sfdc> sfdx force:source:deploy -q $deploymentId -u devevo
Job ID | [object Object]
ERROR running force:source:deploy:  Unexpected element {http://soap.sforce.com/2006/04/metadata}id during simple type deserialization

Steps To Reproduce:
Repository to reproduce: dreamhouse-lwc
NOTE: If your issue is not reproducable by dreamhouse-lwc, i.e. requires specific metadata or files, we require a link to a simple Salesforce project repository with a script to setup a scratch org that reproduces your problem.

Successfully run validation with tests
Retrieve Deploy ID
Attempt to quick deploy using sfdx force:source:deploy -q $deploymentId -u devevo
Check salesforce org and see that the deployment actually did pass so the command is assumed to be correct but the CLI throw error.

Expected result
Updates with Job deployment should be pushed to CLI
Actual result
firstly, it seems something is not parsing the deployment Id since it says  [object Object], but I assume this is the same issue throwing the error.
PS C:\workspace\sfdc> Write-Host "DeploymentID: $deploymentId"
DeploymentID: 0Af2D00000f3vYGSAY
PS C:\workspace\sfdc> sfdx force:source:deploy -q $deploymentId -u devevo
Job ID | [object Object]
ERROR running force:source:deploy:  Unexpected element {http://soap.sforce.com/2006/04/metadata}id during simple type deserialization

Additional information
SFDX CLI Version:
sfdx-cli/7.88.4 win32-x64 node-v15.5.1
SFDX plugin Version:
@oclif/plugin-autocomplete 0.3.0 (core)
@oclif/plugin-commands 1.3.0 (core)
@oclif/plugin-help 3.2.2 (core)
@oclif/plugin-not-found 1.2.4 (core)
@oclif/plugin-plugins 1.9.5 (core)
@oclif/plugin-update 1.4.0-2 (core)
@oclif/plugin-warn-if-update-available 1.7.0 (core)
@oclif/plugin-which 1.0.3 (core)
@salesforce/sfdx-trust 3.6.0 (core)
alias 1.1.7 (core)
auth 1.4.8 (core)
config 1.2.5 (core)
generator 1.1.5 (core)
salesforcedx 51.0.4 (core)
├─ limits 1.0.4 (core)
├─ schema 1.0.4 (core)
├─ user 1.1.2 (core)
├─ custom-metadata 1.0.11 (core)
├─ templates 51.2.0 (core)
├─ apex 0.1.4 (core)
├─ salesforce-alm 51.0.2 (core)
└─ @salesforce/sfdx-plugin-lwc-test 0.1.7 (core)
sfdx-cli 7.88.4 (core)
sfdx-git-delta 4.2.1
sfpowerkit 2.6.5
telemetry 1.1.1 (core)
OS and version:
Windows 10 AND Ubuntu 20

Just saw https://github.com/forcedotcom/cli/issues/876 was also submitted while was still writing this - could be same issue

Hey man, we added two reports of the same issue almost at the same time.
Just so you know, I managed to temporarily work around the issue by forcing sfdx-cli to a previous version, rather than latest. This allows you to run the pipeline while this is being fixed.

@bast-shb did you have the exact version?

@DougMidgley You mean the version I reverted to?
I did this in our pipeline:
sudo npm install<EMAIL_ADDRESS>--global as that was the latest previous version that worked for us.
So version 7.86.3.

Same issue by using force:mdapi:deploy command.
While using --soapdeploy with force:mdapi:deploy command the ERROR returned is:
sfdx force:mdapi:deploy -u DevHub -w 100 --soapdeploy --validateddeployrequestid $JOBID
ERROR running force:mdapi:deploy:  Cannot create property 'status' on string '0AfXXXXXXXXXXXX''

@RodEsp @DougMidgley What was the solution for this error ? Is there any other way to resolve apart from forcing sfdx-cli to a previous version

@nikhileshmishra this was fixed long ago so I would ensure you're using the most recent CLI version and do not have the salesforcedx plugin installed.  Run sfdx plugins --core to list the core plugins and if salesforcedx is listed (as is listed in the OP) then run sfdx plugins:uninstall salesforcedx and rerun the deploy command.  This definitely works as expected in recent CLIs.


discord: 0.0.2 -> 0.0.3

Motivation for this change
Discord tend to break their client whenever they do a release. When 0.0.2 was released, 0.0.1 stopped working entirely. Now 0.0.3 is out, so 0.0.2 is dead as well.
17.09 has discord-0.0.2 and 17.03 has discord-0.0.1. Both are broken. I guess 17.03 isn't updated but I think 17.09 should be? I don't know how that's handled.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

My apologies! Had missed this PR but the update has been pushed to master as of 768e88eb44f5fd9ca24379ec62c50011e0f97d02
Feel free to ping me if there is a discord update you would like pushed to master in the future! Thanks !


Optimize performance for grapheme cluster break lookup (and other tables)

Checklist

[x] implement table lookup based on https://www.strchr.com/multi-stage_tables for all tables
[x] Evaluate the possibility to join commonly looked up attributes into a single table (grapheme break, script, width, emoji default presentation, ...)

Future invesgitation
There's a very good research done by utf8proc team: https://halt.software/optimizing-unicodes-grapheme-cluster-break-algorithm/
We could see if we can implement it like that, too, document it, and reference their great work.

[ ] implement break algorithm based on the above web link
[ ] document the idea behind that algorithm such that one can understand it without looking at further (possible future-deleted) web articles
[ ] perf-test against naive implementation (probably simply by doing it as part of https://github.com/contour-terminal/contour/pull/692 - which desperately needs an improved performance for the break algorithm.

Done in #46.


Got this working

Would love to get in touch with someone, perhaps regarding maintaining this repo...
In the meantime enjoy Planetary! https://apps.apple.com/us/app/id1473561807

Well, that was an instant purchase from me - well done!
Have some small issues on 12.9” iPad Pro, where’s the best place to upload a video example?

@kemalenver That's absolutely fantastic! Paging @RandomEtc to the courtesy Planetary phone.

@aplaceforallmystuff Put it on YouTube perhaps and I'll take a look, or just email me a video?  Happy to take a look at some of this now it's running again<EMAIL_ADDRESS>

nicely done 👌🏻

@kemalenver great job. I just discovered this repo yesterday. I just happened to think about how much I miss this app and wanted to find out where it went. Looks like I don't have to figure out how to get it working now. Apps like this are not my forte however I very much want to see your effort preserved and expanded upon. It's been years since I've had to do any C/C++ coding outside the odd Arduino app but I love this app and would like to help support it if you intentions are to continue maintaining or enhancing the app. Please feel free to ping me. Again great job and thanks for bringing this back to life.

Hi thanks @pwpearson. We're currently looking at how to get the changes I made back into the original repo.  Once that's done I'd definitely like to make some more improvements, and would love any help I can get!


Add raw json output to JsonLdExtractor

Sometimes jsonld schema is prefered in raw json format rather than python dict - this PR implementes as_json kwarg bool to determine whether to return python dictionary or json string.
Some use cases:
1. Use alternative json library
2. Use json.loads kwargs
3. Use object hook functions

My personal use case is to strip away @ keys with object hook:
def strip_jsonld(data):
    return {k: v for k, v in data.items() if not k.startswith('@')}

data = json.loads(script, object_hook=strip_jsonld)

This looks mostly ready. What about adding a test covering the usage of parse_json=False?

Sorry that it took me so long to attend to this but the tests gave me a bit of an headache :D
Should be good to go now!

TestRDFa.test_wikipedia_xhtml_rdfa_no_prefix seems to be failing after your changes.


Refactor the CRS scoring variables

The variables used to aggregate the anomaly scores are used very inconsistently (see also: https://github.com/coreruleset/coreruleset/issues/1896).
This becomes very apparent by comparing the rules 949110 and 959100 with respects to how anomaly_score and inbound_anomaly_score are used compared to anomaly_score and outbound_anomaly_score. The way the variables are named appear to be the complete inverse of how they are used. This is why the following lines of these rules are so different:
# 949110
SecRule TX:ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_threshold}" \
[...]
    setvar:'tx.inbound_anomaly_score=%{tx.anomaly_score}'"

# 959100
SecRule TX:OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_threshold}" \
[...]
    setvar:'tx.anomaly_score=+%{tx.outbound_anomaly_score}'"

For incoming scores, anomaly_score is used to aggregate the scores from the different paranoia levels and is then assigned to inbound_anomaly_score. For outgoing scores, outbound_anomaly_score is used to aggregate the scores from the different paranoia levels and is then added to anomaly_score.

Aside from the confusion there is no functional problem with this in itself. However, the confusion can lead to problems later on as the semantics of variables is not clear. This is the case with rule 980120 for example.
The variable INBOUND_ANOMALY_SCORE remains unset if anomaly_score is less than inbound_anomaly_score_threshold in phase 2. The result of this is that the log entry for this rule contains contradictory information if it is even printed:

Total Inbound Score: 0
individual paranoia level scores: 10, 0, 0, 0

[Thu Nov 25 14:30:48.269676 2021] [:error] [pid 344927:tid<PHONE_NUMBER>10272] [client <IP_ADDRESS>:57402] [client <IP_ADDRESS>] ModSecurity: Warning. Operator GT matched 1 at TX:executing_anomaly_score. [file "rules/RESPONSE-980-CORRELATION.conf"] [line "77"] [id "980120"] [msg "Inbound Anomaly Score (Total Inbound Score: 0 - SQLI=0,XSS=0,RFI=0,LFI=0,RCE=10,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 10, 0, 0, 0"] [ver "OWASP_CRS/3.4.0-dev"] [tag "event-correlation"] [hostname "localhost"] [uri "/index.html"] [unique_id "YZ@QCFM9g-bdcxDv4w5IMgAAAAA"]

The correlation rules in general are very difficult to understand because of this.

The inconsistencies go even further than this.
For example, for incoming scoring, the scores are increased as follows:
    setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}'"

For outgoing scoring on the other hand, there are always two variables that are increased:
    setvar:'tx.outbound_anomaly_score_pl1=+%{tx.error_anomaly_score}',\
    setvar:'tx.anomaly_score_pl1=+%{tx.error_anomaly_score}'

This not only redundant but allows for further inconsistencies later on. For example, if we compare the blocking rules for incoming and outgoing, as well as for early and regular blocking, we get three different ways to count the scores:
# incoming, early
SecRule TX:PARANOIA_LEVEL "@ge 1" \
    "id:949052,\
    phase:1,\
    pass,\
    t:none,\
    nolog,\
    setvar:'tx.anomaly_score=+%{tx.anomaly_score_pl1}'"

SecRule TX:PARANOIA_LEVEL "@ge 1" \
    "id:949060,\
    phase:2,\
    pass,\
    t:none,\
    nolog,\
    setvar:'tx.anomaly_score=+%{tx.anomaly_score_pl1}'"

# outgoing, early
SecRule TX:PARANOIA_LEVEL "@ge 1" \
    "id:959052,\
    phase:3,\
    pass,\
    t:none,\
    nolog,\
    setvar:'tx.outbound_anomaly_score=+%{tx.anomaly_score_pl1}'"

# outgoing, regular
SecRule TX:PARANOIA_LEVEL "@ge 1" \
    "id:959060,\
    phase:4,\
    pass,\
    t:none,\
    nolog,\
    setvar:'tx.outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl1}'"

To address the above mentioned issues, the semantics and naming of the anomaly scoring variables have to be refactored across the entire rule set. To have consistent semantics and descriptive naming of variables, I would propose the following:

Phase 1 & 2

executing_inbound_anomaly_score_pl[1234]: Sum up the scores of triggered rules during request processing (indirectly limited by executing_paranoia_level)
inbound_anomaly_score_pl[1234]: removed because not used
inbound_anomaly_score: Sum up the values of executing_inbound_anomaly_score_pl[1234] during blocking evaluation according to paranoia_level (blocking decision is based on this)

Phase 3 & 4

executing_outbound_anomaly_score_pl[1234]: Sum up the scores of triggered rules during response processing (indirectly limited by executing_paranoia_level)
outbound_anomaly_score_pl[1234]: removed because not used
outbound_anomaly_score: Sum up the values of executing_outbound_anomaly_score_pl[1234] during blocking evaluation according to paranoia_level (blocking decision is based on this)

Phase 5

executing_inbound_anomaly_score: Sum up the values of executing_inbound_anomaly_score_pl[1234]
executing_outbound_anomaly_score: Sum up the values of executing_outbound_anomaly_score_pl[1234]
executing_anomaly_score_pl[1234]: Sum up the values of executing_inbound_anomaly_score_pl[1234] and executing_outbound_anomaly_score_pl[1234] per paranoia level
executing_anomaly_score: removed because not used
anomaly_score_pl[1234]: removed because not used
anomaly_score: removed because not used

Users that log scoring variables might have to change their log formats as follows (alternatively, additional variables could be created to act as aliases to allow for a grace period):

anomaly_score ->  inbound_anomaly_score
anomaly_score_pl[1234] -> executing_inbound_anomaly_score_pl[1234]
outbound_anomaly_score_pl[1234] -> executing_outbound_anomaly_score_pl[1234]

Hey @studersi ! Nice to see you here. Nice explanation and writing. We are going to chat about this in our next monthly meeting, were you are welcome of course!

This looks well thought out, and having consistent naming and usage seems sensible. The only two things I wonder about with the list of proposed changes is:

Proposals to remove currently unused variables - are we sure these are not wanted in the future? Or potentially desirable to be utilised by plugins?
It would be nice if the executing anomaly score variables followed the same structure / pattern, and in this proposal they seem to differ (ie. propose to get rid of inbound_anomaly_score_pl[1234] and outbound_anomaly_score_pl[1234] but keeping executing_inbound_anomaly_score_pl[1234] and executing_outbound_anomaly_score_pl[1234]

Hi @fzipi, thanks, @dune73 has also suggested we discuss it at the meeting. Looking forward to see you there!
@53cur3M3

Yes that might be worth considering.
Not sure I understand correctly. Would you rename these variables to something different? The scores per paranoia level are named executing_* because whether they are used or not depends on executing_paranoia_level, not paranoia_level.

Using executing_inbound_anomaly_score_plX seems confusing. Is there a reason to throw in the "executing" concept into the mix? Is there a reason why we couldn't standardise on inbound_anomaly_score_pl[1234] and outbound_anomaly_score_pl[1234]?

It looks like ANOMALY_SCORE has been kept around for legacy reasons. Is it still needed?
# Note: This rule also sets the 'tx.anomaly_score' variable.
# That variable name was formerly used in CRS, but not any longer.
# However, Jwall AuditConsole depends on this exact variable name.
# Without setting it, the 'Outbound Score' in the AuditConsole GUI would always be 0.

Are there lots of people using 'Jwall AuditConsole'?

I couldn't understand why rule 980120 seems to work for me (on 3.4/dev), even if a transaction doesn't reach the inbound anomaly score threshold.
I did a bit of digging, and it looks like 980120 works by chance:
[06/Dec/2021:16:39:49.432296 +0000] [...][4] Executing operator "lt" with param "%{tx.inbound_anomaly_score_threshold}" against TX:inbound_anomaly_score.
[06/Dec/2021:16:39:49.432299 +0000] [...][9] Target value: "0"
[06/Dec/2021:16:39:49.432307 +0000] [...][9] Resolved macro %{tx.inbound_anomaly_score_threshold} to: 20
[06/Dec/2021:16:39:49.432311 +0000] [...][4] Operator completed in 9 usec.
[06/Dec/2021:16:39:49.432316 +0000] [...][4] Rule returned 1.

Target value: "0". I guess Apache treats the empty ANOMALY_SCORE variable as a "0", so rule 980120 has the intended effect.
That happy little coincidence may not work on other engines, though (I haven't tested nginx or Coraza to see if they do the same thing).

@RedXanadu

Yes, there is a reason for taking executing into the mix. The variables that count the score per paranoia level are populated according to executing_paranoia_level not according to paranoia_level. Only when they are summed up to evaluate blocking, is paranoia_level taken into account.

Not sure how many people use Jwall but I would not mind keeping the variable ANOMALY_SCORE around.

Yes, 980120 basically works again on Apache, except that there are inconsistencies with the output in certain cases. For the example above I specifically constructed an example that would show this incorrect behaviour.
See also: https://github.com/coreruleset/coreruleset/issues/1896#issuecomment-704985979

And maybe a small correction: With the fix in #1898 the Rule 980120 is not broken anymore by this here issue. It works as intended, though the actual reason it works is not intuitive and not what you would expect.

Naming alternatives for the types of variables based on discussion in https://github.com/coreruleset/coreruleset/issues/2291 plus some additional options:

Paranoia Level

Active
Blocking
Triggering
Intervening
Restricting
Enforcing
Filtering
Sieving
Sifting

Executing Paranoia Level

Passive
Non-blocking
Detection
Logging
Monitoring
Non-intervening
Observing
Auditing
Probing
Surveilling
Surveying
Examining
Perusing
Screening

The choice is pure torture...

How do we proceed here?

Outcome issue meeting December 2021: We get the feeling nobody has a clear opinion on this. And it's a big step. So let's think about this some more and return to it in January.

Not perfect, but my choices are:

blocking / logging
enforcing / auditing
enforcing / logging
blocking / auditing

These work well, IMO:

Blocking/Detection
Enforcing/Detection

Or maybe, to keep things in sync with the engine:

Blocking/DetectionOnly
Enforcing/DetectionOnly

@RedXanadu Detection -> Detecting? Both should be verbs I think (in case of "DetectionOnly" that doesn't work of course).

Maybe? I think "Detecting" sounds odd, but I don't have a rational reason for that! :)

Time to come to a conclusion here. @Studersi's analysis was profound and the proposal useful, but many of us were still not quite happy. (a) because of the general unhappyness with my term "executing", (b) because it felt we had not understood the problem deep enough and (c) because the reporting in the 980xxx rules was not covered enough. I fall in category (c).
We talked about this a lot in the meantime and nobody felt fit to refine the existing proposal or to take a decision.
But then I got the chance to trade in the migration of the DoS rule to a plugin against me working on this issue. Thanks @RedXanadu.
So here we go.
The variables
The discussion favored to remove the executing and there was a preference for detection instead.  I think it is a good move to lean on the engine and to settle on blocking and detectionOnly.
Given this is going to be a major release, we can clear out all ambiguities and I propose to add the blocking prefix to the paranoia level variable.  This gives us

blocking_paranoia_level : The basic PL variable. This is the PL we execute and block.
detectiononly_paranoia_level : This is greater or equal than blocking_paranoia_level and defines the level whose rules are executed, potentiall executed without being used for the blocking decision.

And now for the simplification: Let's remove all prefixes from the scoring variables. We simply do this as follows:

incoming_anomaly_score_pl1 : Sum of the anomaly score by the rules triggered during execution at PL 1
incoming_anomaly_score_pl2 : Sum of the anomaly score by the rules triggered during execution at PL 2
incoming_anomaly_score_pl3 : Sum of the anomaly score by the rules triggered during execution at PL 3
incoming_anomaly_score_pl4 : Sum of the anomaly score by the rules triggered during execution at PL 4

And then - take note here! - we sum of these scores up to the blocking_paranoia_level and write them into:

incoming_anomaly_score : Anomaly score used for the blocking decision.

Let's say, we have the following scores per paranoia level: 5-10-15-20 (thus all the rules executed on all PLs):

If blocking_paranoia_level was 4, then the incoming_anomaly_score would be 50.
If blocking_paranoia_level was 3, then the incoming_anomaly_score would be 30.
If blocking_paranoia_level was 2, then the incoming_anomaly_score would be 15.
If blocking_paranoia_level was 1, then the incoming_anomaly_score would be 5.

So if you report the scores on a single line (extended access log format as in my netnea tutorials) you get the following at blocking_paranoia_level=2:
5-10-15-20 15
These numbers will allow you to determine that

blocking_paranoia_level was 2
detectionOnly_paranoia_level was 4

Given blocking and detectionOnly are the same level per default and raising the latter separately is advanced CRS business, I am sure we can guide people to understand the numbers even if 5-10-15-20 15 looks a bit odd at first sight.
The early blocking does not really affect any of this. The scores will simply be lower since only phase 1 is being covered.
And then we do the same for outgoing. Perfectly symmetrical.
As noted in the discussion, the JWall Audit Console makes use of anomaly_score. This console has been out of development for years - Christian Bockermann is a Professor now - but quite a few people and even integrators still use it.
I would hate to carry an unnecessary variable into a new major release because of some legacy software. But I think we can easily propose a rule in the documentation to set this. Or - very professional - provide a jwall-compatibility-plugin that sets the variable in question.
The reporting in the 980xxx rules.
The whole 980xxx business is a mess. And I have been wanting to clean this up for a long time. If we are cleaning up the scoring, then let's address this too.
Here is what we need to provide:

Some people want to see anomaly scores in the error log even if a request was not blocked
We do separate category scores. We could think about including them in the blocking rules (949110 and friends), but maybe it's better to leave that aside.
On NGINX it is not possible to report anomaly scores in the access log. So if you want a full overview, you need to write it into the error log. This can also include requests with score 0. Since you may want an easy way to determine how many requests passed the rule set without hitting any rules.

In order to satisfy all these needs, I suggest a variable anomaly_score_reporting with 4 possible values:
0 - No reporting beyond 949110 and friends
1 - Report the anomaly scores per PL and per category in 980xxx for those requests that have been blocked
2 - Report the anomaly scores per PL and per category in 980xxx for those requests that scored
3 - Report the anomaly scores per PL and per category in 980xxx for every requests, also requests with scores 0/0 (inbound/outbound)
Implementing this will be a bit of number juggling, but if you set the value to 0, then you can skip it all and I guess performance won't be such an issue that way.

Here are my thoughts on this.
The Variables
On the naming, I understand we rely on modsecurity for using detectiononly, but with more engines around the term might not stick anymore. I think it is clear enough when you say blocking and detecting, but maybe I'm being naive. We don't say detection_and_blocking and detectiononly for example. We assume that if the semantics on blocking imply that you detected first 🤷 . And if we are detecting, we are not blocking. Otherwise we would use blocking 😉 . In the end, as long as this is clearly documented, it doesn't matter too much. We can even use logging and blocking. And we can go for ever with this also. 🤣
With respect to the additional variables and scoring, I understand what you are trying to do here, but at first sight looks like we are relying on assumed semantics that might be confusing. I guess we only need to be really clear when documenting, that's all.
The whole PL1_score - PL2_score - PL3_score - PL4_score looks good, but then if PL3_score is 0 (and probably PL4_score will be 0), we assume that detection is set to PL2, right?
👉 What if the scores are really 0 there?
In the end... this is configured by the security team, so they know what has been configured... but can we "assume" detection was in PL2 for sure?
Regarding the JWall audit console, I'm not too worried. When this goes out, in a major release, I'm not seeing everyone jumping to change theirs for some time while they plan, etc, so we have some time to even send a patch if necessary.
The reporting in the 980xxx rules
Very clever on this one 🥇 . I like the idea that reporting can be configured with that level of verbosity!
We should take care that logging can be easily parsed by integrators so it is easy to do faceted search in those values, and that's it.

Thank you very much for this useful and constructive feedback. I agree with all of it and I am particularly fond of the idea to write blocking_(incom|outgo)ing_anomaly_score and detection_(incom|outgo)ing_anomaly_score. This had not occurred to me.
I am leaving the previous proposal intact and bring a new version here:

The variables

blocking_paranoia_level : The basic PL variable. This is the PL we execute and block.
detection_paranoia_level : This is greater or equal than blocking_paranoia_level and defines the level whose rules are executed, potentially executed without being used for the blocking decision.

And now for the simplification: Let's remove all prefixes from the scoring variables. We simply do this as follows:

incoming_anomaly_score_pl1 : Sum of the anomaly score by the rules triggered during execution at PL 1
incoming_anomaly_score_pl2 : Sum of the anomaly score by the rules triggered during execution at PL 2
incoming_anomaly_score_pl3 : Sum of the anomaly score by the rules triggered during execution at PL 3
incoming_anomaly_score_pl4 : Sum of the anomaly score by the rules triggered during execution at PL 4

And then - take note here! - we sum of these scores in two separate variables:

blocking_incoming_anomaly_score up to the blocking_paranoia_level
detection_incoming_anomaly_score up to the detection_paranoia_level

Let's say, we have the following scores per paranoia level: 5-10-15-20 (thus all the rules executed on all PLs, resulting in a detection_incoming_anomaly_score of 50):

If blocking_paranoia_level was 4, then the blocking_incoming_anomaly_score would be 50.
If blocking_paranoia_level was 3, then the blocking_incoming_anomaly_score would be 30.
If blocking_paranoia_level was 2, then the blocking_incoming_anomaly_score would be 15.
If blocking_paranoia_level was 1, then the blocking_incoming_anomaly_score would be 5.

The early blocking does not really affect any of this. The scores will simply be lower since only phase 1 is being covered.
And then we do the same for outgoing. Perfectly symmetrical.
As noted in the discussion, the JWall Audit Console makes use of anomaly_score. This console has been out of development for years - Christian Bockermann is a Professor now - but quite a few people and even integrators still use it.
I would hate to carry an unnecessary variable into a new major release because of some legacy software. But I think we can easily propose a rule in the documentation to set this. Or - very professional - provide a jwall-compatibility-plugin that sets the variable in question.
The reporting in the 980xxx rules.
The whole 980xxx business is a mess. And I have been wanting to clean this up for a long time. If we are cleaning up the scoring, then let's address this too.
Here is what we need to provide:

Some people want to see anomaly scores in the error log even if a request was not blocked
We do separate category scores. We could think about including them in the blocking rules (949110 and friends), but maybe it's better to leave that aside.
On NGINX it is not possible to report anomaly scores in the access log. So if you want a full overview, you need to write it into the error log. This can also include requests with score 0. Since you may want an easy way to determine how many requests passed the rule set without hitting any rules.

In order to satisfy all these needs, I suggest a variable anomaly_score_reporting with 4 possible values:
0 - No reporting beyond 949110 and friends
1 - Report the anomaly scores per PL, the blocking and detection, and per category in 980xxx for those requests that have been blocked
2 - Report the anomaly scores per PL, the blocking and detection, and per category in 980xxx for those requests that scored
3 - Report the anomaly scores per PL, the blocking and detection, and per category in 980xxx for every requests, also requests with scores 0/0 (inbound/outbound)
Implementing this will be a bit of number juggling, but if you set the value to 0, then you can skip it all and I guess performance won't be such an issue that way.

Now it is coming together! That was worth the wait :)

Yes, I think so too. And I'm astonished how simple this solution really is. Thanks to everybody for taking part.

One more quibble about the language/terms…
In the code, should be be consistent with our use of "in*/out*" terms?
v3.4 seems to use mostly inbound and outbound in the code (variables, msg actions, comments, etc.), but we also mix in some incoming and outgoing.
Should we stick with inbound/outbound or move to incoming/outgoing? It feels like it should be consistent, whichever way we go.
It's probably less important when talking about the concepts / in discussion pieces like blog posts, documentation, etc., but it feels like the code should be consistent throughout and use one set of terms.

I second that, even if I was not aware of the unsystematic use so far.
Which one is more adequate from your native speaker perspective?

I would say, stick with "inbound/outbound", as used in v3.3.2. So, inbound_anomaly_score_pl1, blocking_inbound_anomaly_score, etc. (I checked the opinion of a colleague, so you have a sample size of 2 :) )
Also, TIL that a few of the HTTP RFCs define and use inbound/outbound, so we'd be in good company:

The terms "inbound" and "outbound" are used to describe directional requirements in relation to the request route: "inbound" means toward the origin server and "outbound" means toward the user agent.

Thank you.
@studersi : What do you think?

I think it is a good suggestion to consistently use inbound/outbound.

I just stumbled over a particular case where rules in phase 1 and redirect bring a bit of a messy situation.
Here is the log:
<IP_ADDRESS> - - [2022-02-22 07:49:07.139947] "GET / HTTP/1.1" 301 235 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/74.0.3729.169 Safari/537.36" "text/html; charset=utf-8" 49512 www.netnea.com <IP_ADDRESS> 443 - - + "ReqID--" YhSHY48c5yRLRsVH7ShXXQAAAAo TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 924 5893 -% 11555 8347 8727 676 5-0-0-0 0-0-0-0 0 0

So we have a PL1 score of 5, but an overall inbound anomaly score of 5.
What happened is the following:

Phase 1 has a hit, PL1 anomaly score is being set
Apache does a redirect
Phase 2 is not being executed, thus overall anomaly score is not summed up
Phase 5 happens and overall inbound anomaly score is still 0, that number is being written to env variable and later logged in access log.

You mean each phase should be adding their scoring to the overall?

I do know how to solve this in an elegant way, I just think we need a solution if phase 2-4 are skipped.

I think we can close this since https://github.com/coreruleset/coreruleset/pull/2417 was merged and https://github.com/coreruleset/coreruleset/issues/2319#issuecomment-1047503932 is tracked in https://github.com/coreruleset/coreruleset/issues/2475.


The Timestamp column can be exported when its value is null

Storage Explorer Version: 1.22.1
Build Number: 20220118.2
Branch: hotfix/1.22.1
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Big Sur 11.6.1
How Found: Ad-hoc testing
Regression From: Previous release (1.21.3)
Steps to Reproduce

Expand one storage account -> Tables.
Create a table -> Add some entities (Like the below)

Click 'Query' -> Remove the current clauses.
Click 'Advanced Options -> Select Columns...' -> Click 'Clear All' -> Click 'OK'.
Execute query. (The current entities display as below)

Export the queried entities -> Open the exported csv file.
Check whether there is no Timestamp column.

Expected Experience
There is no Timestamp column.
Actual Experience
There is a Timestamp column.

Verified this issue on the build 20220120.1. Fixed.


Keyboard requires root

The keyboard library fails as it needs to be root.
Traceback (most recent call last):
File "/tmp/VirtualPianoBot/VirtualPianoBot.py", line 41, in
if keyboard.is_pressed("]"):
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/init.py", line 410, in is_pressed
_listener.start_if_necessary()
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/_generic.py", line 35, in start_if_necessary
self.init()
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/init.py", line 196, in init
_os_keyboard.init()
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/_nixkeyboard.py", line 113, in init
build_device()
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/_nixkeyboard.py", line 109, in build_device
ensure_root()
File "/home/octorocket/.local/lib/python3.10/site-packages/keyboard/_nixcommon.py", line 174, in ensure_root
raise ImportError('You must be root to use this library on linux.')
ImportError: You must be root to use this library on linux.
This is an issue as you can't just run it as root as the root user needs to have the pip packages installed.

also why are you importing random if you aren't using it?

ded


Bounds checking for program_id() and num_programs()

fixes #2005

I'm ok to merge but could you fix the failing test_invalid_program_id ?

revived and fixed the hook in https://github.com/openai/triton/pull/2363


fix: assign more restrictive type to PathType (#433)

This prevents Key path element must not be incomplete runtime error, and also allows using big int
(datastore.Int) when creating a key using KeyOptions object as an argument.
Fixes #433 (it's a good idea to open an issue first for discussion)

[x] Tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

As a Google TVC, I shouldn't need to sign the CLA explicitly, let me check with my manager.

Is this a breaking change for TypeScript users? If so we should update the commit message to indicate that

@callmehiphop yes, in a sense that the code that use to compile may not compile after this update. Is there an example of such message I can use for a reference?

I think it's fine to call that out in the notes - but I don't think this should be a semver major bump.  This is a "fix" in that it's actually enforcing the types are adequately limited.  Any concerns with including this in a patch release?

Applying semver to fix types has always been pretty fuzzy for me, I think in the case of transitioning away from any I get a little nervous since it's much more drastic of a change than fixing an incorrect type or adding a missing property. Buuut, if you guys think it's the right way to go, then I say let's go for it! 😎

@growtofill have you been able to work out the CLA issues?  Would love to merge this!

@JustinBeckwith updated to use private email, sorry for the delay.


[Adblock BUG] On the latest version of spotify, adblock no longer works.

Describe bug
Exactly as the title says, all audio, banner, and popup visual ads once again function and require a premium spotify membership to alleviate.
Steps to replicate
Use Adblock on the latest version of spotify and spicetify.
Necessary screenshots

Spicetify and Spotify Version
Latest version for each.
Config file:
I couldn't find it (I've never looked through the config files of something in spicetify before), but it's the unedited default one.

Have the same Problem and so do all that use that App


NSFetchedResultsController recognized update property as move

When I edit property, NSFetchedResultsController delegate, func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) , recognize it type NSFetchedResultsChangeType as move not an update.
Is this expected behavior or not?

No doubt. It doesn't have to do with Ensembles, but there are some unexpected behaviors in the fetch controller. I remember also being surprised by certain notifications. There is an Apple article showing how to handle it all properly, but it is really not easy.
Kind regards,
Drew

On 09 Apr 2016, at 17:11, Sarun Wongpatcharapakorn<EMAIL_ADDRESS>wrote:
When I edit property, NSFetchedResultsController delegate, func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?)
, recognize it type NSFetchedResultsChangeType as move not an update.
Is this expected behavior or not?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

This is a bug in CoreData, there are plenty of issues with FRC when it simply reports wrong changes.


Frameless Windows and Linux

@keybase/react-hackers r?
This PR combines a few things:

@adamjspooner's #17130, which adds minimize/maximize/close window icons

@heronhaye's #17057, which hides the menubar on Linux, expanded to hide it on Windows too

frame: false turned on for Windows and Linux

Hook up the minimize/maximize/close icons using the BrowserWindow API fns.

.. with the end result that macOS is unchanged, and Windows and Linux both use the same hand-drawn nav2 window management icons, and are both frameless and menubarless.

Looks good on i3.
On xfce4 i'm not able to drag the window by the titlebar so it's kind of stuck (I can't drag it on i3 either but I can use the wm's native movement controls there). And I also can't resize it by dragging on the border, it doesn't do anything.
Also, the minimize and maximize buttons don't do anything on either i3 or xfce4. I'm not sure maximize and minimize really make sense on Linux across different wms (the buttons in the Window menu never did anything either). But I think at least the maximize button should maximize on xfce4. Probably an electron issue though?
This is more of a design question but would it be better to have those controls on the left like in Mac so it's more consistent with the Mac app?
Finally, in my PR I can press "Alt" to access the file menu but I can't do that in this branch for some reason, but I don't see any reason why that should be the case from the code.
Let me know if you need me to test anything else, excited about this change!
cc @zapu

The "active zone" of the buttons should be larger, also a button background colour change on hover would be more natural for Windows users.
I recorded a video in /keybase/team/keybase/cjb_titlebar.mp4.

I agree with @zapu's feedback. Let's mimic the hit target sizes and hover colors (black over gray and white over red) of other Windows apps.

Also on Windows you can't resize using top corner anymore, which is rather unusual for a Windows application. Maybe it's similar on some Linux desktops as well.

@adamjspooner Thanks, how's this?

Looking good! Can we move them (or make them larger) so the top edge is aligned with the top edge of the app? Can we move them closer together so there's no gap between them? Also, the close hover should be white on a red background. Take a look at @zapu's video for more details. Let's get as close to that as possible.

Cool, I'll try.  Weird, <Kb.Icon style={{color: grey, hoverColor: white}}> isn't changing the color to white on hover.  Do you want globalColors.red or globalColors.red_20 or something else?  The full red seems aggressive to me but I guess Windows just looks that way.

Ready for another look, how's this? (That's white on red, just the GIF palette being too small.)

Looks great! @cecileboucheron, thoughts? Do we want to push it all the way to the right (so the red box is fully in the upper right corner)?

This is getting better with every iteration!
Some thoughts:
Video for reference from Windows: /keybase/team/keybase/cjb_windows_2.mp4

The buttons have to be pushed all the way to the right, at least on Windows - that's what the native apps (without custom titlebars) do. Custom titlebars emulate this as well. See VSCode in the reference video.
Something broke and minimize button maximizes now. Not sure if that was different when I tried this branch last time, maybe it was always wrong.
The maximize button icon changes when window is maximized - see VSCode icon in reference video.
The "hot zones" should still be larger - they should be done in a way where there is no space between buttons. See reference video - I can drag window by dragging titlebar from between two buttons. For reference, in VSCode (or any other app), you can't do it. You can miss the button "visually" by a fairly large margin and still get a button click.
Window resizing is not correct. Somehow I can resize the window using top corner but only in the area where the buttons are. See the recorded video. Windows and (most of) Linux uses are used to being able to drag and resize using any corner of the window.

I've added another video that shows the resizing issue: /keybase/team/keybase/cjb_window_resizing.mp4

Also there is an issue with "Search" bar as well as icons/buttons on the top of conversation (search / files / info). You can't click these anymore because they act as a bar that drags the entire window. Same on Linux XFCE and Windows 10. I have a recording here: /home/zapu/Videos/cjb_panel_drag.mp4

I trust you all on design decisions :)

@zapu Thanks! Another look?

Pushed the buttons over to the edge

Fixed minimize button

I can use a different icon when maximized if @adamjspooner wants to export another one (can push it directly to this branch), no strong opinion from me.

Made hot zones larger, should be no gaps now.

Inconsistent resizing is probably an Electron bug/behavior, don't see any fix

The issues with unclickable buttons on headers are unrelated, we've got tickets for them, a style needs to be applied for anything in the nav area that ought to be clickable.

So I think this should be ready to go unless we want to change the maximized icon.

2 things on Gnome 2.28 on Ubuntu 18.04:

Buttons are not offset to the right here (although it's not as much of an issue here I guess)
Login title bar is absolutely messed up and offset by like 10px to the bottom:

@pzduniak What is "Login title bar" and where is it in the screenshot?

Title bar is the thing we're removing, so by "login title bar" I meant the 3 window buttons and the back button. They're moved to the bottom quite significantly, you can't grab anything above them to move the window.

Maybe that helps?

@pzduniak I think git pull origin cjb/nav2-bar-desktop-logged-out-routes on top of this PR branch should fix the logged out view, want to give it a try?

Works!

checked out latest, some more notes. thanks again for working on this!

need https://keybase.atlassian.net/browse/DESKTOP-9492 before release
I can't Ctrl + or - anymore to zoom

minor issues that would be nice to fix but not necessary or that important

resizing on top edge of window. right now you can only do this from above the control icons - I think it should be the opposite and that part of the top bar next to the control icons should be for the control, so you can move your mouse all the way to the top right of your screen and select X instead of resize icon
the color of the icons themselves changes from light to dark grey when hovering over, but the hitbox doesn't match the size of the background box. To repro: put your cursor on the very edge of the maximize box such that the background box is highlighted. then move your cursor a bit closer to the center and the square maximize icon gets darker. ideally, the hitboxes would be the same or the
when I from floating mode to windowed mode and back, it loses the original shape of the window and defaults to right half of my screen. in discord, it remembers the original floating size and position.

Thanks! Agree those don't sound like blockers right now, so I'll merge these in and work on 9492.  The extra icon color change is because the icon component itself changes its hoverCover when it's hovered.


remove golang.org/x/crypto/ssh/terminal ?

Pros:

Allows removal of x/sys as well (this is most of our source tree, by raw line count)

Cons:

Passwords supplied to oragono genpasswd would be locally echoed to the terminal
Has negligible effect on binary size, maybe a 1% reduction (most of x/sys gets compiled out of the binary)

Eh I like not echoing the password when users enter it, feels like the more normal way for apps to act. I can understand wanting to remove the lines but honestly I tend to ignore most of the cruft in vendor/ anyways so it's not a big drama to me

wontfix


[Mention] Support renderLabel prop for the options

This function solves the problem (这个功能解决的问题)
I'm aware we have the render prop but, if we use that, we basically lose all the functionality and the styles that are build-in with the renderLabel prop that wouldn't be an issue.
Expected API (期望的 API)
I would like the same API we have in the select component when using the renderLabel prop.

This feature request was implemented in #593.
Thanks @amadeus711

We will add renderLabel for batch rendering later.

@07akioni so, should we reopen this?

@07akioni so, should we reopen this?

No, I will develop this feature in the near future.


how can i use this plugin to input one table into multi index

Hi all,i have question.
The question is that i have a table in mysql and then i use this plugin to translate date to elasticsearch.
The data in mysql is diff by vendor id ,i want to put these data to elasticsearch per vendor per index.
how can i use multi index ? @guyboertje please help me ,thank you !  -_-

@linuxclay
The elasticsearch output has a dynamic index name facility.
Closing this, if you need more help, please post your question to https://discuss.elastic.co/c/logstash
These issues are intended for bug reports or code improvements.


Upgrade message.position to message.place; remove stray console.log

This gets rid of the ts warnings about message.position.  It also removes that extra console.log that spit out messages.

Thanks!

In trying to eliminate another type warning at file, I discovered that there are two different VFile imports.  Some (in the pretext conversion package) are from "vfile" and others are from "unified-lint-rule/lib".  Changing them all to the latter fixes the type error, but introduces other errors.  Is there an advantage to cleaning this up?  Any prefference?


Removed bad font from javadoc stylesheet

The new stylesheet is exactly the same as the default stylesheet
with the exception of the Georgia font being replaced with Arial.
Resolves #1576

@ryanmkurtz by any chance do you know of a better solution?

The only other option I can think of is to edit the stylesheet it produces afterwards.  You could probably do it in just a couple of gradle lines, making for a much simpler pull request.

The only other option I can think of is to edit the stylesheet it produces afterwards. You could probably do it in just a couple of gradle lines, making for a much simpler pull request.

Should such changes go in the zipJavadocs task?

I think so.  Gradle changes were always trial and error for me.  There are doFirst and doLast expressions you can use to control when things happen.  Maybe in a doFirst in zipJavadocs?  Or a doLast in createJavadocs?  You can also add a filter to a copy task where you might be able to strip out a font somehow.  An example of that is in extensionCommon.gradle.

I think so. Gradle changes were always trial and error for me. There are doFirst and doLast expressions you can use to control when things happen. Maybe in a doFirst in zipJavadocs? Or a doLast in createJavadocs? You can also add a filter to a copy task where you might be able to strip out a font somehow. An example of that is in extensionCommon.gradle.

Thank you. I'll probably revise this to take that approach over the weekend.

I have changed the gradle script so that the Georgia font is now replaced with Arial in the stylesheet after the javadocs are built. If there is a default font preferred over Arial I'll can set it to that instead.

Nice clean solution!

After revisiting this, it doesn't seem worth the extra gradle hackery and maintenance to alter the font.  Maybe if more complaints about it popped up we could reconsider it.


Doesn't accurately generate .workspace.iml file

Description of the issue. Please be specific.
In my project it generates the wrong packagePrefix
What's the simplest set of steps to reproduce this issue? Please provide an example project, if possible.
Not sure, for some project it works for some it doesn't. I couldn't pin point what exactly makes it break.
Version information
IdeaCommunity: 2019.2.2
Platform: Linux 4.15.0-1057-oem
Bazel plugin: 2<IP_ADDRESS>.0
Bazel: 0.29.1

I'll close the issue. If you still can reproduce it, please reopen.


Strange Redirect URI

Hello!
I use nuxt-auth-utils on a site hosted on Netlify with Google Oauth scheme.
Everything worked ok for a month or so, but now Google throws 400: invalid_request error with this info:
redirect_uri=https://proxy.proxy-production.svc.cluster.local:80/api/auth/google flowName=GeneralOAuthFlow
In google console I've set authorized redirect URI as https://<my domain>/api/auth/google
As I understand instead of this proxy-proxy stuff it awaits my domain, right?
Is it auth-utils problem or is it on Netlify side?
Thank you!

I think this is something like #142
After setting redirectUri in nuxt config started working again


SelectionPrompt - Set default value not available

Is your feature request related to a problem? Please describe.
SelectionPrompt does not contain a "Select" -method.  It is however available on MultiSelectionPrompt.
Describe the solution you'd like
Option 1:
Add the same "Select" and "IsSelected" -methods (as available in MultiSelectionPromptExtensions) to the SelectionPromptExtensions -class.
Option 2:
Add a "DefaultValue" (as available in TextPrompt) to the SelectionPromptExtensions -class.
Describe alternatives you've considered
I'm currently planning to work around this by setting the selected item as the first one in the list of choices.  But that might be confusing for users.

@vanheesk SelectionPrompt does not have a default value, since that would mean that the selection prompt is never shown.
Could you explain a bit more in detail what your use case is? Maybe I'm misunderstanding something.

Say I have a SelectionPrompt asking "What is your favorite fruit", and I provide the user with a list of choices. (Apple, Banana, Cherry, Coconut, Dragonfruit).  I select "Cherry" and store this somewhere.
Now, I'm asking the user that same question again and I want to put the cursor on his/her previously selected item, so they know what was previously selected, but can still change it.

I second this. I use MultiSelectionPrompt to ask the user for a list of permission assigned to a role. When the user is editing the role, I do want to have the already-assigned permissions checked by default.
What would be the best way to implement that? I can write the code and make a pull request.

You can pre-check items. However, you have to add the items one by one. In my code I use something like this:
var prompt = new MultiSelectionPrompt<MyItem>()
    .Title("Choose items:")
    .UseConverter(item => item.Name);
foreach (var item in myItems)
{
    if (IsChecked(item))
        prompt.AddChoices(item, r => r.Select());
    else
        prompt.AddChoices(item);
}

The original question was about SingleSelect specifically, which I solved / worked around using:
`
private List GetSelectionForSingleSelect(Dictionary<string, string> options, string currentValue = null)
{
var singleSelect = new SelectionPrompt();
var singleSelectOptions = options;
if (currentValue != null)
{
    singleSelectOptions = new Dictionary<string, string>();

    // Add the selected item first, then add the other options as provided
    singleSelectOptions.Add(currentValue, options[currentValue]);
    foreach (var entry in options)
    {
        if (entry.Key == currentValue)
            continue;

        singleSelectOptions.Add(entry.Key, entry.Value);
     }
}

singleSelect.AddChoices(singleSelectOptions.Values);

var selection = AnsiConsole.Prompt(singleSelect);
var optionId = options.FirstOrDefault(x => x.Value == selection).Key;

return new List<string> { optionId };

}
`

I would like to see that feature, too. My usecase is:
I'm showing a "menu" usign the Single-Selection-Feature. When a user selects an entry some action is executed. After the execution the menu is shown again where last action executed is selected

I would also love the support of Select or DefaultValue on the SelectionPrompt. My use case involves a list of items (5 in my case) where a selection of a single item of the list is required as they are all mutually exclusive. Re-ordering the list is not an option for given the desire to have the options listed alphabetically.
The workaround for us is a bit ugly since we're also having to drop the previous option on the prompt and force the user to verify the select before pressing enter and again at the end of the workflow before changes are saved.
Just including a DefaultValue would help alleviate these issues.
For reference this is what we're having to do at the prompt (simplified)
// Omitted is some reflection iterating over custom attributes on a settings DTO style object.
var previous = (bool?)propertyInfo.GetValue(config);
var promptTitle = $"{attribute.QueryPrompt ?? "MISSING: QueryPrompt attribute value"} [green](Previously: {previous})[/]";

var prompt = new SelectionPrompt<string>()
                        .Title(promptTitle)
                        .AddChoices(attribute.QueryExclusiveOptions);

var newValue = AnsiConsole.Prompt(prompt);

propertyInfo.SetValue(config, newValue);

this.AnsiConsole.MarkupLine($"{prompt}: {newValue}");

Once all the settings have been re-confirmed a table is once again displayed with the options from before and after. We're highlighting the "after" options that differ from the originals in yellow and asking the users to verify before selecting yes to save. It's a less than ideal solution but given some users like to use the wizard vs set individual options having a way to default a single select list would be greatly impactful.

First of all, thanks for a wonderful library! It's working really well.
Being able to set a selection default would be really helpful for my purposes too. I'm creating a tool that helps generate StateSmith state machine projects and I want to remember the user's choices from last time.
My current thinking for a workaround is to put it at the top with a "remembered" prefix or postfix.

Are you accepting pull requests for this? I've prototyped a change, and it works well (plus it's a reasonably small change!). It adds a DefaultValue property and extension method to SelectionPrompt.
var prompt = new SelectionPrompt<string>()
        .Title("Select one")
        .AddChoices("First", "Second", "Third")
        .DefaultValue("Second");

AnsiConsole.Prompt(prompt);

Select one

  First
> Second
  Third

@patriksvensson Are you accepting pull requests for this?

Dear @reduckted, why wouldn't you just submit it?

Just following the contribution guidelines. 🤷♂
https://github.com/spectreconsole/spectre.console/blob/main/CONTRIBUTING.md#get-buyoff-or-find-open-community-issues-or-features

nod


Command/Argument Preview Mechanism

Allows command authors to designate that commands, command groups, and arguments are in a preview state, similar to the existing deprecation mechanism.

Just out of curiosity, how easy would it be to tack on a hidden option? I'd love to have self-test stop telling me that it was going to be deleted soon if it's easy.

@marstr I cleaned up the code to let develops simply use is_preview=True.

Not sure why TravisCI isn't linked to GitHub now, but the build passed so I will merge.


Added parameters class

Description has been added to the parameters.h class file. Essentially establishes a standardized method for initializing class constructors.

can you describe a bit more what the PR is about?

@JensWehner Take a look now.

For me the name is confusing, a bit to generic, could we call it particle_parameter or so, because I think it would be a bad idea if someone uses it outside of file readers and writers

Otherwise I like it

How about topology Parameter because it can be used with segments molecules etc...?

structure_parameter? otherwise topology_parameter is fine


fix: handle properly multi_colors=False

As title says. Otherwise, passing in "multi_colors=False" does not pass in the default color value. And it should.

Patch release coming up