Worrying discrepancy between PIL Resize and Imgaug Resize

I am resizing a 1920x1080 image to be 1333x750 pixels using bilinear interpolation. On this simple task, PIL Resize and Imgaug Resize (master) shows very worrying differences.
import numpy as np
from PIL import Image
import imgaug.augmenters as iaa

img_fpath = "img.png"
with Image.open(img_fpath) as f:
    in_image = f.convert('RGB')
img_np = np.asarray(in_image)

pil_image = Image.fromarray(img_np)
pil_image = pil_image.resize((1333, 750), Image.BILINEAR)
image = np.asarray(pil_image)

aug = iaa.Resize({"height": 750, "width": 1333}, interpolation="linear")
img_augmented = aug(image=img_np)

print("img, ", np.mean(img_np))
print("pil, ", np.mean(image))
print("iaa, ",np.mean(img_augmented))

The result I get back are
img,  96.09632989326131
pil,  96.1052009669084
iaa,  95.98408402100524
where the Pil and ImgAug resizing are very clearly different but the PIL one seems to more accurately maintain the average color values of the original.
Its not clear to me why they should have different performance when they both use bilinear interpolation on the same data (I could actually see a difference in performance on a downstream detection task on a model originally trained on the pil resizing). The image used here is the test image "img.png" from https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch/tree/master/test

imgaug uses cv2.resize(), so this is really just the difference between PIL and cv2.
I could imagine minor deviations if one of them casts float values to int and the other rounds them before casting.
Though I just tried a small test script on a few example images and do not see one of the methods performing clearly more accurate when the other one, unless you use area interpolation. Small deviations on the order of 0.1 are imho expected. As information is removed, the average pixel values will never match perfectly. If such small deviations are already enough to significantly affect a model, I would worry more about that model's robustness than about the underlying resize method. Though there is of course the possibility that one of the methods introduces recurring patterns in the image that are imperceptible to the human eye (similar to JPEG compression artifacts) while the other method does not. Detecting these would need much more than a simple average though.
import imageio
import numpy as np
import imgaug as ia
import PIL.Image

def main():
    image_urls = [
        "https://upload.wikimedia.org/wikipedia/commons/8/8c/South-western_black_rhinoceros_%28Diceros_bicornis_occidentalis%29_female.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Squirrel_posing.jpg/919px-Squirrel_posing.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/2/2e/MC_Drei-Finger-Faultier.jpg",
        "https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Church_Heart_of_the_Andes.jpg/1280px-Church_Heart_of_the_Andes.jpg"
    ]
    images = [imageio.imread(url) for url in image_urls]

    for inter in ["linear", "cubic", "area"]:
        inter_pil = {
            "linear": PIL.Image.BILINEAR,
            "cubic": PIL.Image.BICUBIC,
            "area": PIL.Image.BOX
        }[inter]
        for dt in ["uint8"]:
            print("-------------")
            print(f"{inter} {dt}")
            print("-------------")
            for image in images:
                image = image.astype(np.dtype(dt))

                height, width = int(image.shape[0] * 0.5), int(image.shape[1] * 0.5)
                image_ia = ia.imresize_single_image(
                    image, (height, width), interpolation=inter
                )
                image_pil = np.asarray(
                    PIL.Image.fromarray(image).resize(
                        (width, height), resample=inter_pil
                    )
                )

                assert image_ia.shape == image_pil.shape

                avgs = [np.average(im) for im in [image, image_ia, image_pil]]
                diffs = [avgs[0] - avgs[1], avgs[0] - avgs[2]]
                print(
                    "averages orig[%7.3f] pil[%7.3f] ia[%7.3f] "
                    "| diffs pil[%7.3f] ia[%7.3f]" % (
                        *avgs,
                        *diffs
                    )
                )

if __name__ == "__main__":
    main()

Output:
-------------
linear uint8
-------------
averages orig[110.143] pil[110.269] ia[110.269] | diffs pil[ -0.126] ia[ -0.127]
averages orig[ 78.866] pil[ 78.808] ia[ 78.931] | diffs pil[  0.059] ia[ -0.065]
averages orig[110.512] pil[110.637] ia[110.636] | diffs pil[ -0.125] ia[ -0.124]
averages orig[ 98.146] pil[ 98.011] ia[ 98.208] | diffs pil[  0.134] ia[ -0.062]
-------------
cubic uint8
-------------
averages orig[110.143] pil[110.142] ia[110.147] | diffs pil[  0.000] ia[ -0.005]
averages orig[ 78.866] pil[ 78.889] ia[ 78.874] | diffs pil[ -0.022] ia[ -0.008]
averages orig[110.512] pil[110.511] ia[110.518] | diffs pil[  0.001] ia[ -0.006]
averages orig[ 98.146] pil[ 98.196] ia[ 98.155] | diffs pil[ -0.051] ia[ -0.010]
-------------
area uint8
-------------
averages orig[110.143] pil[110.269] ia[110.642] | diffs pil[ -0.126] ia[ -0.499]
averages orig[ 78.866] pil[ 78.866] ia[ 79.361] | diffs pil[  0.000] ia[ -0.495]
averages orig[110.512] pil[110.637] ia[110.994] | diffs pil[ -0.125] ia[ -0.482]
averages orig[ 98.146] pil[ 98.146] ia[ 98.690] | diffs pil[ -0.000] ia[ -0.544]

Good to know. Thanks!


refactor: moving message sendinng handler to new class

BREAKING CHANGE: Moving message handler from NetworkPlayer to MessageBroker.

new version of PR https://github.com/MirageNet/Mirage/pull/818


How can I make an animation start playing only after another one has finished?

and also so that the animation starts playing when the element comes into the user’s visibility area

Read the documentation and use your brain


Renderer tests are not able to build using Foundation on Linux

Btw, in my tootsdk fork I moved the renderer to the swiftui toot demo (I guess it needs to be in the vapor demo too, but I'm just freely breaking things), on the theory that tootsdk should be renderer independent, and I'm actually using the HTML2Markdown package from @divadretlaw (actually a fork with custom rendering) which you might consider using instead since you're also using his EmojiText package, and it's more exhaustive, e.g. paragraph breaks come out better.


Add test base for aggregates title

Describe your changes
Adds test verifying if title is correct upon hover over the map outlined territories.
Checklist before requesting a review

[ ] I have performed a self-review of my code
[ ] I have added tests wherever relevant
[ ] I have made sure that all automated checks pass before requesting a review

PR moved to:
https://github.com/rodekruis/IBF-system/pulls/Piotrk39


[OpenMP][OMPT] Add device tracing tests for synchronous data transfers

Add three different scenarios to expand testing coverage using EnVars:

LIBOMPTARGET_AMDGPU_MAX_ASYNC_COPY_BYTES

Zero value: Basically forcing sync regions by size
Non-zero value: Mixed transfers (default)

OMPX_FORCE_SYNC_REGIONS

Enabled: Forcing sync regions by flag

Thanks JP!
Decided to go through the tests once again and verify the counts of certain occurrences.
(Only found a typo and then rebased.)


lang_kr.txt -> lang_ko.txt

Finally i know how to work automatically determine system.
local file name is your TMPE language!
in game korean language file name is ko.locale
so you change update this.
lang_kr.txt->lang-ko.txt
I'm so sorry. i not know this system. so i talk every time rush hour language support system.
Have a good day!

I solved it with a different approach. Thank you!


Error 403 - Example Code

Hi, i get this error at run the example code.
"Failed to load resource: the server "https://ferry.us-west-2.aws.cloud.dgraph.io/graphql" responded with a status of 403 ()"

duplicate of #68


fsync: invalid argument

After I put about sixty thousand records  to the leveldb,then leveldb throw a exception:fsync: invalid argument.
Anyone knows how to fix this problem?

What is your OS?

My host machine is  win7 system,but I use vagrant install a centos in my virtual machine. The host machine of a disk is mapped to a virtual machine.my go program is located in this dir.my go program is running in centos.

This happens if you run in a docker container through boot2docker with a mounted volume which runs on VirtualBox. The volume is shared with the host os and I guess low level filesystem calls doesn't work here.
Would be awesome if it could be worked around in these cases

@mintzhao @balboah  Can confirm. Having this problem as well.
Host OS: Windows 10 Home
Virtualbox: 5.2.6 r120293
Minikube: v0.25.0
Using a Hyperledger Burrow container which has LevelDB as a dependency.
Please reopen.


Create platform-ephemeral-keys

The new project should be based on the identity package here, but it will be much simpler. AFAICT it will consist solely in the get token endpoint. No login/logout pages, no POST /login, no POST /logoug

Code migration done to this repo


should report its own --version

...so we can tell which version of the tool we are running.

see PR #26


What license is this under

I don't see a LICENSE.txt file. I'd assume it was maybe MIT, but would like to confirm.

Yep MIT i'll add the license file today
Ada
On Thu, 25 Feb 2021, 01:15 Mike Gifford<EMAIL_ADDRESS>wrote:

I don't see a LICENSE.txt file. I'd assume it was maybe MIT, but would
like to confirm.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/AdaRoseCannon/contrast-widget/issues/23, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABAHSMS6JWV57TEADWFYRQTTAWQDLANCNFSM4YFSAVLQ
.


Add abbreviated days of the week

This PR updates weekDays to also accept shortened versions of the days of the week.
The logic is slightly complicated, as I needed to sort the list of days by the longest length in order to get megaparsec to match the longest day, and rather than doing this my hand I've added some code in so that it always happens.
I also added yest as an alternative for yesterday.

Thanks, works really well!
I don't know why travis is so flaky, merging and pushing the commit to master completed just fine. Maybe pull-requests get lower memory limits than the master branch...


AMBARI-24112. Requests failed after Ambari upgrade with exception while executing custom service command.

What changes were proposed in this pull request?
Locks for initializing/updating STOMP cache were added.
How was this patch tested?
Manual testing.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2747/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2749/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2753/
Test FAILed.
Test FAILured.

retest this please

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/2754/
Test PASSed.


zoid is not defined when opening the Redeem widget

There is no consequence for the user, but this error appears in the dApp log when the Buyer clicks on Redeem or Cancel on an Exchange

fixed in the latest release of widgets


No apps shown in target audience step in publish-news message flow

In the message flow to send out a news item, no apps are being shown for this customer. service.data.broadcast_target_audience must have been an empty array. The customer has be-geraardsbergen as default app and rogerthat as second app.

https://github.com/rogerthat-platform/rogerthat-backend/pull/257


Kill route helpers.

npm run test:e2e -s passes locally for me on node v5.9. Maybe update the version used for circleCI?

I don't think the version has anything to do with it. I think it may be a race condition - the test runs before the client gets updated. Any ideas how we could rule that possibility out?

@ericelliott Something very strange is happening here. All e2e tests pass fine locally. CircleCI now produces the output down below after changing to newer versions of selenium and nightwatch (via a forked nightwatch-autorun). @nkbt I believe this is the same issue as on the PRs for the nightwatch-autorun repo
Strange thing is this output persists in builds done after I changed the nightwatch-autorun dependency back to the original repo.
The builds are here: https://circleci.com/gh/LorbusChris/react-easy-universal/tree/master
Build
No 16 puts in a slightly different e2e test that passes locally for me
No 17 changes to the fork, updating selenium and nightwatch
No 18 changes the code back, but the selenium problem persists.
No 19 verifies this
No 20 shows the problem even persists when retiring build 16. meaning two different results for the same codebase in builds 16 and 20!
I think this should be handled by the CircleCI team. Anyone know how to contact them?
$ REPORT_DIR=${CIRCLE_TEST_REPORTS} LOG_DIR=${CIRCLE_ARTIFACTS} npm run test:e2e -s

Running with config:
{ logDir: '/tmp/circle-artifacts.jYtNbhf',
  reportDir: '/tmp/circle-junit.hPv0hxx',
  nightwatchConfig: '/home/ubuntu/react-easy-universal/nightwatch.json',
  webpackConfig: '/home/ubuntu/react-easy-universal/webpack.config.js',
  port: '3000',
  server: [Object] }

[Smoketest] Test Suite
======================

Running:  Smoketest

Error retrieving a new session from the selenium server
{ sessionId: null,
  status: 13,
  state: 'unhandled error',
  value:
   { supportUrl: null,
     suppressed: [ [length]: 0 ],
     hCode: 604834707,
     class: 'org.openqa.selenium.WebDriverException',
     localizedMessage: 'unknown error: Chrome version must be >= 46.0.2490.0\n  (Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 3.13.0-79-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 890 milliseconds\nBuild info: version: \'2.50.1\', revision: \'d7fc91b\', time: \'2016-01-29 19:08:26\'\nSystem info: host: \'box917\', ip: \'<IP_ADDRESS>\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.13.0-79-generic\', java.version: \'1.7.0_76\'\nDriver info: org.openqa.selenium.chrome.ChromeDriver',
     message: 'unknown error: Chrome version must be >= 46.0.2490.0\n  (Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 3.13.0-79-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 890 milliseconds\nBuild info: version: \'2.50.1\', revision: \'d7fc91b\', time: \'2016-01-29 19:08:26\'\nSystem info: host: \'box917\', ip: \'<IP_ADDRESS>\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.13.0-79-generic\', java.version: \'1.7.0_76\'\nDriver info: org.openqa.selenium.chrome.ChromeDriver',
     buildInformation:
      { releaseLabel: '2.50.1',
        buildTime: '2016-01-29 19:08:26',
        class: 'org.openqa.selenium.internal.BuildInfo',
        buildRevision: 'd7fc91b',
        hCode:<PHONE_NUMBER> },
     screen: null,
     systemInformation: 'System info: host: \'box917\', ip: \'<IP_ADDRESS>\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.13.0-79-generic\', java.version: \'1.7.0_76\'',
     cause: null,
     additionalInformation: '\nDriver info: org.openqa.selenium.chrome.ChromeDriver' },
  class: 'org.openqa.selenium.remote.Response',
  hCode: 160961847 }

Connection refused! Is selenium server started?

REPORT_DIR=${CIRCLE_TEST_REPORTS} LOG_DIR=${CIRCLE_ARTIFACTS} npm run test:e2e -s returned exit code 1

Outdated chrome in CCI :(


Add files via upload

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[ ] Filename in the lowercase format
[ ] Image format: png
[ ] Image size: 256 by 256 px

I want upload image token DOL (Design Online Coin), help me, thank !
[

@vannhienit https://developer.trustwallet.com/add_new_token_image


Optional permissions strategy

Some products might support several data sources, for example: SharePoint List OR Microsoft Graph.
In these cases, we might ask for a Microsoft Graph permission and would require it only if the user chooses to configure the product to use that data source, but it is optional and the product could work without this permission.
So, I think this comment should be removed: "Rejecting a permission request issued by a solution deployed in the app catalog doesn't affect that solution, and it remains deployed in the app catalog. Because the requested permissions have been denied, the solution won't be working as expected and you should remove it from the app catalog immediately after rejecting the permission request."
See - the developer can check for that permission and fail gracefully, saying "Sorry, you cannot use this data source until your administrator grants this product permissions to access that resource" and can provide a help link on how to do that.
Hope that makes sense...

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

ID: 47b09a1d-5520-82e2-64f5-7aaae817720a
Version Independent ID: 0e3dcdc4-3a49-b4c7-f525-1c618cf5e21e
Content: Connect to Azure AD-secured APIs in SharePoint Framework solutions
Content Source: docs/spfx/use-aadhttpclient.md
Service: unspecified
Product: sharepoint
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Closing as comment has been updated in doc, per @waldekmastykarz's comment.


CIV-10143 Update GA Dismissal Doc template

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-10143
Change description
Update Ga dismissal order template
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

http://localhost:3333/cases/case-details/1695804264807846#Application

[ ] Change date format


Use giflib mirror on github

I think there is no license issue, but mirroring the entire giflib repo in ours wouldn’t be possible with history and all? So we I thought we needed a new repo to mirror this, and requesting incubating-pagespeed-giflib-mirror.git or something like that didn’t make sense to me.. (though it used to be mirrored under the pagespeed/ git org which had a slight modification for gyp which is no longer needed).

sounds good.


Add ability to deliver assets from byocdn domain

Test URLs:

Before: https://main--franklin-assets-selector--hlxsites.hlx.live/same-domain-delivery
After: https://gems--franklin-assets-selector--hlxsites.hlx.live/same-domain-delivery

Do you think there's value in a reverse pattern as well? (where AEM Assets sidekick plugin has an additional configuration to specify the custom domain to include in the urls it adds to the doc, and the custom domain is swapped for delivery domain when the site is accessed from .hlx. domains)

That's a good idea indeed. It would mean less custom work, just specify the prod domain in AS config and the AS addon swaps the domains while copy pasting in Word doc itself. The assumption would be that you should only do this after you have setup the routing in byocdn to Polaris origin so that delivery urls with byocdn domain are able to deliver assets.
I think I can even omit swapping back to delivery urls as the asset delivery via byocdn would still work even for pages served from the internal hlx domains.

The assumption would be that you should only do this after you have setup the routing in byocdn to Polaris origin so that delivery urls with byocdn domain are able to deliver assets.

...and we can forego that assumption if we implement a reverse of what this PR does (i.e., until byocdn is configured to front Polaris OOTB domain, the swapping will continue).
In my mind that'd mean lookup of img/picture/video tags in render-blocking won't be needed on 'production' websites - not sure if it is micro/meaningless optimization, though.

can even omit swapping back to delivery urls as the asset delivery via byocdn would still work even for pages served from the internal hlx domains.

+1, subject to the assumption above - though my hunch is that getting customer to implement the routing to Polaris domain in byocdn _before go-live/CDN-cutover to Franklin site_ might prove challenging.

I am thinking slightly differently on this one. Basically have the same domain asset delivery as an "opt-in" else the default is as now i.e. assets get delivered for delivery-pXX-eYY.
Else for swapping back, we need to identify which urls needs rewrite (probably doable by looking at pattern like /adobe/assets/urn:aaid:aem.. ) and keep track of back to what (which delivery-pXX-eYY..) and also have some flag to indicate that byocdn is set and swap back is no longer needed.

though my hunch is that getting customer to implement the routing to Polaris domain in byocdn before go-live/CDN-cutover to Franklin site might prove challenging
Yes, but I think we can't work around that since we are tackling this outside the the pipeline that generates the markup

Closing this and handling this on the Asset selector end wherein the authoring flow, the url copied over to Word/Google doc can be configured to have site's byocdn domain.


Add support for selecting multiple roles with an AND combination

Issue Type        | Feature Request
Description
I recently discovered deployer and have started using it more and more to make operations less time-consuming for me. I mostly use it for Drupal websites to execute remote tasks like updates. My hosts.yml file contains various roles, like drupal, drupal6, drupal7, drush, active etc.
Right now I am able to execute the command dep updr --roles drupal6 or dep updr --roles drupal6,drupal7 but it would be best if I could use something like dep updr --roles "drupal6&active".
Alternatively, we could use something like dep updr --roles drupal6,active --roles-operation-and. With the parameter roles-operation-and Deployer should understand that a host should have all the roles and not just any of them.

What about --roles drupal7,!active and --roles !active?

You mean, in order to negate a role? I don't believe negating would be helpful here. We could use the ! character as a AND character though, since the & and && characters are reserved from the terminal.
For example, we could have --roles drupal7!active,drupal6!active to target hosts having both drupal7 and active or hosts having both drupal6 and `active.

But you can do it like this: --roles drupal7,drupal6,active

Well, what about +?
--roles drupal7+active,drupal6+active

Even better! It would be perfect!


New: chaps: PKCS #11 implementation with TPM backend

Depends on PR #8625.

Rename commit as it said in CONTRIBUTING.md.

@jagajaga: commit message changed


Progress

Do we need to use all the functions listed on the task 1 with the three different approaches?
Have you done task1 @AhmedCode99 or how far have you done?

Do we need to use all the functions listed on the task 1 with the three different approaches? Have you done task1 @AhmedCode99 or how far have you done?

You need to use all three functions that are mentioned in task 1.

true


folder_block_manager: don't run QR if the head is too new

To avoid causing conflicts for active writers on other devices.
Also, while we're in this code, we can use the true server timestamp to decide when a revision is old enough for QR, rather than resolving on the root directory mtime (which might not have been updated, see KBFS-821, KBFS-902).
Issue: KBFS-1429

lgtm


20220902 crab test nodes

New Prod config
20220902_crab_test_nodes
Short description of the config
Generated as:
lstmcpipe_generate_config PathConfigAllSkyTesting --prod_id 20220902_crab_test_nodes --kwargs dec=dec_2276

Then edited manually to replace the path model with /fefs/aswg/data/models/AllSky/20220518_allsky_dec2276_tuned/dec_2276/
lstchain config copied from /fefs/aswg/data/models/AllSky/20220518_allsky_dec2276_tuned/dec_2276/
Why this config is needed
Config to produce the new test nodes using Crab dec training.
See https://github.com/cta-observatory/lst-sim-config/issues/49#issuecomment-1235392024

Hi @moralejo
Could you make a quick review please?
In particular the following:

that the path to the trained RF is the correct one
the lstchain config (I copied it from the 20220518 tuned Crab prod)

The production is ready at the usual path.


Notifications: there is notification when album's comment is posted, but there is no notification for image's comment

As I see Image's Comment posting action wasn't integrated with Notifications module during Albums module creation. In the same time default notifications were inherited from General module.


SKLEARN: Add TRAIN_TEST_SPLIT

Just a initial node to setup the usage of scikit-learn.
Description

[ ] I've included a concise description of what each node does

Styleguide

[ ] My node adheres to the styleguide for Flojoy nodes

Docs

[ ] I've submitted a PR for a documentation page for the new node(s) that contains usage examples (see docs.flojoy.io)

Testing

[ ] This PR includes a unit test (example here and/or ideally a screenshot of the node's output on an example app.

Closing as TRAIN_TEST_SPLIT is already present as a Node.


Add "Phone Number" field to the contact form

torvalds.dev is analyzing the ticket

Based on the provided information, the task is to add a "Phone Number" field to the contact form. Here's a plan to achieve this:

Identify the file that contains the contact form. This is likely to be a component file in React. Based on the provided files, it seems like the file might be named something like ContactForm.js or ContactForm.tsx (not provided in the list of files you shared).

Once the file is identified, add a new input field for the phone number. This would involve adding a new input element with the appropriate attributes such as type="tel" for telephone input.

Update the form validation logic to include the new phone number field. This would involve checking if the phone number is in the correct format and is not empty.

Update the form submission logic to include the phone number field. This would involve ensuring that the phone number is included in the data that is sent when the form is submitted.

Update the styles for the new phone number field. This would involve adding appropriate CSS to ensure that the new field fits in with the rest of the form. The file src/components/ContactForm/styles.ts would likely need to be updated.

Update any tests that cover the contact form to include the new phone number field. This would involve ensuring that the tests cover the new field and that all tests pass with the new field.

Update the content for the contact form to include the new phone number field. This would involve updating the src/content/ContactContent.json file to include content for the new field.

Please provide the ContactForm component file so that I can assist you further.


[10.x] Preserve array data order after validation, based on original data

This PR solves  #48440 and take into account the contributions made in #48493
The validated data is ensured to be in the same order as the original data with the new method sortValidatedDataBasedOnOriginal().
There is also a new property $ensureValidatedArrayDataIsSortedAsOriginal in Validator class, that is false by default. This is just to prevent any possible breaking change.

In my testings i came up with a function almost identical to sortValidatedDataBasedOnOriginal(). I like your PR :)
But the best solution would be to avoid "shuffling" in the first place and skip "reordering" alltogether. Did u find anything in that regard?

You may want to incorporate the reproduction code in the issue as test case

In my testings i came up with a function almost identical to sortValidatedDataBasedOnOriginal(). I like your PR :)
But the best solution would be to avoid "shuffling" in the first place and skip "reordering" alltogether. Did u find anything in that regard?

I didn't find out a "clean way" to avoid shuffling.

While adding test cases I found other cases in which the data doesn't maintain its original order. For example, for this code:
$validated = Illuminate\Support\Facades\Validator::validate(
	[
	    'vehicles' => [
	        ['type' => 'car'],
	        ['type' => 'bus'],
	    ],
	    'owner' => 'Jon',
	],
	[
        'vehicles' => 'array',
        'vehicles.*.type' => 'required|string',
        'owner' => 'required|string',
	]
);

The output is:
[
	"owner" => "Jon",
	"vehicles" => [
		["type" => "car"],
		["type" => "bus"],
	],
]

This es also related with the value of the property $excludeUnvalidatedArrayKeys. The change in the order of the validated data only happens if $excludeUnvalidatedArrayKeys is set to true.
Another thing I noticed is that in Illuminate\Validation\Factory the property $excludeUnvalidatedArrayKeys is true by default, so when accessing  the Validator through the Facade, it is also true. But in Illuminate\Validation\Validator the property is false by default. I don't know if this is on purpose but it seems a bit strange to me.
This pull request currently fixes these cases, but I'm unsure if it still makes sense for this feature to remain optional.
Depending on that, the tests may vary, because if is optional, the case when data order is not preserved has to be tested to. And when I got to this point was that I began to doubt about if it really make sense to made it optional.
Would like to hear opinions about it!

This shouldn't be a new method IMO. I just meant in the previous PR that we shouldn't always ksort.

Is there a reason this got closed? I've made my own extension that achieves this (except i sort the rule keys in Validator::validated() rather than the data), but i would rather have something in Laravel that handles this.
EDIT: I mainly ask because I am trying to understand if there is something that might break my solution if i were to use the same Validator across my app


configure Logging

Signed-off-by: frank-bee<EMAIL_ADDRESS>

I will merge this to be able to use it for the BPAs we currently deploy.


Upgrade to axios 0.18.1 to resolve security issue

See https://github.com/axios/axios/releases/tag/v0.18.1 for more details

Thanks for the report, in v3 beta version I set the axios version to 0.18.1 exactly so it would not install the 0.19.x version which breaks some functionality.
I'll do the same to fix this as you've suggested.


[CyclicBuffer] Fixed the deadlock situation during the timed lock()- unlock() sequence, removed unwanted methods

Fixed the deadlock situation during the timed lock()- unlock() sequence, removed unwanted methods.

https://jenkins.code.rdkcentral.com/job/github-triggered/1064/ started

Moved this work to the unit-test pull request, so this one can be closed without merging


v3 - Remove the use of unshare + privileged mode

Removes the use of unshare + privileged mode and instead uses seccomp to filter for socket syscalls.
data/piston/config.yaml also needs to be changed to use the new config value.
Example:
$ cat test.py
import socket
print(socket.getaddrinfo("example.org", 80, proto=socket.IPPROTO_TCP))
$ cli/index.js execute python 3.9.1 test.py
== Run ==
STDERR
    Traceback (most recent call last):
      File "/piston/jobs/4f1f95b4-1482-4bba-90ea-738e82a16fb0/test.py", line 3, in <module>
        print(socket.getaddrinfo("example.org", 80, proto=socket.IPPROTO_TCP))
      File "/piston/packages/python/3.9.1/lib/python3.9/socket.py", line 953, in getaddrinfo
        for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
    socket.gaierror: [Errno -3] Temporary failure in name resolution

Exit Code: 1

Is there any way to not use a separate C program to do this - building another program within this seems a bit hacky, but other than that, I like it.

So ideas I had:

Use these bindings: https://github.com/roryrjb/node-seccomp and create a node program to replace the C program
Generate bindings for node for the current c program nosocket.c then have a node program that uses that

Neither ideally is super appealing to me TBH. If you have any other thoughts let me know @HexF

After reviewing the node-seccomp bindings, doesn't seem possible unless we spawn another node process - which adds more overhead.
If you wanna resolve these merge conflicts, I'll merge it in.

Merge conflict resolved, should I push a change to data/piston/config.yaml as well (the folder is in .gitignore)?

For what reason? The file is automatically generated by api/config.js if it does not exist.

Yeah I wasn't sure where it was coming from but locally I had to change the config option name from "enable_unshare" to "disable_networking" - I'm guessing since I had the file present already. If it's generated automatically then it should be fine.

Ok then it should be good to merge.


cortex-m jtag

Is debugging/programing arm cortex-m devices via swd/jtag possible/implemented/planned?
In the main README there is a lot of mention of debugging and programming microcontrollers via jtag, but not for cortex-m devices.

Planned, cf. #69.

thank you, sorry for the duplicate.

Not actually a duplicate--JTAG and SWD debugging are different in this context.


Cleanup

As mentioned on IRC a while ago, here's a collection of commits meant to make the bash usage "more better".

Rebased on top of parallel ninja PR that deleted half the code I was fixing.


Remove immutability from v3 changes

In refactoring zend-modulemanager, zend-mvc, zend-view, and components with view helper configuration, I've been having to do some rather ugly hacks:

https://github.com/zendframework/zend-modulemanager/commit/8de7f22e761c90779a302f8dd14dc28821e7e498
https://github.com/zendframework/zend-mvc/commit/a46be7d9e9512f3f624e36f840e7993b268639d1

These are due to the fact that the v3 refactor uses immutability as a core feature of the ServiceManager.
I'm starting to question the decision:

It's forcing some BC breaks that would largely be unnecessary otherwise.
It's forcing a situation where the only way to configure plugin managers managed by the SM is via application-level configuration. In other words, you cannot add plugins to plugin managers unless you do so via application configuration.

I've been doing a little testing, and I've found that the current configure() logic is actually quite lightweight from a resource perspective: it is not costly in terms of memory, CPU cycles, or time, and, because it takes care of things like alias resolution and abstract factory instantiation, removes the state-based issues we had in v2.
I'll be providing a pull request shortly with this change, but wanted to give @bakura10 a heads-up.

As for the other issue, I honestly do not have much opinion on that, I won't be against the change.

It's forcing a situation where the only way to configure plugin managers managed by the SM is via application-level configuration. In other words, you cannot add plugins to plugin managers unless you do so via application configuration.

How is that a problem actually? That sounds sane. Plugin managers come with their own list of pre-configured services, isn't it?

@bakura10 Here's an example: each of zend-navigation, zend-i18n, and zend-form provide additional view helpers that are not in the zend-view HelperPluginManager by default. As such, zend-mvc now fetches a Config class from each, and then uses that to configure the plugin manager. This means calling withConfig() several times within the factory for generating the HelperPluginManager.
Previously, this was done in delegator factories, which configured the instance. This can't be done now.
There's a few other use cases (we configure the Hal plugin in Apigility within an event). Essentially, plugin managers really need to be mutable, to allow ad-hoc configuration.

I see the issue... as I've already said it's a new example of why we would need a way to merge a config from any library (not only module), and that would solve cleanly this issue. But in the meantime, I'm okay for going back to a mutable manager.

Patch is ready for review! Pinging @ezimuel !

One note: I re-ran the Athletic benchmarks, on both the current develop branch and the one on which this PR is based; there's zero difference!

I've modified the behavior of the "allow overrides" flag to more closely mimic that of v2 at this point; i.e., if an alias, invokable, factory, delegator, or sharing rule is added, allow overrides is false, and an instance of the named service is already present (the provided service name is mapped in the $services table), then an exception will be raised. Otherwise, the operation is permitted.
In discussion with @ezimuel, he suggested potentially more fine-grained settings, with a flag per service indicating ability to override. I think this could be done at a later date without BC ramifications (as the default would be still to have that disallowed by default).
While I know @bakura10 is not a fan of the flag, it had specific use cases in v2, particularly to prevent ambiguity about what happens when a change in the state is made. The patch presented in b253d70 keeps the performance improvements introduced for v3, while retaining those protections, and keeping the v2 bootstrap workflow usable.
Unfortunately, coveralls won't show me the changes in coverage, and I'm unsure how to improve it at this time (as I have introduced tests for each of the new execution paths created). I think the change is acceptable at this time.

Okay... You are allowed to change it then =).

@bakura10 :fist: — glad that will work! It's a quite inexpensive check, in the end!


docs: Docs suggestions

Here are some suggestions for the docs that I thought of while reading over them. I'm not sure if you'll want to use all of them, so feel cherry-pick the ones you want.
Also, some of the markdown code sections are displaying strangely on these pages:

http://www.sparckles.cloud/Robyn/#/features (the part after "You can serve views in two ways:")
http://www.sparckles.cloud/Robyn/#/plugins

And this page has a line "export const description = ..." at the top that I'm not sure if it's supposed to be there:

http://www.sparckles.cloud/Robyn/#/comparison

Also, on the docs site, when you click a link in the left nav, it doesn’t scroll to the top of the new page, which is strange when you click a link after having scrolled to the bottom of the previous page.

Thank you for the pr @elliotwaite 😊
Your changes look great from the first glance. I will give a thorough review after waking up tomorrow
We are migrating to a new docs website - https://beta.robyn.tech
You can refer to the new docs website till then 😊

Sounds good. Oh, wow. Those new docs look nice. I'll check them out.
Another thing I was going to suggest, although I'm less certain about this one, is that to me,  all the h() functions in the docs seemed odd. Does the "h" stand for "home" or "hello" or something else? Maybe changing them to home() or hello() would make them more self-documenting. But that might just be me. Feel free to leave them as the more concise h() if that's your style.

All of these will be fixed in the new docs! I just need to finish this https://github.com/sparckles/Robyn/issues/646 before I complete migration 😅


kCFURLVolumeIsAutomountedKey warning for Time_Machine drive

If I let MacVim run, I get a message like this written to the Terminal window that launched it about once per hour:
2016-11-11 08:58:48.339 MacVim[4923:11304439] kCFURLVolumeIsAutomountedKey missing for file:///Volumes/Time_Machine/: Error Domain=NSCocoaErrorDomain Code=257 "The file “Time_Machine” couldn’t be opened because you don’t have permission to view it." UserInfo={NSURL=file:///Volumes/Time_Machine/, NSFilePath=/Volumes/Time_Machine, NSUnderlyingError=0x7fcc933024e0 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}}

FWIW, I have Time Machine enabled, and it is doing an encrypted backup to a drive on a server. The user account used to access the drive is not the user account that MacVim is running under.
This doesn't seem to be hurting anything, but it is a bit annoying. I'm guessing that MacVim is trying to do something with each mounted volume once per hour?

I don't think so, but disabling auto update #390 may change the behavior.

I have already disabled SUEnableAutomaticChecks.

I believe that Vim and MacVim codebase don't have such thing. Sparkle may access network and file system regularly, but I've never seen the log. More likely Vim scripts or plugins?


Homebrew formula created/submitted

FYI, https://github.com/Homebrew/homebrew-core/pull/97567 may make it easier to install for some people.

Thanks!


Proposal: to dockerize project to simplify deployment process

In addition to previous issue with fixed node version, mongoDB is also needed. Also project runs a few services (gun, server, contracts, app)
In this case i can propose to dockerize project which will simplify deployment process


DnsClientGlobalSetting: Setting SuffixSearchList to an empty string fails Test-DscConfiguration

Setting the DnsClientGlobalSetting SuffixSearchList to an empty string fails Test-DscConfiguration
The SuffixSearchList is correctly set to an empty string array, but the test fails. Setting th attribute to an empty array @() instead, works correctly.
The verbose logging error is also not expanding the strings correctly:
DNS Client Global Setting "SuffixSearchList" is "System.String[]" but should be "System.String[]". Change required.

Verbose logs showing the problem
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = ApplyConfiguration,'className'
 = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer WIN-KQV0CSPMTL6 with user sid
S-1-5-21-653353224-2594412442-3194183951-1002.
VERBOSE: [WIN-KQV0CSPMTL6]:                            [] Starting consistency engine.
VERBOSE: [WIN-KQV0CSPMTL6]:                            [] A pending configuration exists. DSC will process a set
request on the pending configuration.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Resource ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Test     ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Test-TargetResource:
Testing DNS Client Global Settings.
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Test-TargetResource:
DNS Client Global Setting "SuffixSearchList" is "System.String[]" but should be "System.String[]". Change required.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Test     ]  [[DnsClientGlobalSetting]SuffixSearchList]  in 0.0620 seconds.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Set      ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Set-TargetResource:
Setting DNS Client Global Settings.
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Set-TargetResource:
Setting DNS Client Global Settings parameter SuffixSearchList to "System.String[]".
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Set-TargetResource:
Setting DNS Client Global Settings updated.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Set      ]  [[DnsClientGlobalSetting]SuffixSearchList]  in 0.5560 seconds.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Resource ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]:                            [] Consistency check completed.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.007 seconds
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = TestConfiguration,'className'
= MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer WIN-KQV0CSPMTL6 with user sid
S-1-5-21-653353224-2594412442-3194183951-1002.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Test     ]
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Resource ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ Start  Test     ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Test-TargetResource:
Testing DNS Client Global Settings.
VERBOSE: [WIN-KQV0CSPMTL6]:                            [[DnsClientGlobalSetting]SuffixSearchList] Test-TargetResource:
DNS Client Global Setting "SuffixSearchList" is "System.String[]" but should be "System.String[]". Change required.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Test     ]  [[DnsClientGlobalSetting]SuffixSearchList] False in 0.0780
seconds.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Resource ]  [[DnsClientGlobalSetting]SuffixSearchList]
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Test     ]     Completed processing test operation. The operation returned
False.
VERBOSE: [WIN-KQV0CSPMTL6]: LCM:  [ End    Test     ]    in  0.2490 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
False
VERBOSE: Time taken for configuration job to complete is 0.76 seconds

Suggested solution to the issue
Looking at the code, Test-TargetResource for DnsClientGlobalSetting is currently being performed in a single foreach loop, even though all four parameters are different types. Suggestion would be to split the test code so that each parameter is tested individually, then specific coding for the SuffixSearchList can be added to cope with this issue.
The DSC configuration that is used to reproduce the issue (as detailed as possible)
Configuration SuffixSearchList
{
    Import-DscResource -Module NetworkingDsc

    Node localhost
    {
        DnsClientGlobalSetting SuffixSearchList
        {
            IsSingleInstance = 'Yes'
            SuffixSearchList = ''
        }
    }
}

. SuffixSearchList

Publish-DscConfiguration .\SuffixSearchList\

Start-DscConfiguration -Wait -Verbose -Force -UseExisting

Test-DscConfiguration -Verbose

The operating system the target node is running
OsName               : Microsoft Windows Server 2019 Standard Evaluation
OsOperatingSystemSKU : 79
OsArchitecture       : 64-bit
WindowsVersion       : 1809
WindowsBuildLabEx    : 17763.1.amd64fre.rs5_release.180914-1434
OsLanguage           : en-US
OsMuiLanguages       : {en-US}

Version and build of PowerShell the target node is running
Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Version of the DSC module that was used ('dev' if using current dev branch)
Networking Dsc v<IP_ADDRESS>

Thanks for raising this @X-Guardian - I've marked this in progress and will review your PR once the tests are passing. Thanks for contributing!

Cheers @PlagueHO, all tests are now passing.


Allow to reuse text editor for merge editor

This makes the merge editor support code editor options in the same way as text editor and diff editor do and further quite easily enables to track view state, selection history in the future (not part of this PR).

@jrieken only the last commit https://github.com/microsoft/vscode/pull/151836/commits/beda9c5e9f4633fcecbe5417ab60394e6250733b is relevant for the merge editor and a review. a couple of interesting things:

you can further override editor options by implementing getConfigurationOverrides, but I think it is fine now
options will apply to all editors within via applyOptions and I preserved the readOnly thing Henning added for debugging
there is now a getMainControl method (I think we called this "dominant" which I found not so nice) which will return the result editor and is used in the parent class to drive a few things
I went ahead and implemented a few methods that were missing

setOptions: applies the options to the main control
clearInput: this is not only called when the merge editor hides but also when it is re-used to show a different input and should clear models from the widgets
focus / hasTextFocus
setEditorVisible: which will forward onVisible / onHide to the monaco editors

//cc @hediet


METRON-1056: Get field types from Elasticsearch

Contributor Comments
This PR adds 2 additional search REST endpoints.  The first takes a list of indices as input and returns field to type mappings for each index.  The second also takes a list of indices as input but only returns field to type mappings for the intersection of the common fields across the indices.  These endpoints are needed by the alerts UI and will also be necessary for correctly formatting faceted search results.
This can been tested in full dev.  After spinning up full dev, go the the SearchController section of the Swagger UI.  There the endpoints can be tested against sample data in Elasticsearch.  Passing in "["bro","snort"] to "/api/v1/search/column/metadata" should return type mappings for both indices.  Passing in the same list to "/api/v1/search/column/metadata/common" should only return type mappings for fields that are in both indices.
Reviewers will notice that tests were not added to the unit tests in ElasticsearchDaoTest.  As the original author of that class I found it awkward mocking the various Elasticsearch client classes and it took a non-trivial amount of time to figure out.  I started adding to the test for this PR and ran into similar issues.  I feel like this test will be difficult to maintain, especially since several different people will be contributing to this class, and I don't feel it gives us a good return on investment.  We have 100% test coverage in the integration tests which are much easier to maintain and understand.  Maybe there is an easier way to test Elasticsearch client classes but I vote we remove this and instead rely on the integration tests since they provide complete coverage and are easy to work with.
Pull Request Checklist
Thank you for submitting a contribution to Apache Metron.
Please refer to our Development Guidelines for the complete guide to follow for contributions.
Please refer also to our Build Verification Guidelines for complete smoke testing guides.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[ ] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && build_utils/verify_licenses.sh

[x] Have you written or updated unit tests and or integration tests to verify your changes?

[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

[x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:
cd site-book
mvn site

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

Awesome @merrimanr, and you speak at all to how this would translate for a Solr implementation conceptually?  Does everything carry over?

Sure @ottobackwards.  There is a similar api for Solr that will return field types for a list of collections.  When we add Solr as an indexing option we will create a "SolrDao" class that will implement the "IndexDao.getColumnMetadata(List indices)" and "IndexDao.getCommonColumnMetadata(List indices)" methods.

Thanks!

+1


⚠ Bofrost.de has degraded performance

In 5a8edc0, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1999 ms

Resolved: Bofrost.de performance has improved in 04709b2 after 43 minutes.


Cannot connect to ipv6-only mongodb instance

$ snap list wekan
Name   Version  Rev  Tracking  Developer  Notes
wekan  1.18     233  stable    xet7       devmode

on a Debian stretch with a nginx in front.

Built-in mongodb works fine.
External mongodb with with legacy IP address works fine.
The very same external mongodb with an ipv6 address gives the following error (resulting in an endless loop of starting/stopping the wekan instance)

Jul 24 06:25:10 web systemd[1]: Started Service for snap application wekan.wekan.
Jul 24 06:25:10 web /usr/bin/snap[23869]: cmd.go:105: DEBUG: restarting into "/snap/core/current/usr/bin/snap"
Jul 24 06:25:10 web wekan.wekan[23869]: MONGODB_BIND_UNIX_SOCKET=nill
Jul 24 06:25:10 web wekan.wekan[23869]: MONGODB_BIND_IP=ipv6only-mongodb.example.com
Jul 24 06:25:10 web wekan.wekan[23869]: MONGODB_PORT=27017
Jul 24 06:25:10 web wekan.wekan[23869]: MAIL_URL=smtp://user:pass@mailserver.examples.com:25/ (default value)
Jul 24 06:25:10 web wekan.wekan[23869]<EMAIL_ADDRESS>(default value)
Jul 24 06:25:10 web wekan.wekan[23869]: ROOT_URL=http://wekan.example.com
Jul 24 06:25:10 web wekan.wekan[23869]: PORT=3001
Jul 24 06:25:10 web wekan.wekan[23869]: DISABLE_MONGODB=true
Jul 24 06:25:10 web wekan.wekan[23869]: CADDY_ENABLED=false (default value)
Jul 24 06:25:10 web wekan.wekan[23869]: CADDY_BIND_PORT=3001 (default value)
Jul 24 06:25:10 web wekan.wekan[23869]: MONGO_URL=mongodb://ipv6only-mongodb.example.com:27017/wekan
Jul 24 06:25:12 web wekan.wekan[23869]: /snap/wekan/233/programs/server/node_modules/fibers/future.js:313
Jul 24 06:25:12 web wekan.wekan[23869]: #011#011#011#011#011#011throw(ex);
Jul 24 06:25:12 web wekan.wekan[23869]: #011#011#011#011#011#011^
Jul 24 06:25:12 web wekan.wekan[23869]: MongoError: failed to connect to server [ipv6only-mongodb.example.com:27017] on first connect [MongoError: getaddrinfo ENOTFOUND ipv6only-mongodb.example.com ipv6only-mongodb.example.com:27017]
Jul 24 06:25:12 web wekan.wekan[23869]:     at Pool.<anonymous> (/snap/wekan/233/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/topologies/server.js:336:35)
Jul 24 06:25:12 web wekan.wekan[23869]:     at emitOne (events.js:116:13)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Pool.emit (events.js:211:7)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Connection.<anonymous> (/snap/wekan/233/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:280:12)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Object.onceWrapper (events.js:317:30)
Jul 24 06:25:12 web wekan.wekan[23869]:     at emitTwo (events.js:126:13)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Connection.emit (events.js:214:7)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Socket.<anonymous> (/snap/wekan/233/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:187:49)
Jul 24 06:25:12 web wekan.wekan[23869]:     at Object.onceWrapper (events.js:315:30)
Jul 24 06:25:12 web wekan.wekan[23869]:     at emitOne (events.js:116:13)
Jul 24 06:25:12 web systemd[1]: snap.wekan.wekan.service: Main process exited, code=exited, status=1/FAILURE
Jul 24 06:25:12 web systemd[1]: snap.wekan.wekan.service: Unit entered failed state.
Jul 24 06:25:12 web systemd[1]: snap.wekan.wekan.service: Failed with result 'exit-code'.
Jul 24 06:25:12 web systemd[1]: snap.wekan.wekan.service: Service hold-off time over, scheduling restart.
Jul 24 06:25:12 web systemd[1]: Stopped Service for snap application wekan.wekan.

ipv6only-mongodb.example.com resolves only to an AAAA record here.

Maybe related:
https://github.com/meteor/meteor/issues/7155 - just quessing, there could be some change needed for some Wekan options.
https://bugs.launchpad.net/snapstore/+bug/1710022
https://forum.snapcraft.io/t/api-snapcraft-io-ipv6-support/4531

meteor/meteor#7155 is about parsing a URL. I did not use raw IP addresses in my example but FQDNs. FQDNs are protocol family agnostic.
https://bugs.launchpad.net/snapstore/+bug/1710022
https://forum.snapcraft.io/t/api-snapcraft-io-ipv6-support/4531

You mean, if cannot install a software via IPv6, there is no need for that software to be IPv6 capable? ;-)

This seems to be same issue as https://github.com/RocketChat/Rocket.Chat/issues/8823 , both Wekan and Rocket.Chat are made with Meteor and MongoDB.

Can you tell me what are those IPv6 only environments usually?

I don't know is this mongo url syntax issue like at https://github.com/meteor/meteor/issues/8066

https://stackoverflow.com/questions/40345535/how-to-bind-meteor-to-ipv6

getaddrinfo ENOTFOUND suggests a name resolver issue. Using tcpdump I found out, that the DNS is only queried for an A record, but not for an AAAA record.  Digging into mongodb-core/lib/connection/connection.js revealed that Connection needs an (address) family option to be set. That option defaults to legacy IP (4).
Unfortunately I don't know where the actual dns.lookup() is done. This function returns (among other things) the address family. This information needs to be fed to the Connection class.
Should easily be fixed. Maybe upstream since I don't know where mongodb-core belongs to.


Crash in AdapterSelection sample...

Possible Bug Report
I run the AdapterSelection sample, and see this in the transcript...
Index: 0, Description: NVIDIA GeForce RTX 2080 Ti
Please enter the index of the adapter you want to use...
0
Selected adapter at index 0
Loading modelfile 'C:\Users\John\Test\squeezenet1.1.onnx' on the selected device
model file loaded in 16 ticks
Loading the image...
Binding...
Running the model...
then pops up the Abort/Ignore/Retry panel
Used VS2017,  SDK 17763, the model is the squeezenet model downloaded from ONNX Zoo.
Maybe its not enough for you to debug -- but what sorts of things might it be?    Thanks!

Another clue: I downloaded/installed WinMLDashboard and with it, I could load this same model, and I could run it successfully on the same image.   So, something wrong with my environment to build the AdapterSelection sample?

Hi @JohnCraigPublic , thanks for reaching out to us for this issue! May I ask what OS Build version you are running the Squeezenet Sample on? Also can you link the exact squeezenet model you used for repro purposes? Thanks!

On Windows 10 version 1903  build 18362.116
The squeezenet is called squeezenet1.1.onnx -- from the Zoo -- file size 4,956,208 bytes

Hi @JohnCraigPublic , may I ask what driver version your GPU is? You can find out the driver version through DxDiag

version <IP_ADDRESS>7
GPU is NVIDIA GeForce RTX 2080 Ti

I re-did, making sure I used the Squeezenet model supplied with the example (rather than some other one I found floating around) and now it all works.


Switch app to dark mode

Fixes #102

For more details, open the Copilot Workspace session.

Drop this, the issue is too complex for copilot workspace


The new APIM policies for Azure OpenAI do not play nicely with some models like GPT-4-Vision.

Added a condition to detect these calls and prevent using these policies.

Pull request updated with a simplified version of the policy.


Fix returned winning players

#100 didn't quite do what was needed. Since check_for_and_declare_winners! only works when one player is still playing. This misses the cases when there are multiple winners, or when nobody folds. This PR ensures that the winners (who money is distributed to) are returned from play!.

bors r+


drilldown not surpported

when I use highcharts-ng , I found config.drilldown not surpported.  if drilldown will be surpported

The drilldown feature requires the drilldown.js file to be loaded, found in the modules directory of the download package, or online at code.highcharts.com/modules/drilldown.js.

As per the official documentation here.

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");
thanks again !

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");
thanks again !

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");
thanks again !

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");
thanks again !

I have required "highcharts/modules/drilldown"  when I give the issue; I found the Pie with drilldown not work.
The code is shown below.
require("highcharts/modules/drilldown")(window.Highcharts);
Highcharts.setOptions({global: {useUTC: false}});
require("highcharts-ng");
thanks again !

Here is a jsfiddle of drilldowns working with highcharts-ng2 beta

Angular 1.5.6
Highcharts 5.x

@VictorioBerra  thank your again !
I found highcharts-ng
if (config.options) {         mergedOptions = deepExtend(defaultOptions, config.options); } else {         mergedOptions = defaultOptions; }
just merge config.options;but I do like this config.drilldown ,not like config.options.drilldown . so not show drilldown. now work fine.
thanks again.
if we can add some code to config.drilldown work fine.
like this
if(config.drilldown){      mergedOptions.drilldown = config.drilldown; }


DataGrid replaced with TanStack Table v8 Epic

The problem
Transition to TanStack Table v8
The solution
Task:
Create examples of all DG components in TS v8
Design link
What do we do with Figma?
Links to other materials
No response
Owner/main maintainer(s)
C4IP
Second/backup maintainer(s)
No response
Product/offering
No response
Business priority
None
Code of Conduct

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

Duplicate of #6162


export test helpers for downstream consumers

For apps that depend on ember-mobiledoc-editor, documenting and exporting test-helpers (like runLater and moveCursorTo) would make development easier.

High-level acceptance test level helpers would also be good (like insertText(editorElement, 'sometext'), or simply making it so that fillIn works with an editor element)

@bantic Do you have any suggestions for workarounds for acceptance testing? I am finding that I need to just skip acceptance tests for anything non-trivial involving ember-mobiledoc-editor for now because I can't seem to be able to interact with the editor at all.
I'm not really trying to test specific editor functionality but would like to test overall acceptance scenarios like basic updates to the content, calling the update endpoint, and updating the overall UI with flash notifications, etc.

@chrisdpeters If you are testing basic scenarios of the form "no-content"->"any-content" and vice versa, modifying the dom in the editor directly should be ok to do, but you may run into some trouble due to the async nature of the code here. I will play around with this a bit and make a specific suggestion.

@chrisdpeters I think we can actually keep an internal reference to the editor instance in tests, and export a test helper that accesses it and can update the editor...I will make a spike on this tomorrow.


Compilation issue using Swift Package Manager and v3.4.3

Describe the bug
I'm seeing a compilation issue using Swift Package Manager after updating to v3.4.3.
To Reproduce
Steps to reproduce the behavior:

pull down v3.4.3
Go to build, see below build error

Screenshots

Hi @harryblam
Just tried the same and I am not been able to reproduce the issue. Can you please let us know what version iOS & xcode you are trying to build with  ?
see below reference.

Hi @harryblam
Just tried the same and I am not been able to reproduce the issue. Can you please let us know what version iOS & xcode you are trying to build with ?
see below reference.

Hi @deepesh-vasthimal-cko ,
I'm using Xcode 12.5.1 building onto a Simulator running iOS 14.5

Hi @harryblam
Just tried the same and I am not been able to reproduce the issue. Can you please let us know what version iOS & xcode you are trying to build with ?
see below reference.

Hi @deepesh-vasthimal-cko ,
I'm using Xcode 12.5.1 building onto a Simulator running iOS 14.5

Thanks @harryblam. Can you also please let us know what are the details steps you used to configure the SDK. Would really help to reproduce the issue.

Hello Team, I am also facing similar issue from past few days, it was working fine before. I am using this plugin in my flutter project.
Error:CheckoutAPIClient.swift:3:8: error: no such module 'CheckoutEventLoggerKit'
Please help

Hi @deepesh-vasthimal-cko , i'll put some more detailed steps below with some screenshots of what i'm seeing.
In terms of configuring the SDK, we're following closely the CardViewController steps as defined in the README (however this is irrelevant as the compile error is happening within the Frames module).
Steps

Quit Xcode, clean derived data
Open Xcode, open project file, click into the Swift packages
Remove current Frames reference, add a new Frame package pointing at v3.4.3 (as in below screenshot)

Resolve packages and build project
Observe compilation error (as below in screenshot)

I haven't had the time to create a new project and try this in a clean environment, but i'm simply saying that upgrading the package is not working for me.
Thanks.

@deepesh-vasthimal-cko I've realised that the build is succeeding for me when building for iOS device (arm64), and it's failing when building for simulator.
Hope that helps you in debugging further.

Hi @harryblam Thanks for the details, Can you please help me answer a few queries for me.

What version of SPM Frames you were previously using before migrating to 3.4.3 ?
Can you please reset package caches and try again ?
Can you please confirm the Swift package dependencies loaded in your xcode as similar to below with version numbers of each dependency ?

Also I did tried if on a fresh project using xcode 12.5.1 and simulator and everything seems to be working fine for me. See below.

Thanks
Deepesh

Hi @deepesh-vasthimal-cko, this is on my list, I will look to get you these details sometime this week!

@harryblam Dont bother I am able to replicate this. This happens when you try to build the frames SDK in release mode on simulator. For time being you could run the release mode on device and perform the testing / development unless the simulator is required to do something specific on release mode. Since we are now able to reproduce this we will plan for a fix in our next releases.

@deepesh-vasthimal-cko we've added the architecture settings outlined in the readme as we are using SPM however we are still getting the following error when running our tests. The app builds and tests run & pass it just fails right at the end.
No such module 'CheckoutEventLoggerKit'

@deepesh-vasthimal-cko we've added the architecture settings outlined in the readme as we are using SPM however we are still getting the following error when running our tests. The app builds and tests run & pass it just fails right at the end.
No such module 'CheckoutEventLoggerKit'

Hi @joshgare This is something which we are currently working on and hopefully should be fixed in our next release.

@deepesh-vasthimal-cko @harry-brown-cko I've updated to the new release from a few days ago that is supposed to fix this issue but our tests are still breaking with the same error.

Are there any other changes we need to make?

@deepesh-vasthimal-cko do we need to remove i386 from the excluded architectures now that this PR has gone through?


Partial success flux response

Closes

What changed?

Why was this change made?

How was this change implemented?

How did you validate the change?

Release notes

Documentation Changes

Trying to fix this, found it in testing enterprise env


Cover default storage server

A lot of code in main is currently uncovered according to Codecov. This PR is an attempt to reduce the amount of missing code coverage to zero percent.
Note:

Add badges to README.md for showing off 100% code coverage.

Codecov Report
Base: 86.32% // Head: 87.95% // Increases project coverage by +1.63% :tada:

Coverage data is based on head (20ef50d) compared to base (ca78487).
Patch coverage: 93.18% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #26      +/-   ##
==========================================
+ Coverage   86.32%   87.95%   +1.63%
==========================================
  Files           5        7       +2
  Lines         212      299      +87
  Branches       19       31      +12
==========================================
+ Hits          183      263      +80
- Misses         29       36       +7

Impacted Files
Coverage Δ

http/default/handler.ts
87.71% <76.92%> (ø)

http/common/fake_fetcher.ts
94.59% <100.00%> (ø)

http/common/fake_server.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Invalid  Date

The component does not seem to work unless you set year and month attributes with rc2. I think addDSTOffset function screws-up the date some how.

Can you be more specific? Plunker would be helpful for me to understand your issue.

I think this has been fixed. Please re-open this if you still see this error.


Pdf-Output with jbig2enc?

Searching for a place to introduce JBig2-compression into my quite typical workflow I stumbled upon tesseract actually generating sandwiches - which is nice. Are there any plans to offer alternative to the, i assume, flate-compression currently used?

JBIG2 and mixed raster content is a very challenging topic.  No current plans with respect to Tesseract.

Are there any plans to offer alternative to the, i assume, flate-compression currently used?

https://github.com/tesseract-ocr/tesseract/blob/ca16a08c10/api/pdfrenderer.cpp#L729


Implementing logical OR between multiple operations

Hi all! We are currently developing an stream processing program using RxCpp, but we are having issues on how to correctly approach the following situation.
Let's say we have multiple operations, where each operation can succeed or fail. We want to lift a pipeline of observables that sequentially try each operation while they fail, returning as soon as one operation succeed.
The main questions is:

What would be the correct way of implementing a bifurcation, depending on current operation result?

One possible implementation we come across is the following:
We define the OperationResult class, just a wrapper over the event being processed and a boolean indicating if the operation succeeded or failed:
template <class T> class OperationResult{
private:
    T m_event;
    bool m_success;

public:
    OperationResult(bool succeded, T event) : m_success{succeded}, m_event{event}{}

    bool success() const{
        return this->m_success;
    }

    T event() const{
        return this->m_event;
    }
};

And the Operation class, that set up the rxcpp pipeline, where each operation exposes 2 observables, one that emits successfully processed items and one that emits the failed ones.
template <class T> class Operation
{
    using function_t = std::function<OperationResult<T>(OperationResult<T>)>;
    using observable_t = rxcpp::observable<OperationResult<T>>;

private:
    std::string m_name;
    function_t m_fn;
    bool m_inputConnected;

public:
    Operation(const std::string & name, function_t fn) : m_name{name}, m_fn{fn}, m_inputConnected{false}{}

    // This function sets up the rxcpp pipeline, implementing the bifurcation depending on OperationResult
    // in a way that no new observables/subscriptions are performed
    std::pair<observable_t, observable_t> connect(const observable_t & input){
        if (this->m_inputConnected){
            throw std::runtime_error("Error, operation " + this->m_name + " is already connected");
        }else{
            auto result = input.map(this->m_fn).publish();
            auto failure = result.filter([](OperationResult<T> result) { return !result.success(); });
            auto success = result.filter([](OperationResult<T> result) { return result.success(); });
            result.connect();

            this->m_inputConnected = true;
            return std::pair(failure, success);
        }
    }
};

This allows for setting up a logical OR between multiple Operations like this:
// Operations
Operation<int> op0("is pair",
                    [](OperationResult<int> res)
                    {
                        cout << "pair got " << res.event() << endl;
                        return OperationResult<int>(res.event() % 2 == 0, res.event());
                    });

Operation<int> op1("is greater than 3",

                    [](OperationResult<int> res)
                    {
                        cout << "greater than 3 got " << res.event() << endl;
                        return OperationResult<int>(res.event() > 3, res.event());
                    });

Operation<int> op2("equals 1",
                    [](OperationResult<int> res)
                    {
                        cout << "equals 1 got " << res.event() << endl;
                        return OperationResult<int>(res.event() == 1, res.event());
                    });

// Input to the observable chain
auto input_sbj = subjects::subject<OperationResult<int>>();
auto input = input_sbj.get_observable();

// Subscriber to be called if one of the 3 operation succeeded
auto success_subscriber = make_subscriber<OperationResult<int>>([](OperationResult<int> res)
                                                                { cout << "[Success] got " << res.event() << endl; });

// Subscriber to be called if all operations failed
auto error_subscriber = make_subscriber<OperationResult<int>>([](OperationResult<int> res)
                                                                { cout << "[Error] got " << res.event() << endl; });

// Logical OR
auto outs = op0.connect(input);
outs.second.subscribe(success_subscriber);

outs = op1.connect(outs.first);
outs.second.subscribe(success_subscriber);

outs = op2.connect(outs.first);
outs.second.subscribe(success_subscriber);

outs.first.subscribe(error_subscriber);

// Emit input
auto s = input_sbj.get_subscriber();
s.on_next(OperationResult(false, 0)); // Success
s.on_next(OperationResult(false, 1)); // Success
s.on_next(OperationResult(false, 3)); // Error
s.on_next(OperationResult(false, 5)); // Success
s.on_completed();

Output:
pair got 0
[Success] got 0
pair got 1
greater than 3 got 1
equals 1 got 1
[Success] got 1
pair got 3
greater than 3 got 3
equals 1 got 3
[Error] got 3
pair got 5
greater than 3 got 5
[Success] got 5

Any help or insight you can give me is much appreciated!

What about most straightforward way? when you pass all comparisons to one lambda or something like this? like
observable.filter([](int v){return v % 2 == 0 || v > 3 || v ==1;})
another way I can imagine is use amb operator, but you will need to create it for each obtained value and immediately execute. Like...
observable.flat_map([](int v)
{
return rxcpp::observable<>::just(v)
   .filter([](int v){return v % 2 ==0;})
   .amb(rxcpp::observable<>::just(v).filter([](int v){return v > 3;}),
        rxcpp::observable<>::just(v).filter([](int v){return v ==  1;}))
});

but not sure if it is really useful (due to every time for each value you will create new observable, configure and immediately run)

Let's say we have multiple operations, where each operation can succeed or fail. We want to lift a pipeline of observables that sequentially try each operation while they fail, returning as soon as one operation succeed.

That sounds like
Amb(op0.retry(), op1.retry(), ..)


fix(@schematics/angular): fix for errors when content is null

Removed content attribute when not needed

Superseded by https://github.com/angular/devkit/pull/300


[Feature Request] Report toggle within OHIF viewer

What feature or change would you like to see made?
To have a report toggle button on the right upper corner, to make it possible for radiologists to write a report.
Why should we prioritize this feature?
Especially useful for the teleradiology workflow.
Making this open-access would make teleradiology PACS development cheaper and more accessible.
This will also make OHIF a preferrable tool for future integrations.

What do you mean by toggle?

Thanks for your reply.
I meant a button which can bring up report screen after clicking from right
side and recede back when present again.
Toggle of report can be turned on or off showing what is written in the
report, which can include clinical history, radiology report, pathology
follow-up.
Only the authorised people would able to make changes in the report (can be
tied with some role functionality within xnat).
Will try to send some images tomorrow of this hypothetical toggle.
On Thu, 14 Nov 2024, 9:32 pm Alireza, @.***> wrote:

What do you mean by toggle?
—
Reply to this email directly, view it on GitHub
https://github.com/OHIF/Viewers/issues/4320#issuecomment-2477452103, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQRVYUSCVXCIOVM5O53K5AD2AUJIVAVCNFSM6AAAAABLWY254GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZXGQ2TEMJQGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I think this extends beyond OHIF's framework capabilities. However, I know companies and startups have developed products using OHIF as a front-end for radiology, with their own backends for storing and displaying reports. As you mentioned, this also falls within the scope of XNAT.

I was able to add Report Editor but there was issue that i was not able to get in the full view or in the viewport .
I use commands module but i was not able to access the viewport
openReport: () => {
const { uiModalService } = servicesManager.services;
if (uiModalService) {
uiModalService.show({
content: Report,
title: 'Report',
contentProps: {
onClose: uiModalService.hide,
},
});
}
},
can u suggest me how to do it

Dear Atul,
I am not sure how to fix this.
Can you post in the ohif and xnat Google community?
Regards
Akshaykumar
On Wed, 4 Dec 2024, 8:47 am Atul Singh, @.***> wrote:

I was able to add Report Editor but there was issue that i was not able to
get in the full view or in the viewport .
I use commands module but i was not able to access the viewport
openReport: () => {
const { uiModalService } = servicesManager.services;
if (uiModalService) {
uiModalService.show({
content: Report,
title: 'Report',
contentProps: {
onClose: uiModalService.hide,
},
});
}
},
can u suggest me how to do it
—
Reply to this email directly, view it on GitHub
https://github.com/OHIF/Viewers/issues/4320#issuecomment-2516575657, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQRVYUSAYWB76ZIMGGNJSNL2D26SVAVCNFSM6AAAAABLWY254GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMJWGU3TKNRVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>


Fix gpt4all model usage

Change from using generate to cpp_generate, which allows for the new_text_handler. That outputs bytes, so update the streaming stdout handler to convert to string.

This has been addressed more thoroughly in another PR


Bump Dependencies #7139516897

Bumps dependencies for product-is. Link : https://github.com/wso2/product-is/actions/runs/7139516897

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jenkins-is-staging seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


MONDO:0007245 neurofibromatosis type 6

Mondo term (ID Label)
MONDO:0007245 neurofibromatosis type 6
Bug/Typo/Error description
multiple typos in the synonyms and the definition, probably related to the display of the e with accent:  "multiple cafC)-au-lait syndrome"
Your nano-attribution (ORCID)
If you don't have an ORCID, you can sign up for one here

thanks @kanems, there were a lot of typos! I think it's a Protege problem.

thanks @kanems, there were a lot of typos! I think it's a Protege problem.


Tutorial: 0d bayesian inference

re-hash the paper. maybe simplify so it doesn't need a pre-computed look up table.

actually, the mini-workshop version is already simplified: https://github.com/vbr-calc/mini-workshop-2023/blob/main/tutorials/t03_interpreting_obs/ex_01_spot_fitting.m

Just need to update slides here

slides done. might tweak code a little still.


[discussion]: Rename all verify_ functions to be check_?

What would you like to discuss?
Given all the discussion/confusing about verify vs validate, maybe it would be easier to rename to something a bit more agnostic, like check. Thoughts?

I like check_; it's simple. And I can't think of any better alternatives 👍

Hmm, actually for the function names themselves maybe I prefer check after all, because I feel like it's more of a synonym for verify/validate than confirm

We decided, opened #860 to track this


Virtualservice gateway analyzer allows 'mesh' as a gateway value

Fixes the first part of https://github.com/istio/istio/issues/17442
As per https://istio.io/docs/reference/config/networking/v1alpha3/virtual-service/#VirtualService, a value of "mesh" should be accepted as a special case.
[X] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@sushicw: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
f153ee642ae96460772f5957304fe1ef4ca4308e
link
/test integ-new-install-k8s-tests_istio

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 kubernetes/test-infra repository. I understand the commands that are listed here.


Add HillClimbingSearchWithSidewaysMoves.java

I am adding HillClimbingSearchWithSidewaysMoves.java from AIMA4e for the issue #357
The code was originally written by Ciaran O'Reilly.
I think this code is important as SidewaysMoves are very helpful in a case of a Plateaux/shoulder.

I am unsure of how all the checks have passed successfully for this PR. I suppose ant aima-core.test-all in .travis.yml currently validates only changes made to aima-core. As for the changes are concerned, the implementation doesn't comply with the search api in AIMA3e branch. I'd rather accompany the implementation with a unit test to be sure of the changes made to a specific branch.

I have reimplemented the code from AIMA4e branch and up to my knowledge that code works well.
Can you please elaborate what you are suggesting?

@norvig Please have a look


Add Observability to all Embedding Models

TODO List

[ ] VertexAI
[ ] Azure
[ ] bedrock: titan, cohere
[ ] Mistral
[ ] Transformers
[ ] qianfan
[ ] minimax
[ ] ZhiPu
[ ] Watson
[ ] PostgresML

Mistral was already instrumented in the first round.


SIGTRAP #0

i'm getting crashes from LEColorPicker. it happens not that often, but still annoying.
Any ideas? thanks.
  libdispatch.dylib                  	0x3b73eab0 _dispatch_xref_dispose$VARIANT$up + 8
  TestApp                           	0x00101f57 -[LEColorPicker .cxx_destruct] (LEColorPicker.m:21)
  libobjc.A.dylib                    	0x3b259c19 _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 129
  libobjc.A.dylib                    	0x3b256c37 objc_destructInstance + 35
  libobjc.A.dylib                    	0x3b256e0b object_dispose + 15
  TestApp                           	0x00101eb3 -[LEColorPicker dealloc] (LEColorPicker.m:851)
  libobjc.A.dylib                    	0x3b265b0b _ZN11objc_object17sidetable_releaseEb + 175

Has anyone found a fix for this because I'm getting the same crash and I don't really want to remove it from my project.


"Expects $label to be returned" is erroneous for onLabelCreate

Reading the dropdown settings the following is said about onLabelCreate:

Allows you to modify a label before it is added. Expects $label to be returned.

This is false. It expects this to be returned.

The docs mention the this context is $label, however the func arguments were incorrect. Fixed in next.


FRQ 3

[x] Take in expression, give a result

Aarav Arora Collaborated: 3/3
Quality Evaluation:
Website is properly functional, all conditions are met, looks good with table
All goals are completed and are properly commented on the code in the frontend repository


get a list of build definitions exist?

can tfs-cli get all build definitions that showed Get a list of build definitions API so I'm trying to trigger all build definitions in specified project from tfs-cli?

you can find this in one of these forks:
grawcho
nchabra's

just to be clear, you can use tfx build definitions list to get all definitions pipe the output via grep or sed to get a list of all build definitions and then iterate over this list with tfx build queue

Thanks, I will do 👍


TableView DnD DragPreview does not render text

Provide a general summary of the issue here
TableView drag and drop's DragPreview doesn't render the text in the preview when selectionStyle='highlight.
🤔 Expected Behavior?
Should render default preview correctly
😯 Current Behavior
An empty rectangle is rendered (ie. text is missing)
💁 Possible Solution
https://github.com/adobe/react-spectrum/blob/1775ff2a331be32c3b27417acc2705ad11019b37/packages/%40react-stately/table/src/TableCollection.ts#L275-L285
Set second column as rowHeader since the first column is the drag handle.
🔦 Context
No response
🖥 Steps to Reproduce
https://codesandbox.io/s/patient-firefly-54vfwr?file=/src/App.js
Version
3.27.0
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
MacOS
🧢 Your Company/Team
DXUE Quarry
🕷 Tracking Issue
No response

We should just iterate through this.columns and find the first one that doesn't have props.isSelectionCell or props.isDragButtonCell.
if (this.rowHeaderColumnKeys.size === 0) {
    this.rowHeaderColumnKeys.add(this.columns.find(column => !column.props?.isDragButtonCell && !column.props?.isSelectionCell).key);
}


Supporting Quantization Aware Training (QAT)

Thank you @sebastian-sz for resolving the relu issue. I can confirm that this new commit fixed the ValueError: Unknown activation function:relu6
I have a follow up on finetuning and creating efficient deployable model using efficientnet-lite. I want to train/finetune the model using Quantization Aware Training (QAT) utility in Tensorflow model optimization (tfmot) (like this).

I tried using the tfmot.quantization.keras.quantize_model on the current lite model and I get the following error:
ValueError: Quantizing a tf.keras Model inside another tf.keras Model is not supported.

This makes sense since current version of quantization does not support recursive model. I was wondering if we can add a utility or a flag to support QAT while creating model?

I also tried to convert the model as a base_model, added a head on top of it and then creted a Keras model using tf.keras.Model, then I got following error:
RuntimeError: Layer rescaling_1:<class 'tensorflow.python.keras.layers.preprocessing.image_preprocessing.Rescaling'> is not supported. You can quantize this layer by passing a 'tfmot.quantization.keras.QuantizeConfig' instance to the quantize_annotate_layer API.

Is there any other way to iterate though the model and select and quantize the supported layers?
I saw a similar open issue on tfmot repo, but it seems stale. Any ideas will be appreciated, I'm also open to contribute, thank you!

As far as I know the tfmot should work for this efficientnet-lite the same as for other Keras models.
I will be looking into those two issues this week.

To clarify my 2nd point, here is what I tried:
Code Snippet (you may need to import/install packages)
def create_model(fine_tune=True):
    base_model=tf.keras.applications.EfficientNetB0(input_shape=(224, 224, 3), include_top=False, weights='imagenet')

    base_model.trainable=fine_tune
    #QAT preparation
    base_model = tfmot.quantization.keras.quantize_model(base_model)

    x=tf.keras.layers.GlobalAveragePooling2D()(base_model.output)
    x=tf.keras.layers.Dense(8, activation="relu")(x)
    x=tf.keras.layers.Dropout(0.2)(x)
    x=tf.keras.layers.Dense(1, activation="sigmoid")(x)

    model=tf.keras.Model(inputs=base_model.input, outputs=x)

    return model

model=create_model(fine_tune=False)

This is to show that even if I use the default Keras model, it throws an error because some layer/s are not compatible with the quantize_annotate_layer API. So to get around that, my idea is to have a QAT flag while creating the model itself and handle it layer by layer, to take care of unsupported layers. Hope this clarifies what I am suggesting.

@ameyparanjape thank you for providing a reproducible example. Upon closer lookup I don't think this is a problem with Keras, but a problem with Tensorflow Model Optimization Toolkit not supporting enough layers.
In case of EfficientNet, these layers are: Rescaling, Normalization and Multiply and even Activation('swish') - maybe more, but I did not check the rest.
In case of EfficientNet-lite, these layers are: Normalization (I didn't need Rescaling and Multiply exists only in SE blocks - they are not present in lite variant).
I have mixed feelings about the removal of preprocessing in lite variant, because now, the lite variant will expect the inputs in range -1, +1 and non-lite in range 0-255. This is risky and violates the rule of "least surprise" - someone might use lite variant with wrong inputs and get trash results.
In the future (depending if the official PR makes it through) I might make a larger refactor of this repository to support the options requested by you by default. At this moment, as I'm still awaing feedback from Tensorflow team, I can offer you a workaround:
Quantize only part of the model
You can apply quantization to all the layers, except to those that produce errors -  Tutorial link
# This will only work with lite backbone
lite_backbone = tf.keras.models.load_model("backbone_lite_notop.h5")

# Slightly modified make model fn:
def make_model(base_model, fine_tune=True):
    base_model.trainable = fine_tune

    x=tf.keras.layers.GlobalAveragePooling2D()(base_model.output)
    x=tf.keras.layers.Dense(8, activation="relu")(x)
    x=tf.keras.layers.Dropout(0.2)(x)
    x=tf.keras.layers.Dense(1, activation="sigmoid")(x)
    return tf.keras.Model(inputs=base_model.input, outputs=x)

model = make_model(lite_backbone)

def apply_quant_to_layers(layer):
    if isinstance(layer, tf.keras.layers.experimental.preprocessing.Normalization):
        return layer
    else:
        return tfmot.quantization.keras.quantize_annotate_layer(layer)

annotated_model = tf.keras.models.clone_model(
    model,
    clone_function=apply_quant_to_layers,
)

qm = tfmot.quantization.keras.quantize_apply(annotated_model)
qm.summary()

The above worked for me in Colab. Let me know if this helps you use TFMOT with lite model variants.

@sebastian-sz Thank you for looking into this, and for an elaborate explanation.
I tried using your code snippet and here are my observations:

If I use the above code snippet as is (assuming "backbone_lite_notop.h5" are no-top weights for lite-0 model), I get this error - ValueError: No model found in config file.
at line - lite_backbone = tf.keras.models.load_model("backbone_lite_notop.h5")
If I use the above code snippet as is (assuming "backbone_lite_notop.h5" is a saved notop lite-0 model), I get this error -

ValueError: Only some Keras activations under 'tf.keras.activations' are supported. For other activations, use 'Quantizer' directly, and update layer config using 'QuantizeConfig'.

On deeper look into this, it appears that this is raised while quantize_annotate_layer() on the last dense layer with Sigmoid activation.
3) To work around this, I added a condition to not include the dense layer in quantize_annotate_layer().
if isinstance(layer, tf.keras.layers.experimental.preprocessing.Normalization) isinstance(layer,tf.keras.layers.Dense):
instead of -
if isinstance(layer, tf.keras.layers.experimental.preprocessing.Normalization)
(I don't like this, but it works)
I'm puzzled about how it worked on your system. Am I missing anything?

Yes, sorry I should clarify: backbone_lite_notop.h5 is a keras saved model. Not only weights but entire model.
About the Issue with tf.keras.activations yes it looks like the last dense layer with sigmoid causes problems.
The snippet will still work if you modify your model function to separate Sigmoid from Dense:
def make_model(base_model, fine_tune=True):
    base_model.trainable = fine_tune

    x=tf.keras.layers.GlobalAveragePooling2D()(base_model.output)
    x=tf.keras.layers.Dense(8, activation="relu")(x)
    x=tf.keras.layers.Dropout(0.2)(x)
    # Separate this:
    x=tf.keras.layers.Dense(1, activation="linear")(x)
    x=tf.keras.layers.Activation('sigmoid')(x)
    return tf.keras.Model(inputs=base_model.input, outputs=x)

This is weird and we should not have to do this. This could be an Issue with TFMOT.

@ameyparanjape Hi, were you able to resolve the issue with the above solution?

Hi @sebastian-sz , sorry about the delayed response, I was swamped with some other stuff past week. I think I will be able to give this a try in coming week. Thank you for following up!

I largely refactored the repository to make it more accessible, easier to use. QAT should be supported now, so I'm closing this issue.
Feel free to reopen if you have any other questions!