Issue: Problems getting filtering to work with langchain, OpenSearchVectorSearch, similarity_search_with_score

Issue you'd like to raise.
Using langchain on AWS lambda function to call an AWS OpenSearch Serverless vector index.  I did not file as a bug, as I suspect that this is a usage problem, but it might be a bug.
I have built an OpenSearch vector index, using AWS OpenSearch Serverless, and are using it to perform vector queries against document chunks.  This is all working well. I would now like to add the ability to filter these searches by document (there may be hundreds or thousands of vector entries per document).  There is metadata included with each entry, which includes a DocumentId field, which is a string-ized guid.  I thought it would be simple to filter against this metadata attribute, but cannot get it working.
The call I am making is:
    docs = vsearch.similarity_search_with_score(
        theQuery,
        index_name="vector-index2",
        vector_field = "vector_field",
        search_type="script_scoring",
        pre_filter=filter_dict,
        space_type="cosinesimil",
        engine="faiss",
        k = 3
    )

Typical unfiltered output:
{"doc": {"page_content": "seat is  installed ... facing", "metadata": {"DocumentId": "{8B5D5890-0000-C1E8-B0B6-678C8509665D}", "DocumentTitle": "2023-Toyota-RAV4-OM.pdf", "DocClassName": "Document"}}, "score": 1.8776696}]
For filter_dict, I have tried:
filter_dict = {'DocumentId':theDocId}                                    <-- Gets an error
filter_dict = {'bool': {'must': {'term': {'DocumentId': theDocId} } } }  <-- doesn’t find anything
filter_dict = {'bool': {'must': {'match': {'DocumentId': theDocId} } } } <-- doesn’t find anything
filter_dict = {'must': {'match': {'DocumentId': theDocId} } }            <-- Gets an error
filter_dict = {'match': {'DocumentId': theDocId} }                         <-- doesn’t find anything
theDocId is a string set to an input parameter and looks like this:  {8B5D5890-0000-C1E8-B0B6-678C8509665D}.  Results are the same if I use a string constant (i.e. '{8B5D5890-0000-C1E8-B0B6-678C8509665D}')
Same results if I use search_type=”approximate_search” in conjunction with boolean_filter=filter_dict
Any suggestions on how to get this to work?
Suggestion:
No response

@dosu-bot Thanks for the quick reply!
However, using filter=filter_dict was the first thing that I tried.  I found that it was ignored (i.e. I always got the same result set back, regardless of what value was passed in the filter_dict.
After consulting with the docs for OpenSearchVectorSearch (see [https://api.python.langchain.com/en/latest/vectorstores/langchain.vectorstores.opensearch_vector_search.OpenSearchVectorSearch.html#langchain.vectorstores.opensearch_vector_search.OpenSearchVectorSearch.similarity_search_with_score]) I saw that for OpenSearch,  you have to use boolean_filter if using search_type=“approximate_search”, or pre_filter when using search_type="script_scoring".
Please let me know if you don't think that I am referring to the correct docs.  But this does match the behavior I see.  If I use filter, it appears to be ignored.  But the documented boolean_filter / pre_filter parameters appear to work (in that if I pass them, then I don't get any results back, -they are filtering everything out...)  I think that those are the correct parameters, but I am somehow not passing the right values in filter_dict.

@dosu-bot Thanks again.  That is a syntax that I had not tried before.  However it is not working for me either.  I am using
    filter_dict = {'term': {'DocumentId': '{8B5D5890-0000-C1E8-B0B6-678C8509665D}' } }
    docs = vsearch.similarity_search_with_score(
        theQuery,
        index_name="vector-index3",
        vector_field = "vector_field",
        search_type="approximate_search",
        space_type="cosinesimil",
        boolean_filter=filter_dict,
        engine="faiss",
        k = 3
    )

But unfortunately this does not return any results.  It should return multiple results where the DocumentId metadata field matches.  But instead, it appears to be filtering out all results, including ones that should match.

@dosu-bot Thanks, but that did not work for me.  Here is the updated code:
    vsearch = OpenSearchVectorSearch(
        opensearch_url=ossEndpoint,
    	embedding_function = embeddings,
    	http_auth=awsauth,
        timeout = 300,
        use_ssl = True,
        verify_certs = True,
        vector_field = "vector_field",
        connection_class = RequestsHttpConnection,
        engine="faiss",
        index_name="vector-index3"
	)
    filter_dict = {'term': {'DocumentId': '{8B5D5890-0000-C1E8-B0B6-678C8509665D}' } }
    docs = vsearch._approximate_search_query_with_boolean_filter(
        theQuery,
        boolean_filter=filter_dict,
        k=3,
        index_name="vector-index3",
        space_type="cosinesimil",
        engine="faiss",
        vector_field = "vector_field"
    )

The error I get is:
"'OpenSearchVectorSearch' object has no attribute '_approximate_search_query_with_boolean_filter'"

I got the exact same issues. It didn't work for me either with all the solutions Dosubot proposed. I spent a lot of time in fixing the bugs when using langchain but still failed.

@jingwentony Thanks for the suggestion.  The value in the DocumentId field that I am trying to match is: '{8B5D5890-0000-C1E8-B0B6-678C8509665D}'.   I have tried using both:
filter_dict = {‘terms’: {'DocumentId': ['{8B5D5890-0000-C1E8-B0B6-678C8509665D}'] } }
and
filter_dict = {‘terms’: {'DocumentId': ['8B5D5890-0000-C1E8-B0B6-678C8509665D'] } }
But in both cases no results are found (meaning that it is filtering, but it filters out everything, including the values that I want to be returned...)
This is true both for script_scoring + pre_filter, and approximate_search + boolean_filter
So, still searching for a syntax that will filter

I finally got it working with the following format.
boolean_filter  = {"bool":{"should":[
{"match" : {"metadata1":"value1"}},
{"match" : {"metadata2":"value2"}},
]}}
I do get a lot of information from this post https://stackoverflow.com/questions/21933787/elasticsearch-not-returning-results-for-terms-query-against-string-property.
The difference in field type (analyzed vs not analyzed) is quite tricky, I switch the word "term" to "match" and it helped a lot. Hopefully it helps.

@jingwentony thanks for the suggestions.  I wish I could say that this worked for me, but it did not.  I am wondering if this may be a bug / limitation of vector indexes in AWS OpenSearch Serverless.  I have defined the DocumentId field as a text metadata field in my vector index, and set "Filterable" to true.  So it seems that filtering on it should work, but none of the suggested syntax approaches work for me, either as a boolean_filter (when using approximate_search) or as a pre_filter (when using script_scoring).
I gather that others are able to get this to work with ElasticSearch or OpenSearch, so I am suspecting a problem with AWS OpenSearch Serverless.  I may try the regular AWS (non Serverless) OpenSearch next.

This turned out to be pilot error after all, although I must say that there is a lot of room for improvement in the documentation.  There were two primary changes that I had to make:

The first is that when data is indexed via LangChain, this is done by passing a python dictionary into the LangChain text splitter to generate a List of LangChain documents.  Each element of the dictionary is then stored as an OpenSearch field as metadata.  The field names are "metadata.".  So the search filter must be 'metadata.documentid': ''.  I was searching on 'documentid': '' -which was not the correct field name.  Not sure how I should have known that.

The second issue is that searching for data stored in OpenSearch as a string-ized guid does not work if the string contains curly braces or dashes.  So searching for
”documentid”: “{83fa9155-4d9b-4af4-913b-f55dba49a02a}”

You must instead search for:
”documentid”: “83fa91554d9b4af4913bf55dba49a02a”

And the curly braces and dashes must be removed from the guid string before indexing the document as well.
Maybe there is a search syntax that would find the guid strings with embedded curly braces and dashes, -not sure, but it does work after stripping them from the guid value.
I am closing this issue with the solution above

This topic has helped me a lot.
This did not work for me:
filter =  {"bool":{"filter": {"term": {"metadata.lesson_id": "TyKfB"}}}}
This worked (thanks to @jingwentony)
boolean_filter = {"bool":{"should":[
  {"match" : {"metadata.lesson_id":"TyKfB"}},
]}}


Latest Ember CLI, Chrome Testing, yarn.lock

Ember CLI v2.14.1
Swapping PhantomJS -> Chrome headless testing in Dev and CI
Adding yarn.lock file for deterministic builds using Yarn

Awesome, thanks!


Data table component

Data table
Brief description
This epic represents all of the data table extensions that are listed on the PAL site.
Details
Link to Design
Existing data grid component from WKC
Links to other materials
e.g. sketch files, icons, images, prototypes
Design Maintainer(s)

~Marion Brülls~ Ashley Bock
Virginia Nicholson
~Mitchell Bernstein~
Johanna Koval
Nina Shahriaree

Tasks
Before starting work on this epic, please review and complete the following.

[x] Initial review of design/existing code

Working in Carbon for IBM Products package

[x] Have you reviewed our
contribution guidelines?
[x] Have you noted our
code guidelines?
[x] Did you use the CLI to scaffold your new component?

Code is still in my fork -
https://github.com/holmansze/ibm-cloud-cognitive/tree/datagrid/packages/cloud-cognitive/src/components/Datagrid
We can create PRs off this fork for the additional work, before I create a PR against master.

@matthewgallo I see the timeline set for September 26 — Are still in time for this one? Just asking because I want to plan on an announcement for Cloud PAL community that we will retire the support for our Data Table components in favor of the Data Grid.

Hey @yumeforever! Yes, that's still our target as of right now. I can keep you updated with there is anything that changes in terms of the timeline

Release strategy is currently in discussion.


Add titles to script buttons

I wondered what the docs icon stands for and whished the button showed some info when holding the mouse cursor over them.
Good idea?

👍


Allow to download gradle-wrapper.jar instead of checking it into the project.

Expected Behavior
Currently, Gradle Wrapper requires storing gradle-wrapper.jar within the project. While this is a minor file, it is a binary file and can be problematic to store in a project that is supposed to only contain source code.  To avoid this, I adjusted my scripts to download the wrapper file if it is not checked in, and I want to suggest to make this a feature of Gradle.
Current Behavior
It is required to check in the gradle-wrapper.jar.
Context
Many project health tools mark binary code within a project as problematic. Maven Wrapper offers an option to avoid this.

This is a duplicate of https://github.com/gradle/gradle/issues/11816

I see. Thanks!


Link refering destructhub repository is broken

Take a look on README.md.

Thank you, gonna fix that later
--
Regards,
Rafael Campos Nunes.
rafaelnunes737<EMAIL_ADDRESS>Le 24 oct. 2016 ? 11:43, "Manoel Machado" <notifications<EMAIL_ADDRESS>a ?crit :
Take a look on README.md.

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/rafaelcn/louv1.1x/issues/1, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADHp52Jehr-llUp0G_tPwV6G6rx8D3bmks5q3LXfgaJpZM4KezbK.

Closed due lack of activity (> year 1).


prevent infinite loop over the same url

Going through this url:
https://itunes.apple.com/de/rss/customerreviews/page=10/id=378722461/sortby=mostrecent/xml?urlDesc=/customerreviews/page=10/id=378722461/sortby=mostrecent/xml
ireviews got stuck in an infinite loop, as the nextPageUrl is equal to the current page.

Thank you for your help.


Support committing the selected completion item with keys like (

In Visual Studio, pressing an open paren ( will commit the selected item in the completion list.
eg.:
funcA() {
}

funcB() {
  func
}

With the cursor after the c on the last line and the completion list having funcA selected, pressing ENTER will complete the item. However pressing ( will not, it will just result in func(.
It would be really nice if when you register a completion item provider you can provide characters that will also commit the selection (I think it should complete and then still insert the character after the completion).
(Edit: maybe it should be a Code user-option, not a language-specific thing?)

There are a couple of mentions of things that might be related (like https://github.com/Microsoft/vscode/issues/6237) but if this is already supported, I can't figure out where I'm supposed to configure it?

Your extension can do that by defining a keybinding. Take our TypeScript extension as a sample: https://github.com/Microsoft/vscode/blob/master/extensions/typescript/package.json#L204
"key": ".",
"command": "^acceptSelectedSuggestion",
"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'typescript' && suggestionSupportsAcceptOnKey"

Note the ^ in front of the command id, which mean insert character AND run command

@jrieken Great! Though I don't seem to be able to get it to work; I've got this:
"keybindings": [
			{
				"key": "(",
				"command": "^acceptSelectedSuggestion",
				"when": "editorTextFocus && suggestWidgetVisible && editorLangId == 'dart' && suggestionSupportsAcceptOnKey"
			},
			{
				"command": "dart.organizeDirectives",
				"key": "ctrl+alt+o",
				"mac": "cmd+alt+o",
				"when": "editorLangId == dart"
			}
		],

Unlike your example, we have two keybindings, so this is an array instead of a single object. My guess is that it's related to suggestionSupportsAcceptOnKey but I can't see whether I need to do something to say I support this, I can't find anything about this in the docs :(
I've got prin and the completion window open (and print selected) when I type ( and I just end up with prin(.
(I'm using 1.4 stable if that matters)

@jrieken Same in insiders, this doesn't seem to work (see above comment). I presume the issue is suggestionSupportsAcceptOnKey but I can't find anything on it in the docs, nor by searching GitHub :(


History page loads all results in the overview already

The backend API call getAll() for the executions loads the whole Execution objects. That can massively slow down the overview page as well as it isn't its responsiblity.

Fixed by 38fb6758863ab4f952aad8a8d770b0272d5a5f5f


Is this an error?

ubgpu@ubgpu:~/github/pdnn/examples/mnist_rbm$ sudo ./run.sh
--2015-05-16 15:48:05--  http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist.pkl.gz
Resolving www.iro.umontreal.ca (www.iro.umontreal.ca)... <IP_ADDRESS>
Connecting to www.iro.umontreal.ca (www.iro.umontreal.ca)|<IP_ADDRESS>|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16168813 (15M) [application/x-gzip]
Saving to: 鈥榤nist.pkl.gz.6鈥
100%[===============================================================================================================================================================>] 16,168,813  2.98MB/s   in 5.5s
2015-05-16 15:48:11 (2.81 MB/s) - 鈥榤nist.pkl.gz.6鈥saved [16168813/16168813]
Preparing datasets ...
Traceback (most recent call last):
File "data_prep.py", line 9, in
train_set, valid_set, test_set = cPickle.load(f)
File "/usr/lib/python2.7/gzip.py", line 261, in read
self._read(readsize)
File "/usr/lib/python2.7/gzip.py", line 308, in _read
self._read_eof()
File "/usr/lib/python2.7/gzip.py", line 347, in _read_eof
hex(self.crc)))
IOError: CRC check failed 0x3d667246 != 0x7f91b084L
Training the RBM model ...
ubgpu@ubgpu:~/github/pdnn/examples/mnist_rbm$
ubgpu@ubgpu:~/github/pdnn/examples/mnist_rbm$

IOError: CRC check failed 0x3d667246 != 0x7f91b084L
It indicates your downloaded data file contains error, nothing to do with the code, you may delete plk.gz file and try again.


batched email

With this PR email is no longer sent at guest creation, it instead will be sent "out of band" via a django management command. The batch size is configurable and retries are implicit as the email needs to successfully send before it's marked as being sent. This PR also introduces the first (of a handful) of custom management commands.

[ ] additional testing of send_onboarding command
[ ] install shell script scaffolding / cron job on remote host

lewks goud! hashtag send it.

well that was a ride.....


bugfix: enable user to specify throttleTime for validateField function

https://github.com/aldeed/meteor-autoform/issues/934

This code is not correct, I will fix it latter.

1+,
any news?

1+

Closing this since it was never fixed. As written, it would not correctly throttle.


Fix JSON literal issues (#679)

Fixes #679 and does some miscellaneous clean-up.
The problem in #679 specifically is that I was using Option to mean two things in the interpolated key case—it represented both a string that wasn't a placeholder and a replacement expression that wasn't a string. Bind those two cases together and you treat non-string replacement expressions as non-placeholders, which led to the bug.
Before we had KeyEncoder, the non-string interpolated key case should have just failed to compile, but now that KeyEncoder exists we can simply treat interpolated keys exactly as we do interpolated JSON values.
While fixing this I turned up another issue where if users only imported io.circe.literal.JsonStringContext (without the singleton instances), something like """{ "k": ${ 1 } }""" would fail to compile because it was looking for an encoder with too narrow a type. I've fixed this by widening the types, and have confirmed that it's fixed by moving the JSON literal tests into a separate package where the singleton instances aren't in scope.
I've also done some other clean-up, including general test improvements and splitting out the two kinds of macros into separate classes, which allows us to use blackbox for the JSON literal stuff.

Codecov Report

Merging #680 into master will decrease coverage by 0.09%.
The diff coverage is 96.29%.

@@            Coverage Diff            @@
##           master     #680     +/-   ##
=========================================
- Coverage   86.47%   86.37%   -0.1%
=========================================
  Files          70       71      +1
  Lines        2136     2143      +7
  Branches      149       81     -68
=========================================
+ Hits         1847     1851      +4
- Misses        289      292      +3

Impacted Files
Coverage Δ

...scala/io/circe/literal/LiteralInstanceMacros.scala
100% <100%> (ø)

...ain/scala/io/circe/literal/JsonLiteralMacros.scala
96.22% <96.22%> (ø)

...d/src/main/scala/io/circe/NonEmptySeqDecoder.scala
90.9% <0%> (-9.1%)
:arrow_down:

...re/shared/src/main/scala/io/circe/JsonNumber.scala
96.03% <0%> (-1%)
:arrow_down:

.../core/shared/src/main/scala/io/circe/Decoder.scala
90.28% <0%> (-0.36%)
: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 61885f8...c345a26. Read the comment docs.


the values in the header and in the bar chart are displayed wrong. Only in the edition mode or when i cleare the cache the values are right

Checklist

[x] I updated the card to the latest version available
Version 2.02
[x] I cleared the cache of my browser
if the cache is cleared the values are right, but i don't want to cleare every day the catche to get the right values
[x] I verified that I'm really running the lastest version in my browser console
yes
[x] I checked if there is another issue opened with the same problem

Describe the bug
I use bar chart with influx db an group_by function. Thr Problem ist that the values in the header and in the bar chart are displayed wrong. Only in the edition mode or when i cleare the cache the values are right. So if I use diffeChecklist

[x] I updated the card to the latest version available
Version 2.02
[x] I cleared the cache of my browser
if the cache is cleared the values are right, but i don't want to cleare every day the catche to get the right values
[x] I verified that I'm really running the lastest version in my browser console
yes
[x] I checked if there is another issue opened with the same problem

Describe the bug
I use bar chart with influx db an group_by function. Thr Problem ist that the values in the header and in the bar chart are displayed wrong. Only in the edition mode or when i cleare the cache the values are right. So if I use different browseres every browser shows different values.
Version of the card
Version:2.02
To Reproduce
This is the configuration I used:
type: custom:apexcharts-card
graph_span: 5d
yaxis:
  - show: false
    min: 0
apex_config:
  legend:
    show: false
  chart:
    height: 200px
show:
  last_updated: true
span:
  start: day
  offset: '-4d'
now:
  show: true
header:
  show: true
  show_states: true
  colorize_states: true
series:
  - entity: sensor.tesla_verbrauch_tag
    type: column
    color: blue
    unit: ' '
    name: Verbrauch
    show:
      datalabels: true
      legend_value: false
    group_by:
      func: last
      duration: 1day
  - entity: sensor.Hausverbrauch_tag_save
    type: line
    unit: ' '
    stroke_width: 0.5
    color: blue
    name: avg
    float_precision: 1
    show:
      datalabels: false
      in_header: true
      legend_value: false
      in_chart: true
    group_by:
      func: median
      duration: 7day
  - entity: sensor.tesla_bezug_tag
    type: column
    unit: ' '
    color: firebrick
    name: Netzbezug
    show:
      datalabels: true
      legend_value: false
    group_by:
      func: last
      duration: 1day
  - entity: sensor.Tesla_bezug_tag_save
    type: line
    unit: ' '
    stroke_width: 0.5
    color: firebrick
    name: avg
    float_precision: 1
    show:
      datalabels: false
      in_header: true
      legend_value: false
      in_chart: true
    group_by:
      func: avg
      duration: 7day
  - entity: sensor.wp_verbrauch_tag
    type: column
    unit: ' '
    color: grey
    name: WP
    show:
      datalabels: true
      legend_value: false
    group_by:
      func: last
      duration: 1day
  - entity: sensor.delta_Zaehlerstand_WP_tag
    type: line
    unit: ' '
    stroke_width: 0.5
    color: grey
    name: avg
    float_precision: 1
    show:
      datalabels: false
      in_header: true
      legend_value: false
      in_chart: true
    group_by:
      func: avg
      duration: 7day
  - entity: sensor.verbrauch_ohne_WP
    type: column
    unit: ' '
    color: green
    name: ohne WP
    show:
      datalabels: true
      legend_value: false
    group_by:
      func: last
      duration: 1day
  - entity: sensor.delta_Verbrauch_ohne_WP_tag_save
    type: line
    unit: ' '
    stroke_width: 0.5
    color: green
    name: avg
    float_precision: 1
    show:
      datalabels: false
      in_header: true
      legend_value: false
      in_chart: true
    group_by:
      func: avg
      duration: 7day
  - entity: sensor.tesla_produktion_tag
    type: column
    unit: ' '
    color: gold
    name: Produktion
    show:
      datalabels: true
      legend_value: false
    group_by:
      func: last
      duration: 1day
  - entity: sensor.Gesamtproduktion_tag_save
    type: line
    unit: ' '
    stroke_width: 0.5
    color: gold
    name: avg
    float_precision: 1
    show:
      datalabels: false
      in_header: true
      legend_value: false
      in_chart: true
    group_by:
      func: avg
      duration: 7day

Screenshots

Here you can see the behavior. The Left chart shows the correct values in the edition mode. In the right chart you can see the wrong values and bars (yellow marked)
Expected behavior
There should be shown always the right values without clearing the cache every day.
Desktop (please complete the following information):

Browser [ chrome, firefox, edge,...]

Hi I have the same issue, have you found a fix ?


Roll Flutter Engine from 3b4779324b44 to 125180b8a720 (4 revisions)

https://github.com/flutter/engine/compare/3b4779324b44...125180b8a720
2024-01-25<EMAIL_ADDRESS>Roll Skia from 56c06ee7a252 to bcc2e8b6105a (2 revisions) (flutter/engine#50042)
2024-01-25<EMAIL_ADDRESS>[Impeller] call shutdown method in Android context. (flutter/engine#49992)
2024-01-25<EMAIL_ADDRESS>[web] add support for AppLifecycleState changes (flutter/engine#44720)
2024-01-25<EMAIL_ADDRESS>Roll Skia from 416d7b0e5ba1 to 56c06ee7a252 (1 revision) (flutter/engine#50040)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jacksongardner@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Addition of Named Isotopes

Would you consider adding element symbols of named isotopes, specifically Deuterium (D) and Tritium (T) to the atomic weight table?

Thank you for your suggestion regarding the addition of element symbols for named isotopes. Currently, the atomic weight data in ChemFormula is based on average atomic weights, reflecting the natural isotopic distribution of non-radioactive elements (of unknown origin). As such, the package does not differentiate between isotopes like protium (1H), deuterium (D, 2H), or tritium (T, 3H). From a calculation perspective, the package cannot distinguish whether H represents 1H (protium) or the natural isotopic distribution of hydrogen. This naturally applies to all elements - not just hydrogen.
However, you can extend the file /src/elements.py in your local installation by modifying the atomic_weight() function to include entries for deuterium and tritium as a quick workaround. I would also recommend defining a custom symbol for protium (e.g., Hp, since P, Pr, and Pm are already defined) to differentiate between the specific isotopes and natural hydrogen. This would look something like this:
def atomic_weight(element):
    atomic_weight_table = {
        "H":    1.008,   # average atomic weight for hydrogen in accordance with Pure Appl. Chem., 2016, 88, 265-291
        "D":    2.014,   # atomic weight for deuterium
        "T":    3.016,   # atomic weight for tritium
        "Hp":   1.00784, # atomic weight for protium, with a custom atomic symbol (not IUPAC compliant)
        # ... rest of the elements
    }
    # return the atomic weight of the element symbol passed to the function, False if the element symbol does not exist
    return float(atomic_weight_table[element]) if element in atomic_weight_table else False

This will allow you to specify deuterium and tritium in your formulas and calculations.
For a future release, I am planning to add support for user-defined abbreviations in chemical formulas, such as Ph for C6H5. In this context, I will also consider how to better support isotopes, as this deserves a more general approach. Thanks again for your feedback!


handled dropdown of cards by using custom function

handled dropdown of cards by creating and using a custom function. Searched online and learnt this method to automatically close a dropdown when another dropdown is opened.
video to show this awesome effect:
https://drive.google.com/file/d/1nG9zXpWD52HlZnI8pPebXud6cDqIfoPN/view?usp=sharing

YES

@DhairyaBahl @abhijeet007rocks8 please let me know

Mention issue number please so that i can add label

#232 i have mentioned about this over here! @abhijeet007rocks8 @DhairyaBahl

i have made an issue now, sorry I started without making one #250

Sure! Please add labels as well.

@abhijeet007rocks8


Command to update localizationName for materials in Tinkers' Construct.

Tinkers' Construct provides its own N.E.I. GUI for materials, but it only uses the material's localised name, it never falls back to the display name.
As the developers of TC have said that they won't be fixing anything except major bugs for 1.7.10, will you allow tool localisation names to be changed, not just the display names?
https://github.com/jaredlll08/ModTweaker2/blob/master/src/main/java/modtweaker2/mods/tconstruct/handlers/ToolStats.java

Why should you want to change the localisation key of a material? For me the NEI Page works as it should.

Some mods are adding their own materials to tinkers' construct, but they're not adding localised names, e.g. Extra Utilities with material.bedrockium, material.magicwood, material.unstableIngot, of anything from ExtraTiC
e.g. from EU code:
ToolMaterial mat = new ToolMaterial("unstableIngot", "material.extrautils.unstableIngot", 4, 100, 700, 2, 0.6F, 4, 0.0F, EnumChatFormatting.WHITE.toString(), 16777215);

A screenshot may help:

Well now we have a problem,  first of all,  if it is an issue with other
mods as well,  then we can't fix it,  also we are also kinda on the only
major bug fixes for 1.7
On 26 Jan 2016 4:08 pm, "Psithief"<EMAIL_ADDRESS>wrote:

Some mods are adding their own materials to tinkers' construct, but
they're not adding localised names, e.g. Extra Utilities with
material.bedrockium, material.magicwood, material.unstableIngot, of
anything from ExtraTiC
e.g. from EU code:
ToolMaterial mat = new ToolMaterial("unstableIngot", "material.extrautils.unstableIngot", 4, 100, 700, 2, 0.6F, 4, 0.0F, EnumChatFormatting.WHITE.toString(), 16777215);
A screenshot may help:
[image: 2016-01-26_22 06 10 - copy]
https://cloud.githubusercontent.com/assets/1124846/12582602/25579b2c-c479-11e5-997a-fa2844cb472e.png
—
Reply to this email directly or view it on GitHub
https://github.com/jaredlll08/ModTweaker2/issues/300#issuecomment-175032112
.

So I've just realised that this is something that can be fixed in a resource pack, I think. Thanks anyway!

If you don't mind I'll leave instructions for the next person that has this issue

I added the following to a file assests/tinker/en_US.lang file in a resource pack:
material.unstableingot=Unstable Ingot
material.bedrockium=Bedrockium
material.magicwood=Magical Wood
material.pinkslime=Pink Slime
material.certusquartz=Certus Quartz
material.netherquartz=Nether Quartz
material.plastic=Plastic
material.lead=Lead
material.nickel=Nickel
material.invar=Invar


Support custom CI

I'm looking at using semantic-release in a private internal custom CI system. env-ci doesn't currently support anything other than the CI environment variable to activate the CI mode, but it would be useful to also support branch and isPr, in order to control the behavior of semantic-release, without a wrapper script. Rather than adding environment overrides for these as well, perhaps an ENV_CI_SERVICE_CONFIG variable, to give it a module or path to look for, to give users total control?

I guess what you are looking for is the semantic-release --no-ci option.

Closing as semantic-release already provides the --no-ci option


Error on "make test" after npm install telehash-c (OSX)

ld: can't open output file for writing: bin/test_lib_base32, errno=2 for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [bin/test_lib_base32] Error 1
make: *** [test] Error 2
The reason:  There is a telehash-c/test/bin directory in the telehash-c repository.  However, there is no telehash-c/test/bin directory after an npm install telehash-c on OSX. Does the .gitignore file in test/bin cause the directory to be skipped?

This is more of rant than a direct answer to your question.
Perhaps I'm old fashioned, but for C code, I think autotools is the way-to-go to build the tarball as a released package vs. pulling from Github. (Github supports features so you can upload the tarball as a feature, which is just on S3, and have automated things pull it down).
I think @quartzjer would blow a gasket if I turned telehash-c into an autotools project but, one could specify in autoconf/automake what files were going into the distribution rather then relying on the version control's system of ignoring files.
/rant

I wouldn't blow a gasket, but I have a lot of autotools scar tissue that I'm not keen on dealing with :)
Ages ago my goal was to have telehash-c be two projects, a lower level pure C one similar to sqlite.c that can be embedded into anything, and a higher level project w/ all the unixy and friendly/wrapper stuff (and yes, autotools), but it isn't so clear if that's the best way to organize it still... thoughts welcome!

The two approaches makes sense. But like sqlite, they offer both the source code that you can download & they are in the OS vendors packing system. So, I don't think they are incompatible.
I think you'd want to structure the project as autotools overall. Then add a target that makes the one-c-file like sqlite does. But autotools makes it much easier to package into debs and rpms. Ultimately, a user should be able to apt-get install telehash-c.
 That could also been in the autotools configure. So, you download the tarball and you make arduino which should probably produce an arduino library.
The releasable thing should be a tarball however, not the github project. I can fork the repo and try to put an autotools wrapper to let you see how the unixy would work...

fyi @jbdatko, my long term goals for telehash-c as a codebase have evolved to it being primarily for embedded usage, and not aimed to easily accommodate traditional desktop/server apps or as a shared lib.  I would much rather energy be put into dedicated implementations for them using newer (safer) things like rust, go, c#, node, etc.


Add link to admin service spec

👀 @wild-endeavor @bnsblue

can you re-run generation also?

done


Prediction

Hi mam,
your code shows the grad cam image but it not showing what opacity it is.
please help me with this.

Hi mam,
your code shows the grad cam image but it not showing what opacity it is.
please help me with this.

And "get_args()" the continution code related to this is missing...

Firstly, I'm not a "mam". I'm a guy.
Secondly, I didn't get your question. If you are talking about inference then check overlay_cam.py.

Firstly, I'm not a "mam". I'm a guy.
Secondly, I didn't get your question. If you are talking about inference then check overlay_cam.py.

sorry ,
I'm very new to deep learning
I have seen overlay_cam.py but you haven't used it any where if you have used to predict or classify the image please share that code too.

Firstly, I'm not a "mam". I'm a guy.
Secondly, I didn't get your question. If you are talking about inference then check overlay_cam.py.

when I try to run it
Eror:
usage: GradCAM on Chest X-Rays [-h] [-i IMAGE_PATH]
[-l {covid_19,lung_opacity,normal,pneumonia}]
-m {densenet121} [-o OUTPUT_PATH]
GradCAM on Chest X-Rays: error: the following arguments are required: -m/--model
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py:2890: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

Firstly, I'm not a "mam". I'm a guy.
Secondly, I didn't get your question. If you are talking about inference then check overlay_cam.py.

when I try to run it
Error:
usage: GradCAM on Chest X-Rays [-h] [-i IMAGE_PATH]
[-l {covid_19,lung_opacity,normal,pneumonia}]
-m {densenet121} [-o OUTPUT_PATH]
GradCAM on Chest X-Rays: error: the following arguments are required: -m/--model
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py:2890: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
Where should I give those input arguments

Since


Handle errors caused by data corruption more gracefully

@juliusv The announced 4th level... (although level 1 is almost done, and level 3 is already removed).
This fixes https://github.com/prometheus/prometheus/issues/877
This requires all the panic calls upon unexpected data to be converted
into errors returned. This pollute the function signatures quite
lot. Well, this is Go...
The ideas behind this are the following:

panic only if it's a programming error. Data corruptions happen, and
they are not programming errors.

If we detect a data corruption, we "quarantine" the series,
essentially removing it from the database and putting its data into
a separate directory for forensics.

Failure during writing to a series file is not considered corruption
automatically. It will call setDirty, though, so that a
crashrecovery upon the next restart will commence and check for
that.

Series quarantining and setDirty calls are logged and counted in
metrics, but are hidden from the user of the interfaces in
interface.go, whith the notable exception of Append(). The reasoning
is that we treat corruption by removing the corrupted series, i.e. a
query for it will return no results on its next call anyway, so
return no results right now. In the case of Append(), we want to
tell the user that no data has been appended, though.

Minor side effects:

Now consistently using filepath.* instead of path.*.

Introduced structured logging where I touched it. This makes things
less consistent, but a complete change to structured logging would
be out of scope for this PR.

@fabxc Could you review this? @juliusv `s review queue is not getting shorter…

BTW: Clunkiness around error returns will be much reduced lates as a side effect of https://github.com/prometheus/prometheus/pull/1466 . I just didn't want to load the ideas of that PR into this one, too.

I'm concerned by the switching to logging errors somewhere in internal functions and not returning errors probably. This practice has caused us troubles in the past. No means of log-spam control, no means of properly handling errors.
The fact that the Storage interface does not expose any errors but returns "sane defaults" is harmful to begin with. We shouldn't extend this any further.

But… this PR introduces proper error handling. Before, we were either panicking (which could happen on programming errors but not on data corruption on an external device) or the error was just bubbled up to the user and in fact not handled at all.
How to handle internal data corruption? The answer this PR provides is: Quarantine the series. Once the error is handled, it doesn't make sense to bubble it up further. Or in other words: If we still bubbled it up to the user in addition to handling it by quarantining, the user would try again and get exactly the answer they are getting in the first try with PR, namely: The series is now gone.
Logging for highly irregular incidents like data corruption is fine. It is for forensics. It doesn't replace handling the error, it documents the handling.

Yes, internally there's totally better error handling.
I was mostly concerned about the removal from the exported bits – I realize that in the cases where we use it, we don't really have an action plan on what to do about it. That doesn't change anything about the interface in my opinion.
"Sane default" on error is equivalent to res, _ := f().
As for logging, yes this should be a rare occurrence but failure likes to come in bulk. If one series corrupts it's unlikely I will even care. When 200k get corrupted I want to actually investigate and then the logs will be of limited use.
I feel like this should be a metric, which can have necessary dimensionality. Maybe log a generic bulk error at most.

Interfaces that are used by a "real" public, e.g. libraries/packages used by other projects, should be stable, and so you might not want to lightheartedly remove a returned error.
However, the storage interface is used solely within this repo, and I strongly believe we should keep it as well tailored to the current need as possible (it's beefy enough already). Refactoring is easy if we are the only users of the interface. Thus: If there is an error we can return to the caller in a meaningful way, sure, go for it. If there is non, let's not pollute the interface with it.
WRT "sane default": I'm not sure what exactly you are referring to. Where does this PR add returning a "sane default"?
WRT logging: Yes, series corruptions may come in bulk, but that's exactly where I want the logs for human inspections. I want to see exactly which files were corrupted. While the logging volume will increase greatly in that case, I really don't see a better way than to log it. Note that there is also a metric that counts the corruptions. So both needs are satisfied. An existing example is the logging during a crash recovery: It's the worst log spam ever, but it's also the most useful one. This flood of log lines is in fact the Prometheus logs I have most often analyzed in detail. One might say: Make it debug logging, so it has to be switched on for forensics. But the problem with crash recover is that you cannot replay it once it has happened. It only happens once, and you cannot switch on debug logging after the fact. I haven't found yet a better solution for the problem, so I want to stick with the least bad solution until a better shows up. The only consolation I can offer is that the log flood only happens under highly irregular circumstances, so it's less bad than "regular" log spam (like the endless "checkpointing" messages, which should go as part of https://github.com/prometheus/prometheus/issues/1479 ).

These (and the crashrecovery) logs sounds like something that would nicely be replaced by a storage investigation tool, then?
Would allow for dry runs, replaying, etc.
As for the interface, we are the only users, yes. Use-case optimization is fine, too.
However, taking that reasoning to degrade best practices in interface design will accumulate more and more hacks over time. I don't believe this is beneficial in the long run.
On the pro side, ignoring the error from the user perspective is consistent with what we have.
As for "sane defaults" – what would you call nopIter otherwise?

WRT crashrecovery: It is happening automatically when a server crashes and gets restarted by the init system (runit or whatever users use). To apply a storage forensics tool, we needed to prevent a restart, and that's not what users would like in the general case. (They want their monitoring server to be up ASAP to continue monitoring.) The logging of quarantined series is a bit less critical as the quarantined series with its error message is visible in the orphaned directory. So I could be convinced to have that log at debug level. My concern would be that it will be less visible to the naive user what has happened. But then we might not want to optimize for the naive user…
WRT interface: I consider it bad interface design to return errors that will always be nil. Please note that we are not ignoring any errors here. (We are handling them.)
WRT "sane default": The nopIter is not a sane default. It is the truth. The chunk in question is corrupt. We quarantine the series. It is removed from the storage. The appropriate response for iterating over a non-existing series is a nopIter.

Not providing data for something where there should be data is an error.
The corrupted data is handled in some way for the storage – that has no influence whatsoever on what the user expects to see, which is data.
Just like a webserver wouldn't return 200 OK with a blank page because it handled an error internally. The user still doesn't get data where there should be data.
But this whole discussion isn't worth blocking this chain of PRs right now since it touches more fundamental problems.
:+1:

Not providing data for something where there should be data is an error.

I don't disagree. I argue that in case of a corrupt series, there should be no data returned to the user. The error has already been handled at the time the result is returned to the user. If we did not quarantine the series, I would agree: We should consistently return an error. However, returning an error, then quarantine, and then return legitimately no data for a repeat of the very same query is inconsistent.
WRT the warning ("partial result"): Sounds good in principle. But then we needed to keep track of all quarantined series to return that warning for each query that involves a quarantined series (see above). Plus, once we see any data corruption, the odds are the storage has way more of them, so essentially all bets are off and every query result is suspicious from now on. Meta-monitoring needs to alert on dirty storage and any number of quarantined series. And we probably should have a big read warning sign on the web status page about quarantined series and dirty state of the storage.


Duplicate fetchData call when not using server side rendering

What did you do?
Hello, I'm currently using redux-fetch-data without server side rendering. Due to an IT policy that I have no influence over I'm unable to deploy a node server for my app. However, I am taking advantage of this library and fetchDataOnServer to create a test helper method for writing acceptance tests where I wait until all the data is loaded for my route before I make assertions about the state of my dom.
I have a client setup similar to the example from the readme. But critically I am not setting the initialState of my store and state.fetching.fetched is false when the app initially loads.
import React from 'react';
import { createStore, combineReducers } from 'redux';
import { render } from 'react-dom';
import { Router, browserHistory } from 'react-router';
import { Provider } from 'react-redux';
import { FetchData, reducer as fetching } from 'redux-fetch-data';

import routes from './routes';

// No initial state setting { fetching: { fetched: true } } here
const store = createStore(combineReducers({ fetching }));

render(
  <Provider store={store} key="provider">
    <Router render={props => <FetchData {...props}/>}
            history={browserHistory}
            routes={routes}/>
  </Provider>,
  document.getElementById('root')
);

What did you expect to happen?
I expected the fetchData static method on my route to be called once when the app was loaded.
What actually happened?
The fetchData static method on my route to be called twice when the app was loaded.
The first time it was called from the FetchData component's componentWillMount function.
However, once this fetch succeeds state.fetching.fetched is updated to true and the mapStateToProps function triggers  the FetchData component's componentWillReceiveProps method to be invoked triggering a second fetchData.
After the first route is loaded subsequent route changes only trigger one fetchData as expected.
As a workaround, I have removed the reducer provided by redux-fetch-data and I set the initialState for the store to state.fetching.fetched = false to prevent the componentWillReceiveProps from being triggered when state.fetching.fetched changes.  This fixes my issue, however, I'm not crazy about this workaround because of the coupling the state structure of redux-fetch-data's reducer.
What version of this module are you using?
I am using version 0.1.3 from npm.

Thanks for the report, however we are going to archive this repo because we're no longer using or maintaining it.


Picture truncated when saving waterfall plot

I am posting the issue I have experienced as well as the solution I have found.
import matplotlib.pyplot as plt

fig = plt.figure()
shap.plots.waterfall(shap_values[index], show=False)
plt.savefig("test.png")

The corresponding display in the notebook is well adjusted:

Whereas on the plot saved, the labels are truncated:

import matplotlib.pyplot as plt

fig = plt.figure()
shap.plots.waterfall(shap_values[index], show=False)
plt.gcf().set_size_inches(10, 6)
plt.tight_layout()
plt.savefig("test.png")

Will by-pass the default plt dimensions (8, 6.5):

import matplotlib.pyplot as plt

fig = plt.figure()
shap.plots.waterfall(shap_values[index], show=False)
plt.gcf().set_size_inches(10, 6)
plt.tight_layout()
plt.savefig("test.png")

Will by-pass the default plt dimensions (8, 6.5):

Very useful Pierre, thank you!


mypy: Use Python 3 type syntax in zerver/views/streams.py and zerver/middleware.py.

Thanks for letting me know, I'll update that when I get to my PC, didn't
know you could have trailing commas in lists, that's pretty useful!
On 9 Dec 2017 03:19, "Greg Price"<EMAIL_ADDRESS>wrote:
@gnprice commented on this pull request.
Thanks @picapi https://github.com/picapi! Looks great -- see one bit of
style, below, which applies in several places.
In zerver/middleware.py
https://github.com/zulip/zulip/pull/7695#discussion_r155911941:

@@ -91,9 +91,10 @@ def is_slow_query(time_delta: float, path: Text) -> bool:
return time_delta >= 10
return True

-def write_log_line(log_data, path, method, remote_ip, email, client_name,

              status_code=200, error_content=None,

error_content_iter=None):

type: (MutableMapping[str, Any], Text, str, str, Text, Text,

int, Optional[AnyStr], Optional[Iterable[AnyStr]]) -> None
+def write_log_line(log_data: MutableMapping[str, Any], path: Text,
method: str, remote_ip: str, email: Text,

              client_name: Text, status_code: int=200,

error_content: Optional[AnyStr]=None,

              error_content_iter: Optional[Iterable[AnyStr]]=None

In Python, our style is to end a list with a comma when there's going to be
a newline before the closing bracket -- and similarly for a dict, a
parameter list like this one, and anything else delimited by commas. This
makes the last item just like the other items, and in particular it means
that if you add one more item at the end you don't need to go back and
change this line.
(Sadly, in JavaScript this isn't allowed. But in Python it is.)
So all of these final items where the close-paren comes on the next line
should get a trailing comma.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zulip/zulip/pull/7695#pullrequestreview-82314928, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGu-mNMVgZ03Fsk6OMAjbQH8CyZdauLoks5s-fxCgaJpZM4Q6La5
.

Good ol node tests failing -.-

@picapi: This looks great! I left a few comments that I'd like you to address and then we can approve this! :) Thanks! :)

Merged -- thanks @picapi !


GH-36787: [R] lintr update leads to failing tests on main

What changes are included in this PR?
Turning off the newly introduced indentation linter as it causes test failures, and isn't in sync with styler which we use to style our code.
Are these changes tested?
No, is linter config.
Are there any user-facing changes?
No

Closes: #36787

Thanks! Just curious...is it worth fixing the indentation problems or are they spurious?

Good question! I had a look at some of them, and they seem to be stylistic choices which don't make the code look better rather than fixing true problems. More importantly, using make style doesn't "correct" them to the new lintr standards, so it seems problematic to enable it right now.


Update json and md file as per code

Updated the DisplaySettings.json and DisplaySettings.md as per the code
Jira:- https://ccp.sys.comcast.net/browse/RDK-34103

@apatel859, @ddevad,
Pls review these documentation changes for DisplaySettings APIs.


Update user guide for import command

Added description for import command

Pull Request Test Coverage Report for Build 169

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 91.892%

Totals

Change from base Build 164:
0.0%

Covered Lines:
1768

Relevant Lines:
1924

💛  - Coveralls


Shlib ext

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@msarahan we cannot use latest conda-build 2.0.7 because it conflicts with the one from defaults and conda choses the oldest :(

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


getObjectsUnderPoint() wrong results when container not at (0, 0), depending on target platform

Sample:
var sprite = new Sprite();
sprite.graphics.beginFill(0xff0000);
sprite.graphics.drawRect(0, 0, 100, 100);
sprite.graphics.endFill();

sprite.name = "square";

sprite.x = stage.stageWidth/2;
sprite.y = stage.stageHeight/2;

var childSprite = new Sprite();
childSprite.graphics.beginFill(0x00ff00);
childSprite.graphics.drawCircle(0, 0, 50);
childSprite.graphics.endFill();

childSprite.name = "circle";

sprite.addChild(childSprite);

addChild(sprite);

var testPoint = new Point(stage.stageWidth/2 + 5, stage.stageHeight/2 + 5);

var objects = stage.getObjectsUnderPoint(testPoint);

trace([for (obj in objects) obj.name]);

objects = sprite.getObjectsUnderPoint(testPoint);

trace([for (obj in objects) obj.name]);

According to the documentation, we should get the same results for bothstage.getObjectsUnderPoint() and sprite.getObjectsUnderPoint(), since the point parameter is supposed to be in Stage coordinates.
Flash results (correct):
Main.hx:38: [square,circle]
Main.hx:42: [square,circle]

Neko and HTML5 results (incorrect):
Main.hx:38: [square,circle]
Main.hx:42: []

This was fixed, thank you :grin:


Done and tested

Ok Some infos about that

we npmignore now lib/ and made dist/ master
dist gets auto created via pre publish hook
dist gets created on test
added also to mocha tests but we should refactor tests to also use the dist/

ok tests are now using also dist happy merging no discussion needed probally :+1:
it lets us use lib like befor and creates a nice dist for npm

@reconbot review please ;)

@reconbot if your fast you can cancel that build and i remove the test to dist upgrade and also the pollyfill as we don't load it and build befor. :+1:

@reconbot ok


Dynamic schedule can't be updated

I'm having problem when I update a dynamic schedule.
For instance, at 1:00 pm I set a schedule for 1:05. Then, before 1:05, I change the schedule by remove_schedule and set_schedule to 1:10.
The job will still be triggered at 1:05.
Any suggestion?

Just found #369.
Resque::Scheduler.dynamic = true is not working, use DYNAMIC_SCHEDULE=true.

@lhf-leo What version of the gem are you using?

@carsonreinke It's 2.5.5

Hi, the dynamic schedules are not working with me even with latest versions. I have tried using both options i.e. Resque::Scheduler.dynamic = true and DYNAMIC_SCHEDULE=true. Please help.


images/frame extraction

Hi,
I am trying to extract images from a video both for a whole video and for specific duration of the video.  I tried to implement the commands of fffmpeg (from its documnetation) but unable to run them using ffmpeg-python package. I have already gone thgrough some related closed issues but did not succeeded while trying custom filter option. I am at beginer level and shall highly appreciate the positive resposne.
Further, some one has tagged the task of image extraction in a closed issue using open cv library.  So, I also require some comments from @kkroening on "Why ffmpeg-python in replacement of cv2".
Regards,

To get a subset of a video stream, look at the trim and select functionality in ffmpeg.  the .trim method is implemented in ffmpeg-python and may help.
From https://github.com/kkroening/ffmpeg-python/issues/215, see this example.  The 'fps' filter here simply changes the output stream to one with 2 frames per second. the .output method then writes all of those frames (2/second from the original stream) to the png files with the options shown.
If you wanted something like "take one frame per second from time=30 to time=120 of a video, you'd trim the stream starting at 30 seconds and ending at 120 seconds, then run it through the fps filter with fps=1 to drop all but one frame per second, then use .output to write it.

try:
    (ffmpeg.input('test.mp4')
          .filter('fps', fps=2)
          .output('test/%d.png',
                  video_bitrate='5000k',
                  s='64x64',
                  sws_flags='bilinear',
                  start_number=0)
          .run(capture_stdout=True, capture_stderr=True))
except ffmpeg.Error as e:
    print('stdout:', e.stdout.decode('utf8'))
    print('stderr:', e.stderr.decode('utf8'))

To get a subset of a video stream, look at the trim and select functionality in ffmpeg. the .trim method is implemented in ffmpeg-python and may help.
From #215, see this example. The 'fps' filter here simply changes the output stream to one with 2 frames per second. the .output method then writes all of those frames (2/second from the original stream) to the png files with the options shown.
If you wanted something like "take one frame per second from time=30 to time=120 of a video", you'd first trim the stream starting at 30 seconds and ending at 120 seconds, then run it through the fps filter with fps=1 to drop all but one frame per second, then use .output to write it.

try:
    (ffmpeg.input('test.mp4')
          .filter('fps', fps=2)
          .output('test/%d.png',
                  video_bitrate='5000k',
                  s='64x64',
                  sws_flags='bilinear',
                  start_number=0)
          .run(capture_stdout=True, capture_stderr=True))
except ffmpeg.Error as e:
    print('stdout:', e.stdout.decode('utf8'))
    print('stderr:', e.stderr.decode('utf8'))

Thank you for your response.


Replace usage of deprecated gtk::Dialog with adw::MessageDialog in the books listings.

Overview
gtk::Dialog was deprecated as of GTK 4.10 and documentation proposes to use gtk::Window instead, but I found libadwaita::MessageDialog which were added in 1.2 version of libadwaita and could be a nice replacement for usage of gtk::Dialog in the book.
Changes

Bump version requirement in Cargo.toml file for libadwaita dependency from * to >= 0.3.1 in order to be able to enable v1_2 feature.
0.3.1 is the latest version of libadwaita as ATM.
v1_2 is required to be able to use adw::MessageDialog wich were added in 1.2 of libadwaita.
Adjust imports:

Remove not used any more gtk::{Dialog, DialogFlags, ResponseType}
Add adw::{MessageDialog, ResponseAppearance}

As adw::MessageDialog does not provide any predefined responses it was introduced new ones in Window::new_collection methods using the following local variables:

cancel_response
create_response

Creation of entry was moved at the beginning of new_collection method in order to be able to use it later in adw::MessageDialogBuilder.extra_child method.
Buttons creation were replaced with usage of adw::MessageDialog.add_responses method.
Set of insetnsitivity of "Create" button were done through usage of adw::MessageDialog.set_response_enabled method.
Set suggested action through adw::MessageDialog.set_response_appearance method.
Make small adjustments regarding APIs difference of between gtk::Dialog and adw::MessageDialog for the following methods:

connect_response

TODO

[x] Record animations with new "New Collection" window and add them to this PR.

@Hofer-Julian This is how new dialog looks like

@Hofer-Julian if changes are fine with you and you gonna merge the proposal could you please give me background image to record animations (in order to make them on the same background as the rest of them) and may be saved json for task and collections (if you have one).
Can you suggest some tools used for image recording and cropping?

You can use this as a starting point:
[
    {
        "title": "Collection Number One",
        "tasks_data": [
            {
                "completed": false,
                "content": "Task Number One"
            },
            {
                "completed": false,
                "content": "Task Number Two"
            },
            {
                "completed": false,
                "content": "Task Number Three"
            },
            {
                "completed": false,
                "content": "Task Number Four"
            },
            {
                "completed": false,
                "content": "Task Number Five"
            },
            {
                "completed": false,
                "content": "Task Number Six"
            },
            {
                "completed": false,
                "content": "Task Number Seven"
            },
            {
                "completed": false,
                "content": "Task Number Eight"
            }
        ]
    }
]

@Hofer-Julian I updated first video. I hope you don't mind using VP9 instead of VP8. I'll prepare second one tomorrow. Meanwhile you could check if its Okay.

@Hofer-Julian I updated first video. I hope you don't mind using VP9 instead of VP8. I'll prepare second one tomorrow. Meanwhile you could check if its Okay.

The video looks fine.

Isn't libadwaita meant for GNOME applications specifically? It would seem strange to use it here then.

Isn't libadwaita meant for GNOME applications specifically? It would seem strange to use it here then.

The chapter that uses a dialog is about libadwaita so it is fine

@Hofer-Julian I updated src/vid/todo_8_adaptive_sidebar.webm. Now all videos with dialog window should show new adw::MessageDialog.

Thanks!
Now only the text in the book needs to be adapted :)

Now only the text in the book needs to be adapted :)

Which one? I tried to look through, but I haven't found direct mentions of gtk::Dialog usage. There are references like "dialog" but it seems fine.
Or do you want to extend explanation of the chapter regarding usage of adw::MessageDialog?

Now only the text in the book needs to be adapted :)

Which one? I tried to look through, but I haven't found direct mentions of gtk::Dialog usage. There are references like "dialog" but it seems fine.
Or do you want to extend explanation of the chapter regarding usage of adw::MessageDialog?

Looking at it more closely, you are right, the text is still valid.
Maybe change
- Here, we create the dialog, set up the buttons as well as add the entry to it.
+ Here, we create the [`adw::MessageDialog`](https://world.pages.gitlab.gnome.org/Rust/libadwaita-rs/stable/latest/docs/libadwaita/struct.MessageDialog.html), set up the buttons as well as add the entry to it.

That should make it easy to see that `MessageDialog comes from libadwaita.
Also this should be adapted:
- cargo add libadwaita --rename adw
+ cargo add libadwaita --rename adw --features v1_2

@Hofer-Julian Suggestions were applied.

Thanks!

Thank you :D


Add deprecated application list

Don't show tagging options for artefacts that can't be tagged.
Part of: https://trello.com/c/1JbLazTK/553-finder-api-disable-tagging-for-panopticon-content

The only page owned by frontend (/help) is not in the content-store, so can't be tagged.
finder-api is deprecated
planner only has withdrawn content

:+1: awesome


How are the Changes and Workitems determined?

What two items are being compared when the Environment's deployment Changes and Workitems list is generated?
It would seem that two consecutive deployments to the same Environment would not have overlap in Changes or Workitems, but that's not typically true.

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

ID: 77d95db6-9983-7346-d0eb-4b7443e4e252
Version Independent ID: 0a22cccc-318d-592f-d1ab-09ec01d88087
Content: Create target environment - Azure Pipelines
Content Source: docs/pipelines/process/environments.md
Product: devops
Technology: devops-cicd-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

Hi @GaTechThomas - While we look into whether to change the docs, consider these resources:

Azure DevOps Services
Azure DevOps on Stack Overflow

Thank you. That first link is not remotely helpful. For example, it has no idea what an Azure pipeline deployment environment is. It needs much more training before sending users on that wild goose chase.

@GaTechThomas I'm trying to better understand your question. Are you asking how the Changes and Workitems tabs get populated? For reference, you'll find there within an Environment by selecting a deployment on the Deployments tab.

Thanks for the response. What I'm trying to understand is how Azure Pipelines determines what particular Changes and WorkItems are shown for a given deployment in the deployment list a given Azure Pipelines Environment.
For example, if I deploy changeset X to the environment and then add a new changeset Y to that repository and deploy it to the same environment, I would expect that viewing the deployment for changeset Y would show only Y in its list. However, it shows Y, X, and some number of previous changesets. Similar story for WorkItems.
I'd like to know what I can do, if anything, to make a deployment show only the new things that were changed subsequent to the previous deployment. If I cannot make it happen that way, then it would be helpful to know what items to expect to be in the list and why they're there.
Is that making sense? I'd be glad to explain further if needed.

Interesting. I had not considered that publishing artifacts could be in play. Looking forward to the article updates.


Displaying NaN on latest update

Just pulled the latest code and now there is a new icon on the right side and a NaN displaying

I haven't seen this yet, are you still experiencing this? @paleoCoder

Yep, still have a NaN. I've reloaded the watch face a couple of times. It's probably since I have my config pointed to my nightscout site endpoint for data.

Ahh yeah that's probably it, could you post the endpoints data ?

the generic endpoint is: https://nightscoutsite.com/api/v1/entries.json
Here is what I get:
[{"_id":"5ab9a15e88dff8abb5fb2daf","sgv":78,"date":1522114813000,"dateString":"2018-03-27T01:40:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab9a03288dff8abb5fb2803","sgv":78,"date":1522114513000,"dateString":"2018-03-27T01:35:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab99f0688dff8abb5fb2235","sgv":78,"date":1522114213000,"dateString":"2018-03-27T01:30:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab99dda88dff8abb5fb1c7e","sgv":79,"date":1522113914000,"dateString":"2018-03-27T01:25:14.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab99cad88dff8abb5fb16da","sgv":80,"date":1522113614000,"dateString":"2018-03-27T01:20:14.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab99b8288dff8abb5fb1101","sgv":82,"date":1522113313000,"dateString":"2018-03-27T01:15:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab99a5588dff8abb5fb0b49","sgv":85,"date":1522113013000,"dateString":"2018-03-27T01:10:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab9992988dff8abb5fb05be","sgv":87,"date":1522112713000,"dateString":"2018-03-27T01:05:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab996d188dff8abb5fafa63","sgv":92,"date":1522112113000,"dateString":"2018-03-27T00:55:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"},{"_id":"5ab995a588dff8abb5faf4a4","sgv":95,"date":1522111813000,"dateString":"2018-03-27T00:50:13.000Z","trend":4,"direction":"Flat","device":"share2","type":"sgv"}]


cannot parse the json data SyntaxError: Unexpected token � in JSON at position 0

Not sure if it is because my encoding problem.
I got the error as show in the title. the data is below:
�\U�tKe�s�퍥 �隮+��x������ ؝"+XU�-����;O��٩���a�.A��  ��2ې�VNP��NY9�P~��@�!q1.�KmW�����jS���ƫ��T�G��E
35|rtcloca | MqN���Aa��ds��*4��Ĭ�eA|c�<bnUs

this project uses native JSON.parse and JSON.stringify and this seems a native JSON problem.
If you don't give me anything to test but just a copy and paste of a binary I'd like to understand how can I help here.
Once you have verified you can parse the JSON simply using JSON.parse and you'll provide a way to reproduce the issue feel free to open a better bug report.
Thank You


Add mapped user count to consolidated stats

Summary
/jira debug stats expvar jira will show all current stats where as /jira stats jira will shows the consolidated stats that get tabulated and stored on a time interval (I believe every 10 minutes).
When using /jira stats to view the consolidated data, mapped_users is not shown.
mapped_users is shown in the debug stats.
Issue created from a message in Mattermost.
Steps:

Configure Jira plugin and install and instance
Use the plugin to map at least 1 Jira user on your Mattermost server
Run “/jira debug stats expvar Jira” and not that the number of mapped users is included in the data returned
Wait over 10 minutes
Run “/jira stats jira”

Observed: consolidated data does not include mapped users.
Relevant Metrics commit - #351
Additional comments in the Jira ticket.
Original Jira Ticket
https://mattermost.atlassian.net/browse/MM-20737

If you're interested please comment here and come join our "Contributors" community channel on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please  join our "Plugin: Jira" community channel.
New contributors please see our Developer's Guide and our Plugins Guide.

@jfrerich  I am interested in fixing this bug.

Hi @kumarabd!  You are welcome to take this one!  Let me know if you have any questions


The driver doens't honor default properties

Driver version
11.2.1 but probably goes way back.
Problem description
java.util.Properties has notion of "default" properties, as a way to inherit properties. This mechanism is used by testcontainers framework. The driver looks only for top-level properties.
var defaults = new Properties();
defaults.setProperty("enablePrepareOnFirstPreparedStatementCall", "true");

Properties props = new Properties(defaults);
props.setProperty("encrypt", "false");
props.setProperty("user", "sa");
props.setProperty("password", "yourStrong(_)Password");

try (var conn = new SQLServerDriver().connect("jdbc:sqlserver://localhost", props)) {
    System.out.println(((SQLServerConnection) conn).getEnablePrepareOnFirstPreparedStatementCall());
}

Expected behavior
The above should print true, as the passed props.getProperty("enablePrepareOnFirstPreparedStatementCall") evaluates to "true".
Actual behavior
It prints false, ignoring the property passed to the driver.

Hi @mmimica,
Thank you for identifying an issue and creating a PR. Because of the extensive testing required, this issue and its PR will be backlogged for at least the next little while. We'll take a look at it again as soon as we can.

hi @mmimica
just to clarify, the 1st part of your example does work we do use that in our junit tests eg here.
The 2nd part of your repro is not currently supported and would require quite a bit of testing effort to ensure it works with all existing properties. We have to triage and prioritize all issues and enhancement requests for the driver so given that there are other supported ways to set properties for the driver this enhancement will likely not be treated as very high priority. So in the mean time, please use other supported ways to set the properties for the driver.

In the real world out there, a developer seldomly has a chance to interact with a JDBC driver directly. Usually the driver gets its Properties instance from a connection pool library, which may get it from an app server or some framework which injects settings from the environment... Any library in this chain may use a copy-constructor to instantiate Properties (usually to create a preventive copy, to avoid using clone()) and in that case some properties will not be applied.
Properties infamously inherits from Hashtable, but has its own methods that are supposed to be used when getting/setting properties.
I understand the change may impact existing working environments. I already have a workaround for my case. I mainly created this ticket for visibility. It's up to you what you are going to do with with the PR.

In revision 12.2.0 of SQLServerDriver.java the method named fixupProperties does not account for props.defaults. This results in loss of client requested parameters that were relegated to the defaults member as @mmimica mentioned in a previous comment.
I am working around the issue by including the JDBC connection properties in the connection URL (as opposed to a separate Properties parameter of the connect method.


Passwordless login fails with default security

If I run xfreerdp for an account with no password, it fails unless I specify /sec:ssl. I think it should work (or at least provide a useful error message) without requiring that flag.
I tried the following:
freerdp-build/client/X11$ ./xfreerdp --version
This is FreeRDP version 2.0.0-dev2 (e88d1e944)
freerdp-build/client/X11$ ./xfreerdp /u:test /v:win2016server /p:''
[13:42:15:795] [3563:3564] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[13:42:15:953] [3563:3564] [ERROR][com.winpr.sspi.Kerberos] - Failed to convert password
[13:42:15:953] [3563:3564] [INFO][com.winpr.sspi.Kerberos] - Authenticated to Kerberos v5 via login/password
[13:42:15:971] [3563:3564] [ERROR][com.winpr.sspi.Kerberos] - Init GSS security context failed : can't use Kerberos
[13:42:15:971] [3563:3564] [WARN][com.winpr.sspi] - InitializeSecurityContextA status SEC_E_INTERNAL_ERROR [0x80090304]
[13:42:15:971] [3563:3564] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_AUTHENTICATION_FAILED [0x00020009]
[13:42:15:971] [3563:3564] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure
freerdp-build/client/X11$ ./xfreerdp /u:test /v:win2016server /p:
[13:42:18:035] [3566:3567] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[13:42:18:129] [3566:3567] [ERROR][com.winpr.sspi.Kerberos] - Failed to convert password
[13:42:18:129] [3566:3567] [INFO][com.winpr.sspi.Kerberos] - Authenticated to Kerberos v5 via login/password
[13:42:18:155] [3566:3567] [ERROR][com.winpr.sspi.Kerberos] - Init GSS security context failed : can't use Kerberos
[13:42:18:155] [3566:3567] [WARN][com.winpr.sspi] - InitializeSecurityContextA status SEC_E_INTERNAL_ERROR [0x80090304]
[13:42:18:155] [3566:3567] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_AUTHENTICATION_FAILED [0x00020009]
[13:42:18:155] [3566:3567] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure
freerdp-build/client/X11$ ./xfreerdp /u:test /v:win2016server
[13:42:21:095] [3568:3569] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[13:42:21:153] [3568:3569] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_AUTHENTICATION_FAILED [0x00020009]
[13:42:21:153] [3568:3569] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure
freerdp-build/client/X11$

I verified that it works with rdesktop, and noticed that its output includes Connection established using SSL. Once I added /sec:tls to xfreerdp, that worked, too, but it seems to me that it should "just work" without having to specify a security protocol.
In case it's useful, ./xfreerdp --buildconfig reports:
This is FreeRDP version 2.0.0-dev2 (6950d95af)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EVENTFD_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=ON WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FFMPEG=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=ON WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=ON WITH_ICU=ON WITH_IPP=OFF WITH_JPEG=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=OFF WITH_PROFILER=OFF WITH_PULSE=OFF WITH_SAMPLE=ON WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_LEAK=OFF WITH_SANITIZE_LEAK_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SSE2=ON WITH_THIRD_PARTY=ON WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=OFF WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          RelWithDebInfo
CFLAGS:               -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g
Compiler:            GNU, 5.4.0
Target architecture: x64

You're using a build with kerberos/GSSAPI enabled.
This is known to have a few issues that need to be resolved. Does it work like expected for builds without it?

Ok, just verified, when connecting with the current nightly builds this is working (they are not compiled with kerberos/GSSAPI support)

kerberos support now upstreamed, closing this.


sitemap parser assumes wrong baseUrl

It refuses to accept the links from the archive.org sitemaps:
20:36:12,023 WARN  [crawlercommons.sitemaps.SiteMapParser] (IdxTask) URL: https://archive.org/details/ARCHIVEIT-3490-TWELVE_HOURS-FHIFEO-00000 is excluded from the sitemap as it is not a valid url = not under the base url: https://archive.org/sitemap/
The base url should probably be https://archive.org/ and not restrict to sub-paths.

As per https://www.sitemaps.org/protocol.html#location, the sitemap parser is doing the right thing here - archive.org has their sitemap file in the wrong location.
Note that if you create the SiteMapParser with strict = false, then these URLs will be allowed.

Relates to #85, the sitemap is announced in http://archive.org/robots.txt


Change prefix for test DIDs

In preparation for re-launching our BTC testing. Let's test the new prefix (breaking change) on TESS.
Should be put a random string in the prefix? That makes it really "trashable" and would avoid conflict with other Bitcoin did
( ex: did:d89f3k:cid ) We keep the same random prefix string for the duration of our pre-launch efforts and then we just throw it away.


fix: Dropdown.alignment not respected

Fixes #3734
Test Code
import flet as ft

def main(page: ft.Page):
    def handle_switch_change(e):
        dd.options_fill_horizontally = e.control.value
        page.update()

    def handle_dropdown_change(e: ft.ControlEvent):
        if e.data == "top_center":
            dd.alignment = ft.alignment.top_center
        elif e.data == "top_left":
            dd.alignment = ft.alignment.top_left
        elif e.data == "top_right":
            dd.alignment = ft.alignment.top_right
        elif e.data == "center":
            dd.alignment = ft.alignment.center
        elif e.data == "center_left":
            dd.alignment = ft.alignment.center_left
        elif e.data == "center_right":
            dd.alignment = ft.alignment.center_right
        elif e.data == "bottom_center":
            dd.alignment = ft.alignment.bottom_center
        elif e.data == "bottom_left":
            dd.alignment = ft.alignment.bottom_left
        elif e.data == "bottom_right":
            dd.alignment = ft.alignment.bottom_right

        page.update()

    dd = ft.Dropdown(
        label="Select an option",
        value="top_left",
        options=[
            ft.dropdown.Option(text="top_left"),
            ft.dropdown.Option(text="top_center"),
            ft.dropdown.Option(text="top_right", alignment=ft.alignment.top_right),
            ft.dropdown.Option(text="center_left"),
            ft.dropdown.Option(text="center"),
            ft.dropdown.Option(
                text="center_right", alignment=ft.alignment.center_right
            ),
            ft.dropdown.Option(text="bottom_left"),
            ft.dropdown.Option(text="bottom_center"),
            ft.dropdown.Option(text="bottom_right"),
        ],
        alignment=ft.alignment.top_left,
        options_fill_horizontally=False,
        on_change=handle_dropdown_change,
    )

    page.add(dd, ft.Switch("Options Fill Horizontally", on_change=handle_switch_change))

ft.app(target=main)

Summary by Sourcery
This pull request fixes the issue where Dropdown.alignment was not being respected. It also introduces enhancements by adding support for options_fill_horizontally and disabled_hint_content properties in the Dropdown component.

Bug Fixes:

Fixed the issue where Dropdown.alignment was not being respected.

Enhancements:

Added support for options_fill_horizontally and disabled_hint_content properties in the Dropdown component.

Could you resolve conflict here please?


IME still has some issues

I'm sorry for bringing this up again.
Thanks to the commit https://github.com/microsoft/terminal/pull/13678, the original issue is fixed in the latest version.
But recently, I've found that the new behavior is not very desirable. At least for me.
For example, when I'm in the middle of editing something in Hiragara mode then switch to a different application or make the Terminal lose focus. Then when the Terminal get focus again, the IME's input mode will be switched to Half-width alphanumeric.
It's not a bug, but kind of inconvenience. So may I request a setting to disable the new behavior?
v1.13.10983.0

v1.15.2282.0

I don't have other CJK languages installed, so it might happen with the Japanese MS IME only.
Also, I believe that the new behavior is causing alt + shift to not retaining the last used input mode as mentioned in https://github.com/microsoft/terminal/issues/13681.
v1.13.10983.0

v1.15.2282.0

Originally posted by @rabianr in https://github.com/microsoft/terminal/issues/13398#issuecomment-1221222305

Thank you for creating a new issue for this. I thought it's related to the original issue so I didn't create a new one.
I just checked the discussion at https://github.com/microsoft/terminal/issues/12731. If I understand correctly, the intention of the patch is to switch IME input mode to Direct Input when user opens a new Terminal.
But this is already the default behavior of the Japanese IME before the patch. When I switch to Hiragana mode, then open a new Terminal, the input mode is switch to Direct Input immediately. Only when I switch to Hiragana mode in the Terminal then open a new Tab in the same window, then the new Tab will retain the Hiragara mode. But I think this should be expected.
I also couldn't find any setting to change the default input mode. So I think for the Japanese MS IME, Direct Input mode is set by default?
This behavior is the same with other applications too. E.g. Nodepad, Firefox, ...
Here is the demo with v1.13.10983.0

For reference: we've now been monkey-patching our IME support for... probably too long. We're gonna follow up with some folks more directly involved with the IME implementation, and seek out a more holistic design here. They'll likely have a set of best practices we should actually follow that'll work across different languages and IMEs. Hopefully, we can stop trying to whack-a-mole these issues.

For a short-term solution, having a option to turn off IME related things might be enough.
I mean, we've got thousands of languages across the globe - there will be certainly some that will cause issues.

Microsoft never test before releasing its software...

I think it's best to address this issue together with #14349, by unifying our two IME implementations.

I'm using Microsoft Chinese IME.
Adding my experience, the behavior that automatically switches to alphanumeric mode on focus bugs me because it would activate the IME even if I switched it off by using the old version of the IME.
It's annoying that when you accidentally pressed the shift key and your flow just broke because of the suddenly composition mode.
Let user decide whether to use this behavior or not would be better IMHO.

We just published a major update to our IME implementation in the nightly Canary branch. It was rewritten from the ground up and has tons of improvements! If you're interested in trying it out, you can get it here: https://aka.ms/terminal-canary-installer
If you already have the Canary build installed, you can use this link to force an update.
If you encounter any issues or have any suggestions, or if you simply like/dislike the changes, please let us know! Thank you for bearing with us. 😊


Added my profile

I have added my profile to the Badge category.

It is almost the same as mine. Try to do some change and your own creativity


Question: Help debugging CorruptSSTableException

I have attempted to repurpose some of the example code to run on some of my own SSTable files. I have added the Data.db, Index.db, and CompressionInfo.db files into a resources directory  and have changed some of the mappers and reducers to work with our own data format. However, when the SSTableRowRecordReader calls the tablescanner.next() method I continue seeing a CorruptSSTableException caused by a CorruptBlockException.. Any insights into why this could be happening? Or hints on how to debug exactly why a corrupt block is being detected?

Just as a sanity check, are you able to run sstable2json manually and confirm the state of the sstable(s) you're seeing this issue with?

Can you give us a few more information?
What version of cassandra are you using?
Can you give us an example of the full filename of a Data file?
Are you using Priam? Could your tables be compressed? You should be able to check by doing less on a table and check to see if you have any hints of compression in the beginning of the file.
Also pcn is right. It might be worth doing that if your sstable is small enough.

To clarify, since you're talking about CompressionInfo.db your tables are obviously compressed by cassandra but depending on where you got the tables from (if for example you're using a backup tool like Priam) there might be additional compression on top of that.

Ran the sanity check and have found that I'm getting an ArrayIndexOutOfBoundsException when running. Seems to fail on all Data.db files at array index 2.
[
{"key": "4501ef23-b39c-4999-aff1-fbc2750a0540",
 "cells": [["2015-04-15 11\\:44-0500:","",1429116280217000],
           ["2015-04-15 11\\:44-0500:brands:_","2015-04-15 11\\:44-0500:brands:!",1429116280216999,"t",1429116280]Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
	at org.apache.cassandra.db.composites.AbstractCompoundCellNameType.fromByteBuffer(AbstractCompoundCellNameType.java:101)
	at org.apache.cassandra.db.composites.AbstractCType$Serializer.deserialize(AbstractCType.java:397)
	at org.apache.cassandra.db.composites.AbstractCType$Serializer.deserialize(AbstractCType.java:381)
	at org.apache.cassandra.db.OnDiskAtom$Serializer.deserializeFromSSTable(OnDiskAtom.java:75)
	at org.apache.cassandra.db.AbstractCell$1.computeNext(AbstractCell.java:52)
	at org.apache.cassandra.db.AbstractCell$1.computeNext(AbstractCell.java:46)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
	at org.apache.cassandra.io.sstable.SSTableIdentityIterator.hasNext(SSTableIdentityIterator.java:116)
	at org.apache.cassandra.tools.SSTableExport.serializeRow(SSTableExport.java:209)
	at org.apache.cassandra.tools.SSTableExport.serializeRow(SSTableExport.java:181)
	at org.apache.cassandra.tools.SSTableExport.export(SSTableExport.java:343)
	at org.apache.cassandra.tools.SSTableExport.export(SSTableExport.java:369)
	at org.apache.cassandra.tools.SSTableExport.export(SSTableExport.java:382)
	at org.apache.cassandra.tools.SSTableExport.main(SSTableExport.java:466)

to answer your other questions:

Cassandra version 2.1
profiles-profile_interests-ka-10-Data.db
I am not using Priam. These are the .db files taken directly from Cassandra. Cassandra is itself doing compression, but no additional snappy compression.

Thanks for the quick responses.

Keep in mind that KassandraMRHelper as is only supports cassandra up to and including 1.2.
From the README file: "KassandraMRHelper is compatible with Cassandra versions up to and including 1.2"
I haven't gotten around updating it to support later versions too but since at Knewton we're starting to upgrade to Cassandra 2.x I might do that soonish. You can attempt to update KassandraMRHelper to support 2.x if you want. I don't expect it to be that hard to do.
However it's still strange that you're also getting an error when you're running sstable2json with a 2.1 binary.

Do you know what might be needed to upgrade to 2.x? From reading docs it seemed like the SSTable format had not changed much since 1.2 other than some additional metadata fields, but that might not be correct..
I agree that the sstable2json is troublesome. I'm working on tracking down that bug which should hopefully narrow down (or better yet eliminate) the source of the errors.


Malformed JSON string in right_hand_data events.

NOTE: This has the same description as for the viewport_data case, just tracking separately so we make sure all similarly-formatted events get updated.
The JSON string in the right_hand_data_package element of the event_data column is badly formatted.
Currently, its form is something like:
"gaze_data_package" : "
    {\"pos\":\"3.163,3.631,58.913\",\"rot\":\"0.025,0.604,0.000,0.797\"}
    {\"pos\":\"3.163,3.631,58.914\",\"rot\":\"0.025,0.600,0.001,0.799\"},
    ...
    {\"pos\":\"3.162,3.631,58.906\",\"rot\":\"0.025,0.612,-0.001,0.791\"}
"
As we can see here, the sub-dictionaries are meant to be in a list, but the string lacks surrounding [ and ] brackets to make them a list. Further, there are no commas separating the sub-dicts.
In addition, the values are given as a comma-separated string. We can actually save a couple characters and make JSON parsing nicer if we instead format them as lists of numbers,
e.g. convert \"pos\":\"3.163,3.631,58.913\" to \"pos\":[3.163,3.631,58.913]
Thus, the new JSON string format should be made to look like:
"gaze_data_package" : "[
    {\"pos\":[3.163,3.631,58.913],\"rot\":[0.025,0.604,0.000,0.797]},
    {\"pos\":[3.163,3.631,58.914],\"rot\":[0.025,0.600,0.001,0.799]},
    ...
    {\"pos\":[3.162,3.631,58.906],\"rot\":[0.025,0.612,-0.001,0.791]}
]"

0b85669


Question : Go Router with Signals.

I want to ask about an issue I encountered while using GoRouter with signals. When the user logs out, the application doesn't remove the route and gives a "Location cannot be empty" error. I reported this, and the Flutter team mentioned it might be a state management-related error. Is this correct?

Can you share a sample code snippet to reproduce?

Here is an example of signals a go_router working:
https://github.com/rodydavis/signals.dart/blob/main/examples/auth_flow/lib/main.dart

Here's the code
class AppRoutes {
static String splash = "/";
static String login = "/login";
static String register = "/register";
static String maindashboardview = "/maindashboardview";
static String forgotpassword = "/forgotpassword";
static String emailnotverified = "/emailnotverified";
static GlobalKey key = GlobalKey();
static GoRouter router = GoRouter(
routes: [
GoRoute(
path: splash,
name: splash,
builder: (context, state) => const LoadingScreenView(),
redirect: (context, state) {
FirebaseAuth auth = FirebaseAuth.instance;
User? user = auth.currentUser;
if (user != null && user.emailVerified) {
return maindashboardview;
} else if (user != null && user.emailVerified == false) {
return emailnotverified;
} else {
return login;
}
},
),
GoRoute(
path: login,
name: login,
builder: (context, state) => const LoginView(),
),
GoRoute(
path: register,
name: register,
builder: (context, state) => const RegisterView(),
),
GoRoute(
path: maindashboardview,
name: maindashboardview,
builder: (context, state) => const DashboardView(),
),
GoRoute(
path: forgotpassword,
name: forgotpassword,
builder: (context, state) => const ForgotPasswordView(),
),
GoRoute(
path: emailnotverified,
name: emailnotverified,
builder: (context, state) => const EmailNotVerifiedScreen(),
),
],
refreshListenable: FirebaseAuthService().currentUser.toValueListenable(),
debugLogDiagnostics: true,
initialLocation: "/",
navigatorKey: key,
);
}
//! Refresh Listener.
StreamSignal<User?> currentUser = StreamSignal(
() {
final FirebaseAuth auth = FirebaseAuth.instance;
return auth.authStateChanges().map((event) {
return event;
});
},
);

The problem I was facing when the user "Logut", goRouter gives an error "Location can't be empty"

But that error would be in go_router right?
To make sure it is working correctly, swap out the currentUser signal with a manual one for testing and add some tests to make sure the guards are correctly called.
I also would use the connect method here instead of an async stream signal.
final currentUser = signal<User?>(null);
...
connect(currentUser) << FirebaseAuth.instance.authStateChanges();
...
final _router = GoRouter(
  ...
  refreshListenable: currentUser.toValueListenable(),
);

Thank you for your response. I explored the "GoRouter" package and found an error there, but the signals are working perfectly.


MacOS, mktemp illegal option

Getting an error when running the script on MacOS
$ wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
[INFO] using default hash file. If you want to use other hashes, set another URL as first argument
mktemp: illegal option -- -
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix
--2021-12-30 12:00:52--  https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/hashes-pre-cve.txt
From the man page
`OPTIONS
The available options are as follows:
 -d      Make a directory instead of a file.

 -q      Fail silently if an error occurs.  This is useful if a script does not want error output to go to standard error.

 -t prefix
         Generate a template (using the supplied prefix and TMPDIR if set) to create a filename template.

 -u      Operate in ``unsafe'' mode.  The temp file will be unlinked before mktemp exits.  This is slightly better than mktemp(3) but still introduces a race
         condition.  Use of this option is not encouraged.`

Maybe the q and O must be in front of the URL?

Thanks!

Thanks!


[Port to dev] buster removal

Port https://github.com/MinaProtocol/mina/pull/16161 to develop

!ci-build-me

closing as we merged release/3.0.2 to master


Issue 149 event manager repair request search filtering and sorting

Change Summary
Backend

Filtering & Pagination of repair request endpoint for events

Filter by:

Item Type
Brand (unimplemented in frontend)
Assigned to me/unassigned
Search (search description/id & created by/assigned names)

Frontend

Updated border of select dropdown to match style better
Updated search to match style of select dropdown
Error state for failed repair request api request
Overhauled SortBy component to have sort direction and use select component
Added filtering & sorting to repair request page

Change Form

[x] The pull request title has an issue number
[x] The change works by "Smoke testing" or quick testing
[x] The change has tests
[ ] The change has documentation

I think the pagination stuff should be at the bottom -- thoughts?

It's at the top to stop it moving if there's more than one row of cards. Or if there's no cards it looks better than a gap.

Then can we get a loading spinner and not display the paginator until the items load?

I've constrainted the amount of valid sortKeys in the repair-request schema. I wanted to throw a type error on the allowedSortFields incase the schema changes. If theres a better way to do this (Ideally also using a zod enum that still throws the type errors) please let me know
const allowedSortFields: RepairRequestField[] = [
  "status",
  "itemType",
  "itemBrand",
  "requestDate"
] as const;

export const getRepairRequestSchema = paginationSchema.extend({
  id: z.string(),
  sortKey: z
    .string()
    .refine((value) => value in allowedSortFields, {
      message: "Incorrect value for sortKey"
    })
    .optional(),
  sortMethod: z.enum(["asc", "desc"]).optional(),
  searchWord: z.string().optional(),
  itemType: stringOrArray.optional(),
  itemBrand: stringOrArray.optional(),
  assignedTo: stringOrArray.optional()
});


Staking requirement amount shown on the Register pop up is incorrect.

30/5/22 AirClaim Votemvp Frontend v0.5.10qa5 Link: https://tjrhs-gqaaa-aaaad-qa24a-cai.raw.ic0.app/
When registering a type v (verovera) and type 'd' (dannydevito), the staking requirement amount shown on the Register pop up did not match the staking requirement amount in freeosconfig stakereqs table which is d=20, e=30 and v=0 for threshold=10 (usercount in

statistics table=16).

30/5/22 Tom has worked out the solution (attached screenshot) which needs to be applied to test environment.

7/6/22 Retest sceanrio in AirClaim 1.1.1 Frontend v0.5.11c-qa5 Link: https://tjrhs-gqaaa-aaaad-qa24a-cai.raw.ic0.app/
When registering type 'd' (dannydevito), the staking requirement amount shown on the Register pop up matches the staking requirement amount of 20XPR in freeosconfig stakereqs table which is d=20, e=30 and v=0 for threshold=10. Fixed.