Add support for short Vs long dates form

While getting feedback from an hungarian collaborator I got the feedback that it would be valuable to add to the library the possibility for to write a short form and a long form for dates.
Here follows the mail really full of interesting details:
In hungarian for exact number there is only the singular version was used.
for year we have 'év' and for years we have 'évek' but 'évek' is only used with the amount of small ('kevés') or few ('néhány').

The documentation shows much more possibilities, which need to be  implemented in the JS side
Just checked a code i think you need also add the defaults to the definitions.

I think from the function humanizer(passedOptions)
section the delimiter and the spacer should be moved to the language definitions, just because as coder you dont want to know, how a time in string is delitimted or spaced in a specific language.

for example, if you would like to make a sofware in english and hungarian, then we should have the followign two section

An English example:
language: "en",
delimiter: ", ",
spacer: " ",

A possible Hungarian version can be:
language: "hu",
delimiter: "és ",
spacer: " ", //6 óra és 8 perc

in Hungarian if you have only two values, its possible to use the 'és' as delimiter, but looks stupid, if you have 3 values.
Ok: 5 év és 3 hónap (5 years and 3 months.) NOT OK: 5 év és 3 hónap és 6 nap és 8 perc (...6 days 8 minutes).
OK: 5 év, 3 hónap, 6 nap, 8 perc

I am saying to move this to the language definitions, because its a translator specific knowledge, which should be not known by a developer. A developer should just set the languege, and get the correct value, without any knwoledge on that langauge.

Looking more on the code, it was not realy clear for me how the numbers were handled. Just because you need to nkown that with the example
humanizeDuration(1200) // "1.2 másodperc"
is not okay. Just because in hungarian the integer part separator is coma, the correct hungarian should be the "1,2 másodperc".
This is also language specific, like the thousand separator, which is " "(space) in hungarian, both of them should moved to the lang defs..
I didn't tested the code to working wrong, because i dont have dev environment here.
(it can be a good help for the tranlsators, if you put a html page on the github, which has a form to enter values, select language, hit a submit button then get test results.)

To make it more colorfull, when you are using part values, the separtor should be again 'és'
'4 év, 6 hónap, 6 nap és 1,5 óra' (4y,6m,6d,and1.5hour) is okay, but '4 év, 6 hónap, 6 nap, 1,5 óra' looks stupid because the congestion of comas came from the separator and from the number.
But this is also a language knwoledge and should be moved to the lang defs. :)

As engineer, i also look good if i can get a standard SI result. (If you want implement SI display, you give the "SI" as language code, and gave you that standard. :)
Maybe a default included SI def is usefull for the developers using this javascript code.

( I think its a fortune, until maya language support you dont need to recalculate the value to nongregorian values, because in Maya 1 uinal is 20 days long. :) )

The documentation is realy great, and shows me a great possible use of the javascript, which i think should be implemented in the langdefs too.

This possiblity was the shortEnglishHumanizer.
With a little more lang definition its possible to give the developer to use short version in more language

shortHu will looks like this:

    shortHu: {
      year: function() { return "é"; },
      month: function() { return "hó"; },
      week: function() { return "hét"; },
      day: function() { return "n"; },
      hour: function() { return "ó"; },
      minute: function() { return "p"; },
      second: function() { return "mp"; },
      millisecond: function() { return "ezredmásodperc"; },

Yes, for the shortest time unit in Hungaran there is no short version. :) If you have to display 618 milliseconds in hungarian in short you should display '0,618 mp'.

So could we add to the langauge specific defintions the followings:
integer separator
thousand separator
default delimiter
default separator
short versions

And to request some stupid also :), if it will be support the ISO639-2 language code, then i did the klingon:

    tlh: {                                      //ISO639-2 code for Klingon
      year: function() { return "DIS"; },
      month: function() { return "jar"; },
      week: function() { return "Hogh"; },
      day: function() { return "jaj"; },
      hour: function() { return "rep"; },
      minute: function() { return "tup"; },
      second: function() { return "lup"; },
      millisecond: // no miliseconds, display it as part seconds

//fortunately klingon has no plural form specialites.

:)

I split this up into #60 and #61.
I don't fully understand the distinction between short and long-form Hungarian durations. Do we want two separate languages, like this?
humanizeDuration(1234567, { language: 'shortHu' })
humanizeDuration(1234567, { language: 'hu' })

Or should the language definition look more like this?
hu: {
  year: function(c) {
    if ((c < 3) && (c != 1)) {
      return "évek";
    } else {
      return "év";
    }
  },
  // ...
}

Sorry for not understanding Hungarian!
I think I'm going to leave out Klingon support for now ;).

i think the suggestion by @vargaviktor was to have both hu and shortHu but this is valuable only if for all the languages we want to go for this duplication.

Why would all languages have to do that? Couldn't you just choose short Hungarian if you wanted it?
Is it because we don't want to make developers have to know about Hungarian?

i mean that in the future for each language we may have an API for asking for 'long', 'short' and providing the long or the short version. for now that we dont's have so any other short versiion we will cause only overhead to the project.

Yes Evan,
I think the user of the js should not know about anything in hungarian.
Just select the short or long.
Just an idea. 😃
2015.05.10. 19:42 ezt írta ("Giovanni Pellerano"<EMAIL_ADDRESS>
):

i mean that in the future for each language we may have an API for asking
for 'long', 'short' and providing the long or the short version. for now
that we dont's have so any other short versiion we will cause only overhead
to the project.
—
Reply to this email directly or view it on GitHub
https://github.com/EvanHahn/HumanizeDuration.js/issues/59#issuecomment-100674151
.

@vargaviktor Would you be okay with an API like this, then?
humanizeDuration(1234567, { language: 'shortHu' })
humanizeDuration(1234567, { language: 'hu' })

@EvanHahn it does not make sense for me.
i mean as adopter of the library in my application i've a list of languages supported let say: it, pl, hu
as example i would like to configure humanizer to configure humanize to use the short and then depending on a scope variable e.g. $scope.language have the respective translation applied.  so the language will be always hu, but depending on a global variable setting all languages will provide the shorter form or the longer form.

anyway for a metter of semplicity i think eventually it would be better to not integrate the shorter version now and eventually evaluate if we would like to have this feature for all the languages or not and how much is relevant.

the reason is that currently the library has already some limit due to the fact that in dates the order of the date components are not the same in each languages.
e.g the ordered form DAY/MONTH/YEAR in some countries is written MONTH/DAY/YEARS an currently the library does not take in account this thing.
given that i see the shorter form an addition feature not functional to the scope of the library that should focus eventually on the problem described above befor adding additional features like this.

@vargaviktor do you hava any clue on this?

Hi,
I think the short form is not critical.
Can live.without it. 😃
In Hungary, we write dates in this form year month day. 😃
2015.05.10. 23:25 ezt írta ("Giovanni Pellerano"<EMAIL_ADDRESS>
):

@vargaviktor https://github.com/vargaviktor do you hava any clue on
this?
—
Reply to this email directly or view it on GitHub
https://github.com/EvanHahn/HumanizeDuration.js/issues/59#issuecomment-100703762
.

Okay. Sounds like I can close this issue for now (and work on #60 and #61)?

ok!


DVCI-106 & DVCI-109: QBP Client & HL7 V2 to FHIR Translation

Introduces HealthCards::QBPClient Module which allows for a user to submit patient data to an IIS Sandbox, retrieve an HL7 V2 Message back in response, and convert the response message into a FHIR Bundle.
HealthCards::QBPClient Module contains 3 main functions that can be called by the IIS Query Form:

query():
takes in a patient hash containing user-entered data from the IIS Query Form front-end. It then calls upon build_hl7_message() to inject each patient field into an HL7 V2 QBP message, aligning to "Profile Z34 – Request a Complete Immunization History" (see documentation notes on Confluence, as well as a details on QBP Q11 Profile Z34 in the HL7 Version 2.5.1 Implementation Guide for Immunization Messaging). It then sends the QBP message to our hosted version of the IIS Sandbox, and returns the response message as an HL7::Message.

get_response_status():
takes in an HL7 V2 response message from the sandbox, and returns the status of the response. The IIS Query form can call this method in order to determine what next steps to take in the workflow. get_response_status() returns one of four "statuses" as Symbols:

:OK = Data found, no errors (this is the default)

Indicates that one patient match has been successfully found in the sandbox. App can proceed with creating a Smart Health Card for the patient.

:NF = No data found, no errors

Indicates that a patient with the designated information was not found. App can notify user that a patient with the requested information was not found.

:AE = Application Error

Indicates that required parameters were left out in the QBP query. This could prompt the App to ask for more information, but this will likely already be restricted on the front-end.

:TM = Too much data found

Indicates that more than one patient matched the designated search parameters, and the search needs to be more specific. App can prompt user to enter more information.

get_response_status will also throw an error if the HL7 V2 response message is not adequately formatted for Smart Health Card creation. Documentation for these error cases lives in the QBP Client API Confluence page. Many of the profile-specific exception cases have yet to be implemented as they are dependent on ongoing conversations with Nathan from AIRA. I have a running list of what has yet to be implemented, if people are curious.

translate():
takes in an HL7 V2 response message from the sandbox, and sends it to the HL7 V2 to FHIR translation service. The translation service returns a string containing either a FHIR Bundle with Patient and Immunization Data, or an error message.

Proposed workflow is that our app can call the query() function, send the response to the get_response_status() function to determine if the response contains a valid patient, and then if so, the translate() function can be called to obtain a Patient Bundle containing immunizations.

Closing this pull request as it has now moved over to https://github.com/dvci/iis-shc-issuer/pull/4.


Settings Sync Too Many Request

Type: Bug
I have been using profiles to manage my extensions, settings, snippets, etc. for each language I develop in.  As I've created more profiles (I have 16 now), I've been experiencing quite often the UserDataSyncError with the cause being "Too many requests."  I was trying to create a new profile (the 16th one) and now I seem to have reached the limit of syncing and broken settings sync. I can no longer enable sync without it complaining about too many request and I cannot delete the 16th profile as it just trys to sync it again when syncing settings, which just errors out.
Looking into the logs of Settings sync I'm pretty sure that it is doing 6 network request for each profile, so 6 * 16 = 96 requests, plus most likely some other non profile related syncing request. This would definately put me over the 100 request every 5 minutes limit, and problably why I was kinda ok with 15 profiles. I have tried to enable syncing after waiting sufficient time between tries (hours to a day between tries) to no avail.
Having extentions managed by workspace files would fix the issue as I wouldn't need to use settings sync anymore but that doesn't seem to be supported. If there is an upper limit of how many profiles can be reliably synced, could we add some cap on profile creation? I've been using settings sync for years without issues, and these syncing issues only started happening with the release of profiles.
Please let me know if you need anymore information.


The bar on marathonstation has a real nuke instead of a keg

Description
Damn it'd be a shame if someone gave them the nuke codes, eh?

keep it, its an easter egg now


Track highlights per document

test mention on edit: @siegebell blah

@siegebell test mention on new comment


steps to execute

Can you please mention the steps in order to execute the program?

Please take a look at the examples and the docs.

Which is where ? I cannot find any documentation or example link anywhere.

https://github.com/crudlio/crudl/blob/master/README.md
https://github.com/crudlio/crudl-example-django/blob/master/README.md
https://github.com/crudlio/crudl-example-express/blob/master/README.md


build issues on windows : ERROR: C:/temp/ramu/jazzer/WORKSPACE.bazel:6:20: fetching local_repository rule //external:jazzer_libfuzzer: java.io.IOException: No WORKSPACE file found in cl4wsmmn/external/jazzer_libfuzzer

\jazzer>bazel --output_user_root c:/temp/bz test //...
INFO: Repository remotejdk17_win instantiated at:
  /DEFAULT.WORKSPACE.SUFFIX:238:6: in <toplevel>
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/utils.bzl:233:18: in maybe
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/jdk/remote_java_repository.bzl:49:17: in remote_java_repository
Repository rule http_archive defined at:
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/http.bzl:372:31: in <toplevel>
INFO: Repository remote_java_tools instantiated at:
  /DEFAULT.WORKSPACE.SUFFIX:364:6: in <toplevel>
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/utils.bzl:233:18: in maybe
Repository rule http_archive defined at:
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/http.bzl:372:31: in <toplevel>
INFO: Repository com_github_jetbrains_kotlin instantiated at:
  C:/temp/ramu/jazzer/WORKSPACE.bazel:10:12: in <toplevel>
  C:/temp/ramu/jazzer/init.bzl:27:24: in jazzer_init
  C:/temp/bz/cl4wsmmn/external/io_bazel_rules_kotlin/src/main/starlark/core/repositories/initialize.bzl:48:31: in kotlin_repositories
Repository rule kotlin_compiler_repository defined at:
  C:/temp/bz/cl4wsmmn/external/io_bazel_rules_kotlin/src/main/starlark/core/repositories/compiler.bzl:22:45: in <toplevel>
INFO: Repository org_apache_commons_commons_math3_3_2 instantiated at:
  C:/temp/ramu/jazzer/WORKSPACE.bazel:179:21: in <toplevel>
  C:/temp/bz/cl4wsmmn/external/maven/defs.bzl:228:14: in pinned_maven_install
Repository rule http_file defined at:
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/http.bzl:466:28: in <toplevel>
INFO: Repository com_google_guava_guava_30_1_1_android instantiated at:
  C:/temp/ramu/jazzer/WORKSPACE.bazel:179:21: in <toplevel>
  C:/temp/bz/cl4wsmmn/external/maven/defs.bzl:88:14: in pinned_maven_install
Repository rule http_file defined at:
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/http.bzl:466:28: in <toplevel>
INFO: Repository org_junit_jupiter_junit_jupiter_params_5_9_0 instantiated at:
  C:/temp/ramu/jazzer/WORKSPACE.bazel:179:21: in <toplevel>
  C:/temp/bz/cl4wsmmn/external/maven/defs.bzl:354:14: in pinned_maven_install
Repository rule http_file defined at:
  C:/temp/bz/cl4wsmmn/external/bazel_tools/tools/build_defs/repo/http.bzl:466:28: in <toplevel>
ERROR: C:/temp/ramu/jazzer/WORKSPACE.bazel:6:20: fetching local_repository rule //external:jazzer_libfuzzer: java.io.IOException: No WORKSPACE file found in C:/temp/bz/cl4wsmmn/external/jazzer_libfuzzer
ERROR: C:/temp/ramu/jazzer/src/main/native/com/code_intelligence/jazzer/driver/BUILD.bazel:4:15: //src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver.dll depends on @jazzer_libfuzzer//:libfuzzer_no_main in repository @jazzer_libfuzzer which failed to fetch. no such package '@jazzer_libfuzzer//': No WORKSPACE file found in C:/temp/bz/cl4wsmmn/external/jazzer_libfuzzer
ERROR: Analysis of target '//src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver' failed; build aborted:
INFO: Elapsed time: 6.458s
INFO: 0 processes.
ERROR: Couldn't start the build. Unable to run tests
FAILED: Build did NOT complete successfully (28 packages loaded, 611 targets c\
onfigured)
    currently loading: @junit_junit_4_13_2//file ... (10 packages)
    Fetching https://github.com/...ompiler-1.7.22.zip; 3.4 MiB (3,544,448B) 4s
    Fetching https://mirror.bazel.build/..._x64.zip; 10.8 MiB (11,280,304B) 4s
    Fetching https://mirror.bazel.build/...-v12.3.zip; 3.2 MiB (3,349,367B) 4s
    Fetching https://repo1.maven.org/...ns-math3-3.2.jar; 1.1 MiB (1,142,336B)
    Fetching https://repo1.maven.org/.../guava-30.1.1-android.jar
    Fetching https://repo1.maven.org/.../5.9.0/junit-jupiter-params-5.9.0.jar

On main jazzer_libfuzzer is not a local_repository, but an http_archive, which does not require a WORKSPACE file to be present.
If you are trying to build Jazzer with your own custom modifications, just create an empty WORKSPACE file in the directory that your local_repository points to.
Please reopen if that doesn't resolve the problem for you.


10.1038/s41586-018-0449-8

Ordovas-Montanes et al.
Allergic inflammatory memory in human respiratory epithelial progenitor cells
https://www.nature.com/articles/s41586-018-0449-8
Data:
https://static-content.springer.com/esm/art%3A10.1038%2Fs41586-018-0449-8/MediaObjects/41586_2018_449_MOESM4_ESM.zip

I'd like to be assigned to this data set, thank you!


Profanity branch

Codecov Report

Merging #62 (577deeb) into main (8928a99) will increase coverage by 0.55%.
The diff coverage is 84.61%.

@@            Coverage Diff             @@
##             main      #62      +/-   ##
==========================================
+ Coverage   63.91%   64.47%   +0.55%
==========================================
  Files          22       23       +1
  Lines        1746     1796      +50
==========================================
+ Hits         1116     1158      +42
- Misses        630      638       +8

Impacted Files
Coverage Δ

cogs/profanity.py
77.77% <77.77%> (ø)

test/test_bot.py
98.88% <100.00%> (+0.06%)
:arrow_up:

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 8928a99...577deeb. Read the comment docs.


Work on Shoutbox plugin ?

Hello @opli
do you think it's complicated to add the functioning of the roll in the Shoutbox plugin?
I tell you because we have performance issue with Global Chat we use. So I think I'm heading towards the ShoutBox plugin so having a working /roll on it would be very cool
https://github.com/NodeBB-Community/nodebb-plugin-shoutbox
I have ask to @baris here : https://github.com/NodeBB/nodebb-plugin-global-chat/issues/5
Thanks for your answer my friend :)

As you noticed the issue is the lack of anything to hook up the plugin to.
There are two things required here:

some event system (could just be NodeBB hooks) so that other plugins can parse messages sent to shoutbox (currently it is actually using the parse.raw hook, but it's not really useful as it only gives the content without any metadata (so no info where it comes from)
some way to get data back. This could also be hooks, but here the plugin would need to listen to some custom hooks, not fire them. IIRC it was fine to listen to nonexistent hooks, so this should work.

This shouldn't be hard, but there are a few things to change there and I probably won't have time to work on this for the next week or two.

Ok my friend I would therefore wait ;=)

yo my friend
How are you ?


notifyDataSetChanged Adapter not work when one item in the list

private List abstractFlexibleItems = new ArrayList<>();
if (abstractFlexibleItems.size() != 0) {
mAdapter = new FlexibleAdapter<>(abstractFlexibleItems);
mRecyclerView.setLayoutManager(new SmoothScrollStaggeredLayoutManager(mContext, 2));
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mAdapter.setDisplayHeadersAtStartUp(true).enableStickyHeaders();
mAdapter.notifyDataSetChanged();
} else {
//configVisibilityInstant(true);
}
if (mAdapter != null)
mAdapter.notifyDataSetChanged();
notifyDataSetChanged Not work when list contain one Item in the abstractFlexibleItems .

I'm sorry for you but it works, that is RecyclerView code.
However in phase of startup, probably there's no need to update since the items are still not rendered.


the diagram for the example code  "access-mutual-java-fields" is not available

Description:
The sequence diagram for the example code (access-mutual-java-fields) is not available in the file overview.
Steps to reproduce:
import ballerinax/java;
import ballerina/io;

// Define a Ballerina function which will act as a Java field getter.
public function pi() returns float = @java:FieldGet {
    name:"PI",
    class:"java/lang/Math"
} external;

public function main() {
    float r = 4;
    // If a field is an instance field, the receiver instance has to be provided as the first parameter.
    float l = 2 * pi() * r;
    io:println(l);
}

Affected Versions:
1.0.0 rc1
OS, DB, other environment details and versions:
OS : Ubuntu 18.04
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Issue is no longer valid for Swan Lake release. Hence, closing it.

Issue is no longer valid for Swan Lake release. Hence, closing it.


go-daemon requires cgo on darwin/macOS

I use go-daemon in rclone and it works very well - thanks!
However I normally cross compile all the binaries.  This means I can't support go-daemon on darwin/macOS because it requires cgo.
This is the only place I found which uses cgo
https://github.com/sevlyar/go-daemon/blob/32749a731f76154d29bc6a547e6585f320eb235e/lock_file_darwin.go#L10
And it looks like it might be reasonably easy to remove as all it is used for is to manipulate C strings.
If you agree, I'd be happy to send a PR to remove the dependency on cgo.
This would mean I could bring the --daemon flag to macOS which will make my users happy!

This is working fine now - thank you very much :-)


HI, CAN I CHANGE THE LANGUAGE?

DIDN'T FIND THE BUTTON, THANKS

It currently does not support any languages except English. You can translate it manually and submit a pull request if you want support for your language.


[youtube] comments downloader goes into a loop, never stops on some videos

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2023.02.17 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
With yt-dlp --write-comments on https://www.youtube.com/watch?v=kOHXmlRaTqU (which has just a few hundred comments), yt-dlp goes into some kind of download loop and never stops downloading comments.
I noticed that this also happened with https://www.youtube.com/watch?v=6u2IcdAE2ms and https://www.youtube.com/watch?v=XZqRYNbdB0g earlier, but now it does not, so it may stop happening on https://www.youtube.com/watch?v=kOHXmlRaTqU as the comments thread or YouTube's caches are updated.
This could be fixed by detecting whatever condition is causing it to loop, or by stopping when the number of comments downloaded far exceeds the estimated number of comments.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-v', '--write-comments', 'https://www.youtube.com/watch?v=kOHXmlRaTqU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.02.17 [a0a7c0154] (source)
[debug] Lazy loading extractors is disabled
[debug] Git HEAD: 18d295c9e
[debug] Python 3.10.9 (CPython x86_64 64bit) - Linux-5.15.93-x86_64-with-glibc2.35 (OpenSSL 3.0.8 7 Feb 2023, glibc 2.35)
[debug] exe versions: ffmpeg 5.1.2 (fdk,setts), ffprobe 5.1.2
[debug] Optional libraries: sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1782 extractors
[youtube] Extracting URL: https://www.youtube.com/watch?v=kOHXmlRaTqU
[youtube] kOHXmlRaTqU: Downloading webpage
[youtube] kOHXmlRaTqU: Downloading android player API JSON
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[youtube] Downloading comment section API JSON
[youtube] Downloading ~219 comments
[youtube] Sorting comments by newest first
[youtube] Downloading comment API JSON page 1 (0/219)
[youtube] Downloading comment API JSON page 2 (20/219)
[youtube] Downloading comment API JSON page 3 (39/219)
[youtube]     Downloading comment API JSON reply thread 1 (52/219)
[youtube] Downloading comment API JSON page 4 (57/219)
[youtube] Downloading comment API JSON page 5 (57/219)
[youtube] Downloading comment API JSON page 6 (77/219)
[youtube] Downloading comment API JSON page 7 (96/219)
[youtube]     Downloading comment API JSON reply thread 1 (109/219)
[youtube] Downloading comment API JSON page 8 (114/219)
[youtube] Downloading comment API JSON page 9 (114/219)
[youtube] Downloading comment API JSON page 10 (134/219)
[youtube] Downloading comment API JSON page 11 (153/219)

[...]

[youtube]     Downloading comment API JSON reply thread 1 (316220/219)
[youtube] Downloading comment API JSON page 25520 (316225/219)
[youtube] Downloading comment API JSON page 25521 (316225/219)

Workaround, press ctrl+c to stop comment extraction

Seems to be a youtube issue but we'll try to workaround it.
There's only 78 unique comments being extracted from kOHXmlRaTqU even though it says there is 241 est. comments.


Drag between two sortables

I'm having problem moving items between two different zones. It is possible to move item from one to another, but then new drag has to be initiated to sort in the new location.
Btw is it somehow possible to drag item to empty zone?
Live example - http://fluid.cz/projects/react-dnd/
function _moveWidget(e){
	var overComponent = e.overComponent.props
	var draggedComponent = e.draggedComponent.props

	var draggedComponentObj = _.find(_page.zones[draggedComponent.zoneKey].widgets, {'id':draggedComponent.widgetData.id})
	var overComponentObj = _.find(_page.zones[overComponent.zoneKey].widgets, {'id':overComponent.widgetData.id})

	draggedIndex = _page.zones[draggedComponent.zoneKey].widgets.indexOf(draggedComponentObj);
	overIndex = _page.zones[overComponent.zoneKey].widgets.indexOf(overComponentObj);

	_page.zones[draggedComponent.zoneKey].widgets.splice(draggedIndex,1)
	_page.zones[overComponent.zoneKey].widgets.splice(overIndex, 0, draggedComponentObj)
}

To implement dragging to an empty zone, make that zone a drop target.
=====
As for troubles with dragging from one list to another: I see a lot of JS errors in console when I do that.
Specifically, these ones:

The problem seems to be the following: you look for the widget info in the original zone:
var draggedComponentObj = _.find(_page.zones[draggedComponent.zoneKey].widgets, {'id':draggedComponent.widgetData.id})

However, if the zone has changed, you can no longer find it there! Hence draggedComponentObj being null and an exception.
What you should do instead is to store items separately by ID, not inside zones. You can have something like flat _page.widgets (I wouldn't use term “component”, it conflicts with React's meaning for component). You wouldn't even need find this way:
var draggedComponentObj = _page.widgets[draggedComponent.widgetData.id];

This way it will be findable even if the zone has changed.
=====
Finally, you'll face troubles with getDragState(type).isDragging returning false once component has been “moved” to a different zone (since technically it's a different component). This is a known issue related to current React DnD design and will be resolved in big 0.10 release in the following month.

Thanks for lightning fast and very complex answer. Now I pretty much get everything except proposed structure of items.
You probably do not mean object with ids as keys, do you?
{uid:{widgetData}, uid2:{otherWidgetData}}

Why not? Pretty much what I meant.

Array of objects seems much more natural to me, but I'm going to investigate that.

It's up to you but a map seems more natural here because there is no defined order (it's just a mapping from ID to instance). In JS you don't have native Maps yet so an object is as close as you can get.

Closing, as it's more of a question than an issue.
As I said before, we're planning to solve “wrong isDragging” problem for “resurfacing” components (such as when widget mounts in another list). You can track progress in #111.

Hey @gaearon, has the isDragging problem been addressed? I just upgraded to 1.0.0, rewired everything for the new API, and isDragging still seems to be wrong after a component is dragged to a new list.

@ntdb Thanks for using it! Yeah, isDragging is the way to go.


better mode control

Codecov Report

Merging #55 (1400694) into master (a43ff39) will decrease coverage by 32.79%.
The diff coverage is 35.89%.

@@             Coverage Diff             @@
##           master      #55       +/-   ##
===========================================
- Coverage   75.24%   42.44%   -32.80%
===========================================
  Files         156      158        +2
  Lines       18695    18888      +193
===========================================
- Hits        14067     8017     -6050
- Misses       4628    10871     +6243

Impacted Files
Coverage Δ

qcdb/programs/nwchem/runner.py
26.37% <0.00%> (-71.43%)
:arrow_down:

qcdb/programs/psi4/germinate.py
5.76% <0.00%> (-94.24%)
:arrow_down:

qcdb/programs/psi4/runner.py
27.14% <0.00%> (-71.49%)
:arrow_down:

qcdb/tests/test_cbs_xtpl_gradient.py
38.66% <ø> (-59.34%)
:arrow_down:

qcdb/tests/test_cbs_xtpl_hessian.py
29.10% <ø> (-58.69%)
:arrow_down:

qcdb/tests/test_cbs_xtpl_opt.py
24.17% <ø> (-75.83%)
:arrow_down:

qcdb/tests/test_ghost.py
30.61% <ø> (-69.39%)
:arrow_down:

qcdb/tests/test_manuscript.py
24.12% <0.00%> (-74.71%)
:arrow_down:

qcdb/tests/test_molecular_symmetry.py
82.78% <ø> (-17.22%)
:arrow_down:

qcdb/tests/test_standard_suite.py
74.22% <0.00%> (-25.06%)
:arrow_down:

... and 122 more

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 a43ff39...1400694. Read the comment docs.


Support installing NSM and its sample apps using helm

Current Description
The adapter is using helm to install NSM and its sample apps. But we are using a cloned version of the helm repo to use it.
Expected Behavior
We want to be able to use the official helm repos to be able to install NSM and its sample apps. This will prevent us from using edge version all the time and also provide us the ability to install specific versions of NSM and sample apps.

Hi, @girishranganathan is it okay to close this issue? or does it need to be assigned to someone?


githubReleaseNotesFile doesn't seem to do anything

I have githubReleaseNotesFile = 'CHANGELOG.md' in my bintray` task, but it doesn't seem to do anything.
Here is my build.gradle, and here is the package on bintray. I would have expected the contents of CHANGELOG.md to appear under the Release Notes tab, but there is nothing there, whether I select "GitHub File" or "Bintray".
The Release Notes tab suggests:

To use a file from GitHub make sure that your account's GitHub username is authorized and that this package has GitHub user/repo configured. Also make sure that the package has GitHub release notes file configured.

I have done all of that already. I even manually set the package's "GitHub release notes file", despite the fact that I thought that's what this plugin's githubReleaseNotesFile setting was supposed to do (but didn't).

Ok, messed up and wrote "CHANGES.md" instead of "CHANGELOG.md" in the setting.
I still don't know why I had to manually set this rather than the githubReleaseNotesFile doing it.


update docs

update control plane diagram to match new multiMaster architecture
update docs

towards https://github.com/giantswarm/giantswarm/issues/5062

THX for feedback, will merge when I start migration customers (next week)


Parse multipart/form-data parameters

Automatically parse parameters from HTML forms into the params dictionary.

Need to consider large uploads or at least enforce a maximum size.

First, I think what you have done is awesome and makes CocoaHTTPServer very easy to use!
I'm using ASIFormDataRequest from the ASIHTTPRequest project, and was wondering how you would recommend retrieving the post values from the request body. I'm not an HTTP pro, so I'm not exactly sure how it all should be parsed. I tried using [request param:@"myPostValueKey"], but that didn't work.
Thanks!

Thanks, glad you've found it useful! Right now form data is just delivered in its raw form which you can get at with [request body]. I'm afraid I don't have any code to parse it yet, but you might be able to find a class or library where someone has done this already.

Thanks for the fast response! Ok no problem--I will look for a parser and I'll let you know if I come up with anything.


Integrate Travis with ROOT conda builds

Apply @remenska's modifications from rootpy/rootpy#689

Funny, I just wanted to point you to this :dancer:

Hm,  yeah, tried this, the problem is binutils version on Ubuntu 12.04 (the assembler is too old for the GCC 4.8, and you can't even upgrade further than 2.22 on this distro). Supposedly 2.23 is already good enough.
I suggest switching to Trusty:
https://docs.travis-ci.com/user/ci-environment/

Haha... I was hoping you would show up and solve this!


Genetic Algorithms

This is the pull request of the final project in the STMO course 2021-2022.
Contributors: Jordi Verbruggen and Jietse Verweirder

Hi Jordi and Jietse,
Your project looks to be in very good shape!
Small remarks:

I personally think a heatmap is more clear than a 3d surface plot, but this is personal taste,
the first figure is a bit grainy?
you might allow me to change the objective?
you can leave your code blocks visible. Suppress the docs with a ; at the end
in rand_init_pop, by using . or other smart things you can make sure pop is not an Any vector. Concrete types greatly improve performance. For example pop = [ ... ] always yields a concrete type. Fix this for your other functions as well
minima_himmelblau => would give the objective here, could easily work for arbitrary 2D functions, no?

solving the Any[] vectors seems to be the only 'critical thing'. Good job!

Hi Jordi and Jitse,
I think your project looks really good. I don't have any remarks on the actual coding part of your project.
However, I did spot some typos in your project which are easy to clean up:

In the section initial population: I think there is a typo at permutation size. Should "higher change" not be "higher chance"?
In the termination criteria section: "Herefore" is used instead of "Therefore"
Under Roulette Wheel Selection: you typed "an thus resulting" instead of using "and"
Under the crossover section: for "random parings of parents" this should be "pairings", and in the same paragraph "devided" should be "divided"
The complete algorithm: "sart" should be "start"

https://github.com/natclaret/Ant_Colony_Optimization.jl/blob/master/geneticalgorithms.jl
Awesome notebook! I especially like your interactive parameter sliders / gif element. I also appreciate the paragraph you include after, that explains what we’re seeing in the graphic.
Linked notebook: Sorry, couldn’t get the pull request working right so I saved a local copy of your project, edited it, and put it in my repo – so that's what the link is for.

For the most part I fixed some typos. In a very few spots I made subjective changes, like slightly rewording a sentence or changing the boldface. Since that is mostly dependent on someone’s personal taste I only did it if I was convinced that it was a good/helpful change. 😊
I did not alter your code at all. Everything looked good to me.

Other remarks / feedback: To be clear, your content is great as is. Obviously I was looking for things to offer feedback on, so some of this is kind of picky stuff. See below:

roulette_wheel_selection(population fitness): the formula you give for the function has variable names that don’t seem to exactly match the formula names you use in the function. I suggest you update the formula to match the function or vise versa.
“Defining the initial population” section: you say “diversity” must be taken into account. Maybe add another sentence to explain that in more detail. What does it mean for the population to be diverse?
“Fitness” section: Is it common that the fitness function can bottleneck the algorithm? Is this a drawback of using GAs or would you say that other comparable optimization techniques would suffer just as much from an inefficient cost function?
“The code goes as follows” statements before each function: sometimes you have them italicized and sometimes in normal face. Change them all to a matching style.
“Selection” section: The sentence “Note that an individual can be selected more than one time, otherwise the population would not change.” It’s not obvious to me why this is true?
“Roulette Wheel Selection”: an image of a Roulette wheel might be helpful here.
“Rank selection”: This sentence is confusing – “In rank selection, the fitness values can even be negative, as it is their rank that counts and not their actual value.”. I don’t think it fits well there.
“Crossover”:  I would leave out “This is a specific case of a N-point Crossover technique” unless you explain what N-point crossover technique means.
Maybe add a comment to let the reader know when we’ve stopped talking about various selection techniques and are moving onto another aspect of GAs.
“Mutation” section: What is a Gaussian deviate?
“Mutation” section: You mention “the change is getting smaller”- changes in what? Is it that the evolution rate is slowing and the offspring population more closely resembles the parent population?
“Mutation” section: Before giving the function code, can you mention which of the given mutation strategies you are going to exemplify?

Again, really nice work, Jordy and Jietse! I enjoyed reading it.


Text Change: https://staging.creativecommons.org/choose/zero/

@little-wow
Here is revised text for the first three paragraphs of this page.
Text changes to choose zero.docx

@little-wow I would be happy to make the text changes myself, but i don't seem to have authorization.

Rob or I will have to do this, as the chooser is not in WordPress.

Thanks, as with other changes it's not urgent for today but we do want these small tweaks incorporated with the general roll out of the new site as they're important for some adopters. Appreciated mattl!

I think this issue is resolved. Reopen if it's not!


JS errors with 0.9.8-17

I have installed the theme by unzipping and afterwards I restored the backup and used bower as well, in case only one way failed.
I get the following errors on the js console:
Uncaught ReferenceError: GLOBAL is not defined
    at app.js?1446554103:727
templates.js:5 Uncaught TypeError: Cannot read property 'Templates' of undefined
    at templates.js:5
app.js?1476144160:727 Uncaught ReferenceError: GLOBAL is not defined
    at app.js?1476144160:727
i18n.js.php:2 Uncaught TypeError: Cannot read property 'i18n' of undefined
    at i18n.js.php:2
templates.js:5 Uncaught TypeError: Cannot read property 'Templates' of undefined
    at templates.js:5
app.min.js:13 Uncaught TypeError: Cannot read property 'options' of undefined
    at HTMLDocument.<anonymous> (app.min.js:13)
    at i (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at Function.ready (jquery.min.js:2)
    at HTMLDocument.J (jquery.min.js:2)
(index):725 Uncaught ReferenceError: hover_menu is not defined
    at HTMLDocument.<anonymous> ((index):725)
    at o (jquery-1.7.2.min.js?1476144160:2)
    at Object.fireWith (jquery-1.7.2.min.js?1476144160:2)
    at Function.ready (jquery-1.7.2.min.js?1476144160:2)
    at HTMLDocument.B (jquery-1.7.2.min.js?1476144160:2)

No visible elements load on the DOM at all. Just a light blue body. After a bit of tinkering, I traced one of the problems to jquery-1.7.2 being redeclared. I also found more js files being redeclared more than 1 time.

Hello I have same problem. Do you resolve it?

I have managed to fix some of them by removing redundant entries. Still though, some pages in the interface don't work properly (for example Emails).

@stathis could you elaborate? What did you edit/remove? Would help me out a lot!

i commented out jquery 1.7.2 in scripts.html
works well, dont have issue in mail menu.
but still showing about js error in console

@mgilank DNS records don't work though.
Plus if you go into mail settings, "william.cage@" appears in the box to the right instead of the user's actual username.

Thanks everyone, based on you guys comment, I just update the theme.
If you would like to test it out, you could checkout the master branch.

the name "william.cage" is gone, but the listing details in dns record still hide/missing.
great job btw.

Works like a charm. I see that the server stat page isnt styled yet. I'll supply a fix in the future :)


Seems to only listen to $window scroll

Reviewing the code it only seems to listen when a window is scrolled
$window.on('scroll', handler);
scope.$on('$destroy', function() {
return $window.off('scroll', handler);
});
Any reason this isn't listening on the element itself? This would be more useful to have multiple elements on the screen that are infinitely scrollable

:+1:

After peeking at the source code, I solved this by adding the attribute infinite-scroll-parent(https://github.com/sroze/ngInfiniteScroll/blob/master/src/infinite-scroll.coffee#L192)
This basically uses parent element's scroll instead of $window

@mudassir0909 Thanks for sharing solution!

@mudassir0909 your link is 404 now.. could you post the solution in a gist or something? :)

Just add the attribute infinite-scroll-parent

@mudassir0909 did you mean the infinite-scroll-container ?

No infinite-scroll-parent, I've updated the link in the above comment which points to the source code


The png file for authentication plots doesn't render well on mac

Left png file, right pdf file.

convert has a background argument. I believe adding -background white to the convert command at the very end of authentic.R should fix the issue.

@ZoePochon I think I fixed it in the latest PR, however feel free to reopen if you see problems with rendering on Mac again


system: Support fetchPriority attribute on img elements

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example: https://stackblitz.com/edit/github-7x91nh?file=src%2FApp.js
Steps:

Create a styled img component using function syntax.
Add a fetchPriority attribute to the created component.
The output html doesn't contain fetchpriority attribute.

Current behavior 😯
fetchPriority passed to styled img component gets filtered out.
Expected behavior 🤔
fetchpriority passed to the styled component should appear in the output html.
Context 🔦
It's a recommended attribute for solving LCP issues:
https://web.dev/optimize-lcp/#optimize-the-priority-the-resource-is-given
Your environment 🌎

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

System:
OS: macOS 13.3.1
Binaries:
Node: 18.15.0 - ~/.nvm/versions/node/v18.15.0/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 9.5.0 - ~/.nvm/versions/node/v18.15.0/bin/npm
Browser:
Edge: Version 113.0.1774.50 (Official build) (arm64)
npmPackages:
@emotion/react:  11.7.1
@emotion/styled:  11.6.0
@mui/base:  5.0.0-alpha.62
@mui/icons-material:  5.3.0
@mui/lab:  5.0.0-alpha.64
@mui/material:  5.2.6
@mui/private-theming:  5.11.2
@mui/styled-engine:  5.11.0
@mui/system:  5.11.4
@mui/types:  7.2.3
@mui/utils:  5.11.2
@types/react:  17.0.1
react:  17.0.1
react-dom:  17.0.1
styled-components:  5.3.6
typescript:  4.9.3

Nevermind, I just noticed [options.shouldForwardProp][1] can be used for achieving this. I've updated the linked Stackblitz example to demonstrate the solution.
Example:
const Image = styled('img', {
  shouldForwardProp: (prop) => prop === 'fetchPriority',
})(() => ({
  height: '100px',
}));


Scan result empty on midway3

Full file here: /project2/lgrandi/yuanlq/shared/disk_usage/project_lgrandi_output_20230510.txt
Deeper scan for xenonnt
--------------

Summary:
Total storage scanned: 0.0 TB
    rawdata : 0.0TB  nan%  0
    records : 0.0TB  nan%  0
    peaks : 0.0TB  nan%  0
    root : 0.0TB  nan%  0
    pickle : 0.0TB  nan%  0
    jobs : 0.0TB  nan%  0
    figures : 0.0TB  nan%  0
    zips : 0.0TB  nan%  0
    hdf : 0.0TB  nan%  0
    others : 0.0TB  nan%
==============
--------------
--------------

Summary:
Total storage scanned: 0.0 TB
    rawdata : 0.0TB  nan%  0
    records : 0.0TB  nan%  0
    peaks : 0.0TB  nan%  0
    root : 0.0TB  nan%  0
    pickle : 0.0TB  nan%  0
    jobs : 0.0TB  nan%  0
    figures : 0.0TB  nan%  0
    zips : 0.0TB  nan%  0
    hdf : 0.0TB  nan%  0
    others : 0.0TB  nan%
==============

Another test is running in job 28699496. In CVMFS development environment I ran python batch_job.py midway3.

/project2/lgrandi/yuanlq/shared/disk_usage/project_lgrandi_input_20230704.txt
/project2/lgrandi/yuanlq/shared/disk_usage/project_lgrandi_output_20230704.txt

The input looks OK, but the output is empty.

Solved


PSR12.Properties.ConstantVisibility should automatically detect the PHP version + add phpcbf fix

Is your feature request related to a problem?
When running PSR12 against an (older) project, we see this warning message for projects that actually support PHP versions lower than 7.1.
FILE: /Volumes/Code/yii2/framework/grid/GridView.php
------------------------------------------------------------------------------------------------------------------------------------------------------
FOUND 0 ERRORS AND 3 WARNINGS AFFECTING 3 LINES
------------------------------------------------------------------------------------------------------------------------------------------------------
 52 | WARNING | Visibility must be declared on all constants if your project supports PHP 7.1 or later (PSR12.Properties.ConstantVisibility.NotFound)

In my particular case, this is defined in composer.json:
    "require": {
        "php": ">=5.4.0",

The php version running phpcs is not relevant, as it might run just in CI.
Describe the solution you'd like
It would be great to skip this check if the minimum version is below PHP 7.1, ideally checking this in composer.json. Also, I think this is an easy fix for phpcbf, but it's not yet implemented, it should be public as this is the default visibility if it is omitted.
Additional context (optional)
Can I please get some guidance of how this should be implemented? Saw in another issue this, but not sure it's reliable enough for this use-case:
https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/9b6260b4ff9410682fd34a34e68e377e60dc4961/src/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php#L43-L52

[x] I intend to create a pull request to implement this feature.

@razvanphp Thanks for opening this issue.

It would be great to skip this check if the minimum version is below PHP 7.1, ideally checking this in composer.json.

PHPCS can not and should not rely on a composer.json file being available. PHPCS can be installed via PHIVE, git clone, stand-alone PHAR, Composer etc, so any solution which presumes the existence of a composer.json file in a project (and presumes a project-based install), will not be accepted.

Also, I think this is an easy fix for phpcbf, but it's not yet implemented, it should be public as this is the default visibility if it is omitted.

As spelled out in the CONTRIBUTING guide, PHPCS does not allow risky fixers for its native sniffs. The appropriate visibility is something which should be deliberately determined by a developer. This is not something a tool can do and making automated BC-compatible fixes just to fix the issues instead of making deliberate choices about the visibility is a risky fix, so any PR for this will not be accepted.
I'm pretty sure there are sniffs available in external standards which can make that fix for you, but it will not be made by the PHPCS native sniffs.

Can I please get some guidance of how this should be implemented ?

The code snippet shown, works based on a configured php_version and defaults to the PHP version used to run PHPCS.
The PHPCS version to run PHPCS is - in most cases - not the same as the minimum supported PHP version, so defaulting to that PHP version would not be appropriate.

ok, thanks for the detailed explanation. So no other options? I can't see a viable way to treat this case otherwise. Maybe the sniff could receive a parameter as the minimum PHP version?

OK, for now I will just exclude it in the project phpcs.xml, but if you think about a clever solution, I'm all in to try it out. Thank you!


Close idle keep-alive connections on shutdown

Fixing #1221

Current coverage is 98.28% (diff: 100%)

Merging #1222 into master will increase coverage by <.01%

@@             master      #1222   diff @@
==========================================
  Files            29         29
  Lines          6483       6485     +2
  Methods           0          0
  Messages          0          0
  Branches       1086       1087     +1
==========================================
+ Hits           6372       6374     +2
  Misses           59         59
  Partials         52         52

Powered by Codecov. Last update 94e0fb6...83fb179

Thanks!


Can't check the downloading status of Deferred components

I'm trying the Deferred component feature as #57617 is closed.
I read the document and follow sample on gallery https://github.com/flutter/gallery/pull/461, but I don't see any way to detect whether a component is downloaded or not.
And the Play Feature Delivery has listener to check the downloading status to show a percentage progress, but still I don't see it on flutter Deferred components.
I expect something like this on flutter side:
splitInstallManager
    .startInstall(request)
    .addOnSuccessListener { sessionId -> mySessionId = sessionId }
    .addOnFailureListener { exception ->
    }

override fun onStateUpdate(state : SplitInstallSessionState) {

    if (state.sessionId() == mySessionId) {
        when (state.status()) {
            SplitInstallSessionStatus.DOWNLOADING -> {
              val totalBytes = state.totalBytesToDownload()
              val progress = state.bytesDownloaded()
              // Update progress bar.
            }
            SplitInstallSessionStatus.INSTALLED -> {
            }
        }
    }
}

What I found is just one method like this Future future = box.loadLibrary(); to download a component.
I wonder am I missing something or the downloading status listener isn't supported?

cc @GaryQian

This capability is actually already in the engine/framework, but just isn't exposed as a public API yet.
You can access it by directly invoking the deferred component platform channel:
await SystemChannels.deferredComponent.invokeMethod<void>(
  'getDeferredComponentInstallState',
  <String, dynamic>{ 'loadingUnitId': -1, 'componentName': <yourComponentNameAsAString> },
);

This will return a Future<String> that corresponds to the state that the installation is in. See https://developer.android.com/reference/com/google/android/play/core/splitinstall/model/SplitInstallSessionStatus.html
We will be exposing more of the system as the feature matures, and the value returned by this may not remain stable as we look to expose information such as the data in https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html

I've filed this as a feature request in https://github.com/flutter/flutter/issues/83768 and will close this issue for now.

Thank @GaryQian, I hope this feature will be available soon, I will wait for it

You are welcome to use the channel call right now if you want, just be aware that it may break and a minor migration may have to be done some time in the future.

You are welcome to use the channel call right now if you want, just be aware that it may break and a minor migration may have to be done some time in the future.

Thanks.
So I can only get the string status like DOWNLOADED, INSTALLED...?
And atm there is no progress downloading like bytesDownloaded()  in SplitInstallSessionState? (I want to show a downloading progress percentage in UI)

Unfortunately, as of now, we don't have that capability yet. Just the states. A full implementation of this would definitely include all the info in SplitInstallSessionState.


DataInt/isCompact

Asking whether the last bit a binary integer body extends the bit pattern is another useful query. It's not complicated, but it's quite wordy so I think it deserves a name. It's currently simpler to go through DataInt/entropy(), which is obviously a roundabout way of doing it.

Hm. I suspect that the inverse might be more appropriate. The implementation and behavior of DataInt/isExtended is more similar to DataInt/isNormal. Both would perform an inequality check and return true when DataInt.Body/isEmpty.

This is the moment when you wish computers worked at the bit level so you could reasonably have a DataInt<U1> and call DataInt/isNormal instead of introducing a new concept.

DataInt/isExtended sounds disjoint with DataInt.isNormal. Sigh.

Perhaps some conveniences would be enough:
body.last?.msb != appendix


[BUG] should display errors when VM image upload fails

Describe the bug

It is possible to upload a VM image from the local Harvester UI via the web browser (not the proxy connection). It is not possible to upload a VM image through Rancher UI via a web browser. The request never reaches Harvester. The request is terminated by the rke2 nginx ingress with the error 413 "request too big". The user does not see ANY error. The progress bar stays at 0% forever. The only location to look for the error is the web browser developer tools on the network tab.
To Reproduce
Steps to reproduce the behavior:
1- From within Rancher that has Harvester 1.1.2 cluster imported, go to Virtualization management
2- Go to Harvester cluster
3- Try uploading an image file from your machine
Expected behavior

When the upload is not working UI should display an error. Ideally.
Environment
Rancher Cluster:
Rancher version: 2.7.6
Number of nodes: 3 masters, 2 workers
Node OS version: Ubuntu 20.04
Downstream Cluster:
Number of Downstream clusters:
Node OS:
RKE/RKE2/K3S version: rke2 1.25.13
Kubernetes version:
CNI:
Harvester 1.1.2
Additional context
Add any other context about the problem here.

Reopen for QA tests

Verified this bug has been fixed.
To notice this bug is very hard to reproduce and verify via dashboard UI, thus we leverage API calls to make upload failed.

Test Information

Environment: qemu/KVM 2 node
Harvester Version: v1.3.0-rc4
ui-source Option: Auto
Rancher Version: v2.8.1

Verify Steps

Install Harvester with any nodes
Import Harvester into Rancher
Clone test repo and install backend test required libs
Fill in VIP, password and file_path in follow code snippet then execute it

from pathlib import Path
from harvester_api import API
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
api = API.login('<VIP>', 'admin', '<password>', ssl_verify=False)

name = 'for_issue_5014'
namespace = 'default'
file = Path('<file_path>').expanduser()
data = api.images.create_data(name, "", "", "upload", namespace)
api.images.create("", namespace, json=data)
kwargs = dict(params=dict(action="upload", size=file.stat().st_size/2), files=dict(chuck=file.open('rb')))

api.images._create(api.images.UPLOAD_fmt.format(uid=name, ns=namespace), raw=True, **kwargs)

Login to Dashboard, there should have an image named for_issue_5014
The image should displays Failed state and error message
Access Harvester dashboard via Rancher
The image should displays as Harvester dashboard


钉钉同步报错

Error.
An error occurred while processing your request.
Request ID: 00-6bafd415217e91c5f9790359bdf1e9b7-e7b1ed464cb2d30c-00
Development Mode
Swapping to Development environment will display more detailed information about the error that occurred.
The Development environment shouldn't be enabled for deployed applications. It can result in displaying sensitive information from exceptions to end users. For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app.

Provider init complete... virtual-ldap listening at ldap://<IP_ADDRESS>:389 Reload entries from provider Reload entries from Dingtalk init department and user data server api(/departments) could not be request,please check server api

后端服务报错，ldap服务无法正常请求后端接口

Error. An error occurred while processing your request. Request ID: 00-6bafd415217e91c5f9790359bdf1e9b7-e7b1ed464cb2d30c-00
Development Mode Swapping to Development environment will display more detailed information about the error that occurred.
The Development environment shouldn't be enabled for deployed applications. It can result in displaying sensitive information from exceptions to end users. For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app.

使用开发环境，查看详细报错信息


version 3.4.0 cannot find 32-bit GOG installation on Win64

previous Vault versions used 32-bit registry virtualisation and were redirected to
HKLM\SOFTWARE\Wow6432Node\GOG.com
where native 32-bit applications reside
New version searches for 64-bit only
HKLM\SOFTWARE\GOG.com
and fails to find game installation

Looks like compilation target "Any CPU/x64" change registry reading behavior

I did have to fiddle with the build this time around.
As a workaround, you can set the game path manually following the instructions here, under "Q. I have this game as a stand-alone (i.e. not through Steam or GOG). How can I make TQVaultAE work?"

@afjback is the interactive folder selection defined here did popup ? https://github.com/EtienneLamoureux/TQVaultAE/pull/262#issuecomment-552194070

manual path selection popup works fine


Wildcard support on event type filter for subscriptions

Description
It would be useful with support for wildcards as part of the event type filter when creating subscriptions.
Today, if I want to subscribe to multiple events with one subscription, I'd need to omit the event type filter all together. This would make me subscribe to all events on the given resource.
However, not all events on that resource is relevant. Therefore it would be nice to be able to specify a wildcard to subscribe to only a subset of events for a given resource. In the context of the DGM project, this could for instance be specified by no.dgm.v1.funeral.* or no.dgm.v1.next-of-kin.*.
Additional Information
As far as I know there are 3 workarounds for this that would work, but they may be less friendly and less efficient than a simple event type wildcard:

The first one is to subscribe to all events and on client side filter the events you receive on event type.
The second one(basically same as first one), is to create a dedicated resource for the events that are relevant. Then subscribe without an event filter. This would require managing more resources than necessary.
Use a custom proprietary attribute on the cloud events to specify the sub-types. Then you would be able to have an event named for instance no.dgm.v1.funeral and have a custom attribute with a value like created. The subscription could then specify no.dgm.v1.funeral and on client side deserialize the data property based on the value of the custom attribute

Closing. After #551 , the workaround 1 mentioned above resolved the use-case. We're open for implementing this if/when there is demand. If another case materializes we will re-open or create a new issue.


[New term] Role-based access control (RBAC)

1. Please describe why this term needs to be added
What this term is about? (briefly)
Role-based access control (RBAC) is a security approach that authorizes and restricts system access to users based on their role(s) within an organization.
Why this term needs to be added? (briefly)
Enterprise environments often involve multiple teams working on cloud native projects and applications on the same cloud infrastructure. When it comes to managing security for such environments, this complex weave of permissions and roles can get ugly quickly as more teams and stakeholders get involved. RBCA ensures least privilege access is maintained without making its management unwieldy.
2. Checklist

[X] The suggested term fits the cloud native definition or is essential to understanding cloud native terms. (We hope to avoid adding general or broad terminologies)
[X] There is no existing issue yet. (shift+click to check existing issues)
[X] The term has not already been declined in the past. (shift+click to check)
[X] The term does not already exist in the glossary.
[X] I understand that maintainers will assess if the term should be part of the Glossary. (Please be patient)
[X] I want to work on this term. (If not checked, maintainers will assign another volunteer)

(Note)
Maintainers will assign a label after assessment procedure.
(from triage/awaiting to triage/accepted or triage/not accepted)
A contributor can be assigned to this issue after the issue get the triage/accepted label.
The assignee needs to check Style Guide.

Hi @juliafmorgado
Thank you for the suggestion. Maintainers agree with your suggestion ! :)
Please try to explain RBAC easily so that non-technical folks can understand it easily.
Please check following resources before you start. :)

Style Guide
How To Contribute

(CC @iamNoah1 @CathPag @jihoon-seo @JasonMorgan )

Sounds good!

Related PR: https://github.com/cncf/glossary/pull/1503


Add Rollup

Rollup supposedly removes unused code and provides a smaller shipped product for importing.
If we used rollup for /dist we could end up with 1/4th the final node module size.

I don't believe we can rollup gluegun powered CLIs


Update module path in warning message

Hi,
I love the warning. Excellent stuff. But the path isn't quite right it seems. As has been raised in other issues. I realise you're looking to try to strip 'dist' from the path if you can, but for the moment it might be worth having it there.
Thanks for the library! Really appreciate having it.
Cheers,
Michael

Thanks Michael!


install docs self-inspection broken

https://pyam-iamc.readthedocs.io/en/stable/install.html
does not show required or optional depedencies

The dependencies are working again as expected.


fix: 1. service-config not support key=value pair 2.sync_purge_removed_resources not working

这个 PR 实现什么功能/修复什么问题:
修正：

climc service-config不支持key=value
sync_purge_removed_resources失效

是否需要 backport 到之前的 release 分支:

release/2.12
release/2.13

/area region
/cc @zexi

Codecov Report

Merging #3950 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #3950   +/-   ##
======================================
  Coverage    6.96%   6.96%
======================================
  Files         503     503
  Lines       84801   84801
======================================
  Hits         5905    5905
  Misses      78395   78395
  Partials      501     501

Flag
Coverage Δ

#aFlag
6.96% <ø> (ø)
:arrow_up:

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 ac58a7d...052ccd2. Read the comment docs.


Stripe CLI

Project description
The Stripe CLI helps you build, test, and manage your Stripe integration right from the terminal.
Metadata

homepage URL: https://stripe.com/docs/stripe-cli
source URL: https://github.com/stripe/stripe-cli/
license: Apache
platforms: unix, linux, darwin

I already made this, and it seemed to be good enough for my purposes:
  stripeCli =
    let
      src = builtins.fetchurl {
        url = "https://github.com/stripe/stripe-cli/releases/download/v1.5.3/stripe_1.5.3_linux_x86_64.tar.gz";
        sha256 = "sha256:0hbiv043h00n4xhzs1hbvgn7z1v91mb8djbd51qmbm12ab9qdr6c";
      };
    in
      pkgs.stdenv.mkDerivation {
        name = "stripe-cli";
        buildCommand = ''
          mkdir -p $out/bin
          tar xvzf ${src} --directory $out/bin
        '';
      };

@RaghavSood Danm, that was amazing. Thank you!


Fix local test failures in Safari

Fixes #1633.

Coverage remained the same at 86.12% when pulling 4943645e39ca2abe6470c0c897ff85a3b5f37d0a on safari-driver-fixes into 6c054a71dc9b9ddd99942e62d167888954a80ec8 on master.


predicate return object for truthy doesn't work on some operator

RxJS version:
latest
Code to reproduce:
interface Bar {
  bar?: string;
}
class Foo implements Bar {
  constructor(public bar: string = 'name') {}
}

let foo2: Bar = new Foo();

Observable.of(foo2)
    .filter(foo => foo) //compiler does not accept object `foo` as truthy
    .subscribe(foo => console.log(foo.bar));

Observable.of(foo2)
    .filter(foo => !foo) //this one works, as !foo considered as falsy
    .subscribe(foo => console.log(foo.bar));

Additional information:
So far I tried on few changes around, this seems NOT REGRESSION caused by recent changes.

/cc @david-driscoll as well.

@kwonoj Good catch! I found a fix that addresses this case for filter while preserving the previous cases. Now I'm going to take a look at the other recently-modified operator typings, as well.

@kwonoj I guess it was late and I missed the NOT REGRESSION bit at the end, so I'm glad I didn't seem to break anything yet with the new type guard additions :-) (maybe the ALL CAPS wasn't big enough for my aging eyes lol)
Anyway, the 'fix' I mentioned would really be adding a new behavior, as you mentioned. It changes the filter predicate to return any instead of boolean. I'm a bit worried that we lose the strong typing hints from the compiler, which is probably why typescript definitions originally didn't allow this case for Array.filter.
However, the typescript team seems to have eased off of this a bit and allowed it in TS 2.0 as of this commit in April. If this is an important case, I think it would mainly require swapping boolean predicate return values for any like the Array.filter changes.

I don't think there are lot of actionable things at this moment other than loosening type to any. For a workaround, we could use truthy check like xxxx.filter(x=>!!x) (way I use it for now).


Improve Rummy AI opponent decision making

Currently, the AI opponent checks to see if picking up the discard will result in a lower score or not, if it does it will pick up the discard. A lower score isn't the only determining factor of whether or not to pick up a discard; a player could also pick up the discard if it increases their chances of making melds later on. The AI could see if picking the card up will improve its odds of making melds.
The odds could be determined by past discards and the cards other players pick up.
How the AI chooses a discard is currently not optimal. At the moment the AI will throw away whichever card gives it the lowest scoring hand. It will throw away cards that form partial melds. The AI should check whether the card it's throwing away belongs to a partial meld and throw away a card that is less useful.

I think hardcoding the rules would take a lot of time and it would get very very complicated. What i was thinking to use some machine learning model. Do you want to go this route?

@chandrakanth527  Absolutely, it was one of the motivations for starting the project in the first place.
The last set of changes I made were an attempt to make it easier to extract data from games.
If you'd like to pick up the baton and try to move it forward that would be fantastic.
I've lacked the knowledge and the time to gain it. But will offer any support I can in helping you get set up and will merge in anything you're able to get working.

actually a lot of functions you wrote are really valuable. so thats a good start

@chandrakanth527 That's good to hear, so is this something you'd like to work on?
There is also: https://github.com/sarcoma/Python-Rummy/issues/16 which has some rough ideas for data to extract.


Same color for different function references

In a switch case "function" "switch" , "strtolower" "case" "return" break" they are all same color.
I am not quite sure how they should be colored actually but I think at least they must have minor color differences.

Ah yep. Lemme see if I can colour the native functions. If they were orange, the problem would be solved.

Pull down the latest version and let me know how it looks? :)

Unfortunately it didn't work for me.
To make sure I have the latest, I deleted and reinstalled.

Really? You can see the changeset here.
https://github.com/daylerees/material-peacock/commit/b4b2e8bbdea1e6a38f59f7a83dda5db5902bb363

I think in addition to PHP_FUNCTION_CALL you must change "Predefined Symbols"..
PHP_FUNCTION_CALL changes color of foo(); inside a function.

Ah I'll take a look soon, just stepped away from my editor. :) Thanks for reporting mate!

#6 Fixes but may need a little bit more work


Possible to program entire control register in one go?

Wondering if there is something I am missing with regards to programming the control register. This implementation seems to separate each control register function which may be useful for readability, but requires multiple exchanges to be made between the AD5933 and uController. Wouldn't it be more efficient to set everything up first, then write a single time to the device control registers? I.e.:
 bool AD5933::setControlRegisters(byte reg1, byte reg2){  	if(!sendByte(CTRL_REG1,reg1))  		return false;  	else  		return sendByte(CTRL_REG2,reg2);  }
Where you first ensure reg1 and reg2 are properly set?

Follow-up:
After looking more closely at your code, I see that you have a function for programming the mode - setControlMode(). However, I am confused on why you wipe the top 4 bits, since according to the datasheet for the AD5933, these bits control the mode, and bits D8 through D11 control excitation voltage and PGA gain.

Yes this decision was originally made for readability and flexibility. i.e. we may not want to explicitly write all of the fields of the control register at once (i.e. allowing us to leave some as defaults) or we may wish to change a single function independently of having to know the state of the rest (i.e. we may want to change the clock source without having to know how to set everything else).
There's certainly nothing technical stopping a single write, it simply wasn't needed in the original implementation and so was never written, and you are welcome to add it.
Note that one overarching goal of the library was to prevent the person from using it to have to understand the bit manipulation required for the registers so preferably an implementation would accept arguments for each function (as the existing functions work) and then compile the byte to be sent itself rather than accepting the direct value.

Gotcha, makes sense. Thanks for the speedy reply/explanation.


Add mpl-core crate

Would be nice to have support for the mpl-core crate and types for rapid prototyping!

+1

+1

I need mpl-core create and types for NFT creation


free the PG(auto_prepend_file) only when tideways.auto_prepend_library is set

when user has it's own auto_prepend_file and sets tideways.auto_prepend_library to 0
the PG(auto_prepend_file) will be freed and set to NULL at request shutdown, it will break the user's configuration

@C0reFast good catch, thanks :-)


fix: ensure we have a valid branch for gitops variables

fix: polish the log output

/lgtm

@jstrachan: you cannot LGTM your own PR.

In response to this:

/lgtm

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/64330

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/64469

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75121

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75427

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/98188

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.


Nuvola flatpack not found on Ubuntu 18.04.2

When I try to install nuvola via Flatpack I get this error:
$ flatpak install nuvola eu.tiliado.NuvolaAppDeezer
error: Remote "nuvola" not found

What can I do?

I don't followed the steps explained in the official web and just going to the the console up and install the flatpack. My bad.


fix nwchem

Description
Sorry, I approved faulty code. Actually, all NWChem is broken with "NameError: name 'cc' is not defined". This fixes.
Changelog description

Fix typo breaking NWChem

Status

[ ] Code base linted
[x] Ready to go

Yes. I should learn how to generate qcer entries.


, < char in code block are escaped

Describe the bug
A clear and concise description of what the bug is.
> , < in codeblock is not displayed on Markdown Veiwer(editable description etc.)
To Reproduce
Steps to reproduce the behavior:
Add below text to any Markdown description.

example

this area,  >, < are escaped.
Viewer changes escaped char to original.

\```
in code block, >, < are also escaped.
Viewer DOESN'T CHANGE escaped char
LOOK THIS
>=, <=, >, <
\```

When editting, I expect to see right side text box.

but this is result!

Expected behavior
A clear and concise description of what you expected to happen.

I wish to see like this.
>, < should be kept in code block.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.
Thank you!

Hey @GyuhoonK with the fresh Documentation Changes we've added, this should be resolved. Check out https://demo.datahubproject.io/ where I was able to validate that this is no longer an issue! If you still see it, please feel free to reopen


Fix filtering /links & update to OPTIMADE v1.1.0

Fixes #334.
Update to support v1.1.0.
The main difference for the client is the species.mass value type.

@CasperWA Thanks for the quick fix! 👍


extract stake pool registrations

Issue Number

#1761
Overview

a57cf755140ea247a9692ea229894a26acb4b505
:round_pushpin: extend pool database with two new tables to store metadata
one of them will be used to persist a queue of metadata to fetch, while the other
is a less volatile storage where metadata gets dumped once fetched.
There's in principle no need for caching or timestamps here since
metadata can't be updated (hash is stored on-chain as part of the
registration) which simplifies a bit the problem.

e776d1c72089ef60bd7befae7f3104e33b43a9ed
:round_pushpin: extract pool registration certificate from blocks

29166e4ba7c4b4f4a6150c6abef008157005be29
:round_pushpin: add logic for monitoring shelley stake pools registration certificates
Still rudimentary, and doesn't keep track of metadata information yet but it's coming.

1331015b527254d0b1a8d23029f01ec14c45ae71
:round_pushpin: write stake pool monitoring in start-up code, with proper loggers

7e626619be7244f04f587653b1f5013acdb5d37e
:round_pushpin: destroy node's connection when they're no longer needed

60651346585eaf503304308ad9970e73c294a804
:round_pushpin: do not force rollback when the list of checkpoints is empty
An empty list basically assumes that there's no checkpoint on the driver, so nothing to rollback.

f49a7bf40e0c3d9a11048be419cb9106faf66cd1
:round_pushpin: extract and store pool metadata references from the chain

4ef1b8097af05063f21669314ccf6969f5dbf0d0
:round_pushpin: add basic property tests for checking new pool db functions.

6ef598028f0dbeb3230eb66eea6a9b0a7aff64cf
:round_pushpin: store block production in the pool monitoring worker

e8e1d8302310973173f9e1b7af5e9192dc16f094
:round_pushpin: change database fn for fetching metadata ref to return them one-by-one
This is how the worker uses it in the end, and it makes the signature looks less awkward.

Comments

Kinda hard to fully test without wiring it up into the stake pool listing, but logs are quite positive:
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.17 UTC] Monitoring stake pools. Currently at genesis
[cardano-wallet.network:Info:1071] [2020-06-17 10:22:36.17 UTC] Looking for an intersection with the node's local chain with:
[cardano-wallet.network:Info:1071] [2020-06-17 10:22:36.18 UTC] Intersection found: 01010101
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.18 UTC] Applying blocks [0.0 ... 0.0]
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.19 UTC] Applying blocks [0.12 ... 2.0]
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.19 UTC] Discovered stake pool registration: Registration of 5a7b67c7 owned by [ed25519_pk1h3cqm8h6glw56hqa5mgy0gl97jxcawzpphxy5hwtchq8hra6zcwq70fndy]
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.19 UTC] Discovered stake pool registration: Registration of c7258ccc owned by [ed25519_pk1mnjxa09v9hmn48awwcgyrfmnnq4dvs7fsege3glcg6yn0vckn0xsrm4zqy]
[cardano-wallet.pools-engine:Info:1071] [2020-06-17 10:22:36.19 UTC] Discovered stake pool registration: Registration of 775af3b2 owned by [ed25519_pk1qud4ay0zapd0r43c88lc9av8fnesx2hu0r36dsf46lprdp9p3zksx7q880]

bors try

bors try

Partly related question:
Why does a pool both have owner :: PoolOwner and owners :: [PoolOwner]?
-- | Pool ownership data from the stake pool registration certificate.
data PoolRegistrationCertificate = PoolRegistrationCertificate
    { poolId :: !PoolId
    , poolOwners :: ![PoolOwner]
    , poolMargin :: Percentage
    , poolCost :: Quantity "lovelace" Word64
    } deriving (Generic, Show, Eq, Ord)

data StakePoolMetadata = StakePoolMetadata
    { owner :: PoolOwner
    -- ^ Bech32-encoded ed25519 public key.
    , ticker :: StakePoolTicker
    -- ^ Very short human-readable ID for the stake pool.
    , name :: Text
    -- ^ Name of the stake pool.
    , description :: Maybe Text
    -- ^ Short description of the stake pool.
    , homepage :: Text
    -- ^ Absolute URL for the stake pool's homepage link.
    , pledgeAddress :: Text
    -- ^ Bech32-encoded address.
    } deriving (Eq, Show, Generic)

Do we use the wrong terminology for one of them?

bors try

bors r+

bors r+

bors r+

bors r+

Please.


eureqa: init at 1_22_0

Tested and working, except for sound effects.

Closing this as I have no plans to work on it.


Enable the wiki

Please, we can post scripts to help others out :)

You can always send me messages (in markdown format) and I will put them to the wiki.

Ok, but when we click the wiki, we get redirected back to the repo.

Because there is no content, yet


Allow degenerate triangles in polygon triangulation when necessary.

Fixes #17102.
This modifies the ear-clipping implementation so that it first tries to avoid completely flat triangles, but falls back to allowing them as a last resort when triangulation would otherwise fail.
I explained this with a few more details on the issue.
This adds a bit of unfortunate branchiness that hurts code aesthetics more than actual performance, because these branches are very predictable and ear clipping is already pretty inefficient anyway.
If we don't care about degenerate triangles at all, we can replace this change by simply turning the first check in Triangulate::snip into:
	if (-CMP_EPSILON > (((Bx - Ax) * (Cy - Ay)) - ((By - Ay) * (Cx - Ax)))) return false;

Using a negative epsilon instead of zero conservatively avoids potential floating point precision issues.

Nice to see this. I looked at https://github.com/godotengine/godot/issues/16423 recently, and found out that the monotone triangulator always crashes; I then used Triangulate_EC instead (see file attached to this comment), which works, but is considerably slower than the current ear clipping algorithm fixed in this PR (6.3 ms per call vs. 2.1 ms per call with the current clipping). So in short, it's nice to see the fast current ear clipping algorithm get fixed.
@nical If I understand correctly this fixes duplicate points as well as collinear points as in ((0, 0), (10, 0), (20, 0), (50, 70))?
triangulate.cpp.zip

Too bad that the monotone implementation isn't very good. It's a tough algorithm to get right but I think it's the best compromise between speed and triangulation quality when implemented correctly.

@nical If I understand correctly this fixes duplicate points as well as collinear points as in ((0, 0), (10, 0), (20, 0), (50, 70))?

Yes, I did a quick test with this shape and it works. I also tried with duplicate points, for example: ((0, 0), (10, 0), (10, 0), (10, 0), (10, 0), (20, 0), (50, 70)), and it manages to finish triangulating (you get some degenerate triangles with several vertices at the same position but it does manage to triangulate the shape).

Tested against the testcase in #17102 as well as #16395 I couldn't find any regressions with playing about with other polygon shapes.


WebServer system services

We need to be able to extend WebServer to achieve:

Add objects to application wide Context
Intercept every request to the WebServer

Currently we have a problem achieving the second point, as every handle may finish the processing (e.g. calls response.send() and not req.next()).
Proposed solution:

Create a SystemService interface that can be registered with server configuration
Add support for loading these through Java service loader (default is not to load the services)
Invoke the SystemServices before processing routing on server

This is marked as P1, as other features depend on such an approach (AccessLog support, Tracing refactoring)

Are these services only relevant to requests and always processed before routing? Should there be something equivalent for response pipelines?

After extended analysis, we have decided to postpone this for release 2.0, as it is quite a heavy change in the way webserver is configured.
The main issues:

we have to consider multiple listeners being configured (e.g. localhost:8080 and <IP_ADDRESS>:7777) with different routes defined (and different security etc.).
there are multiple components that need to work as "system services":
Tracing
Context support (io.helidon.common.Context)
Metrics registry (should be a single registry per app, endpoint set up in web server)
health checks (should be a single "registry" per app, endpoint set up in web server)
Security
Tracer and tracing configuration
Vendor metrics (for WebServer, gRPC server and in the future database client, messaging)

We need to decide on which "level" to configure these components, with possibilities:

Helidon microservice (e.g. static for this virtual machine)
Helidon Web Server

Web Server Configuration
Web Server Listener
Web Server Routing

Helidon gRPC Server
other Helidon top-level components (messaging, database client)

We did not find a reason to change behavior of web server and we most likely will not. We may re-open this if this requirement resurfaces.


Swap out Vision encoder?

Is it possible to swap out the vision encoder to a custom vision endoer (custom DINOv2 model) for these models and still run the full training script?

You can try to modify the code and ckpt, but I would advise against it. We spent a lot of effort to align a vision encoder that supports dynamic resolution with the LLM, and switching it to another VE may cause a huge performance decline.

The problem I'm having is that I need to fine tune the full model (including the VE) since I'm using it for a specific medical dataset paried with reports, but in my experiments so far, the model ignores the image completely during inference. Do you have any thoughts on how to fine tune the full model to this new domain in a good way? (currently using a dataset of 10k paired image-reports)

The problem I'm having is that I need to fine tune the full model (including the VE) since I'm using it for a specific medical dataset paried with reports, but in my experiments so far, the model ignores the image completely during inference (trained full model inc. VE for 3 epochs). Do you have any thoughts on how to fine tune the full model to this new domain in a good way? (currently using a dataset of 10k paired image-reports)

@simonJJJ Any suggestions?

I am struggling here too. I have 30,000 medieval manuscript pages that I am trying to fine tune on.

Bump.
Or is there another way to do this, like weighing the loss on the vision encoder to be larger?


add debounce to filters

WHY
fixes: https://github.com/Laravel-Backpack/community-forum/issues/131
BEFORE - What was wrong? What was happening before this PR?
It was annoying that anytime you click on a simple/checkbox filter, or raised/lowered the number in the range filter, a request was made to the server. That turned the experience a little bit cumbersome to use, plus very resource intensive.
AFTER - What is happening after this PR?
filters use now a "debounce function", so less calls are made to the search endpoint. there is a companion PRO PR: https://github.com/Laravel-Backpack/PRO/pull/280
HOW
How did you achieve that, in technical terms?
Used a debounce function, that prevents the same function to be called more than once in the given time period. That is now configurable setting debounce on the filter.
Is it a breaking change?
I think no.

Here's the worst scenario I imagine:

someone wanted to change how filters look;
they updated their filter_navbar.blade.php and change some classes, styles etc;
they created a custom filter;
we push this update, which includes some functions in filters_navbar.blade.php and changes in all filter files to add a last parameter when calling updateDatatablesOnFilterChange()
they do a composer update;

What happens for them?

they get the changes in SOME filters;
they do NOT get the changes in filters_navbar.blade.php;
their custom filters will call updateDatatablesOnFilterChange() with one fewer parameter;

Since the last parameter of that function (debounce) has a default... I don't see any problem with merging this.
Agree with my logic?

Given your logic, if they had overriden the filters_navbar.blade.php (so they don't get the update), but they update PRO, their filters will call the updateDatatablesOnFilterChange() with one additional parameter. It will be ignore by the function if their function accept less parameters.
In case they update CRUD (and get the updated filters_navbar, but they don't update PRO, in that  case it will happen what you said and the function will be called with one less parameter. But since the missing parameter has a default, that value will be used.
You can check this fiddle: https://jsfiddle.net/ozupgwt9/
Let me know if I am missing something, or is it still ok for you. 👍


Include completion not working in 100% of the cases

There are two include path completion problems still not resolved.

C files get C++ header candidates, which obviousl won't compile.
Whitespace.

C++ headers
Steps to reproduce

Create a .cquery file with only -xc.
In a file foo.c insert #include <<cursor>> and attempt completion.
What gets suggested is a lot of STL headers.

Whitespace
Whitespace, as with any other preprocessor allows whitespace before and after #. So all of the following are allowed:
#include<stdio.h>  // No white space at all.
#include <stdio.h> // cquery
#include                <stdio.h>
#                include<stdio.h>
                #include<stdio.h>
#     include           <stdio.h>
     #include           <stdio.h>
    #            include<stdio.h>
    #    include        <stdio.h>

What cquery always suggests is the one with the comment, regardless of what the whitespace the user has entered.
By disregarding whitespace and sticking to one specific style, cquery does one of the following:

In case there is no white space, with ycmd at least, the completions insert the single space character in front of <.
In case the user was already using the cquery-expected style, it works as expected.
In all other cases cquery makes it quite complicated for clients to figure out what to do. In case of ycmd, there are simply no completions.

Possibles solutions

Preserve whitespace in candidates. I'm assuming this would take less effort.
Match the line agains ^\s*#\s*include\s*[<"] regex and make candidates only deal what's inside double quotes or angle brackets.

Another reason to not try to rewrite the whole line and instead care on'y about the part inside <> or "" is minimizing the number of bytes sent from cquery to clients.
In case of only a few candidates, it may not matter a lot, but with an empty query and a lot of -I flags, the number of bytes saved becomes significant compared to the total number of bytes sent.

I see, I will try to fix these things.

The second problem should be resolved in #405. For the first problem, language guessing(clang_getCursorLanguage, include dependency) seems to be not reliable🤔. Close for now.


I have video list and I want to start play by index of lastVisiblePosition.?

What kind of issue is this?

[x] Question. If so, declare clearly your target and your current implementation with code formatted in markdown.

@aderinto05 What if you set the LinearLayoutManager to 'reverseLayout' to true?
Another options is, to use PlayerSelector.DEFAULT_REVERSE.


use normalized trackID in place of mediaUUID

This is needed to support clients like the Grandstream GXV3500.
Fixes https://github.com/bluenviron/gortsplib/issues/190

Codecov Report

Merging #226 (5452b14) into main (2fbba14) will decrease coverage by 0.02%.
The diff coverage is 86.11%.

:exclamation: Current head 5452b14 differs from pull request most recent head 44a32a3. Consider uploading reports for the commit 44a32a3 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #226      +/-   ##
==========================================
- Coverage   85.68%   85.66%   -0.02%
==========================================
  Files          81       81
  Lines        8711     8720       +9
==========================================
+ Hits         7464     7470       +6
  Misses        968      968
- Partials      279      282       +3

Impacted Files
Coverage Δ

pkg/media/medias.go
91.83% <ø> (+6.93%)
:arrow_up:

server_session.go
76.75% <75.00%> (-0.42%)
:arrow_down:

client.go
73.88% <100.00%> (+0.09%)
:arrow_up:

server_conn.go
90.79% <100.00%> (+0.06%)
:arrow_up:

server_stream.go
83.87% <100.00%> (ø)

server_stream_media.go
82.85% <100.00%> (ø)

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

added in MediaMTX v0.22.1


[WIP][tensor_forest] decoule split candidate initialization and stats update

addresses https://github.com/tensorflow/tensorflow/issues/24040

no need for this..


Fix unchecked error values

Also use "require" instead of "assert" when checking an error from a
function that allocates a new object in agent_test.go.

Current coverage is 55.36% (diff: 0.00%)

Merging #1636 into master will increase coverage by 0.16%

@@             master      #1636   diff @@
==========================================
  Files            91         91
  Lines         15021      15023     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           8291       8317    +26
+ Misses         5639       5614    -25
- Partials       1091       1092     +1

Powered by Codecov. Last update 7755f6e...d8e640f

LGTM