getSubscriptionState()  seems abnormal

Node1 has two publisher.
Node2 has one publisher and two subscriber.
The subscribers and publishers are alive.
getSubscriptionState()  sometimes return SUBSCRIBED, and sometimes return NOT_SUBSCRIBED.
and as a result, lots of messages are lost.

@jhx2002 Thanks for raising this question. Could you post the code snippet here in the issue? Did you use iox::popo::SubscriberOptions::subscribeOnCreate and iox::popo::PublisherOptions::offerOnCreate to configure the publisher and the subscriber?

I use version 0.90,  the code refer to examples/icedevery

void Sync::subdata(){
{
iox::popo::SubscriberOptions sub_option;
sub_option.queueCapacity = 10U;
depth_suber_ = std::unique_ptr<iox::popo::TypedSubscriber >
(new iox::popo::TypedSubscriber({"stamp", "img", "empty"}, sub_option) );
depth_suber_->subscribe();
fmt::print("DepthMsg getSubscriptionState {}\n", depth_suber_->getSubscriptionState());
}
{
iox::popo::SubscriberOptions sub_option;
sub_option.queueCapacity = 100U;
pose_suber_ = std::unique_ptr<iox::popo::TypedSubscriber >
( new iox::popo::TypedSubscriber ({"stamp", "posi", "quater"}, sub_option) );
pose_suber_->subscribe();
fmt::print("PoseMsg getSubscriptionState {}\n", pose_suber_->getSubscriptionState());
}
}

@jhx2002 To comprehend it fully here some questions.

Are the 3 publishers in your setup publishing on 3 different services or do some of them share a service and you have a multi publisher setup?
When does the SUBSCRIBE / NOT_SUBSCRIBE switch occur. In the middle of the communication or when you start one of the nodes? Does this occur when you restart Node1 for instance?
Could you retry your code with the current master (it should be API compatible). Do you observe the same behavior?

@jhx2002 When we introduced getSubscriptionState() we only supported one publisher for a topic. The SubscriptionState clearly indicated whether you are connected or not to this single publisher. This is still the case if you compile iceoryx with the option that only one publisher is allowed per topic. If there can be multiple publishers on a topic, the subscription state is no more 100% clear. We currently have a simple approach. If the subscriber calls subscribe, you will be in the state SUBSCRIBED as soon as the discovery loop recognized your wish.
The discovery loop has a 100ms cycle. I.e. it can take up to 100ms from calling subscribe() to be in state SUBSCRIBED. Do you have this issue only during startup? On latest master and with our RC1 that we'll have tomorrow we introduced new options. Default behavior is to offer a publisher on create and to to the subscription for subscribers on create.  And we will be SUBSCRIBED when the c'tor returns. With this setup you would only loose samples if the history is not large enough for the late joining subscriber or if the subscriber has a queue overflow during runtime

Test with version 0.99.
The problem still exists.  some messages are lost.

// publish options
iox::popo::PublisherOptions pub_options;
// the publishers stores the last 10 samples for possible late joiners
pub_options.historyCapacity = 100U;
pub_options.offerOnCreate = true;
static iox::popo::Publisher puber({"stamp", "posi", "quater"}, pub_options);
// subscribe options
void Sync::subdata(){
{
iox::popo::SubscriberOptions sub_option;
sub_option.queueCapacity = 500U;
pose_suber_ = std::unique_ptr<iox::popo::Subscriber >
( new iox::popo::Subscriber ({"stamp", "posi", "quater"}, sub_option) );
fmt::print("PoseMsg getSubscriptionState {}\n", pose_suber_->getSubscriptionState());
}
}
//  result:
send pose  69 times, but receive pose 48 times

@jhx2002 is your question regarding the subscription state sufficiently answered? If yes, please close the issue.
The question regarding data loss is discussed in #668

@jhx2002 I assume that the question was sufficiently answered and close this PR. Feel free to open it again if this is not the case.


Need to exclude/filter few  monitoring requests

Hi,
In our applications, monitoring has been enabled, due to which monitoring requests (like Pushservlet in PEGA, Tealeaf in EXIZEN, dynatracemonitor) would get triggered automatically in certain intervals,
These requests sometime would have high response time so we would explicitly eliminate.
In CxOptimize, these monitoring requests are included in the HAR files that is causing deviation in the response time for transactions.
For instances, the ‘xyz’ transaction is soft navigation, the ‘Backend time’ is 120120 ms (i.e: 120.12 secs). While checking in the HAR file, we found the Pushservlet [application monitoring] request took 2 mins was included in it.
Query:
Is there any option to exclude/Filter those requests in Cxoptimize?
Regards
Kowsalya

Option added to filter requests which are not required as part of collector logic and driven by properties


Fix regenerating site for change in excluded files while tasting

Taste mode does not trigger complete regeneration of the change of a file excluded in the configuration.
Fixes #264

It was a bit too early to submit this PR. The first attempt for the fix was not correct :(

Thanks for your PR!
I just have some concerns, see the comments on the commit.

I was just about to create a similar pull request when I sumbled over this one :smile:
@kodfodrasz Are you going to add some unit tests? Otherwise I'll create a new complete PR.

Hi!
Hang on, I'll try to get to finish this one on this weekend. It has been delayed slightly since I submitted it :) Now that there is someone interested in it i'll prioritize this.
Date: Wed, 18 Nov 2015 23:55:09 -0800
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS>Subject: Re: [pretzel] Fix regenerating site for change in excluded files while tasting (#265)
I was just about to create a similar pull request when I sumbled over this one
@kodfodrasz Are you going to add some unit tests? Otherwise I'll create a new complete PR.
—
Reply to this email directly or view it on GitHub.

I hope these tests are enough. I don't think these methods need anything more complicated.

Thanks! :smiley:

:+1: Thanks


Missing arrow icon on creating RAT profile

Avoid duplicates

[x] This enhancement request has not already been raised before
[x] Enhancement request is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in CWA-Wishlist
[x] If you are proposing a new feature, please do so in CWA-Wishlist

Current Implementation
The screen to register tests is composed of multiple profile cards that redirect to subsequent screens. To indicate the subsequent screens, arrow icons are used on all cards, except on the card to create the RAT profile.

Suggested Enhancement
Add the arrow icon to the card for the creation of the RAT profile. See #3161
Expected Benefits
¯_(ツ)_/¯

Please see https://github.com/corona-warn-app/cwa-app-android/pull/3161#issuecomment-839916617:

Thanks for the PR , but the arrow is not missing. it is done as per design specs

In this case I recommend to either transfer this issue to the https://github.com/corona-warn-app/cwa-wishlist repository or opening a new issue there since the same applies to iOS.

@Ein-Tim in the iOS version of the app, the arrow seems to be present: https://github.com/corona-warn-app/cwa-app-ios/pull/2559

@kechtel True, sorry, this was my mistake. In that case I recommend to open a new enhancement request here.
Sorry again for the mistake. 😕

@kechtel True, sorry, this was my mistake. In that case I recommend to open a new enhancement request here.
Sorry again for the mistake. 😕

@Ein-Tim No worries, I appreciate your suggestion! Not sure whether I got you right, but I thought as well that this issue should be seen as an enhancement, so I used the enhancement template when creating the issue. If there is any required information missing, feel free to let me know!

@kechtel
I noticed that the screenshots on https://www.coronawarn.app/en/screenshots/ don't show version 2.2 where there should be the tile to (Create) Rapid Test Profile, so I opened https://github.com/corona-warn-app/cwa-website/issues/1257 for that point.
It would be good to have an official reference to the implementation on Android and iOS for version 2.2. and it seems there is an inconsistency regarding the arrow. I wonder if that inconsistency goes back to inconsistent design specs between the two operating systems? If so, the designers might like to explain why they chose to have different specs.

@kechtel No, there is nothing missing, everything is alright!
Sorry seems like, I'm a bit lost today, thought this was a bug report.
I'll probably just go to bed now... 😴😅

@MikeMcC399

It would be good to have an official reference to the implementation on Android and iOS for version 2.2. and it seems there is an inconsistency regarding the arrow.

Although this is not an official reference, here's a screenshot from version 2.2.1 on my iPhone 6s:


ARROW-16955: [CI] Upgrade to setup-python action v4

@zeroshade I don't think the failure has anything to do with the change I made as the python version installed for archery is a different one than the used inside the docker container but I wanted to validate with you if you think it might be related. Have you seen this failure before? I have tried locally and it worked:
$ DEBIAN=11 docker-compose run --rm debian-go-cgo-python
...
+ python test_export_to_cgo.py
test_get_batch (__main__.TestGoToPython) ... ok
test_get_schema (__main__.TestGoToPython) ... ok
test_record_batch (__main__.TestPythonToGo) ... record batch matches huzzah!
ok
test_schema (__main__.TestPythonToGo) ... schema matches! Huzzah!
ok
test_batch_roundtrip (__main__.TestRoundTrip) ... ok
test_schema_roundtrip (__main__.TestRoundTrip) ... ok

----------------------------------------------------------------------
Ran 6 tests in 0.045s

OK
...

and the version is the same one that gets installed on the runner:
$ DEBIAN=11 docker-compose run --rm debian-go-cgo-python /bin/bash
root@88d538328e7f:/go# python --version
Python 3.9.2

This is the failure on the github runner:
 ======================================================================
FAIL: test_record_batch (__main__.TestPythonToGo)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/arrow/go/arrow/cdata/test/test_export_to_cgo.py", line 103, in test_record_batch
    cgotest.importRecordBatch(self.ptr_schema, self.ptr_array)
  File "/usr/lib/python3.9/contextlib.py", line 124, in __exit__
    next(self.gen)
  File "/arrow/go/arrow/cdata/test/test_export_to_cgo.py", line 82, in assert_pyarrow_memory_released
    self.assertEqual(
AssertionError: 352 != 0 : PyArrow memory was not adequately released: 352 bytes lost
----------------------------------------------------------------------
Ran 6 tests in 0.107s

@kou I think the single job failure is not related (maybe we can re-run the failed job?). What do you think about this change?

@raulcd I haven't managed to narrow down what makes that intermittent failure, I'm guessing there's some nuance to the Python garbage collector / how it interacts with calling the callback to Go that I'm missing. Generally if you just re-run the job it'll go away. Once I have the time to dig deeper on that I'll try to fix it, but for now just re-running it should be sufficient.


CreateSrsMedia.ps1 - Is It Deprecated?

I'm using the CreateSrsMedia.ps1 script v1.5.0 with the latest Windows 10 Enterprise ISO (10.10.18362.418). The script has not been updated to support this latest version, so I modified it to bypass the version mismatch between the $img.Version and $KitOsRequired variables.
The installation media creation completes successfully, but the Surface Pro 5 I am testing SRSv2 is completing the installation with the error "Windows could not apply unattend settings during pass [offlineServicing]".

I have managed to get the system working by configuring the attend.xml, but I had to use WICD to create my own provisioned package since the console is not working the same as it did on Win10 build 1709

@JREID96 thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Run without docker?

I really want to try this out, but installing Docker seems very heavyweight just to get this to run. Is there an alternate way to run the program?

Wow, first issue in here ;) Thanks a lot for your interest, and please forgive me my late response, I missed the notification. Um, I specially provided docker credentials to make it easy to run ;)
However, you can set up a simple nginx (as defined in https://github.com/khronedev/coloniae/blob/master/nginx.conf) server with PHP support (a small script is being used for bundling assets - like buildings). The JS files should work out of the box (no need to transpile anything), after they're being served from localhost domain.
I can try to host it using GitHub pages (if only I'll find time to do so) - that would be helpful I guess. Interested?

No problem :)
That's fair enough, but I've never used Docker before and it's a 500MB download! I would be interested in seeing it hosted somewhere, if you have the time.

I liked this Project , but sadly I dont know this Docker , just wanted PHP to edit for hosted browser game .

Thanks @khronedev! Just gave the game a go, it looks really nice. Unfortunately my serving folk were very reluctant to pick up my wares for some reason so I didn't get very far. Nice project though 👍

@Danjb1 you probably need to connect your buildings with roads ;)

My Weaver's Hut was adjacent to the warehouse AND connected by road - still no luck :(


genymotion: 3.2.1 -> 3.3.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/genymotion/versions.
meta.description for genymotion is: "Fast and easy Android emulation"
meta.homepage for genymotion is: "https://www.genymotion.com/"
meta.changelog for genymotion is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.3.0 with grep in /nix/store/3ck7iipa2vmmrxlhj0y2yx3px0i28nrr-genymotion-3.3.0
found 3.3.0 in filename of file in /nix/store/3ck7iipa2vmmrxlhj0y2yx3px0i28nrr-genymotion-3.3.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
genymotion

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3ck7iipa2vmmrxlhj0y2yx3px0i28nrr-genymotion-3.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A genymotion https://github.com/r-ryantm/nixpkgs/archive/004aaa1f40d9c82fbd4f0aac6a5d9127ff09d357.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3ck7iipa2vmmrxlhj0y2yx3px0i28nrr-genymotion-3.3.0
ls -la /nix/store/3ck7iipa2vmmrxlhj0y2yx3px0i28nrr-genymotion-3.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

genymotion

Maintainer pings
cc @puffnfresh for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/genymotion/versions.
meta.description for genymotion is: "Fast and easy Android emulation"
meta.homepage for genymotion is: "https://www.genymotion.com/"
meta.changelog for genymotion is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.3.1 with grep in /nix/store/mak5fvzp511p5zhxc16h4m0sx9rqhm4w-genymotion-3.3.1
found 3.3.1 in filename of file in /nix/store/mak5fvzp511p5zhxc16h4m0sx9rqhm4w-genymotion-3.3.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
genymotion

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/mak5fvzp511p5zhxc16h4m0sx9rqhm4w-genymotion-3.3.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A genymotion https://github.com/r-ryantm/nixpkgs/archive/311a6b08920da6b8879eaa0c68a286093b4894f8.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/mak5fvzp511p5zhxc16h4m0sx9rqhm4w-genymotion-3.3.1
ls -la /nix/store/mak5fvzp511p5zhxc16h4m0sx9rqhm4w-genymotion-3.3.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

genymotion

Maintainer pings
cc @puffnfresh for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/genymotion/versions.
meta.description for genymotion is: "Fast and easy Android emulation"
meta.homepage for genymotion is: "https://www.genymotion.com/"
meta.changelog for genymotion is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.3.2 with grep in /nix/store/02gmsybbmlidmm555ll6q1rryq2rhq8n-genymotion-3.3.2
found 3.3.2 in filename of file in /nix/store/02gmsybbmlidmm555ll6q1rryq2rhq8n-genymotion-3.3.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
genymotion

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/02gmsybbmlidmm555ll6q1rryq2rhq8n-genymotion-3.3.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A genymotion https://github.com/r-ryantm/nixpkgs/archive/9c430bd6cc8ea29904ed7a8e88b6a811513bb234.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/02gmsybbmlidmm555ll6q1rryq2rhq8n-genymotion-3.3.2
ls -la /nix/store/02gmsybbmlidmm555ll6q1rryq2rhq8n-genymotion-3.3.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

genymotion

Maintainer pings
cc @puffnfresh for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/genymotion/versions.
meta.description for genymotion is: Fast and easy Android emulation
meta.homepage for genymotion is: https://www.genymotion.com/
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.3.3 with grep in /nix/store/1qycdqaw9b9abqfpgxs9cmh3j7y4j86m-genymotion-3.3.3
found 3.3.3 in filename of file in /nix/store/1qycdqaw9b9abqfpgxs9cmh3j7y4j86m-genymotion-3.3.3

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
genymotion

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1qycdqaw9b9abqfpgxs9cmh3j7y4j86m-genymotion-3.3.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A genymotion https://github.com/r-ryantm/nixpkgs/archive/4a0a84ece7aaa804d8caa02ea85e7dfbe96e082f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1qycdqaw9b9abqfpgxs9cmh3j7y4j86m-genymotion-3.3.3
ls -la /nix/store/1qycdqaw9b9abqfpgxs9cmh3j7y4j86m-genymotion-3.3.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

genymotion

Maintainer pings
cc @puffnfresh for testing.


chore(release): 1.4.0

Features

Keystore: Introduce additional KMSConfiguration options (#316) (f3a0a52)

The Hierarchical Keyring's Keystore now supports four (4) KMSConfigurations:

kmsKeyArn
kmsMRKeyArn
discovery
mrDiscovery

See our JavaDocs for details on how these options effect the relationship between a Keystore and KMS.
Maintenance

.NET : Bump dependency BouncyCastle.Cryptography from 2.2.1 to 2.3.1. (#329)
.NET : Bump dependency AWSSDK.Core from 3.7.300.2 to 3.7.304.2. (#329)
Java : Move InternalResult into StandardLibrary(Internal) (#325)

Issue #, if available:
Description of changes:
Squash/merge commit message, if applicable:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I am so annoyed that I cannot merge this...


Fix bug where immediate search would throw error if no previous query

Searching with findPersistentNext or findPersistentPrev will immediately run a search with the previous query. However it will throw and error if no previous query exists.
This PR fixes this bug by preventing immediate execution if no previous query is set.

Thanks. Merged as e47ab5f

Awesome, thanks


HW upgrade - Increase Dual Supply range

Upgrade DualSupply to +/-9V

Requires different dc-dc converter. Either continue using multiple IC with higher input/output range or replace all ICs with single isolated dc-dc converter brick

Currentlly using +9V input, +/-5V output +/- 77mA output
Change to +/12V output @ +/- 77mA.  Maybe could get away with 1W DC-DC...

Dependent on replacing other +/-5V ICs
#2 (HW Upgrade - Replace PGA)
#6 (HW Upgrade - Replace Offset SPDT)

Candidates:

RY-0509D

Used TRN10522
Resolved in 884bd39


Enable application UI

/hold

/unhold

@clyang82 if need review on this let me know.

Yes. Thanks @nirrozenbaum It is ready for reviewing.
assign @nirrozenbaum


Feature/roe 11 integrate account sign in page

Integrate account sign in page

Add node-session-handler, ioredis and cookie-parser dependencies
Add presenter page, routing and session configs - COOKIE_SECRET, COOKIE_DOMAIN and CACHE_SERVER
Integrate node session handler
Add session util
Add auth logic and unit test
Add placeholder controller and view for presenter page
Add auth on presenter page
Rename the index controller, test and view to landing
Add forceExit to force Jest to exit after all tests have completed (redis is keeping Jest from exiting nicely)
Refectory and improvement

Resolves ROE-11

Thanks Mark for the approval, I will wait the https://github.com/companieshouse/overseas-entities-web/pull/17 before merging to reduce complexity on the other PR


Tips and todo's to implement for good design

Every instantiation is used in main class. Use Singleton instead.
Every interface with one method use it like a functional interface (@FunctionalInterface) and lamda instead of method usage.
Implement tests for code usage and coverage using Sonar.
Instead of implement your own log, use lombok tag @Slf4j
Use fastutil for utility of map classes base.
Use json jackson-library for easy ORM.
Use lombok @Getter/@Setter instead of creating code.
Use lombok @EqualsAndHashCode lombok tag instead of creating code.
Use Hazelcast for caching.
Use MapStruct for converting classes: https://mapstruct.org/

For todo future: Use Hikari database for time cooldown.
@Gabitzuu @thmihnea

Ah...totusi, de retinut pe viitor :D


new powershell default keeps opening on startup despite having set the default back to cmd

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.60.0
OS Version: Win10 pro x64

Steps to Reproduce:

ctrl-shift-p -> Terminal: selected default profile -> set "command prompt" as the default terminal to use (because powershell does not support cross-platform syntax like & chaining, making it utterly useless for cross-platform projects)
make sure the workspace has a terminal open, and that it's a "command prompt" terminal.
close VS code
reopen VS code for the same dir/project
VS code reopens with a powershell terminal instead of a "command prompt" terminal.

Rechecking the default terminal profile, it's still set to "command prompt", so this feels like a bug, especially given the next behaviour:

click the powershell terminal
type exit and hit enter
the integrated terminal panel disappears
ctrl-shift-` to open a new terminal
the terminal panel is restored, with the new terminal opened being the expected "command prompt" terminal.

/duplicate of #132150 or #128763

@IllusionMH the first one is about remote workspaces, which doesn't apply here, the second appears to be a closed issue that concluded with a workaround, not a proper fix?

Why workaround? First issue closed with commit to main branch as third action on it. It needs to be added to recovery for stable release.
Second issue is basically same but found in Insiders before 1.60 and reproducible without remote.

ah. Missed that part, thanks.


Don't save byte[] as base64

Jackson saves byte[] in base64 format. According to Stackoverflow this might have been done to save  space on disk. But in our case we often want to compare the byte[] in our .json to a byte[] in the debugger. This is e.g. the case if a byte[] parameter has changed so that a Sample is not found anymore.
So we should provide a custom serializer/deserialzer for Jackson that encodes byte[] in a readable form.  This serializer/desrialzer should be default.

See https://github.com/ppi-ag/deep-sampler/blob/920df5e3d1bb6a24b207355830182d9245081c7f/deepsampler-provider/src/testFixtures/java/de/ppi/deepsampler/provider/common/SamplerAspectTest.java#L533 for a starting point


fix: New entity explorer UI improvements

Description
Fixes #11015
Type of change

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Tested locally for the UI fixes

Checklist:

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

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: bug-fix/11015-new-entity-explorer-fixes-and-improvements

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
55.82 (0.05)
37.2 (0.07)
35.83 (0.01)
56.16 (0.03)

:green_circle:
app/client/src/ce/constants/messages.ts
77.22 (0.22)
100 (0)
32.45 (0.65)
82.11 (0.19)

:red_circle:
app/client/src/pages/Editor/Explorer/Datasources.tsx
90.24 (-1.87)
57.14 (-5.36)
42.86 (-7.14)
89.47 (-1.96)

:sparkles: :new:
app/client/src/pages/Editor/Explorer/common.tsx
88.89
100
0
88.89

:green_circle:
app/client/src/pages/Editor/Explorer/helpers.tsx
84.91 (8.44)
52.44 (2.44)
66.67 (16.67)
82.61 (9.28)

:red_circle:
app/client/src/pages/Editor/Explorer/Entity/Placeholder.tsx
60 (-40)
100 (0)
0 (-100)
60 (-40)

:green_circle:
app/client/src/pages/Editor/Explorer/Entity/index.tsx
91.76 (1.17)
85.71 (2.85)
84.21 (0)
91.36 (1.24)

:green_circle:
app/client/src/pages/Editor/Explorer/Files/index.tsx
76.32 (1.32)
33.33 (16.66)
40 (-10)
80.56 (0.56)

:green_circle:
app/client/src/pages/Editor/Explorer/Pages/index.tsx
81.67 (1.31)
66.67 (4.17)
42.86 (4.4)
81.67 (1.31)

:red_circle:
app/client/src/pages/Editor/Explorer/Widgets/WidgetGroup.tsx
94.12 (-5.88)
74.65 (0.65)
100 (0)
93.94 (-6.06)

:green_circle:
app/client/src/utils/autocomplete/TernServer.ts
52.94 (0.23)
41.67 (0.84)
36.21 (0)
56.99 (0.25)

/ok-to-test sha=b02ac00

/ok-to-test sha=cbd1b34

/ok-to-test sha=2a81f81

/ok-to-test sha=69239a6

/ok-to-test sha=9f0326d

/ok-to-test sha=2be150c

/ok-to-test sha=7bd1b00

/ok-to-test sha=3ad68ae

/ok-to-test sha=03a6046

/ok-to-test sha=6dd1bc6

/ok-to-test sha=69f1a89

/ok-to-test sha=17dd28a

/ok-to-test sha=fe486c4

/ok-to-test sha=2460637

/ok-to-test sha=15b9edc

/ok-to-test sha=15b9edc

/ok-to-test sha=5f1825d

/ok-to-test sha=13d08d4

/ok-to-test sha=9c077e8

/ok-to-test sha=076e1b6

/ok-to-test sha=0390627

/ok-to-test sha=46651d3

/ok-to-test sha=1ec095b

/ok-to-test sha=cd476df

/ok-to-test sha=9d97fb6

/ok-to-test sha=17a2cd5

/ok-to-test sha=cc5d49e

/ok-to-test sha=f199ca9

/ok-to-test sha=59c3e2e

/ok-to-test sha=73d5471

/ok-to-test sha=f3dc477

/ok-to-test sha=9e5fbd7

/ok-to-test sha=9497557

/ok-to-test sha=4997367

/ok-to-test sha=7be11cd


Preset combination plots

I think it'd be nice to have commonly used plots like:
ds.hvplot.preset.line_area()  (like the line * area in https://hvplot.holoviz.org/user_guide/Plotting.html)
line (show individual data points with alpha set to like 0.05) * line (mean of lines) * area (min + max points)
ds.hvplot.preset.line_label()
line * label (label y for the last value of x)
ds.hvplot.preset.bar_line()  (like http://arctic.som.ou.edu/tburg/products/covid19/files_states/rolling_total_summary.png)
bar (show individual data points) * line (rolling mean)
ds.hvplot.preset.scatter_violin() (like https://davidbaranger.com/2018/03/05/showing-your-data-scatter-box-violin-plots/)
scatter (show individual data points) * violin (aggregate of data points)
ds.hvplot.preset.scatter_hex()
scatter (show individual data points) * hex (aggregate of data points)
And more

Sounds useful and easy enough to do, but the real work is then on documenting the options for such plots, putting examples on the website, etc.  And there are an infinite number of them...

Haha should I give this a try? I think even though there's an infinite number of them, we can start with the most commonly seen ones (which I think is listed above and probably is opinionated).
I imagine it would be a separate docs section like:
https://hvplot.holoviz.org/user_guide/Statistical_Plots.html
But would be like
https://hvplot.holoviz.org/user_guide/Combination_Plots.html
or preset_plots

I think that I'd prefer actually documenting these sorts of use case better. Moving towards Diataxis would help with that, we could populate the How-to section with such examples.


Short solution needed: "Authentication with Nginx and htpasswd" (nginx)

Please help us write most modern and shortest code solution for this issue:
Authentication with Nginx and htpasswd (technology: nginx)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

Authentication with Nginx and htpasswd


nix: set up build environment

this is how I use it:
winston@stargate ~/jh/jh_extract $ go build
go: command not found
winston@stargate ~/jh/jh_extract $ nix-shell

[nix-shell:~/jh/jh_extract]$ go build

[nix-shell:~/jh/jh_extract]$ go version
go version go1.18.2 linux/amd64


chore(transformer): treat all React Refresh tests as ESM syntax

related: #5612

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5644  👈
#5630
#5642
#5638
#5629
#5528
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Dunqing and the rest of your teammates on  Graphite


Update AnotherAuthorUpdatedArticle.md

@seshenoy : Thanks for your contribution! The author, @meganbradley, has been notified to review your proposed change.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

IntegrationTest/BuildIntegartionTestFiles/AnotherAuthorUpdatedArticle.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Test UMUI jobs

resolution_fixed   |    by<EMAIL_ADDRESS>
Ensure that the UMUI jobs designed for Raijin run on accessdev.
Priority jobs include:

ACCESS 1.3 AMIP
UM 7.3 Release Test
UM 8.2 Release Test
UM-KPP Coupled Model

Issue migrated from trac:16 at 2024-01-31 17:08:54 +1100

<EMAIL_ADDRESS>commented

Great, is there a place where these are already documented?

<EMAIL_ADDRESS>commented

I have got some standard test jobs set up on accessdev (using the accesscollab umui database).
sabta: ACCESS1.3 + UKCA
sabtf: UM8.2 GA4
sabtg: UM8.2 GA4 + UKCA

<EMAIL_ADDRESS>commented

Need to resolve subversion access first - see #18

<EMAIL_ADDRESS>changed status from new to accepted

<EMAIL_ADDRESS>commented

Not at the moment, it is still a work in progress, I still have a few changes I want to make before making them official standard runs. The jobs all run anyway, and I have put the ancillaries and hand edits, etc. in standard locations, so the jobs should be able to be copied and run by anyone without modification.
What would you suggest to include as documentation- absolute norms from the run and checksums like you have in http://climate-cms.unsw.wikispaces.net/AMIP ?

<EMAIL_ADDRESS>changed reviews which not transferred by tractive

<EMAIL_ADDRESS>commented

Yeah, I think that's a good base to start off with, lets people know the run is working correctly. We could tie it into the ticket system as well if we want to (e.g. something like https://accessdev.nci.org.au/trac/wiki/Releases/GA6.0)

ibc599 commented

Can this be closed?

<EMAIL_ADDRESS>changed status from accepted to closed

<EMAIL_ADDRESS>commented

Peter mentioned that Say had a tool for running a UMUI job from the command line, might be worth adding this to the automated test suite?

<EMAIL_ADDRESS>removed milestone (was accessdev v1.0)

<EMAIL_ADDRESS>changed resolution from `` to fixed


Fetch users' avatar image

Would be good if users' avatars were fetched so web interface will look prettier
resolution: 300x300 px

not needed


[W5.11][F11-A1] Sheikh Umar

I added a sort section below the list section that states the entries will be sorted in ascending order, and I updated the word "sensitive" to "insensitive".

Reviewed.


docs: fix typo in configuration

Simple documentation fix

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


Dependency Injection using Hilt

Description
This PR starts to introduce dependency injection using hilt. So far it only covers backend connectivity. It also inlines the WebRequestBuilder into the matching Service classes.

A PR based on this one that adds DI via Dagger was merged with #1069

I understand that this PR also contains changes that add DI to various components but we need to make more granular PRs for each component to add DI.


Bender not updating git dependencies that have already been cloned

Description:
I've observed that when using Bender with dependencies pinned to a specific branch, the tool may not update those dependencies if they've already been cloned, even if new commits are pushed to that branch.
To Reproduce:
Set up a my_package with the following dependencies:
package:
  name: my_package
dependencies:
  my_common: { git: "/my.git.repo/common.git", rev: my_branch }

Run any Bender command within the my_package repo for the first time. This causes Bender to clone my_common at the HEAD of my_branch.
Push a new commit to my_branch.
Inside the my_package repo, run bender update -f.
Expected Behavior:
The my_common dependency should be updated to the latest commit on my_branch.
Actual Behavior:
The my_common dependency is not updated. Upon running bender update -f --debug, it appears that already-cloned dependencies are treated as Path dependencies, not Git dependencies. This seems to prevent them from being updated.
Questions:

Is this behavior intentional?
Would there be any concerns if I propose a PR to introduce a flag that forces Bender to fetch the HEAD of the branch for each Git dependency?

Thank you for pointing this out! Unfortunately, I was not able to reproduce this issue, for me the new commit was fetched properly.
While generally bender keeps git repositories linked as such (check the Bender.lock), if you have a checkout_dir specified in your workspace in your top Bender.yml, bender treats all dependencies as path dependencies after it cloned them. This is to allow for manual manipulation without bender interfering on the next update (bender assumes you want to manipulate things if they are not in the hidden directory), as your changes may likely be overwritten otherwise. Maybe this is interfering with your update?
Normally, I strongly discourage using branch names to reference dependency versions, especially for repositories you are not in control of, as these may be updated and lead to breaking changes in your project.
Of course, if the issue persists and you can implement a bugfix, I would be happy to review it in a PR!


Error Generating Breakdown with v0.10.35

When attempting to run a Infracost breakdown using v0.10.35 it resulted in a report with no resources and therefore no costs.

Attempting to run within the --debug-report  flag resulted in the following Go routine error and no report being generated
[
2024-04-10T10:32:30+01:00 DBG IsCloudEnabled inferred from Config.EnabledDashboard is_cloud_enabled=false,
Error: An unexpected error occurred

bytes.Buffer.WriteTo: invalid Write count
goroutine 1 [running]:
runtime/debug.Stack()
	/opt/hostedtoolcache/go/1.22.1/x64/src/runtime/debug/stack.go:24 +0x5e
main.Run.func1()
	/home/runner/work/infracost/infracost/cmd/infracost/main.go:78 +0xb4
panic({0x29e26e0?, 0x3b30380?})
	/opt/hostedtoolcache/go/1.22.1/x64/src/runtime/panic.go:770 +0x132
bytes.(*Buffer).WriteTo(0xc0004c9d70, {0x3b36100?, 0xc000099010?})
	/opt/hostedtoolcache/go/1.22.1/x64/src/bytes/buffer.go:263 +0xee
github.com/rs/zerolog.ConsoleWriter.Write({{0x3b36100, 0xc000099010}, 0x1, {0x33dac7f, 0x19}, {0xc00024f080, 0x4, 0x4}, {0x0, 0x0, ...}, ...}, ...)
	/home/runner/go/pkg/mod/github.com/rs/zerolog@v1.31.0/console.go:145 +0x5c5
github.com/rs/zerolog.LevelWriterAdapter.WriteLevel(...)
	/home/runner/go/pkg/mod/github.com/rs/zerolog@v1.31.0/writer.go:27
github.com/rs/zerolog.(*Event).write(0xc000499a40)
	/home/runner/go/pkg/mod/github.com/rs/zerolog@v1.31.0/event.go:80 +0x103
github.com/rs/zerolog.(*Event).msg(0xc000499a40, {0x347255b, 0x34})
	/home/runner/go/pkg/mod/github.com/rs/zerolog@v1.31.0/event.go:151 +0x21a
github.com/rs/zerolog.(*Event).Msg(...)
	/home/runner/go/pkg/mod/github.com/rs/zerolog@v1.31.0/event.go:110
github.com/infracost/infracost/internal/config.(*RunContext).IsCloudEnabled(0xc0001209a0)
	/home/runner/work/infracost/infracost/internal/config/run_context.go:267 +0xfe
main.loadGlobalFlags(0xc0001209a0, 0xc000554008)
	/home/runner/work/infracost/infracost/cmd/infracost/main.go:358 +0x9c
main.newRootCmd.func1(0xc000554008, {0x3396273?, 0x4?, 0x3396233?})
	/home/runner/work/infracost/infracost/cmd/infracost/main.go:156 +0x2b7
github.com/spf13/cobra.(*Command).execute(0xc000554008, {0xc0004c9ce0, 0x3, 0x3})
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:835 +0x5c3
github.com/spf13/cobra.(*Command).ExecuteC(0xc0004fc588)
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974 +0x38d
github.com/spf13/cobra.(*Command).Execute(...)
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902
main.Run(0x0, 0x0)
	/home/runner/work/infracost/infracost/cmd/infracost/main.go:96 +0x186
main.main()
	/home/runner/work/infracost/infracost/cmd/infracost/main.go:40 +0x1f4

Environment:
Infracost v0.10.35+v0.10.35-v0.10.35

An unexpected error occurred. We've been notified of it and will investigate it soon. If you would like to follow-up, please copy the above output and create an issue at: https://github.com/infracost/infracost/issues/new,
2024-04-10T10:32:30+01:00 DBG 'POST' request to '/event' using trace_id: '3c470c26-a602-4ccc-a8c3-dcfde181b654',

One thing I did notice about the project that this occurred on it was using some community providers such as
 postgresql = {       source  = "cyrilgdn/postgresql"       version = "1.20.0"     } as the projects that were just using Hashicorp providers seemed to work without issue or is this just a coincidence?

Hello! Thank you for creating the issue!
Indeed --debug-report flag causes an error. We'll look into this. I've created a separate ticket to track that: #3011.
For the custom provider, you are right, Infracost doesn't support that. It only supports AWS/Azure and Google providers.
You can run the breakdown command with INFRACOST_LOG_LEVEL=debug env var and see the output. It should show a line like Unsupported provider postgresql.
Could you please clarify that your repo has only this community provider and nothing else? CLI should correctly evaluate aws/azure/google stuff and show their breakdown, but ignore the unsupported ones.

Thank you for the timely response!
So after adding INFRACOST_LOG_LEVEL=debug and re-running the breakdown command there is quite a lot of output to digest one notable of which I noticed was
2024-04-10T12:03:50+01:00 DBG evaluated outputs are the same as prior evaluation, exiting and returning expanded block module_name=root module_path=. module_source= parser_path=. project_name= project_path=. provider=terraform_dir
2024-04-10T12:03:50+01:00 DBG fetching attribute value attribute_name=source block_name=module.consumer_manager_alarm project_name= project_path=. provider=terraform_dir
2024-04-10T12:03:50+01:00 DBG using path '' for module 'module.consumer_manager_alarm' based on key 'consumer_manager_alarm' module_name=root module_path=. module_source= parser_path=. project_name= project_path=. provider=terraform_dir
2024-04-10T12:03:50+01:00 DBG failed to load module module.consumer_manager_alarm ignoring error="missing module with source 'registry.terraform.io/../modules/alarm ../modules/alarm' -  try to 'terraform init' first" module_name=root module_path=. module_source= parser_path=. project_name= project_path=. provider=terraform_dir

so for references /modules/alarm is a local module for the terraform project but if I am reading correctly Infracost is attempting to get that from the central registry which I don't believe is correct. This has repeated for all of the other modules as well which has probably want has resulted in 0 cloud resources being found
The structure of the project is most of the resources themselves are in modules with the main.tf bringing in those modules and passing the required parameters to create the infrastructure
I did also confirm that terraform init was run prior to running the breakdown command

Interesting. Is it possible to create a minimal TF example that we could use to reproduce it?

Sorry meant to get back to this. I also did some ruling out of issues running locally by adding the infracost calls as step within a Bitbucket Pipeline am using here is the pipeline step for context
- step: &estimated-cost-comparison
        name: Run Infracost to check costs and policies
        image: infracost/infracost:ci-0.10
        runs-on:
          - self.hosted
          - global
        artifacts:
          - infracost.json
        script:
          # Clone the base branch of the pull request (e.g. main/master) into a temp directory.
          - git clone<EMAIL_ADDRESS>--branch=$BITBUCKET_PR_DESTINATION_BRANCH --single-branch /tmp/base
          # Generate an Infracost cost estimate baseline from the comparison branch, so that Infracost can compare the cost difference.
          - infracost breakdown --path=/tmp/base/dev --format=json --out-file=infracost-base.json --usage-file=/tmp/base/dev/estimated-usage.yml
          # Generate an Infracost diff and save it to a JSON file
          - infracost diff --path=./dev --compare-to=infracost-base.json --format=json --out-file=infracost.json --usage-file=./dev/estimated-usage.yml
          # Posts a comment to the PR using the 'update' behavior. This creates a single comment and updates it.
          - infracost comment bitbucket --path=infracost.json --repo=$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG --pull-request=$BITBUCKET_PR_ID --bitbucket-token=$BITBUCKET_AUTO_USERNAME:$BITBUCKET_AUTO_APP_PW --behavior=update

and that has worked for the project in question which has produced a comment on the PR I have made which looks as follows

but when running same commands locally still get the original issue. Just wondering if anything else I should be checking

No worries at all! :) Thank you for the provided info! The pipeline looks correct to me. 👍
So what I'd expect from the run:

If the project has only the cyrilgdn/postgresql provider and its resources, the estimate would be empty as Infracost doesn't support such a provider.
If in addition to the custom provider resources the project has resources from aws/azure/google providers, they should be evaluated fine and it would result in an estimate with some costs.

Looking at the screenshot it seems to work as the second scenario: aws_db_instance is evaluated correctly.
I've also noticed, that the comment table shows Cost change column. We replaced this column with a breakdown of baseline and usage costs in the latest release, so it's strange to see with infracost/infracost:ci-0.10 image. Could you please double check that it's not cached anyhow? Here's how it should look like now:

Yeah so the Docker Daemons behind the Bitbucket Runners have caching enabled (not sure on the duration) but will more than likely be the explanation for the above.
I am happy for this issue to be closed.
Thank you very much @vdmgolub  for taking the time out to look into and advise on this issue. It is very much appreciated

Hope this resolves it. Thank you for all the provided info 🙏. I'm going to close the issue for now, but please reopen it if this ends up being something different.
Happy Friday to you and have a great weekend! :)


Add post-commit hook for prettier

You can run gulp format or gulp lint! before committing but it's easy to forget. Would be nice if something just tacked on commits that did that.

Are you open to this running pre-commit rather than post-commit? The prettier documentation recommends a simple way to get set up with pre-commit hooks. I've submitted a PR for it.
The nice thing about this approach is that it ensures any file modified is cleaned up before the commit message is even entered (and all automatically without gulp commands needed).

Yup, that approach works for me. Closing this.


fetch flip card details dynamically

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #101
Test URLs:

Before: https://main--shredit--stericycle.aem.page/en-us/about
After:

https://flip-cards--shredit--stericycle.aem.page/en-us/about
https://flip-cards--stericycle-shared--aemsites.aem.page/en-us/about

@MarquiseRosier Can we merge this?


Optimize the evaluation of IN for large lists using InSet

Which issue does this PR close?

Closes #2093.
Rationale for this change
@yjshen Thanks for your insight! ❤
Optimized of In_List clause, when all filter values of In clause are static.
Default list values use Vec to store, it  has time complexity O(n) to check contains,  In some situation use Set it has complexity O(1)
test sql:
select count(*) from orders where o_orderkey in (2785313,
2785314,
2785315,
2785316,
''' (1000 elements)
2786311);

Master branch:
2786309,
2786310,
2786311);
+-----------------+
| COUNT(UInt8(1)) |
+-----------------+
| 255             |
+-----------------+
1 row in set. Query took 4.713 seconds.

This pr:
2786309,
2786310,
2786311);
+-----------------+
| COUNT(UInt8(1)) |
+-----------------+
| 255             |
+-----------------+
1 row in set. Query took 0.566 seconds.

What changes are included in this PR?
Are there any user-facing changes?

Thanks everyone who contributed code and review to this PR 🎉


iOS could use UIImpactFeedbackGenerator

Feature Request:
It would be awesome to have an option to use the iOS advanced haptic feedback instead of the standard long vibrate command on iOS. Something like:
var impact = new UIImpactFeedbackGenerator(UIImpactFeedbackStyle.Heavy);
impact.Prepare();
impact.ImpactOccurred();

Cool! Let me take a look.

I tested it on a device and it doesn't seem to do anything... I have an iPhone 6... Maybe it is only on the iPhone 6s and 7s?

Looking at this thread it looks no good for now :(
https://twitter.com/TimOliverAU/status/778105029643436033
Basically you have to use private selectors to see if the device supports it and there is no way of knowing if it actually works.

It must be a 6s or 7 feature. I have a 7, and it works on my device. In my code, hackily check for iPhone7+ using this https://github.com/dannycabrera/Get-iOS-Model and call UIImpactFeedbackGenerator if 7+. Otherwise, I call the usual AudioToolbox.SystemSound.Vibrate.PlaySystemSound()

It is a good workaround for personal apps, but wouldn't feel comfortable putting it in the library. perhaps Apple will fix their API to check if haptics is there... silly it doesn't expose it.


chrome debugging websocket at port 9222

@drzraf wrote in #103 :
Trying Chrome + debugging websocket at port 9222:
$ x11docker --cap-default -g --nxagent --no-entrypoint -- -p 9222:9222 -- zenika/alpine-chrome:with-webgl chromium-browser --no-sandbox --remote-debugging-address=<IP_ADDRESS> --remote-debugging-port=9222
Sadly, ws connection does not work, contrary to the bare run (not using the webgl build image which does not run natively):
$ docker container run -it -p 9222:9222 --rm --entrypoint ''  zenika/alpine-chrome:86 chromium-browser --no-sandbox --remote-debugging-address=<IP_ADDRESS> --remote-debugging-port=9222 --headless
From the two docker inspect I couldn't spot what's wrong.

docker-inspect-native-alpine-chrome-86.txt
x11docker-inspect-alpine-chrome-webgl.txt

On the first glance I see two differences:

Different images zenika/alpine-chrome:with-webgl vs  zenika/alpine-chrome:86. Try x11docker with zenika/alpine-chrome:86 if the debuuging websocket works with that image.
x11docker sets up an unprivileged user, native docker runs with root. Try with --user=root.

$ x11docker --user=root --cap-default -g --nxagent --no-entrypoint -- -p 9222:9222 -- zenika/alpine-chrome:86 chromium-browser  --no-sandbox --remote-debugging-address=<IP_ADDRESS> --remote-debugging-port=9222
still does not work (curl http://<IP_ADDRESS>:9222/json/version)

Can you show me the full terminal output of the command?

x11docker -Dv --user=root --cap-default -g --nxagent --no-entrypoint -- -p 9222:9222 -- zenika/alpine-chrome:86 chromium-browser --no-sandbox --remote-debugging-address=<IP_ADDRESS> --remote-debugging-port=9222
log.txt

I found this message:

x11docker note: Found 'USER chrome' in image.
  If you want to run with user chrome instead of host user root,
  than run with --user=RETAIN.

Try with --user=RETAIN.

@drzraf

Try with --user=RETAIN.

Did this solve the issue?

The issue happened to be https://stackoverflow.com/a/44200427/5441588
In headed mode (as with x11docker), chromium does not respect --remote-debugging-address=<IP_ADDRESS> but rather always bind to localhost.
Sorry for the noise.

Thank you for the feedback!
Now I know it is a chrome bug, not an x11docker issue.


this package support Lan Local ?

I'm trying to use the scan printer connect via LAN but am not found, please help me

Hello, yes it supports LAN, Wi-Fi, USB and Bluetooth connections. Make sure you have printer produced by Epson and has enabled lan connection type. ( you can search how to switch connection type on YouTube)


remove ignoring Internal error

Fixes: #21
When returning:
echo.HTTPError{
    Message: "invalid base64 text",
    Internal: errors.New("illegal base64 data at input byte 5"),
    Code: 400
}

The logging message I get with this package is:
{"time":"2024-02-10T17:34:20.711071-06:00","level":"WARN","msg":"invalid base64 text","request":{"time":"2024-02-10T17:34:20.710876-06:00","method":"GET","host":"localhost:8080","path":"/v1/tts/en.mp3","query":"b=thisa@@ndthat&sublanguage=AU","params":{"lang":"en.mp3"},"route":"/v1/tts/:lang","ip":"::1","referer":"","length":0},"response":{"time":"2024-02-10T17:34:20.711064-06:00","latency":188750,"status":400,"length":0},"id":"eXfzigFanXdbupcuuAzuoenRsesmUmFa"}
The Internal field is completely ignored. With this change instead we'd get:
{"time":"2024-02-10T17:43:00.356414-06:00","level":"WARN","msg":"code=400, message=invalid base64 text, internal=illegal base64 data at input byte 5","request":{"time":"2024-02-10T17:43:00.356197-06:00","method":"GET","host":"localhost:8080","path":"/v1/tts/en.mp3","query":"b=thisa@@ndthat&sublanguage=AU","params":{"lang":"en.mp3"},"route":"/v1/tts/:lang","ip":"::1","referer":"","length":0},"response":{"time":"2024-02-10T17:43:00.356394-06:00","latency":197750,"status":400,"length":0},"id":"kTIgwFfHnMydhJEbjSeakVufbPpxFWRp"}
Happy to reformat the error if we don't like the default Error() format. However just ignoring the Internal field defeats the purpose of having it and/or requires the user to add a new error log by overriding the DefaultHTTPErrrorHandler just so that doesn't get ignored.

I made a fix in v1.14.0. Fixing #21