Server-side Blazor: Consistently push to multiple circuits

Is your feature request related to a problem? Please describe.
There are several issues that ask about how we should push data to clients (e.g. https://github.com/aspnet/AspNetCore/issues/10559, https://github.com/aspnet/AspNetCore/issues/14778), and none has received a clear response so far.
The absence of documentation and guidance has fostered blogs and demos that propose odd workarounds, such as opening a new, dedicated signalr connection to a dedicated hub from within the circuit or making circuits subscribe and unsubscribe to a public static delegate while praying that everything is correctly disposed.
If I understand @rynowak correctly we could set up a ConcurrentQueue per circuit, have $something fill it, have a background thread drain it, and invoke StateHasChanged. However we are lacking concise instructions on thread safety in server-side blazor (should we update the "model" from the background thread and then just invoke? Does the circuit's "main task" have a synchronization context? Should we pass updated models to the circuit in a special way?), so this is not something I can use to build an app with.
Describe the solution you'd like
The documentation should present a bulletproof scheme that allows us to easily dispatch an event to sets of circuits!
We have to be sure that

we are not violating any thread-safety assumptions (Winforms/WPF/UWP don't allow to modify UI components without invoking the UI thread, and I could not find any documentation for server-side blazor)
no resources are leaked (if clients disconnect, connections are aborted, ...)
no scaling issues arise for small to medium user bases
ordering (every user agent sees event A before event B) can be enforced
we can handle overload situations gracefully (we want to be able to check whether A is done before we start B, because if C comes in before A is done we might want to skip B)

I am fairly certain that right now everyone developing a server-side blazor app which provides inter-circuit communication is reinventing the same wheel, and this wheel is at a crucial position in everyone's webapp, and that is awful, because most of those (including me) won't have the required internal knowledge to know the lifecycles and pitfalls of server-side blazor.
If the response is "we won't support that ourselves within the near future, please use a dedicated message broker like redis/whateverMQ" that is completely fine (and reasonable for scale out scenarios), but please provide a reliable minimal example that interested parties can use to build a prototype.

Thanks for your issue report. We'll look at getting some samples or guidance added to cover this scenario.

I mean I think most people probably wan't to stream data to multiple clients, which triggers a rerender without going trough
server -> client (javascript signalr or so) -> calls blazor callable js function (which involves a server roundtrip) -> re-render.
I think most people just want something like a IAsyncEnumerable<Data> that multiple subscribers can subscribe to, without going trough the server -> client -> server hop.

We've moved this issue to the Backlog milestone. This means that it is not going to happen for the coming release. We will reassess the backlog following the current release and consider this item at that time. However, keep in mind that there are many other high priority features with which it will be competing for resources.


No values were updated in collection because no values were found (but the record does exist)

Hello :)
I am pretty new to graphQL so I'm sorry if this is very trivial. I'm trying to update a user first name using a mutation, but it returns No values were updated in collection 'users' using key 'id' because no values were found., which is very weird because I can see my record when querying allUsers
Here is the mutation I tried:
mutation test($input: UpdateUserByIdInput!) {
  updateUserById(input: $input) {
    user {
      firstName
      id
    }
  }
}

And the variable:
{
    "input":{
         "id": 6,
        "userPatch": {
            "firstName": "Aline update"
        }
    }
}

And here is my query on allUsers and the result, showing the record where id = 6:

Am I missing something ?

Hi @AlineFrancois; please try running PostGraphQL with the environmental variable DEBUG="postgraphql:postgres*"; it should output the SQL queries that are being ran which should give us some more hints.
Are you using Row Level Security or specific grants?

I had the same issue so my guess is your table permissions are insufficient. Make sure to allow insert, update and delete to current user.

Ok I'm making some progress thanks to you guys, I think I got this error because I was trying locally without setting the jwt token type and secret, and without sending any tokens.
Then I remembered that we do use  RLS (at least trying lol) and it requires a valid token to identify the user.
So I wanted to test with a valid token and stumble accross some issues.
I tried to run it locally from the command line but I can't make it work; for some reasons -A or --jwt-audiences are ignored and it won't accept my auth0 tokens as the audience is not 'postgraphql'.
So I guess I have to debug it directly from my lambda function, in which the jwt-audiences parameter works well.
When providing the right token, I get another error where updateUser is still null, and the message is "Unexpected end of JSON input". I believe this is due to updateUser being null though.

@benjie Do you know how I can include this DEBUG environment variable when running postgraphql with nodejs ? We're using createPostGraphQLSchema and withPostGraphQLContext, and I couldn't find anything about environment variables in the doc

jwt-audiences also didn't work for me but there's an easy workaround.
Follow this guide and parse the header yourself: https://github.com/postgraphql/postgraphql/blob/master/docs/library.md
You can pass extra values to your database as described here:
https://github.com/postgraphql/postgraphql/pull/399
(It's not in the official documentation)
This way you can handle the jwt stuff yourself.

@AlineFrancois Just add the environmental variable when you run your node process, they're inherited (e.g. DEBUG="postgraphql:*" npm start)

I don't currently use the JWT features so can't be much help here I'm afraid - sorry.

Thanks :)
Finally able to run it with the debugging to understand what's up
So I am now using a valid token; here are the policies we set up so far regarding the user table:
create policy select_user_table on user_table for select
using (true); -- everyone can see the user list

create policy update_user_table on user_table for update to myRole
using (id = current_user_id());

create policy delete_user_table on user_table for delete to myRole
using (id = current_user_id());

grant select, update, delete on table user_table to myRole;

And here is the current_user_id function we defined:
select u.id
from user_table as u
where u.auth_id = current_setting('jwt.claims.sub')::varchar(50)

Basically we retrieve the row ID of the current user using the sub claim from the token. Note that all our users will also have the 'myRole' role thanks to the token
This is all I get from the debug info:
postgraphql:postgres begin +0ms
postgraphql:postgres select set_config($1, $2, true), set_config($3, $4, true), set_config($5, $6, true), set_config($7, $8, true), set_config($9, $10, true), set_config($11, $12, true), set_config($13, $14, true) +12ms
postgraphql:postgres commit +21ms
1 error(s) as myRole in 105.22ms :: mutation uo($input: UpdateUserInput!) { updateUser(input: $input) { user { firstName } } } query test { currentUserId }

I don't know why it's calling set_config that much ?

UPDATE because I mixed things up lol
So when I try to call updateUser I get this new' Unexpected end of JSON token' error, but when calling updateUserById I'm back with the orginal issue in the title
And here is the debug info for this call
 postgraphql:postgres begin +0ms
   postgraphql:postgres select set_config($1, $2, true), set_config($3, $4, true), set_config($5, $6, true), set_config($7, $8, true), set_config($9, $10, true), set_config($11, $12, true), set_config($13, $14, true) +12ms
  postgraphql:postgres with __local_0__ as ( update "schema_name"."user_table" set "first_name" = $1 where "id" = ($2 + 0) returning * ) select row_to_json(__local_0__) as object from __local_0__ +20ms
 postgraphql:postgres commit +13ms
 1 error(s) as myRole in 114.59ms :: mutation test($input: UpdateUserByIdInput!) { updateUserById(input: $input) { user { firstName id } } }

I had the same problem and google lead me here. This issue definitely helped me understand it was a permission problem, since my particular mistake was a bit different than what you could read here I'm writing it with the hope it'll help someone who'd follow the same path:
I had this exact same problem because of a confusion between using and with check:

No values were updated in collection 'thread' using key 'id' because no values were found.

create policy update_thread on my_project.thread for update to my_project_person
  with check (my_project.current_person_is_admin());

works:

create policy update_thread on my_project.thread for update to my_project_person
  using (my_project.current_person_is_admin());


"What is CfA" presentation deck

Specs

10-minute maximum
What is CfA?

Tasks

[x] Create draft deck
[x] Proofread the deck and ask for any revisions from core team
[x] Revise deck
[x] Upload final deck to Drive and link from this ticket

@ambercabrera Assigned to you, with some initial specs and tasks, but really just please do what feels right to you.

I thought that combining the "what is CfA" and Intro to Code for Gainesville presentations flowed better. Here is the slide deck and I will add this to the other issue ticket as well. bit.do/NDoCH-deck

Revised and done.

@gotoplanb For slide about the brigade not just being for coders:
“We are open to anyone and everyone who cares about making Wichita a better place using creative solutions.” – Open Wichita
Brigades need leaders and members with all types of skillsets. Some ways non-technical folks participate include storytelling, community organizing, advising on projects as subject matter experts, planning events, writing copy, and more.” – Code for Durham

Done. Sorry @samanthawolfe for not making that last slide 😞 I'll add these wonderful quotes to our primary readme.

No worries! I should've been more proactive and added myself... You guys
have had enough on your plate :) Awesome job!!
On Sun, Jun 5, 2016 at 9:37 AM, Dave Stanton<EMAIL_ADDRESS>wrote:

Done. Sorry @samanthawolfe https://github.com/samanthawolfe for not
making that last slide 😞 I'll add these wonderful quotes to our primary
readme.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/c4gnv/c4gnv.github.io/issues/3#issuecomment-223813537,
or mute the thread
https://github.com/notifications/unsubscribe/AShRFCpAyqWMZueQ6Y-jTA04VjEZI2TYks5qItEigaJpZM4IchHS
.


Implement JWT

Should be backwards compatible.
Endpoints could go under /auth/jwt
JWT should go on Authorization header in the following format:
Authorization: Bearer <token>
https://jwt.io/introduction

We'll save just the id in the JWT for now, this should be changed later?


Azure Automation (Patch Management) and Log Analytics Workspace Linking Expansion

hi,
can you please help with following information on Azure Automation (Patch Management) and Log Analytics Workspace Linking?

is there a timeline to get azure automation and log analytics workspace linking in more azure regions?
is it guaranteed that once both services become available in an azure region, they will be linked automatically?

thanks.

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

ID: f8f86bd0-7555-9be2-1015-76e3ab88062f
Version Independent ID: 1d310402-fadf-d602-048a-b2e16bd86a7e
Content: Supported regions for linked Log Analytics workspace
Content Source: articles/automation/how-to/region-mappings.md
Service: automation
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@Mahesh-MSFT - Hi Mahesh, yes there is work underway to enable other regions to support Azure Automation solutions (i.e. Change Tracking and Inventory and Update Management) that link to a workspace.  In addition, the PG is working to streamline the process to release to regions faster. For example, Switzerland North is now supported and I am preparing to update the documentation to reflect that. There are other regions planned but I don't have an ETA to share at this time.  There is no plan to automatically link the account to a workspace in a region, this step is something that a customer should have control over in order to decide which workspace they want to link to. Otherwise, we are creating administrative and cost overhead that may not be ideal for medium or enterprise customers.
I hope this answers your questions.  #please-close since this isn't a doc issue.

@MGoedtel Thanks for the response. :+1:


Autotools: force libdir as Linux distros can override it

An example of a distribution that overrides it is OpenSuse:
https://github.com/ruslo/hunter/issues/503
Tested this change in OSX 10.11.2 and OpenSuse. Could be good idea to run tests for pkg.glfw as it compiles a lot of x11 packages which rely on autotools.

Meh, I think this will (further) break iOS Autotools integration, need to test more, don't merge :|
Sorry, will have a look at this better over the week.

Best solution would be to package a config.site file together with hunter: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Site-Defaults.html#Site-Defaults and set the environment variable CONFIG_SITE pointing to it.

Could be good idea to run tests for pkg.glfw as it compiles a lot of x11 packages which rely on autotools.

We will test nothing until you change INTERNAL_DEPS_ID of affected packages :)

We will test nothing until you change INTERNAL_DEPS_ID of affected packages :)

I expect that this change does not alter the contents of the compiled packages, change anyway?

I expect that this change won't alter the contents of the compiled packages

No need if you're 100% sure. But in this case there make no sense to run tests as you suggested before: "pkg.glfw as it compiles a lot of x11 packages which rely on autotools" - they all will be taken from cache.

Updated this pull request.
For now the less intrusive fix is to clear CONFIG_SITE that is set in OpenSuse. If such issue pops up again in the future, then we can take more drastic measures and create hunter's down config.site.

Released: https://github.com/ruslo/hunter/releases/tag/v0.15.23


feat: limit subscriptions per client

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 7 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 96.526%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
964

Relevant Lines:
1011

💛  - Coveralls


project/install.sh: install ca-certificates

This ensures that ca-certificates are installed and that they get updated in case they were already installed.
This was the only actionable item for issue #9483.
Fixes #9483

On a properly configured system, this shouldn't be necessary since we have
ca-certificates in our package Recommends:
https://github.com/docker/docker/blob/01b46c21aac9f533b7515d86de1bcf1d1befa247/project/make/ubuntu#L150

Ping @tianon

I guess that's fair, even if it hurts.
LGTM


Hint boxes broken

Content missing and stray closing divs:

https://www.arangodb.com/docs/stable/drivers/js-reference-database-transactions.html#databasetransaction
Markdown not processed:

https://www.arangodb.com/docs/3.5/data-modeling-documents-document-address.html#document-revision
The callouts work in other places however.
The first issue is probably whitespace related. The HintBlock.rb script does not remove leading whitespace from the input based on the indentation of the first line. This shouldn't result in a completely messed up markup however...
The second issue is DocuBlock related: the content comes from Documentation/DocuBlocks/documentRevision.md via allComments.txt.

The first issue should be resolved by https://github.com/arangodb/docs/pull/51 - nonetheless it is strange that htmltest did not complain about the closing dives wrapped in a p element...

Documentation\DocuBlocks\documentRevision.md is a "simple" DocuBlock:
@startDocuBlock documentRevision

Every document in ArangoDB has a revision…

{% hint 'warning' %}
From a **user perspective**, there is just **one single document revision
present per different `_key`** at every point in time. There is no built-in
system to automatically keep a history of all changes done to a document
and old versions of a document can not be restored via the `_rev` value.
{% endhint %}

@endDocuBlock

The problem is most likely that the content is included at the Markdown processing stage, which comes after the pre-processing of Jekyll ({% ... %} resolution occurs prior to that). So this is actually handed verbatim to the Markdown processor, to which the hint tag is plain text.

Fixed by https://github.com/arangodb/docs/commit/d8490932d193921db3c99e9238514d0762c3d0fc


[3.0 alpha] Animation ui issue

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 10 Build from 03.09.2017
Issue description:
When i try add new track in Animation player (track with call func). This what happened :3

Steps to reproduce:

Create animation.
Add track with call functions.

Fixed by #11052.


Invariant Violation: Module name prefixes should've been stripped by the native side but wasn't for RCTStatusBarManager

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
Test suite failed to run

    Invariant Violation: Module name prefixes should've been stripped by the native side but wasn't for RCTStatusBarManager

      at invariant (node_modules/fbjs/lib/invariant.js:38:15)
      at genModule (node_modules/react-native/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js:35:1)
      at node_modules/react-native/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js:125:10
      at Array.forEach (native)
      at Object.<anonymous> (node_modules/react-native/Libraries/BatchedBridge/BatchedBridgedModules/NativeModules.js:122:39)

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal repository on GitHub that we can npm install and npm test.
npm install jest babel-jest jest-react-native

jest --no-cache --coverage

"jest": {
    "preset": "jest-react-native"
  },

What is the expected behavior?
it should actually test
Run Jest again with --debug and provide the full configuration it prints. Please mention your node and npm version and operating system.
> jest --no-cache --coverage --debug

jest version = 16.0.1
test framework = jasmine2
config = {
  "haste": {
    "defaultPlatform": "ios",
    "platforms": [
      "android",
      "ios"
    ],
    "providesModuleNodeModules": [
      "react",
      "react-native"
    ]
  },
  "moduleNameMapper": [
    [
      "^image![a-zA-Z0-9$_-]+$",
      "GlobalImageStub"
    ],
    [
      "^[./a-zA-Z0-9$_-]+\\.(bmp|gif|jpg|jpeg|png|psd|svg|webp)$",
      "RelativeImageStub"
    ]
  ],
  "modulePathIgnorePatterns": [
    "/Users/chirag/Desktop/qsi/comlink/node_modules/react-native/Libraries/react-native/",
    "/Users/chirag/Desktop/qsi/comlink/node_modules/react-native/packager/"
  ],
  "preprocessorIgnorePatterns": [
    "node_modules/(?!(jest-)?react-native|react-clone-referenced-element)"
  ],
  "setupFiles": [
    "/Users/chirag/Desktop/qsi/comlink/node_modules/babel-polyfill/lib/index.js",
    "/Users/chirag/Desktop/qsi/comlink/node_modules/jest-react-native/build/setup.js"
  ],
  "testEnvironment": "/Users/chirag/Desktop/qsi/comlink/node_modules/jest-environment-node/build/index.js",
  "preset": "jest-react-native",
  "rootDir": "/Users/chirag/Desktop/qsi/comlink",
  "name": "-Users-chirag-Desktop-qsi-comlink",
  "testRunner": "/Users/chirag/Desktop/qsi/comlink/node_modules/jest-jasmine2/build/index.js",
  "scriptPreprocessor": "/Users/chirag/Desktop/qsi/comlink/node_modules/babel-jest/build/index.js",
  "usesBabelJest": true,
  "automock": false,
  "bail": false,
  "browser": false,
  "cacheDirectory": "/var/folders/6j/rqjprs4n687cstlp6rxgnlk40000gn/T/jest",
  "clearMocks": false,
  "coveragePathIgnorePatterns": [
    "/node_modules/"
  ],
  "coverageReporters": [
    "json",
    "text",
    "lcov",
    "clover"
  ],
  "globals": {},
  "mocksPattern": "__mocks__",
  "moduleDirectories": [
    "node_modules"
  ],
  "moduleFileExtensions": [
    "js",
    "json",
    "jsx",
    "node"
  ],
  "noStackTrace": false,
  "notify": false,
  "resetModules": false,
  "testPathDirs": [
    "/Users/chirag/Desktop/qsi/comlink"
  ],
  "testPathIgnorePatterns": [
    "/node_modules/"
  ],
  "testRegex": "(/__tests__/.*|\\.(test|spec))\\.jsx?$",
  "testURL": "about:blank",
  "timers": "real",
  "useStderr": false,
  "verbose": null,
  "watch": false,
  "collectCoverage": true,
  "cache": false,
  "watchman": true,
  "testcheckOptions": {
    "times": 100,
    "maxSize": 200
  }
}

node v6.4.0
npm  v3.10.3

using RN master branch. cc @cpojer

The error is caused due to this change in RN. It now expects the mock to not have the RCT prefix anymore

This bug happens also on a newly created test application:
react-native init testApp
cd testApp
jest

$ cat package.json
{
  "name": "********",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "15.3.2",
    "react-native": "0.36.0"
  },
  "jest": {
    "preset": "jest-react-native"
  },
  "devDependencies": {
    "babel-jest": "16.0.0",
    "babel-preset-react-native": "1.9.0",
    "jest": "16.0.2",
    "jest-react-native": "16.0.0",
    "react-test-renderer": "15.3.2"
  }
}

try jest-react-native@test and jest@test. We'll publish a new tagged release soon.

I'm still having this issue after updating versions.
"react": "15.3.2",
"react-native": "^0.36.1",
jest": "^16.0.2",
"jest-react-native": "^16.0.0",
Last release was 13 days ago, is there a workaround other than using an earlier version of react?
@cpojer

We'll publish a new tagged release soon.

Yes update to jest-react-native@test and jest@test

@edvinerikson cheers lack of understanding on my side sorry re cpojer's comment

@edvinerikson ,how to "update to jest-react-native@test and jest@test", my package.json is
"devDependencies": {
"babel-jest": "16.0.0",
"babel-preset-react-native": "1.9.0",
"jest": "16.0.2",
"jest-react-native": "16.1.0",
"react-test-renderer": "15.3.2"
}

@tigerohuang just change the version to test like so:
"jest-react-native": "test",

The latest version of jest-react-native should work just fine. Simply install the 16.1.0 version of it.

I still meet "ExceptionsManager.js:62Module name prefixes should've been stripped by the native side but wasn't for RCTStatusBarManager"  when I use newest version or test
"jest": "test",
"jest-react-native": "test",

need I "react-native init " a new project?

@tigerohuang I did an npm uninstall on both (npm uninstall --save jest-react-native & npm uninstall --save jest) then npm install --save again without the @test
I'm still having problems (with jest util) but am raising a new issue to this regard

@Scott-Allen ,I removed whole directory node_modules and npm install, it is same as uninstall and install --save

Looks like the issue still persist.. Can you please help ?

jest

FAIL  tests\index.android.js
● Test suite failed to run
Invariant Violation: Module name prefixes should've been stripped by the native side but wasn't for RCTStatusBarManager

  at invariant (node_modules\fbjs\lib\invariant.js:38:15)
  at genModule (node_modules\react-native\Libraries\BatchedBridge\BatchedBridgedModules\NativeModules.js:35:1)
  at node_modules\react-native\Libraries\BatchedBridge\BatchedBridgedModules\NativeModules.js:125:10
  at Array.forEach (native)
  at Object.<anonymous> (node_modules\react-native\Libraries\BatchedBridge\BatchedBridgedModules\NativeModules.js:122:39)

===============package.json============
{
"name": "MySampleConfig",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "15.3.2",
"react-native": "0.36.1",
"react-native-config": "^0.1.0"
},
"jest": {
"preset": "jest-react-native"
},
"devDependencies": {
"babel-jest": "^16.0.0",
"babel-preset-react-native": "^1.9.0",
"jest": "test",
"jest-react-native": "test",
"react-test-renderer": "^15.3.2"
}
}

@pugaldp : ISSUE RESOLVED:
I did an npm uninstall on both (npm uninstall --save jest-react-native & npm uninstall --save jest) then,
npm install --save-dev jest babel-jest jest-react-native babel-preset-react-native react-test-renderer

Trying to upgrade project with following package.json.  With "jest-react-native": "16.0.0" I get  Invariant Violation: Module name prefixes should've been stripped by the native side but wasn't for RCTStatusBarManager.
If I upgrade to "jest-react-native": "16.1.0 per @cpojer above, (specifically rm -rf node_modules & npm install & npm test I then get
~/projects/snowflakework/snowflake-pr184 (siemiatj-master)$ npm test

><EMAIL_ADDRESS>test /Users/barton/projects/snowflakework/snowflake-pr184
> npm run lint-validate && jest -u

><EMAIL_ADDRESS>lint-validate /Users/barton/projects/snowflakework/snowflake-pr184
> eslint .  --ignore-path .gitignore  --quiet

/Users/barton/projects/snowflakework/snowflake-pr184/coverage/lcov-report/prettify.js
  1:34     error  Infix operators must be spaced                                 space-infix-ops
  1:39     error  Missing whitespace after semicolon                             semi-spacing
  1:49     error  Missing space before function parentheses                      space-before-function-paren
  .....
  155:6   error  Extra semicolon                                                semi
  156:5   error  Extra semicolon                                                semi
  158:44  error  Extra semicolon                                                semi

✖ 2556 problems (2556 errors, 0 warnings)

npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "lint-validate"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>lint-validate: `eslint .  --ignore-path .gitignore  --quiet`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>lint-validate script 'eslint .  --ignore-path .gitignore  --quiet'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the snowflake package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     eslint .  --ignore-path .gitignore  --quiet
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs snowflake
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls snowflake
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/barton/projects/snowflakework/snowflake-pr184/npm-debug.log
npm ERR! Test failed.  See above for more details.
~/projects/snowflakework/snowflake-pr184 (siemiatj-master)$ node --version
v6.9.1
~/projects/snowflakework/snowflake-pr184 (siemiatj-master)$ npm --version
3.10.8
~/projects/snowflakework/snowflake-pr184 (siemiatj-master)$

The package.json follows:
{
  "name": "snowflake",
  "version": "0.2.0",
  "private": true,
  "jest": {
    "preset": "jest-react-native",
    "moduleNameMapper": {
      "\\./datepicker$": "<rootDir>/node_modules/tcomb-form-native/lib/templates/bootstrap/datepicker.ios.js",
       "\\./select$": "<rootDir>/node_modules/tcomb-form-native/lib/templates/bootstrap/select.ios.js"
    },
    "preprocessorIgnorePatterns": [
      "node_modules/(?!react-native|tcomb-form-native|apsl-react-native-button)"
    ],
    "collectCoverage": false,
    "verbose": true
  },
  "scripts": {
    "lint": "eslint . --fix --ignore-path .gitignore --format=node_modules/eslint-formatter-pretty",
    "lint-validate": "eslint .  --ignore-path .gitignore  --quiet",
    "test": "npm run lint-validate && jest -u",
    "start": "react-native start",
    "test:watch": "npm run test -- --watch",
    "test-chrome": "node-debug --preload false --nodejs --harmony jest --runInBand",
    "docs": "./node_modules/docker/docker -w -i src/ -o ../snowflake-pages "
  },
  "dependencies": {
    "apsl-react-native-button": "3.0.2",
    "immutable": "3.8.1",
    "key-mirror": "1.0.1",
    "parse": "1.8.5",
    "react": "15.4.2",
    "react-mixin": "3.0.5",
    "react-native": "0.41.2",
    "react-native-i18n": "1.0.0",
    "react-native-navbar": "1.6.0",
    "react-native-router-flux": "3.37.0",
    "react-native-simple-store": "1.1.0",
    "react-native-simpledialog-android": "1.0.8",
    "react-native-vector-icons": "4.0.0",
    "react-redux": "5.0.2",
    "react-timer-mixin": "0.13.3",
    "redux": "3.6.0",
    "redux-thunk": "2.2.0",
    "regenerator": "0.8.46",
    "tcomb-form-native": "0.6.5",
    "undefined": "0.1.0",
    "underscore": "1.8.3",
    "validate.js": "0.10.0"
  },
  "devDependencies": {
    "babel-core": "6.17.0",
    "babel-eslint": "7.0.0",
    "babel-jest": "16.0.0",
    "babel-preset-react-native": "1.9.0",
    "docker": "1.0.0",
    "eslint": "3.8.1",
    "eslint-config-standard": "6.2.0",
    "eslint-formatter-pretty": "1.1.0",
    "eslint-plugin-flowtype-errors": "1.4.1",
    "eslint-plugin-promise": "3.3.0",
    "eslint-plugin-react": "6.9.0",
    "eslint-plugin-standard": "2.0.1",
    "istanbul": "0.4.5",
    "jest": "16.0.1",
    "jest-react-native": "16.1.0",
    "react-addons-test-utils": "15.4.2",
    "redux-mock-store": "1.2.1"
  }
}

jest-react-native is outdated. Simply use react-native as a preset.

Same error with ✖ 2556 problems (2556 errors, 0 warnings)
Here is diff:
~/projects/snowflakework/snowflake-pr184 (siemiatj-master)$ git diff package.json
diff --git a/package.json b/package.json
index 92892ca..6aa8b59 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "version": "0.2.0",
   "private": true,
   "jest": {
-    "preset": "jest-react-native",
+    "preset": "react-native",
     "moduleNameMapper": {
       "\\./datepicker$": "<rootDir>/node_modules/tcomb-form-native/lib/templates/bootstrap/datepicker.ios.js",
        "\\./select$": "<rootDir>/node_modules/tcomb-form-native/lib/templates/bootstrap/select.ios.js"
@@ -62,7 +62,6 @@
     "eslint-plugin-standard": "2.0.1",
     "istanbul": "0.4.5",
     "jest": "16.0.1",
-    "jest-react-native": "16.0.0",
     "react-addons-test-utils": "15.4.2",
     "redux-mock-store": "1.2.1"
   }

Steps rm -rf node_modules & update package.json and npm install & npm test.

For completeness @cpojer I'm trying to merge:
https://github.com/bartonhammond/snowflake/pull/184

My bad, the syntax errors are coming from  "test": "npm run lint-validate && jest -u", the lint-validate.   Please ignore..

Thanks @cpojer - that worked

I am not using jest still got this error; can anyone help me to resolve the above problem ?


feat: added issue btns and respective forms

This PR solves the issue #13  , kindly review it and merge.

Thank you, that's look so good


during vcf reconstruction (germline filter) step, we're literally appending the same vcf header to all our files

related to #15
this is not ideal, we need INFO field to do any sort of coverage analysis

Fixed in #rohan-dev

Fixed by 48fd43fc4b6634fb1ec0b4d4e2286164125b9454.


Sync build scripts with packer-templates repo

Need to ensure that build scripts are in sync with those found in https://github.com/mrlesmithjr/packer-templates

Also need to update the preseed and kickstart scripts.


Update GCP docs to usable instances and zone

The current documentation describes instance and zone combinations as well as a GPU instance that are incompatible. The suggested instances are as close to the original as possible. The prices have also been updated to more accurately reflect the cost of running this. Finally the conda command needed to be updated, as it was giving an error using the current code. This is well documented in the forum (https://forums.fast.ai/t/platform-gcp/27375/703) and as an issue (https://github.com/fastai/course-v3/issues/493). Includes changing the zone because T4 and P100 are not supported in the previously listed zone; as such, this pull request will still fail (https://github.com/fastai/course-v3/pull/495).

Apologies for the very delayed merge of this PR. Would you mind fixing the conflict please, then I'll merge it.

Thanks for your patience. I think this will work now without issue.

Super!


Code release in 2024 or 2025?

The readme says: Code is expected in the first half of November **2025**. Stay tuned! which is hopefully a typo :P

Indeed!


Fix RenderView.paintBounds

It should account for the device pixel ratio
https://github.com/flutter/flutter/issues/16859

 but needs a test


May I ask for your input point cloud format

Hello @Gofinge, thank you very much for your open source project!
May I ask for your input point cloud format? If I want to use your backbone network model.py, the point cloud data format for a certain scene in my existing dataset is (N, 3+3), where N represents the number of points in the point cloud and 3+3 represents the xyz coordinate values and RGB values of each point. How do I convert to PTv3 network that requires input data format. I don't quite understand the ’data_dict‘ requirements you wrote in the model.py code. Can you teach me how to convert my data? Thank you!
def forward(self, data_dict):
        """
        A data_dict is a dictionary containing properties of a batched point cloud.
        It should contain the following properties for PTv3:
        1. "feat": feature of point cloud
        2. "grid_coord": discrete coordinate after grid sampling (voxelization) or "coord" + "grid_size"
        3. "offset" or "batch": https://github.com/Pointcept/Pointcept?tab=readme-ov-file#offset
        """
        point = Point(data_dict)
        ........

Hi, sorry for the late response. Seem that your point clouds already contain "coord" and "color". Then construct as dictionary that contains the following assets:
coord: point cloud coordinate
feat: concat coord and color
offset: https://github.com/Pointcept/Pointcept?tab=readme-ov-file#offset
grid_size: we use 0.02 for indoor scenes.

The feed it to PTv3, it should work.


Deletion nomination sent to my own page, instead of the uploader's page

Steps to reproduce:

Go to Explore
Go to the Mobile uploads tab
Find a picture that you want nominate for deletion
Push the button to nominate it for deletion

Expected: Among other things, a message is sent to the uploader
Actually: That message is sent to my own talk page. Example<EMAIL_ADDRESS>and nothing sent by my account to https://commons.wikimedia.org/wiki/User_talk:Oleballinazz

#2827 talked about two dialog box for deletion .
if you look at the dialog box i think the first dialog box is for when someone is trying to nominated other's upload for deletion, and the second one is for the deletion on the picture you uploaded( according to the option's that can be selected). @nicolas-raoul could this be the reason?

Great find!
Indeed part of the code has been written for own picture deletion, and then probably reused for review without thinking about this detail.
So now you know what to fix :-)
By the way, other parts of the workflow will probably be different, for instance if you propose for deletion the picture of someone else you must write on their talk page, but if it is your own picture then it does not make sense to post on your own talk page.

are username unique. i mean how can i know that the user uploaded the picture or it is uploaded by someone else.

Yes, usernames are unique.

ok . i think i know what i need to do . i need to check the author name with the current account name .
and if is true i have to show the drop down box dialog box otherwise the dialog box with input text .
correct me if i am wrong.

Yes sounds good :-)
And also, send a message to the right talk page, and only if the uploader is not me.

sorry to ask. but i need help mediawikiapi
https://github.com/commons-app/apps-android-commons/blob/master/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java#L106-L113A
can you explain what these lines are doing

Hi @sherlockbeard . Here is the API documentation: https://www.mediawiki.org/wiki/API:Main_page and sandbox: https://www.mediawiki.org/wiki/Special:ApiSandbox . I hope these helps.

@neslihanturan  @nicolas-raoul
https://github.com/commons-app/apps-android-commons/blob/master/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java#L113
in this user talk is set to session.gecurrentAccount().name i think i should change it to media.getcreater but i don't know how to check the result .

@sherlockbeard do you mean you don't know how to test your implementation?

@neslihanturan. the problem is i don't know about the stuff of usertalk on wikimedia and don't know how to produce it. i have fixed up the issue of dialog box.

Hi @sherlockbeard , you can find several documentation about what the talk page is and what is nomination for deletion etc. Also, you can use beta flavor of our app for nominating for deletion some images and debug to understand what is going on. For learning what beta flavor is please make sure you read our contributor docs.

https://commons.wikimedia.org/wiki/User_talk:Sherlocktest (uploader)
https://commons.wikimedia.org/wiki/User_talk:Sherlocktest2 (nominator )
https://commons.wikimedia.org/wiki/File:Sherlocktest.jpg (file page)
@nicolas-raoul

The place where the message has been sent is correct, thanks for fixing! :-)


Simplify logger package

The logger creation never actually errors. There is no point in a
builder object that is only used to call .Build() right away and
contains no data.
Refs: SDA-6206

/lgtm


Pilot writes to home directory of executing user during verify_proxy

In jobs running in isolated / containerized environments as users with non-existing or read-only home directory, the following warnings are observed:
2021-08-10 14:33:48,037 | DEBUG    | pilot.user.atlas.proxy           | interpret_proxy_info      | stderr = /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/createUserASetup.sh: line 44: /home/centos/.asetup: No such file or directory
WARNING: Failed to create directory /home/centos/.arc
WARNING: Unable to create /home/centos/.arc directory.
WARNING: Failed to create directory /home/centos/.arc
WARNING: Unable to create /home/centos/.arc directory.

Indeed, in case the home directory exists, files are created there and read from there, potentially breaking job isolation, and of course these errors are misleading when running with dummy users.
I traced these errors back to verify_arcproxy:
https://github.com/PanDAWMS/pilot2/blob/d9730778084568dfa8196f9d0acfb5122e94f0b4/pilot/user/atlas/proxy.py#L77
The issue is caused in two places:

/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/swConfig/asetup/createUserASetup.sh is called as part of setupATLAS, and creates an .asetup file in the user home directory.
arcproxy itself parses /etc/passwd and extracts the home directory, then creates its config files in there.

The first could in principle be worked around by adding unset HOME to the envsetup string (even though this is not a nice workaround), or adapting ALRB itself (but since ALRB is often used interactively, I presume other such cases may come up in the future).
The latter can not easily be solved, since arcproxy does not have a --no-config option nor does it accept arcproxy -z /dev/null. I wonder if flipping the order (i.e. preferring voms-proxy-info) is a viable option, now that SL6 is gone?

Hi,
I think this goes beyond the pilot and I would like to add a few people who do not have GitHub accounts. I'll create a mail thread instead for this.
Cheers, Paul

Hi,
I see, indeed this may also be interpreted as something requiring a change in ALRB. The issue has been observed by my colleagues at KIT running in containerized environments, so we should also add them to the discussion. I'll send you a mail with their mail addresses shortly (after confirming with them who wants to join in) — in fact, there's also a related issue in ALRB which we can then maybe include from the start.
Cheers and thanks,
Oliver


Timeline tracing ui

Related PR: #820
Implement the UI for timeline tracing, similar to the Chrome DevTool Performance panel.

[x] Overview Chart
[x] Detail Chart
[x] Info tables

Currently implement a draft version for Overview chart, support:

select the window
drag the window

Progress:

research how the datadog draw the flamegraph
implement a draft detail chart to draw the flamegraph as the same way  as datadog

How it looks in our page (some spans are drawn incorrectly):

How it looks in the datadog:

After fixing the incorrectness, will add UX as the same as Chrome DevTool.

Progress: (90%)

Support wheel, drag, click, hover in the detail chart:

Remain work:

refine style and color
use table to show selected span information
show call stack for selected span

Know issues:

the page scroll bar will affect the canvas container size, will fix it later

Progress (98%)
Refine the code, fix the incorrect algorithm to calculate depth and height in some cases, now the chart looks exactly the same as the datadog (even better than datadog in somewhere)
Full view:

How it looks in datadog:

Write an article to record the whole implementation in case we forget it later: https://github.com/baurine/gatsby-blog/blob/master/src/posts/2020-12-24/2020-12-24-draw-flamegraph-canvas.md


Fix the session not passed in JSON anymore

Fix the session not passed in JSON anymore but present in cookie headers
related to #9

Hey! Thanks a lot for taking the time to look into this.
Let's merge 👍


Add SegmentProdGrad

Fixes https://github.com/tensorflow/tensorflow/issues/41090.

@rohan100jain Can you please take a look on this PR ? Thanks!


Feature request: turn off server

Is your feature request related to a problem? Please describe.
When I'm not actively using the server I'd like the server to be disabled to save battery/CPU
Describe the solution you'd like
When Obsidian starts there should be no slides server running on port 3000 (until the Advanced Slides: Show Slide Preview command is run). And also a command to manually shut down the server.
Describe alternatives you've considered
Uninstalling advanced slides when not actively working on a presentation

Additionally, (or maybe as a separate issue?), please consider changing the default port from :3000, as that is the default for react apps, and most nodejs apps. Since the slides server runs unmanaged in the background, it's a bit intrusive when using other tools that use the port and it's unlikely to be debugging the slides server

fyi or anyone having issues with the port number, you can change the port used from the plugin settings page. Which doesn't resolve the issue of the server running all the time but fixes the port conflict issues with other js apps

This should be fixed by https://github.com/MSzturc/obsidian-advanced-slides/pull/207#event-10382352630


How to inject RouterState other than "router" key

I'm wondering how can I inject router's redux state other than router key when I use connectRouter().
In case of react-router-redux, this can be done by adding combining reducer manually.
import { routerReducer } from "react-router-redux";
import { combineReducers } from "redux";
import fooReducer from "./foo"

export default combineReducers({
    foo: fooReducer,
    someRouterStateKeyOtherThanRouter: routerReducer,
});

As far as I can see it is not possible because the "router" key is hard-coded and is used to find the data at the root of the store, see this line of code.
So the store shape should always look like this:
{
  foo: '',
  router: {
    location: {
      pathname: '/',
      search: '',
      hash: ''
    },
    action: 'POP'
  }
}

That would be a nice to have feature.

@supasate it would be great to have an export with the router state key.

v5.0.0 supports this. (Beware of the breaking change. Please see the release note https://github.com/supasate/connected-react-router/releases/tag/v5.0.0)


Try enabling some fsharpqa tests in AppVeyor CI

We adjusted the fsharpqa tests so they wouldn't need full Perl multi-processor support.  Giving a small selection of them a whirl in this PR.
(This motivates me to see all th test runers rewritten in F# :) )

Closing as this didn't work - some missing Perl functionality is still required, see the log at https://ci.appveyor.com/project/KevinRansom/visualfsharp-radou/build/<IP_ADDRESS>


[Enhancement]: add uncertainty to Allan deviation plots

Instrument
Light curve fitting (Stages 4-6)
What is your suggestion?
For Allan deviation plots, we should incorporate two changes from Cubillos et al 2017

uncertainty in the estimated rms (Appendix C)
to predict the rms, use Equation 8 of Cubillos et al (see their Fig 1 for a good example)

Error traceback output
No response
What operating system are you using?
No response
What version of Python are you running?
No response
What Python packages do you have installed?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Yes, thanks so much for adding this issue @lkreidberg! I have all the code already written in my spitzer SPCA package and should hopefully be able to port that over quite easily


Move scarb installation to CI

Describe your changes
Before: scarb was installed using compileContracts.sh
After: scarb is installed in CI

Linked issues

Closes #365
Breaking changes

[ ] This issue contains breaking changes

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

Project coverage is 69.26%. Comparing base (d28b008) to head (93449e3).
Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #465      +/-   ##
==========================================
- Coverage   71.12%   69.26%   -1.86%
==========================================
  Files          75       75
  Lines        3338     3254      -84
  Branches      367      361       -6
==========================================
- Hits         2374     2254     -120
- Misses        798      843      +45
+ Partials      166      157       -9

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

Moving the discussion to #468 here as the change is related  both to starknet-foundry and scarb


Fix yaml rendering and travis ci for latest Chef 16.x

Upstream chef/chef introduced changes that broke default .to_yaml
behavior used in agent and backend resources.
As discussed in the related issues using YAML.dump will ensure the
library autoloads correctly. Switched to this method instead of using
requires for consistency.
fixes #104
refs:

https://github.com/chef/chef/issues/10470
https://github.com/chef/chef/issues/10492

Pull Request Checklist
Is this in reference to an existing issue?
Yes. Fixes #104
General

[x] Update Changelog following the conventions laid out here

[x] Update README with any necessary configuration snippets

[x] Cookstyle (rubocop) passes

[x] Foodcritic passes

[x] Rspec (unit tests) passes

[x] Inspec (integration tests) passes

Purpose
Fix issues with latest Chef 16.x releases
Known Compatibility Issues
None

Build is failing because of a travis issue it looks like, tests pass locally

That sounds like we need to add their key for apt to accept it. Have we tried this? https://docs.chef.io/packages/#debian--ubuntu

That sounds like we need to add their key for apt to accept it. Have we tried this? https://docs.chef.io/packages/#debian--ubuntu

I figured, although we didn't have to do that previously I thought. Will update the config on this PR

Tested the chef instructions locally using docker ubuntu:18:04 https://docs.chef.io/packages/#debian--ubuntu  and get:
E: The repository 'https://packages.chef.io/repos/apt/current bionic Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Strange that we have never hit this before. Going to test using https://docs.chef.io/packages/#chef-software-install-script install method in CI env

@majormoses fixed here.
I left it out but we should probably remove foodcritic from ci in the future per https://blog.chef.io/goodbye-foodcritic/

Squashed the in between commits while testing CI adjustments

Don't usually like to merge my own stuff, but I'll merge this one since it fixes broken travis ci and Chef 16 compatibility.

fyi @cwjohnston @calebhailey

released: https://supermarket.chef.io/cookbooks/sensu-go/versions/1.2.0

Thanks, @webframp

Thank you too @majormoses 🙌


Disabling Hitsounds/Effects

Is your feature request related to a problem? Please describe.
Not really, this is more based on the choice of the Beatmap and if the Player wants it or not.
Describe the solution you'd like
Disabling the general Hitsounds (This can be done by making Effects Volume 0%) or just from the beatmap which is done via disable beatmap hitsounds.
Link to a Reddit post talking about it: Click Me
This could be done by adding a slider or radio system with three options (Normal, No Custom Hitsounds, Off)
Additional context
I just posted this cause two people requested it on the discord.

Added in v0.2.3


Revert "Revert "Update nvcomp to 2.3.2 (#209)" (#210)"

This reverts commit 7a5c4295048b19834fcc26fcd72d4e615c0d1370.
This should not be merged yet. I'm going to open a cudf PR against this to make sure everything works before we merge.

@gpucibot merge


make_uri: Use join rather than set_path

This allows the path of the base_uri to be kept, and to use the full power of the join function (like relative paths, etc).
That is useful if an API moves, changes subpath, etc. E.g. if the api goes from / to /v1.
Example
#[derive(Debug, Deserialize)]
struct HttpBinAnything {
    method: String,
    url: String,
}

impl RestPath<u32> for HttpBinAnything {
    fn get_path(param: u32) -> Result<String, Error> {
        Ok(format!("{}", param))
    }
}

fn main() -> Result<(), Error> {
    let mut client = RestClient::new("http://httpbin.org/anything/")?;
    // Will query http://httpbin.org/anything/42
    println!("{:?}", client.get::<u32, HttpBinAnything>(42)?);
}

Thanks for the contibution! This is a good improvement and will make the base url usage more flexible as you said.


confused by the ocaml5 images on Docker Hub

I just looked at a CI run for a CI script using alpine-3.15-ocaml-5.0, and I found it surprising.
This ocaml-5.0 image is not actually using a 5.0 release, but it seems to use the 5.0 maintenance branch. Relevant command:
RUN /bin/sh -c opam switch create 5.0 --packages=ocaml-variants.5.0.0+trunk # buildkit

I expected to get the 5.0.0 release instead (more precisely, from the name "5.0", the latest 5.0.x release, which currently is 5.0.0). In fact it looks like alpine-3.17-ocaml-5.0 uses 5.0.0, as well as alpine-ocaml-5.0 which I assume points to the latest alpine--ocaml-5.0 image.
Questions:

There is a naming convention for opam switches to tell if it is pointing at a trunk branch or at an actual release. Why don't docker image names follow this convention as well? How can users tell whether they get a stable switch or not? (Correct me if I'm wrong, but I assume that +trunk switches install the latest commit of the development-or-maintenance branch after each repo+switch update, which sounds like not the right default for most projects using OCaml CI.)
Is the image alpine-3.15-ocaml-5.0 never going to be updated and forever point to 5.0.0+trunk, or is it an oversight that alpine-3.17 uses the release but alpine-3.15 was not updated? (Both policies would make sense to me.)
In the actual run of the CI image that I observed yesterday, the output of ocamlc --version was 5.0.0+dev10-2022-11-25. This is not the result one would expect from a compiler using ocaml-5.0.0+trunk -- at least on the actual upstream repository the current version output is 5.0.1+dev0-2022-12-15). This makes sense if this image was produced a year ago and is not intended to be updated. But then: how can I tell which version of OCaml (ideally, for non-release configurations: which git commit) a specific CI image is doing? Is this information available elsewhere, or is the easiest way to download and load the image and somehow inspect it? (Bonus points if you know how to get the git commit from the installed switch data.)
There are also some -5.00 images, they seem to come from an older naming convention? (At first I assumed that maybe those were 5.0.0 images as opposed to some sort of rolling-5.0-release imaages.)

Is there some documentation somewhere of the expectations and best practices with using ocaml/opam CI images?

I can't remember how you get it from the command line, but the information in the Hub at https://hub.docker.com/layers/ocaml/opam/alpine-3.15-ocaml-5.0/images/sha256-c30eb992e95bced3e82ef1ec7e8fa46f9226f7628b848f98b0d485b688112578?context=explore reveals that image was written on Nov 26 last year, before the release of OCaml 5.0.0. The images track the +trunk package up to the first release when they switch to ocaml-base-compiler - at present, therefore, the 5.1.0 tags track the OCaml trunk branch, this will switch to tracking the OCaml 5.1 branch when that's created and then it'll switch to the 5.1.0 tag once it's released.
See also #57 for tracking what we should do with old distributions.
The metadata for keeping up with all this is in ocurrent/ocaml-version and ocurrent/ocaml-dockerfile which is what both the base image builder and ocaml-ci use to keep track both of what images should be available in the hub, and which versions of OCaml they'll contain.

Do images ever get rebuilt after they are published for the first time, or is the intention that they remain frozen forever?
I'm a bit nervous about the idea that it is so easy for users to use an image that does not correspond to an upstream release, without any clear signalling. Right now, a search for ocaml-5.0 suggests 97ossible images, 34 of which usee the actual 5.0 release, the other 63 have a weirdly outdated development versions.
(In contrast, as of course you know, the opam repository uses +trunk for maintenance versions, with a "beta" constraint to hide not-released-yet versions by default.)
In case it can help, here is the sort of organization that I would have expected -- as someone who knows very little about Docker, nothing about ocurrent etc. I am not saying that the docker images should move to this, but I don't understand the reasons for the current state and pointing out issues in my mockup alternative could be a way to explain the existing choices.

Have images called <distribution>-ocaml-5.0+trunk (I would find +dev more natural but opam uses +trunk) for development versions.
Those +trunk images get rebuilt daily (or whatever works) to always point to the "current" development version when you run them.
release images called <distribution>-ocaml-5.0 on the first 5.0 release, that get rebuilt to point to the latest 5.0.x release

Users would use ocaml- images to test against a given version (or just install several switches on top of a given image and use _opam caching), and ocaml-+trunk in the rare situations (for most projects) where they want to check compatibility against an upcoming release.
(I was going to say that this gives the property that the ocaml part of image names coincides with switch names, but in fact we don't have "5.0 switches that point to the latest 5.0.x release"; I would like to have them!)

@gasche wrote:

(I was going to say that this gives the property that the ocaml part of image names coincides with switch names, but in fact we don't have "5.0 switches that point to the latest 5.0.x release"; I would like to have them!)

This is the key missing name.  If we had this, then all of your other points would be easier, since the images currently track the release branch and not the release (deliberately, as their prime purpose is CI, and a very specific release can be built from within the image if desired).

I created an upstream issue on opam-repository to discuss "latest patchset release" switch names.
https://github.com/ocaml/opam-repository/issues/22966
I originally thought that they should be named 5.0, but actually I think that 5.0.latest may be a better name, and could also be used in image names.

I don't understand why we are deliberately using moving-target switches for the purpose of CI. Can you explain?

With Docker, if you want a particular reproducible hash, then you query the image tag for the sha256 id and use that, resulting in a pinned image that wont change.
But if you just want to test with 'the latest 4.12', then the current tag gives you that and is resolved to a concrete sha256 hash at the point you pull it.

On naming, I think a reasonable convention (which is currently used) is that 5.0 or 4.12 represent the latest version (that is, they track the 5.0 or 4.12 branch in OCaml git).  And something like 5.0.0 or 4.12.1 represent a tag in Git, and are not moving.
Or to put it another way, it's good to map existing git branches and tag names to the corresponding image names.

My problem with the current status is that I don't think users realize, when they see an image called "ocaml-5.0", that they may in fact be using some random in-development state coming from before the 5.0 release, in an unknown state of software quality. I find this mildly worrying. I guess I don't agree with this design choice. I think it should be hard for users to use an image that does not correspond to any OCaml release, they should be sure that this is what they want.
I also don't know of a way to actually tell from the image which git commit this in-development state corresponds to.

it's good to map existing git branches and tag names to the corresponding image names.

At the time of writing there are 54 images with ocaml-5.1 in their name, yet no 5.1 branch exists in the upstream OCaml repository.

ocaml-5.0+latest could also work I guess.

@gasche - what caused you to select alpine-3.15? alpine-ocaml-5.0 is always the latest version of alpine on the latest release of 5.0… you only landed on a development release through selecting on old alpine release? The way those tags are setup is specified on https://hub.docker.com/r/ocaml/opam?

With respect to older distributions and out of date tags, that needs to be fixed by pushing 'deprecated' containers to those tags: see https://github.com/ocaml/infrastructure/issues/7 and https://github.com/ocurrent/docker-base-images/issues/57.  We shouldn't let the tail wag the dog and change our naming scheme (perfectly good) because of an incomplete image builder (easily fixed, if someone could get around to it).


How to install from private repository without leaking credentials

I have been looking through the docs and existing issues but have not been able to find any documentation on the following problem:
I need to install a package from a private GitHub repository, therefore I have something like the following in my requirements.in, where I am using an environment variable GITHUB_AUTH_TOKEN as an auth token.
git+https://${GITHUB_AUTH_TOKEN}@github.com/username/my-package@somehash#egg=my-package

The problem with this is that the auth token is evaluated and exposed in the output requirements.txt file.
Does pip-compile support this, and if so what is the recommended solution?
Thanks in advance!

Hello @rossgray,
Thanks for the issue! Currently, pip-tools does not support environment variables in URL parts and always expands them in compiled packages list. The tracking issue for the feature is here: https://github.com/jazzband/pip-tools/issues/966.


Create F2F agenda - 28-29 July 2016

https://github.com/w3c/WebPlatformWG/blob/gh-pages/meetings/16-07-28-29SW.md is the official place for the agenda, but I find it much easier to group-discuss these things in an issue.
Once things settle, I'll move the details into the official doc.
The structure last time seemed to work well, so I don't see any reason to change it.
Day 1

Hellos & updates/questions from vendors - This may be longer than usual as we have some new faces from Apple joining
Outstanding v1 issues

Day 2

Foreign Fetch
Eliminating startup latency
Multiple SW scopes
Checking modules & importScripts as part of regular update checks

These are just my suggestions, they aren't complete, and are totally up for debate.

Lets talk about https://github.com/whatwg/fetch/issues/303.

We should probably also go thru the issues without milestones to make sure they shouldn't be v1 issues. But maybe it makes more sense for somebody to do that before the meeting.

@jakearchibald @wanderview https://github.com/whatwg/fetch/issues/245 doesn't seem to be here? You mentioned on Twitter it will be likely discussed.

I won't be attending, but a plea for https://github.com/whatwg/storage/issues/31 to get some attention.

@mkruisselbrink done

To future-me: here's the script for getting issue data in the format above:
function getAllIssues(url) {
  const allIssues = [];

  return fetch(url).then(function processResponse(response) {
    const nextLink = response.headers.get('link').split(',').find(a => a.trim().endsWith('rel="next"'));
    const nextUrl = nextLink && nextLink.replace(/(^\s*<|>;.*$)/g, '');

    return response.json().then(data => {
      allIssues.push(...data);

      if (nextUrl) {
        return fetch(nextUrl).then(processResponse);
      }
      return allIssues;
    });
  });
}

getAllIssues('//api.github.com/repos/slightlyoff/ServiceWorker/issues?milestone=2').then(issues => {
  window.issueStr = issues.map(issue => {
    return `  * [#${issue.number} ${issue.title}](${issue.html_url})`;
  }).join('\n');
});

We should look at how many SWs are using global state. WebKit are interested in launching multiple instances of the SW in the fetch process.

F2F: We need to gather the use-cases, and find out how we can solve them. We need to avoid getting locked into one worker instance.

F2F:

Lots of developers aren't keen on this
Sounds like something browsers can do, eg provide a button on the failure page "Retry without SW" (worded in a way that users understand). Or if it keeps failing, the browser could auto unregister the SW

Thanks to everyone who attended, and especially @wanderview and Mozilla for hosting!


fix/request flag in curl string

Description
allow request flag for method types in a curl string
example
curl --location --request PATCH 'http://localhost:8000/ping' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'x-gateway-apikey: xxxxxxxxxx' \
--data '[
    {
        "op": "replaceOrAdd",
        "path": "/fields/clientPreferences/digitalDocumentsPreferences/digitalSaleReceiptPreference",
        "value": true
    }
]'

Contribution Checklist:

[x] The pull request only addresses one issue or adds one feature.
[x] The pull request does not introduce any breaking changes
[ ] I have added screenshots or gifs to help explain the change if applicable.
[x] I have read the contribution guidelines.
[ ] Create an issue and link to the pull request.

Closing this since this PR has already been merged as a part of another PR


Ubuntu not generating srt files correctly(only 5% accuracy)

Hi,
thanks for the great library :+1:
Installed autosub with python 2.7 in ubuntu 14.04 and using ffmpeg. Autosub is generating subtitle files, but the subtitle files are not accurate, its about only 5% accuracy.
I used the command as 'autosub videofile.mp4'.
Tried this video : https://www.youtube.com/watch?v=Ya6Av7uecbg
and the output is
President Obama Addresses the Nation on the BP Oil Spill.txt
Do I need to install/setup any additional libraries/plug-ins. Is any specific ffmpeg version needed. Is any machine configurations needed to change.
Please help.

Hilarious subtitle from that video!
I tested the same video using autosub on Ubuntu 16.04. I get less than a 5% error rate. I am using ffmpeg version 2.8.11.
Are you sure you put English as the input for the audio?

Hi,
thanks for your reply. Thanks for the great library.
We got the correct results now. We are using google cloud speech apis now.
Thanks,
Harikrishnan TB
Q*Burst | *www.qburst.com
Skype: harikrishnan.qburst
On Fri, Feb 17, 2017 at 10:25 AM, Kevin Spring<EMAIL_ADDRESS>wrote:

Hilarious subtitle from that video!
I tested the same video using autosub on Ubuntu 16.04. I get less than a
5% error rate. I am using ffmpeg version 2.8.11.
Are you sure you put English as the input for the audio?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/agermanidis/autosub/issues/49#issuecomment-280552387,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJIBKtf1N_NIYkBJnRJ6o3H9jinnCAkcks5rdShWgaJpZM4Lmdlt
.


[Bug] Key permission check is too strict

🐛 Bug Report
I'm calling this a bug as the logic is... strange.
1. The private key file
go-rwx is good, but the current code forces it to be 600. 400 would fail the check, which is not reasonable. x shouldn't really matter here (although it shouldn't be there in the first place).
2. The folder that the key file resides in
Why?

Steps to Reproduce
Run the node with private key file, with and without thinking too much about the permission. Most likely you will still hit the check no.2.

Expected Behavior
go-rwx on the key file itself should be more than enough. You have other problems if the file content could be leaked with that permission.

Your Environment

Notes
If the folder has sticky bit set, it's possible the key file could be deleted by others, but the key content, provided that the correct file permission is set, should be safe.
NCC report E009544 is not public, so I don't know the rationale behind the folder permission thing. I've never seen such requirements before though.

Well, the rationale is to be similar to ssh. The .ssh folder has to have 0700 permissions, private key 0600 and public keys 0644 or it won't work.
On the file, x doesn't make any sense, it's not executable (well, it really shouldn't be). Arguably 0400 would also be fine (but why would you take away write permission from yourself).
I'm still inclined to close this, as the permissions we require seem correct to me.

Guess I'll just comment out the check for my own nodes as I'm putting the key to ~ and don't want to change the permission just for the node.


Initialize user, (technical) design, and build/deploy documentation

Initialize user, (technical) design, and build/deploy documentation

see #57 #58 #59


[Feature Request]: Demo for page route

Description
Hi ,
Is there a example how to route different pages with navigator ? I am newbie for reactjs . how to corporate  App-layout with react-dom ?
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate requests

Hello @kkyon,
we don't have an example for routing, you can use any react routing library to achieve that.
our library does not have any constraints on which method you chose for routing


Use non-atomic operations for ST counters

The use of atomic operations slows down the ST counters significantly.
For example take this code:
programCnt :: Cnt.Counter s -> ST s ()
programCnt cnt = do
  n <- Cnt.get cnt
  if n <= 0
     then pure ()
     else do
       Cnt.set cnt $! n - 1
       programCnt cnt

countdownCnt :: Int -> Int
countdownCnt n = runST $ do
  cnt <- Cnt.new n
  programCnt cnt
  Cnt.get cnt

main = putStrLn . show $ countdownCnt 100000000

The timing is:
Total   time    1.341s  (  1.350s elapsed)

Compare that with:
programST :: STRef s Integer -> ST s ()
programST ref = do
  n <- readSTRef ref
  if n <= 0
    then pure ()
    else do
      writeSTRef ref $! n - 1
      programST ref

countdownST :: Integer -> Integer
countdownST n = runST $ do
  ref <- newSTRef n
  programST ref
  s <- readSTRef ref
  pure s

main :: IO ()
main = putStrLn . show $ countdownST 100000000

Which takes only this long:
Total   time    0.311s  (  0.320s elapsed)

Actually, it can go wrong if you use stToIO:
import Control.Monad.ST
import Control.Monad.ST.Unsafe
import Control.Concurrent
import Data.STRef

programST :: STRef s Integer -> ST s ()
programST ref = do
  n <- readSTRef ref
  if n <= 0
    then pure ()
    else do
      unsafeIOToST yield
      writeSTRef ref $! n - 1
      programST ref

countdownST :: Integer -> IO Integer
countdownST n = do
  ref <- stToIO (newSTRef n)
  forkIO $ stToIO (programST ref)
  stToIO (programST ref)
  s <- stToIO (readSTRef ref)
  pure s

main :: IO ()
main = do
  putStrLn . show =<< countdownST 1000000

(The unsafeIOToST yield is only to make it more likely that weird concurrent interleavings occur)
Compiling with ghc -O2 T.hs -threaded and running with ./T +RTS -N2 sometimes gives me unexpected results:
$ ./T +RTS -N2
129

$ ./T +RTS -N2
100

Although, I have no idea why the numbers are positive. I would have certainly expected negative numbers.

The use of atomic operations slows down the ST counters significantly.

Regarding atomicity - I like to think taht point of this package is to atomic operations. In other words the operations are either atomic or they're not provided. As a nice bonus the operations are pretty fast compared to IORef, most likely due to unboxed nature of counters.
For the ST monad one can argue that each ST execution will necessarily happen in the same haskell thread of execution but it's definitely possible to try to overcome that and unsafely coerce ST to run across multiple threads and this package aims to do atomic operations ever in that case.

For example take this code:

I'm struggling to reproduce your numbers. Could you please run my benchmark below and share what you get?
#!/usr/bin/env cabal
{- cabal:
build-depends:
  , atomic-counter
  , base
  , tasty-bench
-}

{-# LANGUAGE BangPatterns        #-}
{-# LANGUAGE ImportQualifiedPost #-}

module Main (main) where

import Control.Concurrent.Counter.Lifted.ST qualified as Cnt
import Control.Monad.ST
import GHC.STRef

import Test.Tasty.Bench

programCnt' :: Cnt.Counter s -> ST s ()
programCnt' cnt = go
  where
    go = do
      old <- Cnt.sub cnt 1
      if old <= 0
      then pure ()
      else go

countdownCnt' :: Int -> Int
countdownCnt' n = runST $ do
  cnt <- Cnt.new n
  programCnt' cnt
  Cnt.get cnt

programCnt :: Cnt.Counter s -> ST s ()
programCnt cnt = do
  n <- Cnt.get cnt
  if n <= 0
     then pure ()
     else do
       Cnt.set cnt $! n - 1
       programCnt cnt

countdownCnt :: Int -> Int
countdownCnt n = runST $ do
  cnt <- Cnt.new n
  programCnt cnt
  Cnt.get cnt

programST :: STRef s Int -> ST s ()
programST ref = do
  n <- readSTRef ref
  if n <= 0
    then pure ()
    else do
      writeSTRef ref $! n - 1
      programST ref

countdownST :: Int -> Int
countdownST n = runST $ do
  ref <- newSTRef n
  programST ref
  s <- readSTRef ref
  pure s

main :: IO ()
main = do
  let n :: Int
      !n = 100000000
  defaultMain
    [ bench "ST" $ nf countdownST n
    , bench "Counter" $ nf countdownCnt n
    , bench "Counter'" $ nf countdownCnt' n
    ]

Here's what I'm getting:
$ ./Main.hs
All
  ST:       OK (6.63s)
    2.204 s ±  92 ms
  Counter:  OK (3.93s)
    1.970 s ±  31 ms
  Counter': OK (2.12s)
    706  ms ± 7.9 ms

All 3 tests passed (14.66s)

For comparison, I added a third version of the problem you proposed that uses the sub function to decrement the counter. It seems to be faster than STRefs on my setup, I'm curious how it would do on yours.
Use of get and set is fine but the primary use case I envisioned for this package is to use the rest of the functions, like add, to do atomic updates from different threads of the same counter.

Actually, it can go wrong if you use stToIO:

I'm not sure what you mean by wrong here. You probably meant to run atomic counters with stToIO but your example uses STRefs which are not atomic and can explain some other puzzling behaviour you observed.

Although, I have no idea why the numbers are positive. I would have certainly expected negative numbers.

Numbers are positive because your update functions stop subtractions once the counter reaches 0 and counters starts with a positive value of 1000000.
It's interesting that you sometimes get non-zero result whereas I seem to always (having tried less than 10 times though) get 0 in the end. However I think that's explainable too: you start thread with forkIO but you never wait for it to finish. Scheduler can make it so that when stToIO (programST ref) in main thread finishes the forked thread is woken up and gets to do some work, then it gets put to sleep and the main thread gets to read intermeadiate value of the counter.

I'm getting these times:
All
  ST:       OK (1.89s)
    270  ms ±  20 ms
  Counter:  OK (3.32s)
    1.660 s ±  28 ms
  Counter': OK (2.90s)
    966  ms ±  28 ms

Note that GHC 9.4.4 has a bug which causes the ST implementation to significantly underperform: https://gitlab.haskell.org/ghc/ghc/-/issues/22764, so I used 9.4.3 to compile this benchmark.

RE: the possibility of unsafely coercing, fair enough, this package is called atomic-counter after all. Maybe a note in the documentation about STRef probably being faster would be good enough (if you can also reproduce my 9.4.3 timings).
I didn't think of using sub in that way. Using the get and set operations is not essential to me. That was just the first thing that I could think of.

I'm not sure what you mean by wrong here.

I meant that my suggestion of using non-atomic operations in ST can go wrong even with "safe" functions like stToIO.

Numbers are positive because your update functions stop subtractions once the counter reaches 0 and counters starts with a positive value of 1000000.

Note that the programST function doesn't reset the counter to 1000000, so it can't just be that the main thread finishes before the forked thread.
What I think might be happening is that at some point the forked thread reads the value, then the main thread does 100 iterations reaching the end but staying before the last read, then the forked thread writes the old number 100, and only then does the main thread read the final value.
Maybe you're never getting nonzero also because of that same bug in 9.4.4? The bug is that the compiler adds an extra fence, so that could prevent the race condition.

Thanks for bringing this up and for providing link to the relevant GHC issue. I was not paying much attention to how GHC made IORefs work better in the concurrent setting.
I managed to reproduce your numbers with 9.4.3. It seems some fixes are still in the queue for https://gitlab.haskell.org/ghc/ghc/-/issues/22764 so it's interesting to see how future GHC will perform.
I extended readme with results of single-threaded comparison and a suggestion to not expect much from this package in a single-threaded setting.


Add hbbtOfLight's file

created a branch, created a file and made a commit, and opened a pull request


Does Azure OpenAI has auto-retry policy for certain error codes?

Library name and version
Azure OpenAI
Query/Question
The openai-dotnet library has an auto-retry policy for several error codes.
Does Azure OpenAI has the same policy? If not, is there a standard way to set up such policy?

Yes, you can expect the same behavior from the AzureOpenAI client as well (the client is told how long to wait for through HTTP headers).
/cc @trrwilson in case there are any interesting differences worth pointing out.

@AngelosP is correct -- Azure.AI.OpenAI uses the same underlying logic to control its retry behavior as the OpenAI library, and each of them use the default IsRetriableResponse() implementation of ResponseClassifier, as viewable here:
https://github.com/Azure/azure-sdk-for-net/blob/14d976613655cbf181c50215ffc04b7ab0031ca5/sdk/core/Azure.Core/src/ResponseClassifier.cs#L22
That code link is the original source for that documented list:
            switch (message.Response.Status)
            {
                case 408: // Request Timeout
                case 429: // Too Many Requests
                case 500: // Internal Server Error
                case 502: // Bad Gateway
                case 503: // Service Unavailable
                case 504: // Gateway Timeout
                    return true;
                default:
                    return false;
            }

The only notable addition to retry behavior for Azure.AI.OpenAI is that it extends the default retry behavior to retrieve and honor the values in the retry-after-ms, x-ms-retry-after-ms, or Retry-After response headers; source for that here:
https://github.com/Azure/azure-sdk-for-net/blob/14d976613655cbf181c50215ffc04b7ab0031ca5/sdk/openai/Azure.AI.OpenAI/src/Custom/AzureOpenAIClientOptions.cs#L101

Great to know, thanks!


Sdarot.tv

Domain
https://sdarot.tv
Link
https://sdarot.tv/watch/31-המתים-המהלכים-the-walking-dead/season/1/episode/1
Version
0.0.0
What browsers are you seeing the problem on?
Chrome
What OS are you seeing the problem on?
Windows
(Optional) Anything else?

Closed because it's a duplicate issue of #402.


_pickle.UnpicklingError: invalid load key, '\x00'.

i have an error message named _pickle.UnpicklingError: invalid load key, '\x00'.
Full message:
    self._target(*self._args, **self._kwargs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\ursinanetworking\ursinanetworking.py", line 237, in handle
    self.network_buffer.receive_datagrams(Client_)
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\ursinanetworking\ursinanetworking.py", line 146, in receive_datagrams
    self.pickled_datas = pickle.loads(self.payload)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
_pickle.UnpicklingError: invalid load key, '\x00'.

i can give a code if needed

can you send me the type of message your sorting and give me one

add me on discord : codeezpro and honestly, i already tried to help someone on the exact same error and it didn't work.

@slavik2011  Hello! I got the same error as you and I opened an issue too a while ago and still did not fix it, if you ever manage to fix it, please tell me.
If you did not manage to fix it either, here are my thoughts.
1 - Do you use the same python version on both server and clients?
2 - Is your server public (cross-network) or local (same WiFi)?
3 - You can check what I posted on my issue...

Hi, I fixed the bug 2 weeks ago you have to update the library with : pip install - U ursinanetworking

Thank you, now its the best way to make multiplayer in ursina


The IP Address Range of App Service Data Center is not correct

Hi Team,
I'm the support engineer from APIM team. I tried to restrict caller IP from Logic App Side, I want to allow request only from APIM. As you know, the backend of the consumption tier of APIM is App Service. So in theory, we can achieve the goal by whitelisting the IP Address Range of App Service DataCenter according to the region. But we can still get the error when we tried to access Logic App from APIM : The Ip "xxxxxx" is not whitelisted. After seaerching our backend, I found 4 IP Address and meet the needs. But none of them is listed in the document:
https://docs.microsoft.com/en-us/azure/azure-functions/ip-addresses#data-center-outbound-ip-addresses
May I ask whether there're some error in our document.

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

ID: 5c6e0cb7-2621-fa82-7c35-e20c923fb762
Version Independent ID: 00efb5bd-4887-df30-71b2-e6e281627b73
Content: IP addresses in Azure Functions
Content Source: articles/azure-functions/ip-addresses.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@seagullt
Thanks for your feedback! We will investigate and update as appropriate.

@seagullt Thanks again for your feedback. Could you send us an email at azcommunity at microsoft dotcom so that we can review the missing IP addresses with the required teams internally? Since this documentation itself doesn't list all of the IP addresses but just links to a JSON file containing the IP addresses for download, it'd be better to validate the IP addresses in question internally and work with the right team to make the necessary change on the JSON file.
As such, we will now proceed to close this thread for now. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Update docs deployment

Self merging since it is the weekend and I am trying to optimize the docs deployment to render the notebook on the website.


Membership data filter issue, possibly responding to hidden data?

I agree that the membership filter (checking the requirement to have Client of the organization) is not working as expected.
@jbeard4 I can see on GoGetta that if I select the checkbox to require Client of the Organization in the Personal Care Filter, locations appear that don't seem to have any membership requirement n the data on /team but I wonder if that is the only data the filter responds to?
Filter selection

The map definitely still shows locations that do not appear to have the Membership info filled on /team, so not requiring people to be clients of their organization, such as Catholic Worker's Maryhouse
Map shows

But, in Maryhouse's Shower service, it shows the exclamation icon for membership or docs required on /find

though I can't find that information in any field on /team

I would expect it to be here: https://test.gogetta.nyc/team/location/3ada4162-ca1e-4d94-a178-e4e09aec0ab6/services/e6b553f5-00f8-4b46-8f5d-70adc0012956/who-does-it-serve

So I'm wondering if we have some issue with missing or hidden data somehow or if the filter is reading data that was written in the Who does it serve field and might be in the db even if the field doesn't retain it, and the 'Client of the organization' filter is responding to that?

Originally posted by @adambard1 in https://github.com/streetlives/streetlives_v2/issues/488#issuecomment-2067759932

This is quite a long issue, with Tom weighing in. Did we address it @jbeard4 ?

@adambard1  Not sure.
@doobneek1 Do you recall how to reproduce the issue? Could you please provide an example?

@jbeard4

This is better on gogetta and it does not affect the YP, I cannot reproduce it as this information is uneditable to me.


Version indicator is very small

Hi,
The version info in roadmap page is very small: https://goo.gl/fp18oV
I'm using the lates version.

This is caused by your (or from an other plugin) CSS. I am not able to fix that.


[2201.8.x] Introduce Parallel Execution for the GraphQL Resolvers

Purpose
Fixes: #4122
Examples
Checklist

[X] Linked to an issue
[X] Updated the changelog
[ ] Added tests
[ ] Updated the spec
[ ] Checked native-image compatibility
[X] No commons package changes (if there are any, please update the GraphQL version in GraphQL tools and Ballerina dev tools)
[X] No compiler package changes (if there are any, please update the GraphQL version in Ballerina dev tools)

Since we had to port the fix to update 9, I've opened this PR to use as a reference. Now that the PR for update 9 is ready, I've closed this one.


Display events for persistent volumes and volume claims in the UI

Rancher versions:
v2.0.7
When UI users need to troubleshoot issues with volumes or PVCs stuck in pending, they currently have to revert to performing kubectl commands in order to inspect the corresponding events as they are not surfaced in the UI PVC/PV detail pages.
Proposal:
Add resource events list to in the PVC/PV detail pages. See pod detail page https://github.com/rancher/rancher/issues/13714#issuecomment-395943529.

Version - 2.0 master 8/27
Verified fixed


Add build ipa

Added build script for ipa file

can you add offsets for iphone  xr 16.4

I'm sorry for not replying sooner @Mikasa-san however @Lrdsnow informed me when I asked about building ipas with this method, that it was unstable in build results. I wouldn't be against merging if this was clarified id it could run into ipa building issues over building manually

I'm sorry for not replying sooner @Mikasa-san however @Lrdsnow informed me when I asked about building ipas with this method, that it was unstable in build results. I wouldn't be against merging if this was clarified id it could run into ipa building issues over building manually

That's okay, I'll close it


Nested where does not work

Hi,
I'm having a problem when I want to add conditions using relations fields.
Here is where I call the paginate function:
paginate(query, this.taskMessagesRepository, {   relations: ['message'],   where: {     message: {       deleted: false,     },   },   sortableColumns: ['id', 'message.deleted'], });
Here are my entites:
export class Message {   ...   @Index()   @Column({ type: 'boolean', default: false })   deleted: boolean; }
export class TaskMessage {   ...   @ManyToOne(() => Message, { nullable: false })   message: Message; }
The error is "Cannot find alias for relation at message".
Please note that, when I want to display a particular task message with a message.id where statement, the condition pick the messageId of the TaskMessage table.
I don't know if it comes from the library or not but when I copy the conditions and relations using  "TypeOrm.find", it works.
(I used the 2.6.0 version of the library). Thanks !

I am not quite sure. Could be due to the nested where. I think we don't have a test covering those.
You could either address this with a PR or use an hardcode an EQ filter on your query.

Hi @ppetzold ,
Thanks for your reply. Indeed, I added the filter in the query waiting for a "cleaner" fix.
I plan to see where the problem is in the library but haven't had the time yet :) Will see in the next few days
Dennis

Cool. If you wanna have look. Probably this needs some alias transformation:
https://github.com/ppetzold/nestjs-paginate/blob/master/src/paginate.ts#L228

okay, till now its not fixed

this is/was not an issue of this package. it's typeorm related.
https://github.com/typeorm/typeorm/pull/7805
fixed this for one-to-one and many-to-one. one-to-many still unsupported.
https://github.com/ppetzold/nestjs-paginate/commit/e8705e205b65cfed936db4f4b015c4338065aff9
closing


Threshold-finding plots

For the last few weeks, I've been thinking about the following question: How can we find the best linkage threshold using only the similarity matrix?
I have now realised that this is the wrong question to ask. There is no such thing as the single best threshold; rather, our choice of the threshold is inherently bound by the compromise between precision and recall that we wish to achieve. Hence, instead of trying to make the choice for the analyst, we should be providing them with the tools they need to make their own decision.
Plots are very helpful in this endeavour! The below plots were generated using synthetic data from the GeCo tool. It's a two-party linkage problem where each party has just over 3 200 records, and where the intersection is about 1 450.
The first plot is a histogram of the similarity scores:

These plots can be helpful if we assume that the matches and non-matches will each form an approximate Gaussian. Good thresholds will lie in the valley between the two Gaussians.
Another plot we can make is the number of matches for a particular threshold:

Sometimes this line will have a region that is flatter (in this case around 0.8). In that region we are least sensitive to changes in the threshold. That region is also our set of reasonable thresholds.
The last plot can be obtained by running the greedy solver and splitting the candidate pairs into ones that may be matched (depending on the threshold) and ones that will never be matched (because one of the records has a more similar alternative). We plot the proportion of candidate pairs that is possible to match:

We immediately see what the good thresholds are. They are in the region that is not fully orange (that region has unreasonably low precision) but also not fully blue (which has very low recall). Since we have the ground truth here, we can verify this:

Noisy data
Let's try that on a dataset that is much more noisy than the above!

The above plots fail us. The density is not easily split into two nice Gaussians (although it is possible to guess). Our plot of the number of matches vs the threshold does not have a flat region. However, the third plot provides useful insight, even with noisy data:

By eye alone, the good thresholds appear to be between 0.72 and 0.82, depending on whether you prioritise precision or recall.
Since in this case we actually have the ground truth, we can actually plot the results:

And indeed, our guess made using just the third (proportion of candidate pairs that is possible to match) plot is spot on!
Conclusions
These plots are useful. Especially the last kind (proportion of candidate pairs that is possible to match). We should work out a good way of incorporating this into Anonlink.
@hardbyte @unzvfu @wilko77 thoughts?
Aha! Link: https://csiro.aha.io/features/ANONLINK-62

It would have been good if you included the previous related work on this problem. It makes it easier for the reader to get a fuller picture.
There is another issue n1analytics/entity-service#246 talking about similar things. It is good form to include related items in your issue. Also, we talk about the precision/recall trade-off in the tutorials in clkhash and entity service.
I don't believe that the similarity scores for matches will form a Gaussian. This distribution is clearly not symmetric around the mean.
All plots show

that the lower-hand side of the similarity scores mountain is of no use for us.
essentially the same area of interest for the choice of the threshold.

Since the similarity matrix is potentially huge, we should also consider efficiency:

How expensive is it to compute each of those graphs?
Can the computation be parallelized in a similar fashion to computing the similarity scores?
Could the graph be a by-product of the computations we do already without incurring any additional costs?
Can the graph be computed without having to store the whole similarity matrix?

There is also a second aspect for real world usage: how well suited are the provided hashes for linking?
Whereas the differences between good and bad data in the histogram are very clear, it is a lot harder to judge the quality of the data looking at the proportion graph.
It's a bit premature to generalize from experiments over just one synthetic dataset.
I think we should generate these graphs over a diverse lot of datasets.
Is there a way that anonlink can only store the scores for 'possible matches' in the similarity matrix and discard the 'definite non-matches' on the fly?
There are also other graphs to consider:

cumulative histogram, plot the number of scores above a threshold over the thresholds. (This also gives you an upper bound of matches you can find for each threshold.)
?

I don't believe that the similarity scores for matches will form a Gaussian. This distribution is clearly not symmetric around the mean.

I agree. Another argument is that the distribution has finite support. Nonetheless, I still claim that a Gaussian is a reasonable approximation.

All plots show that the lower-hand side of the similarity scores mountain is of no use for us.

This is true when you’re doing matching on a bipartite graph: if you have n similarity scores, then there are at most √n matches. If either of those datasets contain duplicates then you may have more matches than that. Indeed, it is theoretically possible that in an extreme case most similarity scores are matches.

All plots show (…) essentially the same area of interest for the choice of the threshold.

Yes, but I would argue that this interesting area is easier to spot on some graphs than others. (In particular for noisy data, it’s easier to spot in the proportion graph than the other two.)

How expensive is it to compute each of those graphs?

For a particular threshold, the graphs are no more expensive to make than a matching using this threshold.

Can the computation be parallelized in a similar fashion to computing the similarity scores?

Yes, indeed the graphs require us to compute the similarity scores, which is an easily parallelisable step. The second (number of matches) and third (proportion of possible matches) graphs require us to run the greedy solver, which cannot be parallelised.

Could the graph be a by-product of the computations we do already without incurring any additional costs?

Yes. We could (1) compute the similarity scores with a low threshold, (2) produce graphs, (3) choose threshold, (4) discard similarity scores below that threshold.

Can the graph be computed without having to store the whole similarity matrix?

To an extent. You can produce part of the graph without storing the whole similarity matrix. With all those graphs, if you want to produce the part of the graph between t and 1, you only need to compute the similarity matrix with a threshold of t.

Whereas the differences between good and bad data in the histogram are very clear, it is a lot harder to judge the quality of the data looking at the proportion graph.

Good point!

Is there a way that anonlink can only store the scores for 'possible matches' in the similarity matrix and discard the 'definite non-matches' on the fly?

Not in general, as this requires us to run the greedy solver. But we can try approximating it by setting a low value for k.

The helper code to generate these kinds of plots has been included in the library, together with examples.


Add HostInterface.isInteractive or similar

What
Add a method to HostInterface (wrapped via Host) to allow a manager to query (via the supplied HostSession) whether or not the current call context is considered to be interactive. True here would imply that the manager implementation may make use of user prompts/etc... during API calls such as register and the likes. False may mean the host session is running in batch more, or the API session is bring proxied out-of-process.
Why
Certain aspects of interactive publishing flows are left up to the manager. For example, requesting comments on ancillary information. To facilitate this, the manager needs to know when it may be appropriate to present custom interfaces to the user.

We think this is something that goes in the locale. Closing


MSE not accepting (n_samples, n_ouptuts) despite docs stating so

The evaluation card for MSE states:

Mandatory inputs:

predictions: numeric array-like of shape (n_samples,) or (n_samples, n_outputs), representing the estimated target values.
references: numeric array-like of shape (n_samples,) or (n_samples, n_outputs), representing the ground truth (correct) target values.

So it should be usable similar to pytorch's MSELoss with multiple dimensions.
But using it with (batch_size, multiple_outputs) doesn't work:
import evaluate
import numpy as np

m = evaluate.load('mse')
print(m.compute(predictions=np.random.rand(16,2), references=np.random.rand(16,2)))

⬇
ValueError: Predictions and/or references don't match the expected format.
Expected format: {'predictions': Value(dtype='float32', id=None), 'references': Value(dtype='float32', id=None)},
Input predictions: ...
Input references: ...

Version: evaluate==0.4.1

Hi @bauersimon , the quick answer for your question is:
import evaluate
import numpy as np

- m = evaluate.load('mse')
+ m = evaluate.load('mse', 'multilist')
print(m.compute(predictions=np.random.rand(16,2), references=np.random.rand(16,2)))

And, the error message is also too vague to address the problem.

Thanks! Should probably be mentioned in the docs then 😅.


Expose CopyExec metrics in Spark

What is the problem the feature request solves?
In the native planner, we insert a CopyExec node into the plan. The timings from this operator are not visible in the Spark UI.
Describe the potential solution
I think there are two choices:

Create a JVM equivalent CopyExec and make this available in the plan in Spark
Have CopyExec include its time in its child operators metrics

Additional context
No response

@viirya for upstream approval, thanks


obfuscate audit log data

too long log lines cause trouble during log shipping

Current coverage is 96.06% (diff: 100%)

Merging #36 into master will increase coverage by 0.12%

@@             master        #36   diff @@
==========================================
  Files            19         20     +1
  Lines           222        229     +7
  Methods           0          0
  Messages          0          0
  Branches          2          3     +1
==========================================
+ Hits            213        220     +7
  Misses            9          9
  Partials          0          0

Powered by Codecov. Last update 5556cd5...ff174c4

:+1:

👍