defaultContentLanguage case sensitivity

With the config like this:
defaultContentLanguage: en-US

languages:
  en-US:
    ...

I get error:
Error: site config value "en-US" for defaultContentLanguage does not match any language definition

Changing en-US to en-us in both places solves the issue. Is it expected, as I did not find any mention in the documentation?
What version of Hugo are you using (hugo version)?

$ hugo version
Hugo Static Site Generator v0.70.0-7F47B99E linux/amd64 BuildDate: 2020-05-06T11:18:50Z

Does this issue reproduce with the latest release?
Yes

The language code in Hugo configuration follows the RSS template.

The code MUST be one of the identifiers on this page or a language code permitted by the World Wide Web Consortium for use in HTML. The U.S. Library of Congress publishes the current list of ISO 639 language codes adopted by HTML.

Language | Identifier
-- | --
Afrikaans | af
Albanian | sq
Basque | eu
Belarusian | be
Bulgarian | bg

Also, you can view the en-us config in Hugo documentation here; Hope this helps!

This makes sense, thank you. But probably it's not too much clear from the docs, especially from this section.

This makes sense, thank you. But probably it's not too much clear from the docs, especially from this section.

Yeah I agree. In fact, I had a similar mistake like yours before cuz I didn't check the doc entirely lol

I found this because I encountered a similar issue, it was with "tl-Tglg".

"tl" is the primary language tag
"Tglg" is a script subtag as per the IANA language subtag registry

For years I understood that the language tags and subtags must follow the case format listed in IANA and the RFCs but after seeing the RSS info provided by @isdanni I searched around and found out lang values must be treated as case-insensitive.

Subtags, notably the primary language subtag, are case insensitive. Hence comparison with the language subtag registry must be done in a case insensitive way. (Source: https://act-rules.github.io/rules/5b7ae0 )

At all times, language tags and their subtags, including private use and extensions, are to be treated as case insensitive: there exist conventions for the capitalization of some of the subtags, but these MUST NOT be taken to carry meaning.
Thus, the tag "mn-Cyrl-MN" is not distinct from "MN-cYRL-mn" or "mN-cYrL-Mn" (or any other combination), and each of these variations (Source: https://tools.ietf.org/html/bcp47#section-2.1.1 )

I hope the additional information helps, and maybe can be added in the docs too. (Although having the defaultContentLanguage key as case-insensitive is also a good addition.)


fix(http) move hup check after read/write check

Come to think of it, it probably doesn't make sense to try and write if the connection has terminated. Maybe the hup check should be between read and write?

Thanks!

@jwilm this makes sense to me. I created another PR https://github.com/hyperium/hyper/pull/962


Makes internal implementation details private

This will allow us to progressively evolve the implementation without having breaking changes everywhere.

Please rebase onto main.

Just done


Documentation: Promise returned from $timeout should not be chained

I'm submitting a ...

[x] bug report
[ ] feature request
[x] other

Current behavior:

$timeout returns a promise that has been "decorated" with a $$timeoutId that is then required when attempting to cancel the timeout via $timeout.cancel(promise). When chaining to this promise upon creation (i.e. then, catch, and/or finally), the promise returned from the chained function(s) is a new promise that does not contain $$timeoutId.
Expected / new behavior:

Ideally, Angular.js would not be adding properties willy-nilly to this promise. Secondly, it would be great if the chained calls would return back any extra properties set on the original promise (i.e. $$timeoutId). BUT, it would suffice if the documentation for $timeout could be enhanced to provide a note about this limitation.
Minimal reproduction of the problem with instructions:

Plnkr - Take note that this is built with a chained catch and causes the timeout to not be canceled. If you remove the chained catch or move the catch to a separate line after initial assignment, it cancels just fine.
AngularJS version:
1.6.6
Browser:
All
Anything else:
I strongly would consider this a defect but because I don't think you're going to change your underlying then, catch, and finally implementation to copy any ole' properties from the chained promise, documentation would suffice for any other future souls.
The guilty line of code is here: https://github.com/angular/angular.js/blob/master/src/ng/timeout.js#L66

@abobwhite, if you fancy taking a stab at it, PRs are always welcome 😉

We are going to throw an error if you pass a promise to $timeout.cancel that doesn't contain a $$timeoutId - i.e. it was not the promise returned from the call to $timeout.
This requires a breaking change, so will go in 1.7.0.

@petebacondarwin Thanks for the heads up. The proposed solution seems like a good compromise given the EOL timeline for Angular.js and the (likely) pervasiveness of a change to passing along the $$timeoutId to chained promise methods.


Please publish package to mvn central under org.testcontainers dependency

Hi, I'm interested in this plugin but i cannot try it as is inaccessible under org.testcontainers:jooq-testcontainers-codegen-maven-plugin.
Could you change target repository and publish it to maven central?
Thanks, Roman

Hi Roman,
This plugin is currently being migrated from my personal account to testcontainers organization.
You can use the following Maven coordinates for now until it is published from testcontainers org.
<plugin>
         <groupId>io.github.sivalabs</groupId>
         <artifactId>jooq-testcontainers-codegen-maven-plugin</artifactId>
         <version>0.0.2</version>
</plugin>

Hello!
Thank you for response.
I have already done that in new microservice, but i hope you can understand that usage of plugin from an individual contributor in big companies usually is not allowed. Hope it will be available under testcontainers org soon.
Do you know any estimates when it might be published?

Published the plugin under testcontainers org. See https://central.sonatype.com/artifact/org.testcontainers/jooq-testcontainers-codegen-maven-plugin/0.0.1

Great! Closing the issue


domain validator fails for äöü

if a domain contains german letters like ä, ö or ü, which would be valid, the validator fails.

You can use python3  str.encode('idna')
For python 2 , make sure you convert the string to unicode.
# python 3
domain_name = 'http://kräuter.com'
validators.url(domain_name.encode('idna'))

# python 2
validators.url(domain_name.decode("utf-8").encode('idna'))

I know how to geht around. But thats unexpected behavior

Anyway, I stop using validators.url () as there is still many fixes required :

it think IP address is invalid
it think spaces in Url is bad
it will failed on unicode.  (that's mean my work around actually doesn't works)


Away status not clearing when active on computer

Good morning,
One of my users came across an issue where her status is not updating to Available even though she is currently working on the computer she has teams installed on.
We've tried reinstalling teams on the computer but the only way for her status to update to available is for her to maximize the teams window.

@bhigginsah4r Please go ahead and post this query to the Teams product support channel.


Inconsistency and errors between different parquet engines on Spark-generated parquet files.

Creation of two partitioned parquet files using Spark:
import pandas as pd

data = [
    [0, 1, 2],
    [0, 2, 3]
]

(
    spark
    .createDataFrame(pd.DataFrame(data, columns = ['col1', 'col2', 'col3']))
    .write.mode('overwrite').partitionBy('col1', 'col2')
    .parquet('test.parquet')
)

data = [
    [0, 1, 2],
    [0, 1, 3]
]

(
    spark
    .createDataFrame(pd.DataFrame(data, columns = ['col1', 'col2', 'col3']))
    .write.mode('overwrite').partitionBy('col1', 'col2')
    .parquet('test2.parquet')
)

Content of the parquet files:
test.parquet
├── col1=0
│   ├── col2=1
│   │   └── part-00000-0787dc35-33b6-46a8-8fc9-a88b443877d3.c000.snappy.parquet
│   └── col2=2
│       └── part-00001-0787dc35-33b6-46a8-8fc9-a88b443877d3.c000.snappy.parquet
└── _SUCCESS
test2.parquet
├── col1=0
│   └── col2=1
│       ├── part-00000-c021737d-18be-4dde-a721-842afe197a42.c000.snappy.parquet
│       └── part-00001-c021737d-18be-4dde-a721-842afe197a42.c000.snappy.parquet
└── _SUCCESS

Experiment 1 (pyarrow-legacy engine)
>>> ddf = dd.read_parquet('test.parquet', engine='pyarrow-legacy')
>>> print(ddf)
Dask DataFrame Structure:
                col3             col1             col2
npartitions=2
               int64  category[known]  category[known]
                 ...              ...              ...
                 ...              ...              ...
Dask Name: read-parquet, 2 tasks
>>> print(ddf.head(npartitions=-1))
   col3 col1 col2
0     2    0    1
0     3    0    2

>>> ddf2 = dd.read_parquet('test2.parquet', engine='pyarrow-legacy')
>>> print(ddf2.head(npartitions=-1))
   col3 col1 col2
0     2    0    1
0     3    0    1

All works as expected.
Experiment 2 (pyarrow engine)
>>> ddf = dd.read_parquet('test.parquet', engine='pyarrow')  ## the same result with pyarrow-dataset engine
>>> print(ddf)
Dask DataFrame Structure:
                col3             col1             col2
npartitions=2
               int64  category[known]  category[known]
                 ...              ...              ...
                 ...              ...              ...
Dask Name: read-parquet, 2 tasks
>>> print(ddf.head(npartitions=-1))
Exception: KeyError("['col1', 'col2'] not in index")

So, something goes wrong with hierarchy-inferred columns. The same exception with with test2.parquet.
Experiment 3 (fastparquet engine)
>>> dd.read_parquet('test.parquet', engine='fastparquet')
Exception: OSError: [Errno 22] Invalid argument

Reason : fastparquet engine fails while trying to parse empty _SUCCESS file as parquet file
Ok, removing file (rm test.parquet/_SUCCESS) and start again:
>>> ddf = dd.read_parquet('test.parquet', engine='fastparquet')
>>> print(ddf)
Dask DataFrame Structure:
                col3             col2
npartitions=2
               int64  category[known]
                 ...              ...
                 ...              ...
Dask Name: read-parquet, 2 tasks
>>> print(ddf.head(npartitions=-1))
   col3 col2
0     2    0
0     3    0

>>> ddf2 = dd.read_parquet('test2.parquet', engine='fastparquet')
>>> print(ddf2)
Dask DataFrame Structure:
                col3
npartitions=2
               int64
                 ...
                 ...
Dask Name: read-parquet, 2 tasks
>>> print(ddf.head(npartitions=-1))
   col3
0     2
0     3

Note two big problems:

If hierarchy inferred columns have only one unique value, then that columns simply dropped.
If hierarchy inferred columns have more than one unique value, then all that values turns to zeros.

Environment:

Dask version: 2021.8.1
Python version: 3.7
Operating System: Ubuntu 18.04
Install method (conda, pip, source): conda
Spark: 2.4.8

@stromnov - thanks for raising this issue.  When Spark writes out files with partitionBy, the columns that are abstracted to the filesystem aren't actually written in the Parquet files.  This is consistent with the Hive conventions.
It's easier to see with an example.
val someDF = Seq(
  (8, "bat"),
  (64, "mouse"),
  (-27, "horse"),
  (99, "mouse")
).toDF("number", "word")

someDF.write.partitionBy("word").parquet("/Users/powers/Documents/tmp/spark/some-df")

Here's what's written to the filesystem in /Users/powers/Documents/tmp/spark/some-df:
some-df/
  _SUCCESS
  word=bat/
    part-00000-71a30a4b-1103-462c-a007-920415cc540f.c000.snappy.parquet
  word=horse/
    part-00002-71a30a4b-1103-462c-a007-920415cc540f.c000.snappy.parquet
  word=mouse/
    part-00001-71a30a4b-1103-462c-a007-920415cc540f.c000.snappy.parquet
    part-00003-71a30a4b-1103-462c-a007-920415cc540f.c000.snappy.parquet

Let's look at the contents of one of the Parquet files.
spark.read.parquet("/Users/powers/Documents/tmp/spark/some-df/word=horse").show()

+------+
|number|
+------+
|   -27|
+------+

The Parquet file does not have the word column.  That column value has been abstracted to the filesystem.  This is often referred to as disk partitioning, not to be confused with memory partitioning.  This is a Hive convention.
From your examples, it looks like PyArrow supports Hive disk partitioning and FastParquet does not (cc: @martindurant).
@jrbourbeau - think disk partitioning is an important feature to support cause it can provide huge query speed improvements.  Suppose you have a Parquet lake that contains a year of data, partitioned by day.  If you only want data for a single day, you can selectively read files for that single day (based on the filesystem) and the query will run way faster (compared to reading all the data and filtering in the cluster).

fastparquet certainly does support hive-style partitioning, and there are tests in both the core library and dask for this. Your dataset is special, because all the data files live in the same directory, so there is no unambiguous way to know where the root of the dataset directory tree is (you could have avoided this by instructing spark to write a global metadata file.
With fastparquet:
>>> fastparquet.ParquetFile("test2.parquet").head()
   col3
0     2
>>> pf = fastparquet.ParquetFile("test2.parquet", root="..../test2.parquet/")
   col3 col1 col2
0     2    0    1

(note that we need the full path, unfortunately)
fastparquet without dask copes fine with or without the _SUCCESS file.
So, we need to make some small fixes in the dask fastparquet engine to make sure that we respect these options! When searching for files, fastparquet only looks for names ending .parq or .parquet. I suspect dask tries to use all files within a directory tree.

Disk partitioning is certainly supported by read_parquet. Thanks for sharing the dataset here @stromnov - I'll try to figure out what is going wrong.

For engine="pyarrow", it seems that the root problem is that the "pandas" key-value metadata is being used to check which columns are physically stored in the file (since this metadata does not include disk/directory partitions).  I added a possible fix for the case that the pandas-metadata is missing in #8072.

Note that #8072 was merged, and so the pyarrow component of this issue should be resolved.

Thanks for following-up here @rjzamora

the pyarrow component of this issue should be resolved

Will the fastparquet component be included in https://github.com/dask/dask/pull/8092? Or should that be a separate line of work?

@jrbourbeau - This PR should help with the fastparquet issues with the _SUCCESS file outputted by Spark. cc: @martindurant

Right, but my PR fixes the fastparquet issue completely and exposes a case where arrow fails!

Will the fastparquet component be included in #8092? Or should that be a separate line of work?

I spent some time thinking through the "correct" solution to this, and it is a bit tricky to come up with a convention that will work for both fastparquet and pyarrow.  Therefore, I can add a fix to #8092, but I'd prefer to get that merged first, and then work on a fix.


System allow to create atoms with Charge value out or range

Environment details  (please complete the following information):

Indigo Toolkit Version 1.18.0-dev.4+1452.0-gaf1efce67-x86_64-linux-gnu-11.4.0
Ketcher Version 2.18.0+dev.1 Build at 2024-01-11; 13:21:50
Chrome Version 120.0.6099.130 (Official Build) (64-bit)
Win10
Issue found while testing https://github.com/epam/Indigo/issues/1436

Describe the bug
System allow to create atoms with Charge value out or range
(Former: Unable to load mol file: System throws exception: Cannot set properties of undefined (setting 'charge'))
Steps to Reproduce

Open any atom and try to set Charge value to -111

Actual behavior
System let you to do so

Expected behavior
System should validate the value and allow to define only values from allowed range

Validation should be added +-15 range allowed only

Test automated.

Moved to Refined Backlog since no fix over 3 versions


[Impeller] New gallery transition perf worst and 99th %-ile raster time regression on Android

On the change to render BackdropFilter layers directly to DisplayListBuilder https://github.com/flutter/engine/pull/34337, worst and 99th %-ile frame rasterization times regressed on Moto G4:
https://flutter-flutter-perf.skia.org/e/?begin=1654156387&end=1656469887&keys=X5f6e343cfb7467cdc34ede6764f63458&requestType=0&xbaroffset=29603
@chinmaygarde @bdero @flar

Closing as this increase in time was expected now that we are actually filtering the backdrop...


Add use static <class> usage to allow static member access in PowerShell

Reference: #3603
Proposal is to add usage to the using statement to allow for ease of access to static members of classes.
using static System.Math

$b  = Pow(1024, 2)

This issue is open to discuss possible implementations, issues concerns, use cases, yays and nays.
Questions: Methods only? All members? syntax? support for PowerShell v5+ user defined classes? precedence?

The proposed syntax is ambiguous with commands.
Today, method invocation uses an operator with an expression before the method name (e.g. $o. or [t]:: ), otherwise the parser sees a command invocation.
The parentheses do not help disambiguate, and there are other quirks to note:
echo(1)     # Valid
echo(1, 2)  # Parse error if strict mode enabled
echo (1, 2) # Valid
echo()      # Parse error, missing expression

The strict mode error only happens if there is no space, as folks learning PowerShell were invoking functions like methods, but surprised that arguments weren't passed as expected. If there is a single argument, the parens don't matter, but if there are multiple arguments, the parens group the values in the first argument.
Some possible solutions for the ambiguity:

Call static methods like functions:

using static Math
using static Console
pow 1 2
pow -y 2 -x 1 # Same as previous line, named args
WriteLine "hello"

Continue to use :: (a breaking change, but probably safe):

using static Math
::pow(1,2)

Extra work at parse time (before semantic checks) so method/property names are not parsed like commands.

using static Math
$e = E # [Math]::E
log(2, $e)

personally, I like the idea of them becoming function-esque. But if property members are also exposed, that might look weird.
using static System.Globalization.CultureInfo

CurrentCulture = CreateSpecificCulture "nl-NL"

That looks odd.
I like the :: prefix idea. Makes it a little less confusing. i was thinking a sigil would be nice, and there already kind of is one for this usage.


plot true system in uncertainty example for comparison

Codecov Report

Merging #83 (b6c2c23) into master (5fd9b4e) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #83      +/-   ##
==========================================
- Coverage   90.07%   90.03%   -0.04%
==========================================
  Files          18       18
  Lines        2600     2600
==========================================
- Hits         2342     2341       -1
- Misses        258      259       +1

see 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


[Snyk] Upgrade @alaskaairux/icons from 4.15.0 to 4.16.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @alaskaairux/icons from 4.15.0 to 4.16.0.

:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 22 days ago, on 2022-09-01.

Release notes

Package name: @alaskaairux/icons

4.16.0 - 2022-09-014.16.0 (2022-09-01)
Features

add mokulele and condor tails #133 (ef7f487)
app team: add icons #134 (43a10f0)

4.15.0 - 2022-07-254.15.0 (2022-07-25)
Features

icon: add qr icon #131 (cc31cd7)

    from @alaskaairux/icons GitHub release notes

Commit messages

Package name: @alaskaairux/icons

c2e6ef4 chore(release): 4.16.0 [skip ci]
550bb38 refactor: add updated check-in svg
43a10f0 feat(app team): add icons #134
87e3070 chore(codeowners): add config file to repo #138
ef7f487 feat: add mokulele and condor tails #133

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

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


[BUG] - Autocomplete don't focus on input

NextUI Version
2.4.1
Describe the bug
When I click on autocomplete it should focus on input
Your Example Website or App
https://codesandbox.io/p/sandbox/objective-nash-lff3pt
Steps to Reproduce the Bug or Issue

Copy code from https://nextui.org/docs/components/autocomplete#usage
Click on autocomplete
Input is not focused

Expected behavior
Input has to be focused as it shown at https://nextui.org/docs/components/autocomplete#usage
Screenshots or Videos
No response
Operating System Version
macOS
Browser
Chrome

seems it looks fine in local storybook but not in app.

Same issue for me, i have autocompletes everywhere in the app 🥲

@wingkwong Any temporary solution until it is fixed?

This still not fixed in v2.4.2

@daniel-esserweb Noup, I switched to version 2.2.9 until they fix it

@daniel-esserweb Noup, I switched to version 2.2.9 until they fix it

I dont understand why, in the documentation is working since 2.4.0 i think, but in the application hasn't worked yet

@daniel-esserweb Me neither, I tried different versions and only 2.29 and below worked for me.

I do this temporary workaround to get around the autofocus issue, but it would only work for mouse clicks - keyboard users still need to be considered.
<Autocomplete
    onClick={(event) =>
        // @ts-expect-error the input doesn't automatically focus
        event.target.focus()
    }

>
// ...
</Autocomplete>

@iPagar Thanks for the report!
Speaking of which, I also found a related bug for Autocomplete component so I will put it down here as well.
When an user try to remove chars from the input, the input will freeze 😞  (In the video, it's really hard to see but I was pressing the key multiple times.)
These issues seem like happening only on local env(dev env) & sandbox env.
I will also try to take a look at these! Thanks again for reporting this issue! 👍
https://github.com/nextui-org/nextui/assets/62743644/04672809-c1e2-4ab6-8bd4-8d950f9872a7

I think it's the same issue as this one: https://github.com/nextui-org/nextui/issues/3124
It's possible that the focus on input is lost right after the selection is opened. I added a comment there for steps to reproduce the focus loss on input.

I'm having this same issue. After typing in 1 character, the popup steals focus from the text box, making the user have to click back into the input box to continue typing.
It's a really bad user experience, so until this is fixed I'm rolling back to the last working version where this doesn't happen<EMAIL_ADDRESS>

Just a curiosity, it is very buggy in local development but in production it works fine

@daniel-esserweb it is due to react strict mode, which only happens in local development.

@daniel-esserweb Does not work in production as well

@MarcoRodasW are you using 2.4.2? also can you share a minimal reproducible project?


Cherry pick bug fixes for v0.37.3

Integrate #734 and #737 into the release-v0.37.3 branch to avoid to release on main
Wait for https://github.com/meilisearch/meilisearch/issues/3235 investigation without merging this PR. Indeed, if a bug fix on milli's side, we might wait for it before merging this PR/ -> no need to wait, not a bug

bors merge


Byron wallet restoration from xprv endpoint integration test

Issue Number

#1436
Overview

[x] I have added encryptPasswordWithScrypt
[x] I have added encryptPasswordWithScrypt properties in unit test
[x] I have extended DSL to check new endpoint
[x] I have added integration test to ByronWallets in core-integration
[x] I have removed wrong 64-byte requirement for passphrase hash
[x] I have added integration test to ByronTransactions in byron

Comments

@paweljakubas, @KtorZ
If I'm not mistaken the idea is that input  for this enpoint will be produced by the script that was created here -> https://github.com/input-output-hk/cardano-sl/pull/4278?
If that'e the case there is some data from the script produced while testing that could be used for testing the endpoint (https://github.com/input-output-hk/cardano-sl/pull/4278#issuecomment-600635141 or https://github.com/input-output-hk/cardano-sl/pull/4278#issuecomment-600553878).
However trying this (https://github.com/input-output-hk/cardano-sl/pull/4278#issuecomment-600635141) data on testnet is not successful. Mostly results in
{
  "code": "bad_request",
  "message": "Error in $['passphrase_hash']: Invalid encryption hash: expecting a hex-encoded value that is 64 bytes in length."
}

but also errors about invalid Json or name. Which is unexpected because I was able to create this data using cardano-wallet on cardano-sl and then exported it using export-wallets script. Not sure if the issue is in the enpoint or in the script  from https://github.com/input-output-hk/cardano-sl/pull/4278.
Details of the request/response using this data:

curl  -vX POST http://localhost:8090/v2/byron-wallets \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
	"style": "random",
		  "encrypted_root_private_key": "65b0a8a43341078aa25e499457902bed3e7d63a74d6079a563e08f0a7e2854dc918ed1b98c2e262d837276cce3fa8c3825ae5aa0f24535168b597127bd62461b323dba7f9c2beb5dbf24b528b6981e83c2e21a4aa7684746d86b763191aada4f980a05ec790380f10c8d05df95750bdd482870ed294ffc2f6356da69d0287950",
		  "name": "`~`!@#$%^&*()_+-=<>,./?;':\"\"'{}[]\\|❤ 💔 💌 💕 💞   💓 💗 💖 💘 💝 💟 💜 💛 💚 💙0⃣ 1⃣ 2⃣ 3⃣ 4⃣ 5⃣ 6⃣ 7⃣ 8⃣ 9⃣ 🔟🇺🇸🇷🇺🇸 🇦🇫🇦🇲🇸",
		  "passphrase_hash": "31347c387c317c57434338486c412b6e3834734c426e55427450447a4a59536e6a7742794b4f5662387171534977476f48557a7a773d3d7c497944797147756c6b493733494f4d66544e615034572b7447396b78485a54665870795a572f436733316f3d"
  }' --http1.1  |  jq

:point_down:
{
  "code": "bad_request",
  "message": "I couldn't understand the content of your message. If your message is intended to be in JSON format, please check that the JSON is valid."
 إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.",
		"passphrase_hash": "31347c387c317c5743415a67386d325345577275505874656452636277583637524e55793763722f7778414b5a494e466755596b513d3d7c694d6f66593074445164794b375549745a796c6677392b425831626f6f73433672523532684630305932553d"
   }' --http1.1  |  jq

:point_down:
{
  "code": "bad_request",
  "message": "Error in $['passphrase_hash']: Invalid encryption hash: expecting a hex-encoded value that is 64 bytes in length."
}

curl  -vX POST http://localhost:8090/v2/byron-wallets \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
	"style": "random",
		"encrypted_root_private_key": "75bea242039182aea099c443ba601572fc68e03eba46309353453148671695dc458df8b715e515784120aa14da9ea671b5b10b8cb29528dac0ecd593812d4ac084443bfc8dace09c03e96fbef07d8853ca7774f633d97a91eb2243c9bcf1a6f36290b278271c8a782b5bfc42aef90984ab2fecad286669f51482871546d655ad",
		"name": "aąbcćdeęfghijklłmnoóprsś\r\ntuvwyzżźAĄBCĆDEĘFGHIJKLŁMNOP\rRSŚTUVWYZŻŹ",
		"passphrase_hash": "31347c387c317c57434374303455384757434b3171646b7439635a2b65336e3343595837487a4831593531487a5166795141644b673d3d7c4a6837513162473550647a783442372b50414374776676494a3158616f757642334b5a6b5033493763676f3d"
	  }' --http1.1  |  jq

:point_down:
{
  "code": "bad_request",
  "message": "Error in $['passphrase_hash']: Invalid encryption hash: expecting a hex-encoded value that is 64 bytes in length."
}

curl  -vX POST http://localhost:8090/v2/byron-wallets   -H "Content-Type: application/json; charset=utf-8"   -d '{
"style": "random",
"encrypted_root_private_key": "5d80b8cf019053034580f81474da1c490873679891581f0dce6d341183df31c49d79de812c33a46a7f79eaf2f436c618d3efc45c70d9a18af57fb2282dd93775bdd4035be38887881fb3813f2c317a82a749ce135275c8ec5567830213a3cf0e55396dcf70a6002a075eb1b550d6ba1955781a8b57c68629721c7669eb7b0513",
"name": "АаБбВвГгДдЕеЁёЖжЗз ИиЙйКкЛлМмНнО оПпРрСсТтУуФф ХхЦцЧчШшЩщЪъ ЫыЬьЭэЮюЯяІ ѢѲѴѵѳѣі",
"passphrase_hash": "31347c387c317c5743445145374e6156312b78304455325930736737667335314c6f366c5648682b4435744e74334559434c367a513d3d7c454d6471313478504f67614979573945355539426973337a49326e2f5a787a532f587230483746473377593d"
  }' --http1.1  |  jq

:point_down:
{
  "code": "bad_request",
  "message": "Error in $['passphrase_hash']: Invalid encryption hash: expecting a hex-encoded value that is 64 bytes in length."
}

@piotr-iohk  I was aware of this restriction. When designing this U/S we were thinking that 64-byte passphrase hash is requirement. But it turn out to be wrong. Which is corrected in  https://github.com/input-output-hk/cardano-wallet/pull/1476/commits/0c3ccb4e565b11a57abb288a57030ccf7d87415e

@piotr-iohk  If I'm not mistaken the idea is that input for this enpoint will be produced by the script that was created here -> input-output-hk/cardano-sl#4278?

Correct :heavy_check_mark:

but also errors about invalid Json or name (more details below), which is unexpected because I was able to create this data using cardano-wallet on cardano-sl and then exported it using export-wallets script.

Damn. I didn't thought about the length of the name... I just checked, in -sl, there's no actual upper limit, so names could in practice be of any arbitrary length... We can't possibly accept that on the new implementation. But I am not sure that rejecting restoration would help.
Truncating the name down to 255 characters could make sense, don't you think @piotr-iohk @paweljakubas ? It's quite an edge-case and, what we do really want is users to be able to identify their wallets.
Also, to be checked with Daedalus but, there's maybe a limit on the frontend, so all Daedalus users should actually do quite okay and not run into the issue at all. So maybe rejecting is fine after all and truncating isn't needed.

there is limitation on wallet name in daedalus : https://github.com/input-output-hk/daedalus/blob/318e5ec583ed3c0220b2f801cbf3b6f88713464c/source/renderer/app/utils/validations.js#L6

bors try

bors try

two times failing because of :
  | expected: Status {statusCode = 202, statusMessage = "Accepted"}
  | but got: Status {statusCode = 500, statusMessage = "Internal Server Error"}

One thing that would be worth testing as well is, what happens if we submit an "invalid" passphrase hash? Something that wasn't generated from Scrypt. The behavior should be that we basically fail to use this wallet because we'll never possibly get the passphrase. It'll be good to make sure that the scrypt function doesn't throw when presented an illed-formed passphrase :s

@piotr-iohk @KtorZ I added integration test with corrupt hash, but correct rootXPrv and it restored in a sense that available balance is like faucet wallet, but was expecting different :
  1) API Specifications, BYRON_RESTORATION, BYRON_RESTORE_03 - restoring wallet from corrupted hash gives 0 balance
       expected: Quantity {getQuantity = 0}
        but got: Quantity {getQuantity =<PHONE_NUMBER>000}

re: https://github.com/input-output-hk/cardano-wallet/pull/1476#issuecomment-603302214

Is this as expected?

I wonder if we should allow restoring in case of corrupt passphrase... it makes the wallet useless I suppose, cause the passphrase is ... unavailable, isn't it.

@paweljakubas @piotr-iohk that's a feature of Random wallets in the Byron era indeed. Good to know:

The Haskell XPrv type that we manipulate is actually made of:

A public key
A private key
A chain code

In a XPrv, only the private key part is actually encrypted, the public key is not.

To restore a Random wallet, one need to know the wallet root public key, from which is derived a payload passphrase that encrypts the underlying address derivation paths. If we can decrypt the derivation path, it means the address is ours.

It's because of 2. & 3. that this kind of XPrv import is possible through the wallet. We can extract the public key from an encrypted XPrv and use it to restore the wallet. We can't however spend funds without the spending passphrase, because the unencrypted private key is required for that.

This is messed up.

Thus @paweljakubas , this is indeed expected. You do not need the passphrase to actually restore the wallet. So, the passphrase hash can be complete garbage, one would still be able to restore the wallet with only the XPrv. @piotr-iohk you're right, having a corrupt passphrase will make the wallet unusable (or at least, unable to sign transactions). But the question is how to tell whether a given passphrase hash is corrupted or not? This is tricky because:
a. From @paweljakubas' tests, it seems that the Scrypt Pass data-types can be of variable length. Although, there's probably a spectrum that is safe to consider.
b. In theory, you can only really know whether the passphrase is correct when you actually get your hand on the passphrase (i.e., when submitting a transaction) :upside_down_face:

@KtorZ thanks for confirmation and comment. It would be good then to add test restoring wallet with wrong passphrase hash and show that making tx is not possible with it.

bors try


MM2 Crashes bluetooth audio

Platform: Raspberry PI3
Node Version: 6.9.1
MagicMirror Version: V2
Description:  Running MM2 in server mode or normal mode crashes bluetooth audio. The bluetooth speaker will randomly stop playing while still being connected. The bluetooth module on the Pi will then become unusable until a reboot. I am using the inbuilt Pi3 bluetooth.
Steps to Reproduce: 1. Connect bluetooth speaker to Pi 3.
2. Play music to the speaker
3. Launch MM2 in default mode or server mode.
Note: The above order is not important. The issue also arises when connecting the bluetooth speaker when MM2 is already running.
Expected Results: Speaker should keep playing music until stopped by user.
Actual Results: Speaker stops playing and bluetooth module becomes unusable.
Configuration: I don't think the issue is related to my config file.
Additional information: The crash happens within less than an hour of connecting the bluetooth speaker. Sometimes it happens after being connected for 5 minutes. The longest time without it crashing is 1 hour.

@D3rpi This is leading me to believe that the amount of RAM in use is at fault. Could you try reducing the amount of modules running in your config file?
cc @MichMich

The modules don't use too much memory. It's probably Electron that uses a lot of mem.
@D3rpi Could you try running your Pi without MagicMirror for a few hours to check if it's MM related at all?
How did you configure your memory?

@michmich @nhubbard
I've had this issue for some time now. At first I thought it was something to do with pulseaudio/ bluez timing out the bluetooth speaker. Then I started with a new sd card and had a stable connection without disconnects. I've had the speaker stay connected for more than 24 hours without disconnects, but once I run MM2 the problem comes back.
Can someone with a bluetooth speaker replicate this issue?
I don't quite follow the question about memory configuration. I also don't think it is a memory issue but will try to monitor the ram and see if there's a spike when the speaker stops playing. Is there a simple way of logging the ram?
I found this which might be helpful.
http://stackoverflow.com/questions/1868210/how-to-log-the-memory-consumption-on-linux

@D3rpi I actually tried to do something like this. I eventually abandoned it due to the same issues that you were having: Bluetooth was routinely falling asleep.

I logged by ram usage and didn't see a spike when the issue occured.

@D3rpi Yeah, I looked at my notes, and PulseAudio was routinely setting the Bluetooth sink to sleep even if told explicitly not to. I eventually stopped trying after pulling all my hair out and then some (ouch). If you want an alternative, you can use the PiMusicBox distribution to put an interface for audio on top of the MM. It doesn't have Bluetooth, but it does have TuneIn Radio. The RPi just isn't the best interface for Bluetooth.

@D3rpi Also, the RPi 3 Bluetooth works, so PulseAudio seems to be the only connected factor.

This seems as a PulseAudio to me. Since it's hardware related., there is not much we can do. Feel free to reopen if nessecery.


Autocomplete dialCode when the number is still not valid

In this case i try with Perú.
Perú needs 9 digits without counting the dial code(+51), to be valid, however it marks as valid in addition to completing the dial code having only 8 digits.

Thanks @f1729, fixed in v2.0.8


fix: update dependencies

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Create Testing Suite for User Editing Endpoints

Idea
Right now all of our testing suites are in one file- src/tests/test.js but we want to move each testing suite into its own file.
For this issue, we need to move the testing suite for user editing endpoints into its own file titled src/tests/userEdit.js. If you want to do this, comment on this issue and I will assign you to it.
The user editing endpoints are the endpoints where users can change data about themselves. This includes setting their status, setting their biographies/ profile pictures, and deleting their accounts.
Todo

[ ] Move the testing functions into their own file

This is done.


Don't cache node_modules in AppVeyor tests

See the discussion at
https://github.com/feross/webtorrent/pull/602#issuecomment-181987938

I prefer not to cache the node_modules folder on CI since I want to
catch bugs that exist in the latest published packages, i.e.  what a
user will experience when running npm install webtorrent for the first
time.

LGTM :+1:


Remember prev swap

Save user's previous swap in local storage and retrieve so that user always sees most recent swap as default

Worked fine.
https://github.com/osmosis-labs/osmosis-frontend/assets/103904125/f281e6aa-929c-4751-8317-9933cc6ca072


helm delete --purge does not delete pods which are in completed state

Is this a request for help?:
no
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT
Version of Helm and Kubernetes:
helm 2.6.2
kubernetes 1.7.5
Which chart:
minio
What happened:
I installed the minio chart, waited few minutes and then deleted it.
Pod -create-bucket does not get deleted aftr issuing helm delete --purge.
I suppose its because the pod is in Completed state.
What you expected to happen:
All resources deleted including this completed pod.
How to reproduce it (as minimally and precisely as possible):

helm install stable/minio
waited until the chart starts up
helm delete --purge

Anything else we need to know:
nope

Although this is probably not desirable behavior, this is the way Helm works. That job is defined in a post-install hook. Resources defined in hooks are not managed by Helm on an ongoing basis for their lifetime. While there are complex things that could probably be done with this chart to rectify this, like creating another job in another hook to make it clean up after the first hook/job (and itself), it might be more constructive to open a feature request against Helm itself for hooks that defined resources that would be managed on an ongoing basis (which would include their removal upon deletion of the release). I have privately asked for this feature as well, but it hasn't gotten much traction yet because recent Helm releases, like the rest of k8s have been focused on stability instead of features.

Looks like this has been resolved now for minio using a helm.sh/hook-delete-policy annotation, see #2655.
A side-effect of this though is that you cannot get the logs out of the deleted pod, I did manage to get them while it was still running though with while true; do kubectl logs -f mychart-minio-create-bucket; done.
Time to close this issue?


Bulk embedding support

Embedding lots of models can be quite slow as each chunk is sent to the API separately. It would be useful to support bulk embedding where content that needs embedding is chunked together and sent to the API together (where supported).

Resolved in https://github.com/wagtail/wagtail-vector-index/pull/87


Report Generator Crashes SAM on MacOS Big Sur 11.2.3

Issue reported to SAM support mailbox in May 2021:
MacOSReportGeneration.docx
report.pdf
Apple_crash_report.txt

Paul, I'm detecting this issue on macOS Big Sur version 11.4, too.  FYI.

Potentially related, LK browse() function results in error on macOS Big Sur when trying to open either a file or folder: SAM Error, Failed to open URL "/Users/[user]/path/to/file/or/folder".


Add higher-level HTTP DSL methods

Description
Adds the higher-level HTTP DSL methods to wrap DoRequest and allow better ergonomics.
Issues Resolved
Closes #403
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Why do we need .LowLevel at all?

All requests are eventually handled via .LowLevel/OpenSearch.Net. However in future it'd be ideal to simplify and only have a single client package keeping just the transport layer separate, similar to what NEST did in v8.

Converting to draft as there's some naming conventions that need fixing or excluding from conventions tests


test that print_greeting returns Nothing

looks good

Invited a collaborator, and changed Branch Protection to allow merging without an approving review, which I can't provide if I originate the PR.


fix(yanky): properly disable sqlite.lua on Windows

When directly modifying its enabled property, the plugin will remain disabled even if required by another plugin.

Thanks!


After removing group which gives me manage staff I get error page

What I'm trying to achieve
After removing the group which gives me permission to specific sites, I shouldn't get an error page.
Steps to reproduce the problem
Perform these steps on the database after populatedb

Log in as admin (superuser)
Create a group with manage staff (let's name it Test group) and add some of the users to this group (not superuser)
Log out
Log in as a user from a group with manage staff
Remove Test group
You will get an error page

What I expected to happen
I should be redirected to some page that I have access to, e. g. home page.
Screenshots

Thats not a bug. Thats the feature!
When trying accessing page you do not have access, you should be presented with 404 error instead of permission denied.

I can't agree with you. I should be redirected to another page that I have access to, after removing the group. I don't want to see the error page after removing the group.


nextjs 13 support

please add nextjs 13 support. I am about to start new project and waiting for a good repo to begin with.

I see the site’s now on Next 14 :) closing


Hooks Endpoint not found

All hooks endpoints are returning the following for me: Endpoint not found. Please check your URL for typos and make sure you're using the correct  HTTP method (GET, POST, etc).
// $ TOKEN=<My Token> node index.js
// Endpoint not found. Please check your URL for typos and make sure you're using the correct  HTTP method (GET, POST, etc).
const bcypher = require('blockcypher');
var ecapi = new bcypher('eth','main', process.env.TOKEN);
var webhook = {
	event: "unconfirmed-tx",
	address: "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
	url: "https://my.domain.com/callbacks/new-tx"
};
ecapi.createHook(webhook, (t) => console.log(t.response.text));

I've tried generating a new token with no luck.
Let me know if there's anything else that would be helpful to debug. Thanks!

Should be fixed now, sorry for the inconvenience.


Minutes for August 10

Anybody remember the highlights? 🤔

...28 days later: still no.
Closing 'er downskis...


XSS in Angular and AngularJS

Is there a way to detect angular strings? Like this:
{{'a'.constructor.prototype.charAt=[].join;$eval('x=alert(1)');}}
{{constructor.constructor('alert(1)')()}}

No, the problem is that frontend frameworks and libs can do whatever they want: e.g. Bootstrap XSS by data-* attributes


RenderParagraph should support measuring line height for empty text

RenderParagraph has a method called getFullHeightForCaret(). This method returns null when there's no text in the RenderParagraph: https://api.flutter.dev/flutter/rendering/RenderParagraph/getFullHeightForCaret.html
A null response might seem appropriate, but it discounts the situation where a RenderParagraph is used for something like a text field, where we want to display a caret when the field is empty.
There are various ways that one might estimate such a height. For example: textStyle.fontSize * textStyle.height. However, these estimates don't quite match the actual caret height the moment that the first character is entered. This difference has been noticed by some super_editor users.
I'd like for RenderParagraph to maintain a measurement of an arbitrary character when it's empty, such that we can query the appropriate caret height for an empty field or document editor. This solution might not be perfect, but I think it's better than leaving all Flutter developers to select random approaches to estimation. This solution also creates the guarantee of a non-null height response, which will let us remove behaviors that kick in when the value happens to come back as null.

CC @justinmc

Update: in addition to the visual difference between the estimated and actual line heights, we also have an issue in super_editor where this difference in height results in text fields offering scrolling behavior when no scrolling should take place.
https://github.com/superlistapp/super_editor/issues/565
https://github.com/superlistapp/super_editor/issues/566


Introduce base image for melodic to speed up CI

@MichaelGrupp @gaschler So this takes the melodic build time from > 50 min to 42'17. I was actually hoping that this would improve it even more. Somehow Travis wastes 6 minutes or so in downloading the base image. I haven't understood yet why the docker build cache is not helping.


DAAP not working

Hi Roger -
Since iTunes was updated to version 10.x, your DAAP implementation has not been working because iTunes suddenly chose to change some part of the protocol. I've tried to fix it myself but without any luck. Would you please care to look into it?

There has been a lot of debate regarding the change in the protocol because it suddenly ruined a lot of different implementations (among those the famous mt-daapd). There is a hint to what could be wrong here:

http://forum.synology.com/enu/viewtopic.php?f=3&t=27530&start=15 and https://discussions.apple.com/thread/2564925?start=60&tstart=0

Hey,
I haven't worked on DAAP for years. Your best option is to fork it.

Hi Roger -
I had the feeling that you would say that. I finally found the bug
yesterday (caused by Apple as they changed the protocol!). I'll post/fork
the change ASAP
Den 06/02/2012 00.55 skrev "Roger Kapsi" <
<EMAIL_ADDRESS>
:

Hey,
I haven't worked on DAAP for years. Your best option is to fork it.

Reply to this email directly or view it on GitHub:
https://github.com/rkapsi/daap/issues/1#issuecomment-3821960


Trouble with clear_color and theming

Checklist

[x] Check other issues and make sure that it is not reported yet.

Versions and Environment
Elixir:
# elixir -v
Erlang/OTP 21 [erts-10.0.5] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Elixir 1.7.2 (compiled with Erlang/OTP 19)

Erlang:
# erl -v
Erlang/OTP 21 [erts-10.0.5] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V10.0.5  (abort with ^G)

Scenic:
# mix deps | grep scenic
* scenic_sensor 0.7.0 (Hex package) (mix)
  locked at 0.7.0 (scenic_sensor) a12aed75
* scenic 0.8.0 (Hex package) (mix)
  locked at 0.8.0 (scenic) 44bffa47
* scenic_driver_glfw 0.8.1 (Hex package) (mix)
  locked at 0.8.1 (scenic_driver_glfw) 4fceea7b
* scenic_clock 0.8.0 (Hex package) (mix)
  locked at 0.8.0 (scenic_clock) fc144430

OS:
# uname -a
Linux 4.15.0-33-generic #36~16.04.1-Ubuntu SMP Wed Aug 15 17:21:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Steps to reproduce

install dependencies
generate a new app with mix scenic.new
run the app with mix scenic.run
change Graph.build() in lib/scenes/splash.ex:22 to Graph.build(clear_color: :white) and/or change theme: :dark to theme: :light in lib/scenes/transforms.ex:21.
run the app again with mix scenic.run

Expected Behavior

The background fill in the parrot splash screen is changed from black to white, and/or the theme colors in the transforms screen are changed to brighter tones.
Actual Behavior

The colors are unchanged, and the screens are visually the same.
Stack Trace

n/a
Additional Comments

GLEW and GLFW were pulled from apt-get.
Tried to define a custom theme with theme: %{background: :white} with no success either. Other color-related options such as :fill are working as expected.

I did some additional experimentation, so far I've asserted that push_graph is generating the correct graph, it inserts this into ets:
%{
  0 => %{
    data: {Scenic.Primitive.Group, [1]},
    styles: %{clear_color: {255, 255, 255, 255}}
  },
  1 => %{
    data: {Scenic.Primitive.Rectangle, {62, 114}},
    id: :parrot,
    styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 4}}},
    transforms: %{translate: {319.0, 243.0}}
  }
}

But then Scenic.Driver.Glfw.Graph.handle_cast(:update_clear_color, ...) gets root_group equal to:
%{data: {Scenic.Primitive.Group, [1]}, transforms: %{}}

I'm not sure where the clear_color information is lost just yet.

From my understanding so far, a graph is stored in ETS sometime before push_graph (the reference ending in 189393 in the logs below), which contains the reference to the graph that actually contains the scene data (the one that ends in 189406 below). When the :update_clear_color message arrives at the destination, the graph_key to fetch points to the wrapper graph, which contains no style data.
Log:
SET {:graph, #Reference<0.3473474407.829423617.189393>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, transforms: %{}}, 1 => %{data: {Scenic.Primitive.SceneRef, {:graph, #Reference<0.3473474407.829423617.189406>, nil}}}}
Sending this to driver: {:cache_put, "UfHCVlANI2cFbwSpJey64FxjT-0"}
pushing: %Scenic.Graph{
  add_to: 0,
  ids: %{_root_: [0], parrot: [1]},
  next_uid: 2,
  primitives: %{
    0 => %{
      __struct__: Scenic.Primitive,
      data: [1],
      module: Scenic.Primitive.Group,
      parent_uid: -1,
      styles: %{clear_color: :white}
    },
    1 => %Scenic.Primitive{
      data: {62, 114},
      id: :parrot,
      module: Scenic.Primitive.Rectangle,
      parent_uid: 0,
      styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0}}},
      transforms: %{translate: {319.0, 243.0}}
    }
  }
}
pushed [true]: %{
  0 => %{
    data: {Scenic.Primitive.Group, [1]},
    styles: %{clear_color: {255, 255, 255, 255}}
  },
  1 => %{
    data: {Scenic.Primitive.Rectangle, {62, 114}},
    id: :parrot,
    styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 0}}},
    transforms: %{translate: {319.0, 243.0}}
  }
}
SET {:graph, #Reference<0.3473474407.829423617.189406>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, styles: %{clear_color: {255, 255, 255, 255}}}, 1 => %{data: {Scenic.Primitive.Rectangle, {62, 114}}, id: :parrot, styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 0}}}, transforms: %{translate: {319.0, 243.0}}}}
pushed [true]: %{
  0 => %{
    data: {Scenic.Primitive.Group, [1]},
    styles: %{clear_color: {255, 255, 255, 255}}
  },
  1 => %{
    data: {Scenic.Primitive.Rectangle, {62, 114}},
    id: :parrot,
    styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 0}}},
    transforms: %{translate: {319.0, 243.0}}
  }
}
SET {:graph, #Reference<0.3473474407.829423617.189406>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, styles: %{clear_color: {255, 255, 255, 255}}}, 1 => %{data: {Scenic.Primitive.Rectangle, {62, 114}}, id: :parrot, styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 0}}}, transforms: %{translate: {319.0, 243.0}}}}
pushed [true]: %{
  0 => %{
    data: {Scenic.Primitive.Group, [1]},
    styles: %{clear_color: {255, 255, 255, 255}}
  },
  1 => %{
    data: {Scenic.Primitive.Rectangle, {62, 114}},
    id: :parrot,
    styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 2}}},
    transforms: %{translate: {319.0, 243.0}}
  }
}
SET {:graph, #Reference<0.3473474407.829423617.189406>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, styles: %{clear_color: {255, 255, 255, 255}}}, 1 => %{data: {Scenic.Primitive.Rectangle, {62, 114}}, id: :parrot, styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 2}}}, transforms: %{translate: {319.0, 243.0}}}}
Sending this to driver: {:set_root, {:graph, #Reference<0.3473474407.829423617.189393>, nil}}
GET {:graph, #Reference<0.3473474407.829423617.189406>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, styles: %{clear_color: {255, 255, 255, 255}}}, 1 => %{data: {Scenic.Primitive.Rectangle, {62, 114}}, id: :parrot, styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 2}}}, transforms: %{translate: {319.0, 243.0}}}}
Sending this to driver: :update_clear_color
GET {:graph, #Reference<0.3473474407.829423617.189393>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, transforms: %{}}, 1 => %{data: {Scenic.Primitive.SceneRef, {:graph, #Reference<0.3473474407.829423617.189406>, nil}}}}
GET {:graph, #Reference<0.3473474407.829423617.189406>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, styles: %{clear_color: {255, 255, 255, 255}}}, 1 => %{data: {Scenic.Primitive.Rectangle, {62, 114}}, id: :parrot, styles: %{fill: {:image, {"UfHCVlANI2cFbwSpJey64FxjT-0", 0, 0, 0, 0, 0, 2}}}, transforms: %{translate: {319.0, 243.0}}}}

Got update_clear_color:
GET {:graph, #Reference<0.3473474407.829423617.189393>, nil} => %{0 => %{data: {Scenic.Primitive.Group, [1]}, transforms: %{}}, 1 => %{data: {Scenic.Primitive.SceneRef, {:graph, #Reference<0.3473474407.829423617.189406>, nil}}}}
root_group: %{data: {Scenic.Primitive.Group, [1]}, transforms: %{}}
Old clear_color = {0, 0, 0, 255}, New clear_color = {0, 0, 0, 255}
Stack trace: {:current_stacktrace,
 [
   {Process, :info, 2, [file: 'lib/process.ex', line: 662]},
   {Scenic.Driver.Glfw.Graph, :handle_cast, 2,
    [file: 'lib/glfw/graph.ex', line: 85]},
   {Scenic.Driver.Glfw, :handle_cast, 2, [file: 'lib/glfw.ex', line: 135]},
   {Scenic.ViewPort.Driver, :handle_cast, 2,
    [file: 'lib/scenic/view_port/driver.ex', line: 198]},
   {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 637]},
   {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 711]},
   {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 249]}
 ]}
Sending this to driver: :update_clear_color

For reference:
SET key => value -- Insert graph, in ViewPort.Tables
GET key => value -- Get graph, in ViewPort.Tables
Sending this to driver: msg -- Messages unhandled by the viewport that are passed down to the driver
pushing: graph -- Input for `push_graph`
pushed [true]: graph -- Resulting graph from `handle_cast({:push_graph, raw_graph, sub_id, true} ... )`

At this point without enough understanding of the architecture, I think it's better if I wait for feedback before going further into this.

Wow. Thank you for digging in to this!


Update Contributor's guide

Now that we are using the new Changelog system, there ought to be a section in the Contributor's Guide explaining how it works. For example, what are the allowed prefixes for PR names, and when each of them can be used.

I started writing this yesterday, I'll hopefully finish today.


Library delete request

Hi,
I want to organize my libraries so I want to delete some of my libraries.

https://github.com/akkoyun/GE910
https://github.com/akkoyun/LinearRegression
https://github.com/akkoyun/Battery
https://github.com/akkoyun/B100AA
https://github.com/akkoyun/B902AA

can u delete the libraries written above.
Thanks.

Hi @akkoyun. I am confirming your request.
Unlike submissions, this type of request is still handled manually. The Library Manager index maintainer occasionally comes through to clear all the outstanding requests and closes those issues/PRs when it is done. You will get a notification from GitHub at that time.

Should be solved


Add a pacifier to log loading process

From backlog item:337
Scrumwise Status:To do
It can take a while to load the logs for a lot of wells, so a pacifier would be useful to indicate the progress.
This would only need to increment as the logs for each well are loaded.

Multiple selection is now possible. Volumes are imported even if they already exist in the petrel input tree.
Filtering works based on a simple 'contains' string.  No wildcards are needed in the filter string.

When loading several volumes, there is a slight delay, so I'm showing a 'wait' cursor. If importing 100's of volumes a 'progress bar' should probably be used. QUESTION:- Should this be a feature for this or the next revision.
ANSWER - a BusyCursor class has been implemented for the time being.


Refactor PipelineService class

The PipelineService class should be refactored:

[ ] to not include any UI
[ ] any GET requests are valid SWR fetchers
[ ] SWR hooks should be used as a layer on top of the PipelineService class where possible (react functional components)

@marthacryan - mind taking a look at this and closing if tasks have been completed?

Looks like the first task hasn't been completed because we're still calling showDialog here: https://github.com/elyra-ai/elyra/blob/cd0aea59deaa9ee40e735ee87ee7a157d85f3691/packages/pipeline-editor/src/PipelineService.tsx#L206
I think we're only using SWR here: https://github.com/elyra-ai/elyra/blob/cd0aea59deaa9ee40e735ee87ee7a157d85f3691/packages/pipeline-editor/src/pipeline-hooks.ts#L46
So we should probably be adding it to the other calls to PipelineService like this SubmitFileButton: https://github.com/elyra-ai/elyra/blob/59fc34f02e9775b4c30cb657810e9bc1c944011b/packages/pipeline-editor/src/SubmitFileButtonExtension.tsx#L63


Generate proj from swagger spec succeeds but error occurs

Using https://editor.swagger.io/
ERR Cannot read property 'replace' of undefined: TypeError: Cannot read property 'replace' of undefined
    at s (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…S%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:84:38364)
    at P.<anonymous> (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:1597:3888)
    at l.fire (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:69:1732)
    at _.runner (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…S%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:678:9897)
    at _.doRun (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…S%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:77:18330)
    at _.onTimeout (vscode-file://vscode-app/c:/Users/chgagnon/AppData/Local/Programs/Microsoft…S%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:77:18296)

Doesn't repro for me either so I'll close this out.


Per project configuration

Would be pretty cool to have per project configuration using JSON and if possible also allow other plugins to write extensions for this plugin

Such functionality is already possible

Then I'd suggest reading again. You can do anything.

That was actually one of the goals I had in mind when first developing project.nvim, unfortunately though it proved to be a big security issue.

Look at how projectionist does it would be a good start, I would say :)

That was actually one of the goals I had in mind when first developing project.nvim, unfortunately though it proved to be a big security issue. I am still exploring ways to add that feature while having minimal impact on security, so if u got any ideas l'me know!

that is good to hear

Neovim added exrc option at 0.9 but project.nvim hasn't benefited from it. I guess it's because neovim sources exrc during startup instead of opening a new buffer. Would you consider to sourcing the exrc may exist every time jumping to a new project?


[Graphite]: f.annotations is undefined

Hi,
Itrying to get the plugin to work with Graphite and I'm getting following error in my graph (reported with a red small triangle with "!" in the left top corner):

f.annotations is undefined

The Inspector's panels Request / Response / JS Error are empty.
I don't know if it's related to
https://github.com/grafana/grafana/issues/841
https://github.com/grafana/grafana/issues/927

I think you may use Grafana 4.0beta.
Please see this https://github.com/mtanda/grafana-histogram-panel/issues/36, and try to use latest panel plugin version.

Sorry, if you still have issue, please reopen.


Support Redis AUTH

A Redis database can be secured with a password, which must be send with the AUTH command. BlackRed should support password authentication.

The redis AUTH command can be used now, even if it lacks documentation.


Add new Wait method

Codecov Report

Merging #2 (5f95c47) into master (40f49c0) will decrease coverage by 7.69%.
The diff coverage is 33.33%.

@@             Coverage Diff             @@
##            master       #2      +/-   ##
===========================================
- Coverage   100.00%   92.30%   -7.70%
===========================================
  Files            2        2
  Lines           92      104      +12
===========================================
+ Hits            92       96       +4
- Misses           0        8       +8

Impacted Files
Coverage Δ

pool.go
91.30% <33.33%> (-8.70%)
:arrow_down:

Continue to review full report at Codecov.

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


fix: combineDynamicBindings function

Description
This PR fixes two issues with widgets that inject values like currentItem into the evaluation context. Widgets like Table Widget, List Widget, Menu Button Widget, and JSONForm

The issue related to having an escape character or a new line \n in the code for the widget. For example {{(() => "123 \n 123")()}} or

Date:
{{currentIndex}}

Where JS Code with text like Returned:{{ currentItem.name === "Blue" ? "Yes": "No"}} would always evaluate to No. This happens because the text is converted into a function, and we need to inject some contexts so that the eval can run without error. After conversion, we have {{((currentItem) => "Returned:" + currentItem.name === "Blue" ? "Yes": "No")(Text1.currentItem)}} , which, when passed to eval, comes out as No

Fixes #14200
Fixes #15162
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Manual
Jest
Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=3ad6a4e

/ok-to-test sha=91f5502

/ok-to-test sha=edf57f5

/ok-to-test sha=97ff119

/build-deploy-preview env=release

/ok-to-test sha=0ccf1fc

/ok-to-test sha=0ccf1fc

/ok-to-test sha=db2a80f

/build-deploy-preview env=release

Tested this PR and LGTM
Fixes #14200
Fixes #15162

/ci-merge-check


CIAC-7213 | Remove Dev Partners Leftovers

Status
In Progress
Related Issues
fixes: https://jira-hq.paloaltonetworks.local/browse/CIAC-7213
Description
Remove development partners links/redirects as these result in broken links since https://github.com/demisto/content-docs/pull/1298.
Screenshots

Fixed in https://code.pan.run/xsoar/cortex-marketplace/-/commit/28ff7c4c878510b1e7fd96cfedd409d89a941f86


Update voice assistant

not better than urs but still give it a go

not better than urs but still give it a go


Make the banner unclickable

The is clicked but I want it to be unclickable.

Fixed... Check PR #78...

see PR #84

Thanks all


chrome issue

Hi, i get a little prblem for copying ... and i still dont know how to resolve ( newbie)
it is about this little script (virtual keybord) : http://zdig01.freehostia.com/clavierarabe/
it work very nice with firefox but i cant copy with google chrome ! ( also opera)
chome refer this error

Uncaught TypeError: ZeroClipboard is not a constructor

//  main.js
var client = new ZeroClipboard( document.getElementById("copy-button") );
thx for help

If I open your site in Chrome 55 on Windows, the "copier" functionality appears to work just fine.
Can you please provide the output of running the following command in a browser dev console?
console.log( JSON.stringify( ZeroClipboard.state() ) );

P.S. This is the state I get when I run that command in my working Chrome:
{"browser":{"userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36","platform":"Win32","appName":"Netscape"},"flash":{"version":"23.0.0","pluginType":"pepper","disabled":false,"outdated":false,"sandboxed":false,"unavailable":false,"degraded":false,"deactivated":false,"overdue":false,"ready":true},"zeroclipboard":{"version":"2.2.0","config":{"swfPath":"http://zdig01.freehostia.com/clavierarabe/ZeroClipboard.swf","trustedDomains":["zdig01.freehostia.com"],"cacheBust":true,"forceEnhancedClipboard":false,"flashLoadTimeout":30000,"autoActivate":true,"bubbleEvents":true,"containerId":"global-zeroclipboard-html-bridge","containerClass":"global-zeroclipboard-container","swfObjectId":"global-zeroclipboard-flash-bridge","hoverClass":"zeroclipboard-is-hover","activeClass":"zeroclipboard-is-active","forceHandCursor":false,"title":null,"zIndex":999999999}}}

me too i have th last chrome 55.0.x
when i type a text (keybord or mouse ) on the text area ..
then when i click the copier (copy) boutton ( 3rd one )
on firefox i get a box confirmation but not on chrome that is was copier to clipboard
any way after that when i try to past what supposed be copied
i dont get the correct text -> that mean it copy nothing
but when i test this with firefox it work like a charme i get the alert box and the past work perfectly
so when i tried to get more information i used inespector page of chrome and i see the message about Uncaught TypeError
i always thought that firefox is better than chrome and this is a confirmation :)

@zdig1: Please provide me with the info I requested or else I cannot help since I cannot reproduce the issue on my side currently.

when i run the command
console.log( JSON.stringify( ZeroClipboard.state(), null, 2 ) );
i get on chrome console
Uncaught TypeError: ZeroClipboard.state is not a function     at <anonymous>:1:44

Seems like your ZeroClipboard script isn't even being loaded. What does typeof ZeroClipboard return?

@zdig1: Seems like your ZeroClipboard script isn't even being loaded.

What does typeof ZeroClipboard return?
Are there any other Error messages in the console?
If you monitor the Network tab while loading the page/script, does it get downloaded into Chrome successfully?

hi, it seem to b googl chome pb
today i get the new version 55.0.2883.87 and it work
thanks for all, and hope soon w get th 2.3 :)

Glad it's working now! Thanks for the update.


Buffer points don't work well on non integer precision scalars.

Buffer points don't consistently appear when the precision scalar is not an integer.

As the precision the user requests is no longer a float, but rather a decimal count, the only way for the buffer region to not be detected is if the precision of the pKa value is greater than that of the titration curve itself. It may be prudent to add closest value logic to the pH selector.


Make future public without pub fn ?

Currently to achieve it I can do this
#[rename_future(HandleProtocolFuture(!Send))]
pub async fn some_fn() {}

But I don't want my fn to public can you allow something like
#[rename_future(HandleProtocolFuture(!Send, pub))] // <- maybe put a vis somewhere in maco
async fn some_fn() {}

and I'm not sure it's can be done using something like this.
https://github.com/ArtBlnd/rename-future/blob/20c9d44726fd9f148f118cc260b713ce3d609ba2/proc_macro/src/lib.rs#L27-L38

This is a bug thought. The visibility of HandleProtocolFuture and some_fn() should follow the original async function visibility. But I think TAIT is soon stabilizing. so I decided not to maintain this repository.
If you want to fix this. feel free to make PR. thanks :)


[NCLSUP-507] Switch tryAtomic to false

Gerrit doesn't seem to support atomic pushes, so let's disable it by
default for now.
All Submissions:

[ ] Have you added a note in the CHANGELOG wiki for your change?
[ ] Have you added unit tests for your change?

retest this please

retest this please


Allow saving arrays as resource

Operating system or device - Godot version:
Tested on 2.1.1 stable
Issue description
Resources like shapes and curves can be saved as files in the editor (with the save icon) but built in types like Arrays, which are often used like those resources (to make polygons and things like that), can't be saved, making it complicated to copy the data in a simple way.
Steps to reproduce:
Create a node that uses an Array or export an Array variable on a script, create a new array if needed and go to edit the array in the inspector, the save button is disabled.
PS: the load button is enabled but I'm not sure if it works because arrays can't be saved and may break things because it can load anything (only tried with a mesh library resource)...

They would have to inherit Resource, which is a bit too much to add to a fundamental datatype (also what about Dictionaries and all the other typed arrays?).
However you can probably make a new class inheriting Resource that contains what you want (and an array on its own actually doesn't mean much).
If the problem is actually copying stuff around, then the problem is not in resource.

@Zylann without being a resource, maybe the inspector could give the option/exception to save the basic arrays on a file (real, and vectors are the most important ones), so it can be loaded on another scene or another project from the inspector's array editor.
Creating a custom resource makes no sense (in general) because it can't be used with current nodes.

It can, just script the nodes and it works^^ not out of the box for sure, but the engine cant provide everything everytime out of the box (also I never needed to save such arrays in a file to share them, even in Unity). But that's my point of view of course.

Something like PackedScene, but PackedValue instead.

You can also have a base scene and inherit it so base values will be "shared" (or a shared child scene).

Still reproducible/relevant in 3.1 master 48890b1 : array can't be directly saved as resource

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Not switching to Poke Farming when Inventory Full

Expected Behavior
Switch to pokemon farming when inventory is full
Actual Behavior
Stating but sticking with pokestop farming
Steps to Reproduce
Other Information
[2016-07-24 12:43:46] [#] Now at Pokestop: Lion Ladies  - Spinning...
[#] Inventory is full, switching to catch mode...
[2016-07-24 12:43:52] [#] Found fort 0913a27a7f184cf5b7aeb68d62b2817b.16 at distance 0.49km
[2016-07-24 12:43:52] [#] Need to move closer to Pokestop
[2016-07-24 12:43:52] [#] Walking from (40.786922, -73.956324) to (40.787731, -73.955078) for approx. 34.00 seconds
[2016-07-24 12:44:48] [#] Finished walking
[2016-07-24 12:44:48] [#] Arrived at Pokestop
[2016-07-24 12:44:50] [#] Now at Pokestop: Ogden Goodman House - Spinning...
[#] Inventory is full, switching to catch mode...
[2016-07-24 12:44:53] [#] Found fort 62106f8b6c2847b18896b76c221c8f28.16 at distance 0.50km
[2016-07-24 12:44:53] [#] Need to move closer to Pokestop
[2016-07-24 12:44:53] [#] Walking from (40.787731, -73.955078) to (40.787509, -73.955157) for approx. 7.00 seconds
[2016-07-24 12:45:08] [#] Finished walking
[2016-07-24 12:45:08] [#] Arrived at Pokestop
[2016-07-24 12:45:11] [#] Now at Pokestop: Stone Lion - Spinning...
[#] Inventory is full, switching to catch mode...
[2016-07-24 12:45:14] [#] Found fort e95e54d1c4d94e2b9ed7510b15c6ba71.16 at distance 0.54km
[2016-07-24 12:45:14] [#] Need to move closer to Pokestop
[2016-07-24 12:45:14] [#] Walking from (40.787509, -73.955157) to (40.787349, -73.954735) for approx. 10.00 seconds
[2016-07-24 12:45:31] [#] Finished walking
[2016-07-24 12:45:31] [#] Arrived at Pokestop
[2016-07-24 12:45:34] [#] Now at Pokestop: Stone Relief  - Spinning...
[#] Inventory is full, switching to catch mode...
[2016-07-24 12:45:37] [#] Found fort bd86cff95ddb44638772204fb6ecad69.16 at distance 0.55km
[2016-07-24 12:45:37] [#] Need to move closer to Pokestop
[2016-07-24 12:45:37] [#] Walking from (40.787349, -73.954735) to (40.786231, -73.955605) for approx. 35.00 seconds
OS: Mac OSX 10.11
Git Commit: (run 'git log -n 1 --pretty=format:"%H"' and paste it here)

https://github.com/PokemonGoF/PokemonGo-Bot/issues/711#issuecomment-234800717

PR #655, issue #660


PS registration script output update

If this PR needs approval, or if the commits need to be pulled into the private repo, contact @alkohli. Thanks.

@alkohli
Can you review the proposed changes? Note that the validation warnings must be resolved before merging.
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Add a user defined 'tag' to the connection identifier.

As discussed in various meetings we should add a tag to the connection identifier to allow the user of the voltron api to 'tag' a voltron connection with a human-readable name.  This allows for easier parsing of the connection-ids anywhere that they are referenced, be that the server logs, the client logs, or various locations in the M&M stack where this information is used or extended.

CC @anthonydahanne @ankitamaurya :
Talked to @jd0-sag. He will bring up this feature to the server team. We need it for M&M Slice 2.
Basically, a client will be able to do something like this:
        Properties properties = new Properties();
        properties.setProperty("tag", "123@<IP_ADDRESS>:jetty:app:3");
// or
        properties.setProperty("tag", ClientIdentifier.create("jetty:app:3").toString());
        this.connection = connectionService.connect(uri, properties);

And the tag will be exposed into the voltron monitoring tree in the PlatformConnectedClient object.

@jd0-sag , @myronkscott @ramsai1729 : would it be possible to directly expose in PlatformConnectedClient  the whole Properties object used to create the connection ?
The objects could also be "extended" to contain connection.uri, which would be the String representation of the URI used to connect.
This way it would be possible for us, by recovering this properties object from the PlatformConnectedClient  class, to get:

connection.timeout : optional
connection.uri : always there // uri used to connect
connection.tag : string used to tag this connection
any other user-defined properties

What do you think about this ?
I see several benefits for this, including:

ability to show in TMC how the connections have been created
easier shield support / troubleshooting
easy to extend and provide some other user-defined properties for eventually other services or monitoring use cases

(CC @anthonydahanne)

I would generally want to avoid something so open-ended since these properties are really more about interacting with the underlying ConnectionService implementation in on-general "hint"-like ways and pushing any of that data through to the server is arguably the wrong approach.
For a defined key, it seemed like a clearer approach than adding to the API in ways which would otherwise seem somewhat redundant (next to Properties).  Even that is somewhat questionable, though.

OK!
So if we forget about any other user-defined properties, could be still have all the other 3 properties exposed ?

My thinking is either 1 (as it gives something we could generally output as a human-readable identifier, in many situations) or 0 (and connect this other arbitrary data/behavior through a different path).
You are able to associate the PlatformConnectedClient identifier with the other cases where you need to know this information, on your side, right?

Right, but I was just asking for connection-specific properties:

connection.timeout : optional
connection.uri : always there // uri used to connect
connection.tag

If we modify PlatformConnectedClient to expose the tag set by the user, I just say we could also expose the properties used to create the connection. Things that we do not have access locally from the management library and could be exposed by the platform as easily as the tag.

The problem is that this is producing more hidden API:  instead of being able to ask for specific data, we are looking up "magic keys" in a Properties object.  If we wanted specific pieces of data, we should just add them to PlatformConnectedClient, directly.
Even if we were to pass the entire map through (which may be something to consider, for general opaque monitoring, not decision-making - still wary of this, though) we would still need these pieces of data to be top-level (since "connection.uri" is a valid key in the map - which one do you see?).

Ok. So we know that PlatformConnectedClient will expose a sort of tag.
Now, here is my question.
How could we access, from the Tms Entity, the connection properties (_timeout_, _uri_)
that the client set when connecting to the server ? => to know HOW it connected.

Using some management module on client-side to do that is not a solution because not all client will have a management module and the management module is just about exposing the client-side objects. So it has nothing to do with the connection.

There isn't currently a way to do that since this is a new requirement.
What information do we currently want to expose to M&M regarding these client-side network layer options?  Do we actually want this "tag" capability or is this underlying map the data that M&M actually wanted?
If the answer is "both", then we can't use this map to implement the tag and we will have to change the API to make it a first-class piece of information.  Arguably, if the server-side wanted to know about this for decorating logs, etc, then it should be part of the API, directly, and not slid in through the properties which are really more about the implementation details of the ConnectionService, treated as opaque by the rest of the platform.

I'll ask some people to be sure.
Because what we are sure for now is that we need a way to pass a string (client identifier) when connecting.
What I am not sure yet is what we'll need to know about how the client connected. So let's answer that and then I'll come back to you :-)

FYI:

ClientIdentifier class is currently in terracotta-management: source | test

We need this class / representation for client tagging in M&M.
<PID>@<CLIENT-ADDRESS>:<CLIENT-APP-NAME>
CC @cljohnso

@cljohnso @jd0-sag @chrisdennis : about ClientIdentifier integration, here is a proposal:
When a cluster client will create a connection (connectionService.connect(uri, props)), he will need to pass a string tag representation of a ClientIdentifier. This class constructs a client identifier such as <PID>@<CLIENT-ADDRESS>:<CLIENT-APP-NAME> and has several constructors:

create() => create(generated-short-uuid)
create(app-name) => create(discovered-pid, discovered-lan-address, app-name)
create(pid, address, app-name)
valueOf(string)

The idea would be to allow users to put in the ehcache.xml file an optional attribute with their application name. If the attribute is there, then you can call ClientIdentifier.create(app-name) and if it is not there, ClientIdentifier.create(). The ClientIdentifier class discovers the PID and lan address.
Programmatically, here is how it could looks like:
    final CacheManagerBuilder<PersistentCacheManager> clusteredCacheManagerBuilder =
        CacheManagerBuilder.newCacheManagerBuilder()
            .with(ClusteringServiceConfigurationBuilder.cluster(URI.create("http://example.com:9540/my-cache-manager?auto-create"))
                .clientIdentifier("jetty/EhcachePounder")
                .defaultServerResource("primary-server-resource")
                .resourcePool("resource-pool-a", 128, MemoryUnit.GB)
                .resourcePool("resource-pool-b", 128, MemoryUnit.GB, "secondary-server-resource"))
            .withCache("clustered-cache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                ResourcePoolsBuilder.newResourcePoolsBuilder()
                    .heap(10, EntryUnit.ENTRIES)
                    .with(ClusteredResourcePoolBuilder.fixed("resource-pool-a", 32, MemoryUnit.GB))));

Then the clientIdentifier() method will call ClientIdentifier.create(name). If clientIdentifier() is not called, then an identifier can be generated for this app with ClientIdentifier.create()
Note: I am wondering if we can re-use some part of the cluster URI to make the client identifier ? Do we have ONE server entity per client application, OR we can have 1 client web application that for exemple connects to several cluster URIs ? I guess so, so .clientIdentifier("jetty/EhcachePounder") would be the same for different cluster URI.
This proposal would also any user-made entities to use the ClientIdentifier. As long as a user uses the ClientIdentifier class to generate a unique tag that he can re-use across different connection creation.
I also propose we move this class at a common place to avoid duplication. It could be in terracotta-apis. Or copied in each project that needs it, but it's not really good I think... You might see it as a class that can be used client-side to help generating a logical cluster client  identifier, that should be in this format: <PID>@<CLIENT-ADDRESS>:<CLIENT-APP-NAME>.
Let me know what you think about! We can do a hangout to discuss it.

Meeting conclusion:
Ehcache:
.tag("jetty")
.tag("EhcachePounder")

Server exposes:
- clientAddress => already there
- pid => PlatformConnectedClient.pid

At connection time: "pre" connection step to publish client metadata (will be a new module in terracotta-management project)
root
  | --platform
         |-- connections
                |- <generated-voltron-conn-id> = PlatformConnectedClient (ip, port, PID)
                              |- metadata = ManagementMetadata (product name, tags)

From the metada-connection-entity
producer.addNode({platform, connections, <id>, metadata}, MetadataObject)

UPDATE
Goals:

M&M needs to be able to consolidate all the physical connection information exposed in Voltron tree to regroup connections based on connection uuids (to regroup cluster connections together == logical connection)
M&M also needs to create the client identifier from PID, client addr, connection UUID and regroup all the logical connections having the same tags / client identifier under the same Client object.
M&M needs to have a way to easily display a client (== client identifier) and filter them (== tags)
M&M needs to be able to identify a connected client to a cluster thanks to a client identifier, and then lookup the server entities this client is connected to.

Terminology:

Connection Uuid: string passed when creating a TC connection

Tags: set of strings passed when creating a TC connection

Physical connection == PlatformConnectedClient : client port, client addr, server port, server addr, connection uuid, tags, client PID

Logical connection = connection to a cluster : grouping of several physical connections having the same connection uuid (multi-stripe)

ClientIdentifier = @: : identifier that will be used in M&M to identify a client in the topology

Client: = ClientIdentifier + Tags + etc.. : client object representing a cluster client in M&M.Identified by a ClientIdentifier

Example:
user can open a connection to voltron with a uuid to identify the physical connection (?) and the tags {ehache, my-cache-manager-name}
Todo for server team:

Support a string for the name/uuid + a list of tags when creating a connection
Expose in PlatformConnectedClient the client PID, tags and name/uuid

@mathieucarbou would all this information (topology above) be published in the monitoring tree ?
On a user point of view (read tmc), I guess only the logical information makes sense to be published (but I understand there are other needs than just M&M here)

@anthonydahanne : the tms backend topology needs to have all this information, whether it is shown or not in the TMC.
Yes it needs to be in the monitoring tree.

@jd0-sag : issue automatically closed because of the commit message. You we re-open it, as you told me yesterday that the logical connection uid could be added there ?

This issue has been re-purposed too many times to encapsulate too many divergent ideas.  I have opened #72 to handle the specific details of logical connection name to keep the intent clear.
This means that the existing item describes the platform-intrinsic data while #72 will focus on the API-level, extrinsic, data we want to pass through from the client to monitoring.


Add entangler errors to median data

Adds theta and phi entangling angles to published median data.
These weren't part of the exposed QCS metrics when this calibration was run, but we were able to reconstruct them from historical data stored internally. The latest QCS calibration metrics report these by default.

Thanks especially to @dkafri for the tools necessary to extract this data - once I found the matching dataset it was pretty much a one-click process.

Does it make sense for there to be a test to check that all the expected types of data are present?

Thanks especially to @dkafri for the tools necessary to extract this data - once I found the matching dataset it was pretty much a one-click process.

Glad it was helpfu!

Does it make sense for there to be a test to check that all the expected types of data are present?

Done. Also tacked on a value-check for Weber to ensure we have the right dataset.


fix: do not commit an environment on each model create

Libraries shouldn't commit an environment themselves as it would be impossible or inconvenient to provide environment options, and since only one environment is allowed in a program at a time, an environment should only ever be committed once.
If an environment is not committed by the time a session is created, a default one will be created, so there is no need for fastembed to commit its own environment here.

Thank you for the insight @decahedron1.


"Invoke is not a generic function"

I'm in the process of trying to minimize a bigger error, but with my smaller code have hit a "invoke is not a generic function" error I've not seen before. This very well might be from me doing something silly, but the error output seems to point to Enzyme code so not sure.
The code I'm running:
using Enzyme

function integrate(J, nt, k, r, x0, data_steps, data)

    nt = nt
    dt = 0.001
    x0 = x0
    k = k
    r = r

    A = [1 0 0 dt 0 0;
        0 1 0 0 dt 0;
        0 0 1 0 0 dt;
        -2*k*dt k*dt 0 1-r*dt 0 0;
        k*dt -3*k*dt k*dt 0 1-r*dt 0;
        0 k*dt -2*k*dt 0 0 1-r*dt
    ]

    E = [1 0 0 0 0 0;
        0 1 0 0 0 0;
        0 0 1 0 0 0;
        0 0 0 1 0 0;
        0 0 0 0 1 0;
        0 0 0 0 0 1
    ]

    sigma_forcing = 0.01

    function q(t)
        q_1 = 0.1 * cos(2 * pi * t / (2.5 / r))
        q_2 = 0.0
        q_3 = 0.0
        q_4 = 0.0
        q_5 = 0.0
        q_6 = 0.0

        return [q_1, q_2, q_3, q_4, q_5, q_6]
    end

    function q_kf(t)
        return 0.5 * q(t)
    end

    B = [1 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0]

    function u(t)
        return sigma_forcing * randn(6)
    end

    Gamma = [1 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0]

    all_states = zeros(6, nt+1)
    all_states[:,1] = x0

    x = x0

    current_timestep = dt
    for j in 1:nt+1

        x = A * x + B * q(current_timestep) + Gamma * u(current_timestep)

        all_states[:, j] = x
        current_timestep += dt

        if j in data_steps

            J += sum((E * data[:, j] - E * x).^2)

        end

        data[:, j] = x

    end

    return nothing

end

J = 0.0
nt = 10000
k = 30
r = 0.5
x0 = [1., 2., 3., 0., 0., 0.]
data_steps = 3000:300:7000
data = zeros(6, nt+1)

integrate(J, nt, k, r, x0, data_steps, data)

data = data + 0.5 .* randn(6, nt+1)

dk = 0.0
dx0 = zeros(6)

autodiff(ReverseWithPrimal,
    integrate,
    Active(J),
    Const(nt),
    Active(k),
    Const(r),
    Const(x0),
    Const(data_steps),
    Const(data)
)

and the error I see:
julia> include("three_mass_spring.jl")
┌ Warning: Using fallback BLAS replacements for (["dsymv_64_"]), performance may be degraded
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/Y4hSX/src/utils.jl:59
ERROR: LoadError: invoke is not a generic function
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] codegen_world_age_generator(world::UInt64, source::Any, self::Any, ft::Type, tt::Type)
    @ Enzyme ~/.julia/packages/Enzyme/aEyGD/src/utils.jl:109
  [3] augfwd_with_return(::Val{…}, ::Val{…}, ::Type{…}, ::Val{…}, ::Type{…}, ::Type{…}, ::typeof(invoke), ::Nothing, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Active{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Active{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Const{…}, ::Active{…}, ::Active{…}, ::Active{…}, ::Const{…}, ::Active{…}, ::Const{…}, ::Const{…}, ::Active{…}, ::Active{…}, ::Active{…}, ::Const{…}, ::Active{…}, ::Const{…}, ::Const{…}, ::Active{…}, ::Active{…}, ::Const{…}, ::Const{…}, ::Active{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/aEyGD/src/rules/jitrules.jl:836
  [4] runtime_iterate_augfwd(activity::Type{…}, width::Val{…}, ModifiedBetween::Val{…}, RT::Val{…}, f::typeof(invoke), df::Nothing, primal_1::Tuple{…}, shadow_1_1::Nothing, primal_2::Tuple{…}, shadow_2_1::Base.RefValue{…})

    @ Enzyme ~/.julia/packages/Enzyme/aEyGD/src/Enzyme.jl:323
 [15] top-level scope
    @ ~/Documents/GitHub/ShallowWaters_work/trying_to_minimize_difficult_bugs/three_mass_spring.jl:105
 [16] include(fname::String)
    @ Base.MainInclude ./client.jl:489
 [17] top-level scope
    @ REPL[3]:1
in expression starting at /Users/swilliamson/Documents/GitHub/ShallowWaters_work/trying_to_minimize_difficult_bugs/three_mass_spring.jl:105
Some type information was truncated. Use `show(err)` to see complete types.

what version of things are you on -- as this worked for me [though I needed to add Enzyme.API.runtimeActivity!(true)]

I'm on Enzyme v0.12.22, but I don't have the runtime activity flag so can try adding that

Whoops that was wrong, I'm actually on Enzyme v0.12.25#main

Adding the flag did indeed make the error go away, but weirdly when with the flag the error happens with my version of the code that uses a struct:
using Enzyme

Enzyme.API.runtimeActivity!(true)

mutable struct model
    J::Float64
    nt::Int
    k::Float64
    r::Float64
    x0::Vector{Float64}
    data_steps::StepRange{Int64, Int64}
    data::Array{Float64}
end

function integrate(model)

    nt = model.nt
    dt = 0.001
    x0 = model.x0
    k = model.k
    r = model.r
    data = model.data
    data_steps = model.data_steps
    J = model.J

    A = [1 0 0 dt 0 0;
        0 1 0 0 dt 0;
        0 0 1 0 0 dt;
        -2*k*dt k*dt 0 1-r*dt 0 0;
        k*dt -3*k*dt k*dt 0 1-r*dt 0;
        0 k*dt -2*k*dt 0 0 1-r*dt
    ]

    E = [1 0 0 0 0 0;
        0 1 0 0 0 0;
        0 0 1 0 0 0;
        0 0 0 1 0 0;
        0 0 0 0 1 0;
        0 0 0 0 0 1
    ]

    sigma_forcing = 0.01

    B = [1 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0]

    function u(t)
        return sigma_forcing * randn(6)
    end

    Gamma = [1 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    0 0 0 0 0 0]

    all_states = zeros(6, nt+1)
    all_states[:,1] = x0

    x = x0

    current_timestep = dt
    for j in 1:nt+1

        x = A * x

        all_states[:, j] = x
        current_timestep += dt

        if j in data_steps

            J += sum((E * data[:, j] - E * x).^2)

        end

        data[:, j] = x

    end

    return nothing

end

nt = 10000

parameters = model(
    0.0,
    10000,
    30.,
    0.5,
    [1., 2., 3., 0., 0., 0.],
    3000:300:7000,
    zeros(6, nt+1)
)

integrate(parameters)

data = parameters.data + 0.5 .* randn(6, nt+1)

parameters_for_enzyme = model(
    0.0,
    10000,
    30.,
    0.5,
    [1., 2., 3., 0., 0., 0.],
    3000:300:7000,
    data
)

derivatives = Enzyme.make_zero(parameters_for_enzyme)

autodiff(ReverseWithPrimal,
    integrate,
    Duplicated(parameters_for_enzyme, derivatives)
)


In win7, screenshots are slower than traditional GDI screenshots.

In win7, screenshots are slower than traditional GDI screenshots.I don't know if it's wrong where I set up. I use test example.

How can I import this project?
https://github.com/caoym/WinRobot/issues/14

give more information.