Unable to recover lost files in writer+

My all documents lost but I have still the files but when I am trying to open it, it says I don't have apps to open it.. Those documents were very much important.
Please help me or fix the problem as soon as possible

I'm having the same problem. I ended up reinstalling the app and most of my documents were restored but not all of them.
I really hope there is some way to get them all back...

I had writer Plus on another phone I lost the phone and all my poems that was in it that was on right as plus can you help me

Help

If you have your phone with you and if you haven't fully factory reset your
phone, Then go to file manager and search for writer plus folder where all
your notes are saved.
That's all I can help you with.
On Sat, 19 May, 2018, 09:32 TimidWriter<EMAIL_ADDRESS>wrote:

I'm having the same problem. I ended up reinstalling the app and most of
my documents were restored but not all of them.
I really hope there is some way to get them all back...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/easy4u/writerplus-community/issues/28#issuecomment-390376681,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjGSIkG61Bt7N2_A9a7bKG_RrMBrNeBbks5tz5lpgaJpZM4SSFJA
.

Hello
Sorry to hear that you lost your phone, If you had your phone I would
recommend to check your file manager for writer plus folder and then
recover it from there.
Although you should contact the developers if possible, they would help you.
On Tue, 28 Apr, 2020, 11:59 iragibson23<EMAIL_ADDRESS>wrote:

Help
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/easy4u/writerplus-community/issues/28#issuecomment-620407794,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIYZEIWAFZF5YYOSGSSOZ2DROZZT3ANCNFSM4ESIKJAA
.

All my saved notes got wiped off on the writer plus app and all of those notes are so important to me. Pls what can i do to get them back?


Add script to directly execute popper

This fixes a annoying issue for me when executing popper:
Since the name of the python file "popper.py" and the module for popper is also named popper, it is unpredictable to execute popper after installing it with the setup.py as it does not know which popper to use. With the popper executable it will always use the script that is installed with the setup.py and one does not need to search for the path where it is installed again and can just use popper-ilp
A note here also: Calling the executable popper will fail as it then wants to import itself

Thanks @sargreal


Missing documentation of maximum event size for "Basic" tier event hubs

Hi team,
I moved this from here: https://github.com/MicrosoftDocs/azure-docs.de-de/issues/534
User is making a suggestions to the original documentation
@PhilippJust commented 9 hours ago — with docs.microsoft.com
When sending an event with a size of 360kiByte to an event hub that uses the basic tier, I kept on receiving following error message:
<Error>
413
<Detail>The maximum message size quota for outgoing messages (327680) has been exceeded. TrackingId:6da40525-8836-4976-b1e3-75a574176faa_G18, SystemTracker:xxxxxxx:EventHub:xxxxxxxxxxxx, Timestamp:2019-09-09T14:26:31</Detail>
</Error>

When I upscaled the event hub namespace to standard, this error disappeared.
For me this seems like basic tier event hubs only allow 320 kiByte event size. Please verify that and add it to the docs.
Thanks a lot!

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

ID: b6d43eb3-6a80-b8c4-8536-f4f8b79aa453
Version Independent ID: 3e8dec68-44ac-aca8-5b07-470050878ae5
Content: Quotas and limits - Azure Event Hubs
Content Source: articles/event-hubs/event-hubs-quotas.md
Service: event-hubs
GitHub Login: @ShubhaVijayasarathy
Microsoft Alias: shvija

@CeciAc @PhilippJust
Thank you for bringing this issue to our attention.  We will review the document and get back to you.

@ShubhaVijayasarathy Could you please review further and update the document as appropriate.

I tested the max message size by sending messages to a Standard level Event Hubs. If I send a message which is over 1MB I get the exact same error that CeciAc got from a Basic level Event Hubs ("outgoing message" and "327680"). If I reduce the size to just under 1MB I don't get that error anymore.
So my theory is that the documentation is correct (message max size 1MB for both Basic and Standard) but the error message you get from exceeding that message size is wrong.

Sorry it took so long to confirm this and fix the article. Please see the updated table:
https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-quotas#event-hubs-basic-and-standard---quotas-and-limits

#please-close

Thank you!


TODO: excitation voltage range, settling time cycles

These need to be implemented. Anyone is welcome to contribute.
http://www.analog.com/media/en/technical-documentation/data-sheets/AD5933.pdf
Excitation voltage range: Table 10 (pg. 23)
Settling time cycles: Table 13 (pg. 25)

Shouldn't it be a simple matter of the following:
`
#define CTRL_VOLT_RANGE1		(0b00000000)
#define CTRL_VOLT_RANGE2		(0b00000110)
#define CTRL_VOLT_RANGE3		(0b00000100)
#define CTRL_VOLT_RANGE4		(0b00000010)
/**

Set the excitation voltage range.

@param range The voltage range

@return Success or failure
*/
bool AD5933::setExcitationVoltageRange(unsigned int range){
byte val;
if (!getByte(CTRL_REG1, &val))
return false;
// Clear out bits D9 and D10, which are the excitation voltage range bits
val &= 0xF9;
switch(range){
case 1:
val |= CTRL_VOLT_RANGE1;
break;
case 2:
val |= CTRL_VOLT_RANGE2;
break;
case 3:
val |= CTRL_VOLT_RANGE3;
break;
case 4:
val |= CTRL_VOLT_RANGE4;
break;
default:
return false;
}
return sendByte(CTRL_REG1,val);
}`

Probably, this wasn't used in our implementation that used this library and so it was simply never written. If you have written this and it works then feel free to do a PR.

Great, I'll be sure to do so when I am able to test it with hardware.
Thanks for posting this by the way, saved me some time!

has anyone built all the code involving CN-0217 and all the ranges. kindly attach code as it would be very helpful.I have made the hardware but finding difficulties in code.
Thanks
qaisar


feat: Move test files under bddtests folder

closes #6
Signed-off-by: Firas Qutishat<EMAIL_ADDRESS>

Sounds like a chore rather than a feat?


SharpDX.Utilities.AllocateMemory OverflowException

I've been encountering an intermittent issue with SharpDX 2.6.3 wherein a call to SharpDX.Utilities.AllocateMemory will throw a System.OverflowException.  Ultimately this is coming from within a call to SharpDX.Toolkit.Graphics.Texture2D when attempting to save a texture to disk as a PNG.  The texture is quite large (4096x4096) and has mip-maps enabled.
I've seen this issue occur when calling Utilities.AllocateMemory in isolation and asking for 128 MB (with the default alignment).  The test case also includes a call to Utilities.FreeMemory, so it doesn't seem to be a low memory problem.  The exception will get thrown randomly, sometimes on the first invocation and sometimes not at all.

Maybe related to a fix that was applied recently 186479d05b83ac3bf5e18985b8b56c03d38f2c4f It is available on latest 3.0.0 release (note that the Toolkit is no longer supported in this version)

Should be fixed.


Flightlevels in Sideview potentially inconsistent

Original report by Joern Ungermann (Bitbucket: joernu76, GitHub: joernu76).

If multiple Sideviews are open, the flightlevels become inconsistent if they are changed in one plot.

Can't reproduce too. Just seen that we have different states of functions activated in multiple windows. E.g. one has + waypoints the other - waypoints.
@joernu76 have you more details?

Issue seems fixed.


Deadlock detected in import due to EmailBundle:EntityListener

The next error can occur in import for entity that have email address ownership such as OroUserBundle:User, OroContactBundle:Contact
Encountered an error executing the step: An exception occurred while executing 'UPDATE oro_email_address SET owner_contact_id = ?, updated = ? WHERE id = ?' with params [19388248, "2018-02-13 08:59:34", 60265]:  SQLSTATE[40P01]: Deadlock detected: 7 ERROR:  deadlock detected DETAIL:  Process 19114 waits for ShareLock on transaction<PHONE_NUMBER>; blocked by process 19094. Process 19094 waits for ShareLock on transaction<PHONE_NUMBER>; blocked by process 19114. HINT:  See server log for query details. CONTEXT:  while updating tuple (2,104) in relation "oro_email_address" [] {"processor":"Oro\\Bundle\\ImportExportBundle\\Async\\Import\\HttpImportMessageProcessor","message_id":"oro.5a82a8ba225a37.19787372","message_body":"{\"processorAlias\":\"oro_contact.add\",\"options\":{\"batch_size\":50,\"batch_number\":16},\"fileName\":\"5a82a8b9014b1435297411.csv\",\"process\":\"import\",\"userId\":1,\"originFileName\":\"contact-20k.csv\",\"jobName\":\"entity_import_from_csv\",\"jobId\":1073945}","message_properties":{"oro.message_queue.client.topic_name":"oro.importexport.http_import","oro.message_queue.client.processor_name":"oro_importexport.async.http_import","oro.message_queue.client.queue_name":"oro.default","oro.security.token":"organizationId=1;userId=1;userClass=Oro\\Bundle\\UserBundle\\Entity\\User;roles=ROLE_ADMINISTRATOR"},"message_headers":{"content_type":"application/json","message_id":"oro.5a82a8ba225a37.19787372","timestamp":1518512314},"message_priority":2,"job_id":1073945,"job_name":"oro:import:oro_contact.add:entity_import_from_csv:1:chunk.16","job_data":[]}

STR

Env PostgreSQL 9.5, OroPlatform/OroCRM 2.6.0
Prepare contact import file:
-The file must contain enough records to have more than 20 import chunks
-Email addresses must be repeated several times in import file. For example
contact-20k.txt
Run 4 consumers
Import file

Hello, @vtsykun !
Thank you for submitting the issue. Yes, seems like it's a bug. Created an internal issue to fix (internal ID: CRM-8752)

Thank you for quick fix, now import works fine :+1:


fix bool unmarshal issue.

resolve: https://github.com/istio/istio/issues/18113

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

Test name
Commit
Details
Rerun command

e2e_operator
fd89a63f1a37a9b4f855590ea32547c0130e093f
link
/test e2e_operator

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.

In response to a cherrypick label: new pull request created: #439


[ENH] Update VARMAX pandas 2.0

updated pandas version to 2.0
Reference Issues/PRs
#291

@MatthewMiddlehurst, is this change a fix, or should we deprecate certain functions to ensure compatibility? local Tests are currently being skipped due to the absence of soft dependencies.

@MatthewMiddlehurst , Thanks! I will work accordingly.

I think it's best to leave this for now, IMO. We have some significant changes to the module planned which may make this irrelevant either way.

I see, I ll Close this for now!


Added two more subscriptions to match CFN templates.

Added two more subscriptions to match CFN templates.

Even though this mostly brings it inline with CFN. It will not address this https://github.com/rackspace-infrastructure-automation/aws-terraform-internal/issues/44


Consolidate route for strava_datastack.duckdb

dlt - creates the .duckdb file in strava_datastack directory (strava_datastack/strava_datastack.duckdb)
dbt - uses .duckdb from evidence repo (strava_datastack/reports/sources/strava_source/strava_datastack.duckdb)
evidence - uses .duckdb from evidence repo (strava_datastack/reports/sources/strava_source/strava_datastack.duckdb)
It's currently very disjointed, especially between dlt and dbt stage. Need to connect it better so there's no manual copying of the .duckdb file to the /sources/ repo

Whoops, please ignore, I'm new at Git 😅


wpa_supplicant: fixes for KRACK

Motivation for this change
This adds the patches provided by Mathy Vanhoef to mitigate KRACK.
See https://www.krackattacks.com/ and https://w1.fi/security/2017-1/wpa-packet-number-reuse-with-replayed-messages.txt for more info.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Maybe fetch the entire patchset (including attempts at hardening) from upstream git repo using fetchpatch?

Hi @ArdaXi, for patches like this we typically want to use fetchpatch instead of bringing the patches in to our repo. I've already made the change using fetchpatch, and will be pushing shortly. Thank you a lot for being on top of it, and getting these patches in so quickly!


Legend fix

#387

Coverage increased (+0.3%) to 78.183% when pulling ce1ca239a27a7eb213f53f38cf125a093f9ea71b on lindsaycarr:legendFix into fd18d5ee08f7fa31e3afbeef77caf3cfd31deeff on USGS-R:master.

@jread-usgs @jiwalker-usgs @ldecicco-USGS looking for peer review on this if you have time

Coverage increased (+0.3%) to 78.183% when pulling 0391a35e636c24fe190da19d262dbf7f9a4e1bf1 on lindsaycarr:legendFix into fd18d5ee08f7fa31e3afbeef77caf3cfd31deeff on USGS-R:master.

Coverage increased (+0.3%) to 78.203% when pulling 01c2897dd9718cce153a371153cbf57ad2f787e4 on lindsaycarr:legendFix into fd18d5ee08f7fa31e3afbeef77caf3cfd31deeff on USGS-R:master.

@lindsaycarr looks like it is failing a legend test. Otherwise, looks good.

Coverage decreased (-0.2%) to 77.65% when pulling cd90ef1d81af0a2f83574d954daf7b8bba0ca500 on lindsaycarr:legendFix into fd18d5ee08f7fa31e3afbeef77caf3cfd31deeff on USGS-R:master.


Configuration: match on file name

Is there any way to match on the file name where the error is reported? I have "unknown" text that is not very informative, and I would feel safer if I could for instance write
(unknown & file 'babel-english/english.ldf' & "a dialect from")

instead of
(unknown & "a dialect from")

to make the following message go away:
/usr/share/texmf-dist/tex/generic/babel-english/english.ldf:?-?: \l@canadian = a dialect from \language\l@american

By the way: I'm still working on this, but you may want to know that the dialect messages are marked as info now, rather than unknown.


Is the sensu-prometheus-collector check scraping the right kube-state-metrics exporter?

According to https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/#communicating-with-daemon-pods (regarding DNS for DaemonSet Pods), the documentation states that you can "Create a service with the same Pod selector, and use the service to reach a daemon on a random node. (No way to reach specific node.)"
The kube-state-metrics project is configured to use a Service, so the check-kube-state-metrics.json check definition in this project would be hitting a random kube-state-metrics endpoint. Is this OK? Does kube-state-metrics expose cluster-level metrics, or does it provide metrics on a per node basis?

I believe the answer is that kube-state-metrics does generate cluster-level metrics, so hitting a random DaemonSet pod is acceptable. From the readme:

kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. (See examples in the Metrics section below.) It is not focused on the health of the individual Kubernetes components, but rather on the health of the various objects inside, such as deployments, nodes and pods.

https://github.com/kubernetes/kube-state-metrics

From the testing ran last night, it does appear that when the error code (9) is occurring, that no metrics are being fed.  Could this be a timing issue?


Update test data to aas-core-meta 95055a5

We update the development requirements to and re-record the test data
for aas-core-meta 95055a5.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1431

Relevant Lines:
1578

💛  - Coveralls


Error while installing redmine

hi,
I'm trying to setup redmine 3.3.0 in the following environment:
Bundler   1.12.5
Rubygems  1.4.2
Ruby      2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
GEM_HOME  /usr/local/lib/ruby/gems/2.3.0
GEM_PATH  /usr/local/lib/ruby/gems/2.3.0:/root/.gem/ruby/2.3.0
Git       1.7.1
but when running command $bundler install I get the following error:
[root@ssredmine01 redmine]# bundler install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application
for all non-root users on this machine.
--- ERROR REPORT TEMPLATE -------------------------------------------------------

What did you do?
I ran the command /usr/local/bin/bundler install

What did you expect to happen?
I expected Bundler to...

What happened instead?
Instead, what actually happened was...

Error details
RuntimeError: can't modify frozen String
  /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/version.rb:191:in `strip!'
  /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/version.rb:191:in `initialize'
  /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/version.rb:178:in `new'
  /usr/local/lib/ruby/site_ruby/2.3.0/rubygems/version.rb:178:in `create'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/lockfile_parser.rb:30:in `<class:LockfileParser>'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/lockfile_parser.rb:15:in `<module:Bundler>'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/lockfile_parser.rb:14:in `<top (required)>'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:2:in `require'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/definition.rb:2:in `<top (required)>'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:123:in `require'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler.rb:123:in `definition'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli/install.rb:99:in `run'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:175:in `install'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/cli.rb:11:in `start'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundler:21:in `block in <top (required)>'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
  /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundler:19:in `<top (required)>'
  /usr/local/bin/bundler:19:in `load'
  /usr/local/bin/bundler:19:in `<main>'

Environment
Bundler   1.12.5
Rubygems  1.4.2
Ruby      2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
GEM_HOME  /usr/local/lib/ruby/gems/2.3.0
GEM_PATH  /usr/local/lib/ruby/gems/2.3.0:/root/.gem/ruby/2.3.0
Git       1.7.1
  Bundler settings

orig_path
Set via BUNDLE_ORIG_PATH: "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
--- TEMPLATE END ----------------------------------------------------------------
Unfortunately, an unexpected error occurred, and Bundler cannot continue.
First, try this link to see if there are any existing issue reports for this error:
https://github.com/bundler/bundler/search?q=can't+modify+frozen+String&type=Issues
If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget                                                                                to anonymize any private data! The new issue form is located at:
https://github.com/bundler/bundler/issues/new
I've found similar error messages, but nothing exactly the same and from the other threads I've read this error should be solved in bundler 1.12.5
I'm not a developer and not really familiar with ruby, I'm just following the install steps from redmine website.
If someone can throw a tip on how can I get passed this error, I would appreciate it.
Thanks
Rares

The message is about not running bundler as root. You might want to consider using a different user than root.

@allenzhao that's not the issue... the problem is RubyGems 1.4.2 combined with Ruby 2.3, which means frozen string literals. Thanks for the issue, @raresm79 !


Add a test to coredns operator

Current coredns operator doesn't have tests.
According to here, It is better to add "Golden File Tests".

I'm working this in my fork. but it's a WIP now. atoato88/addon-operators#1


write web3js tx plugin

Follow up issue:

https://github.com/celo-org/web3-plugin-transaction-types/issues/7


move config.ini to config.example to make upgrades easier.

I have renamed the example config to config.example and updated the doc accordingly.
With that change, an update does not overwrite the existing config.ini
Update .gitignore and README.md files

I like this!

@0x7878 we still have the Versioning failing, can you check in the github action

@0x7878 we still have the Versioning failing, can you check in the github action

See #164 but either we have to configure a secured way to this or we have to drop this feature.

@stlorenz don't worry. It's just us. We have to improve our GitHub Actions. That's all. We need more time to get it done.

If you push something to this repo, the error should go away and we can merge this.

Look good to me.


proposal: Machinery repository

What type of PR is this?
/kind documentation
What this PR does / why we need it:
To discuss about this new idea!
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: fntlnz
If they are not already assigned, you can assign the PR to them by writing /assign @fntlnz in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

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

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

4a697fe Update ToC for proposals/20191007-machinery-repository.md

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.

/area proposals

LGTM label has been added.  Git tree hash: e181f26467b51e2843a6cb71bd3a6aecc9d54460

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

Needs approval from an approver in each of these files:

OWNERS [leodido]

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

Closing since reached consensus to use falcoctl as a "junk drawer" for external go tools!


Do we need a parameter group metadata file?

https://github.com/r-three/git-theta/pull/92 introduced a .../params/metadata file that points to what the most recent update is. However, the update directories are named via parameter hashes (not update hashes), this means that the most recent update can be inferred from the model checkpoint metadata file.
Are there other piece of metadata we will want to store in this file or can we remove it?

Note: As mentioned in the meeting. This file will be one that will trigger a merge conflict when branches that have touched the same parameter are merged. Is this what we want?

Closed by #114


Json and xml equality checks not working as expected

Issue found on 0.9.9.RC2, but also noticed (although slightly differently) on 0.9.6.
This issue covers two problems which I expect are related:

when using match the order of items affects the outcome
"basic equality test" (not using match) not working as expected

Consider defining json, xml, xml from json, and json from xml such that we would expect them to match:
  Background:
    * def json = { foo: bar }
    * def xml = <foo>bar</foo>
    * xml jsonAsXml = json
    * json xmlAsJson = xml

In the following test all match statements pass:
  Scenario:
    * match json == json
    * match json == xml
    * match json == jsonAsXml
    * match json == xmlAsJson

    * def a = json == json
    * match a == true
    * def b = json == xml
    * match b == false
    * def c = json == jsonAsXml
    * match c == false
    * def d = json == xmlAsJson
    * match d == false

json matches with all others, but the basic equality tests return false (unless comparing with itself). Note that e.g. print json == xml will print false, but I have written as match statements here for easier testing.
Now compare this with the following test (in which all match statements pass):
  Scenario:
    * match xml != json
    * match xml == xml
    * match xml == jsonAsXml
    * match xml != xmlAsJson

    * def a = xml == json
    * match a == false
    * def b = xml == xml
    * match b == true
    * def c = xml == jsonAsXml
    * match c == false
    * def d = xml == xmlAsJson
    * match d == false

Note match json == xml in the previous test and match xml != json in this test both pass. We see the same pattern of results for the basic equality check.
Similar tests have been created for jsonAsXml and xmlAsJson.
The following test (in which all match statements pass) appears to indicate that basic match equality tests compare object references whereas match equality tests compare their values:
  Scenario:
    * def json2 = { foo: bar }
    * def xml2 = <foo>bar</foo>
    * xml jsonAsXml2 = json
    * json xmlAsJson2 = xml

    * match json2 == json
    * match xml2 == xml
    * match jsonAsXml2 == jsonAsXml
    * match xmlAsJson2 == xmlAsJson

    * def a = json2 == json
    * match a == false
    * def b = xml2 == xml
    * match b == false
    * def c = jsonAsXml2 == jsonAsXml
    * match c == false
    * def d = xmlAsJson2 == xmlAsJson
    * match d == false

However this doesn't explain why some match equality tests are not the same in both directions. It appears that match equality test between json and xml works as expected when the json is on the LHS, and doesn't work as expected if the xml is on the LHS.
I have also tried this on 0.9.6. I found that there are two differences between 0.9.9.RC and 0.9.6.
On 0.9.9.RC2:
* def b = xml == xml
* match b == true

vs 0.9.6:
* def b = xml == xml
* match b == false

On 0.9.9.RC2:
* def c = jsonAsXml == jsonAsXml
* match c == true

vs 0.9.6:
* def c = jsonAsXml == jsonAsXml
* match c == false

Which shows that xml comparison was even more broken on 0.9.6. as xml was not equal to itself.
Example projects attached:
myproject-0.9.9.RC2.zip
myproject-0.9.6.zip

@theathlete3141 closing as wontfix because we will not support XML elements out of order. feel free to submit a PR for this extreme case

@theathlete3141 closing as wontfix because we will not support XML elements out of order. feel free to submit a PR for this extreme case


[communication] prep release for common, identity, chat

All SDK Contribution checklist:
This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] Please open PR in Draft mode if it is:

Work in progress or not intended to be merged.
Encountering multiple pipeline failures and working on fixes.

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code. (Track 2 only)
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK. Please double check nuget.org current release version.

Additional management plane SDK specific contribution checklist:
Note: Only applies to Microsoft.Azure.Management.[RP] or Azure.ResourceManager.[RP]

[ ] Include updated management metadata.
[ ] Update AzureRP.props to add/remove version info to maintain up to date API versions.

Management plane SDK Troubleshooting

If this is very first SDK for a services and you are adding new service folders directly under /SDK, please add new service label and/or contact assigned reviewer.
If the check fails at the Verify Code Generation step, please ensure:

Do not modify any code in generated folders.
Do not selectively include/remove generated files in the PR.
Do use generate.ps1/cmd to generate this PR instead of calling autorest directly.
Please pay attention to the @microsoft.csharp version output after running generate.ps1. If it is lower than current released version (2.3.82), please run it again as it should pull down the latest version,

Old outstanding PR cleanup
Please note:
If PRs (including draft) has been out for more than 60 days and there are no responses from our query or followups, they will be closed to maintain a concise list for our reviewers.

@DominikMe I think you should also update README.md so that the installation instruction is referring to the right version. I did it in my PR, https://github.com/Azure/azure-sdk-for-net/pull/18573, but since you have more content for the ChangeLog files it'll be better to add that change to your PR (and I'll close mine)


UX meeting agenda 14 June 2016

Tabs/Stacks: decide on settings #7643
Find widget does not blend well when tabs enabled #7649
Wrong input box color in dark theme #7648
Discussion on tabs

Position of debug toolbar https://github.com/Microsoft/vscode/issues/4580

Find and Replace exploration https://github.com/Microsoft/vscode/issues/7667

I've added notes to each of the items referenced above.
In addition, we discussed the scroll behaviour of the tabs when in overflow. In particular, we looked at how we can indicate that there are tabs to the left and right that the user can scroll. Ben demonstrated the use of a shadow (consistent with how we use shadows elsewhere). @bgashler1 - we should talk about this and how we can finesse the look.
We also talked about whether or not we should reduce the height of the tabs. They are the same height as the viewlet title bar which I think ends up making the tabs look a little heavy. We didn't reach any conclusion on this though.
Lastly we experimented with adding the border colour to the left hand side of the selected tab but with the problems we have with the current colours of the selected tab, unselected tabs and the tab well, we didn't think that the left border helped much.


Add Dotnet CLI devcontainer feature

#1199
Description

Adds dotnet CLI as a devcontainer feature for ubuntu/debian based containers.
PR Checklist

Use the check-list below to ensure your branch is ready for PR.  If the item is not applicable, leave it blank.

[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My code follows the code style of this project.
[x] I ran the lint checks which produced no new errors nor warnings for my changes.
[x] I have checked to ensure there aren't other open Pull Requests for the same update/change.

Does this introduce a breaking change?

[ ] Yes
[x] No

Testing

Instructions for testing and validation of your code:

What OS was used for testing.
Which test sets were used.
Description of test scenarios that you have tried.

Tested on debian x64 (bullseye, buster, stretch), ubuntu x64 (hirsute, focal, bionic), debian arm64 (bullseye)
Other information or known dependencies

N/A

NOTE: the merge conflict is due to a trailing comma issue in the json file.  We will resolve once we are closer to being able to merge this as it will continue to be an issue every time this file is updated in main

thank for the reponses. looks all good to me now, Please proceed.

@Chuxel we made changes based on your feedback.  Please take another look when you get a chance.

@Chuxel Your last round of comments should now be addressed.  Please take a look

LGTM!  Thanks for all the hard work!


ci: upgrade builds to use Bazel 1.0

Now that Bazel reached 1.0 and it is expected to follow semver, it seems
better to test with that version. The downside is that we may not notice
breakage for users in the 0.28.0-0.29.0 range. But it seems that Bazel
users are rapidly moving towards using 1.0 anyway.

This change is

PTAL. We finally have all the CI builds using Bazel-1.0 for google-cloud-cpp-spanner.


Add tooltips in left menu when fold

Add tooltips in main menu items when is fold.
And change the icon to fold / unfold with chevron icons (the current one looks like too much to the logout icon).

Can you provide a small screenshot ?


Request line read errors

We switched from cowboy to bandit and everything seems to be working flawlessly, apart from some errors that have started popping up at runtime:
** (ErlangError) Erlang error: "request line read error: \"Zt8HIXXpbKlriXl5Qkl1x\\\",\\n\""
It looks something is sending malformed requests to our public endpoints, which is totally fine, but somehow these malformed requests then cause a runtime exception which in turn triggers our monitoring system. Wouldn't be better to just log an error in these cases?
thanks!

This is 'by design'; Thousand Island (and by extension Bandit) explicitly log loudly on all abnormal conditions, even they are 'normal' abnormal conditions. This has revealed a number of upstream bugs to date that were being silently discarded by Cowboy. I feel very strongly that this should continue to be the default behaviour of this stack. That having been said, I recognize that some folks are going to want the classic 'silent' behaviour of Cowboy, for any number of valid reasons. I've pushed up PR to Thousand Island to provide a setting that should help in your case:
https://github.com/mtrudel/thousand_island/pull/92
Once that gets reviewed (feel free to chime in!) and merged, I'll cut a new Thousand Island release and you can opt into this behaviour by adding a config like thousand_island_config: [silent_terminate_on_error: true] to your bandit config.

Thousand Island 1.1.0 just released with support for the above flag; updating your dependency and adding the new config point as described above should fix your problem!
Thanks for the issue!


Update the latest releases of JBoss 7 and 8

Update the latest releases of JBoss 7 and 8 and fix the changelog template function to work when release numbers have more than 3 components (eg. "<IP_ADDRESS>")

JBoss <IP_ADDRESS> release notes: https://access.redhat.com/articles/7073035
JBoss 7.4.18 release notes: https://access.redhat.com/articles/7073034
JBoss 8 patches:
https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=patches&product=appplatform&version=8.0
JBoss 7 patches: https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=patches&product=appplatform&version=7.4

Thanks a lot for this update @dfuenzalida !


Development versions being offered when not set

I have the "Including development versions" option in Software Updates set to no but I am still being offered an update to beta versions.
In addition, the update display states "Authentic Theme 19.09.2. Latest available release 19.10" and does not indicate that 19.10 is still a beta update. The only way to check that is to read the changelog.

It sounds like a duplicate of https://github.com/qooob/authentic-theme/issues/1028 and it's been fixed.
What is your current version?

I am on 1.880

In case you didn't run updates, what happens if you manually patch the file according to the commit https://github.com/qooob/authentic-theme/commit/397e864951d2253c36410811ecf3b4195eb6630e

That patch does fix the problem, thank you.


Set reg key with version during MSI install

create and keep up-to-date a reg key in HKLM that has the version during MSI install

Need both version and architecture

@SteveL-MSFT  I've gone with upgradecode (which represents architecture) and then version.


Document asset pipeline

compilation.plugin('styleguide-plugin-assets-processing', (assets) => {
  // Can add .css files to the assets here, and they'll get included!
});

This is done, see https://github.com/carteb/carte-blanche/blob/master/WRITING-PLUGINS.md


Graph construct should only need key and label for unloading

Is your feature request related to a problem? Please describe.
Currently, Pie, Gantt and Timeline constructs only require key and label for unloading the content. But Graph construct requires the exact content instance to be passed for unloadContent.
Describe the solution you'd like
This needs to be made consistent with other graph constructs.
Describe alternatives you've considered
N/A
Additional context
N/A

:tada: This issue has been resolved in version 1.10.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Some PDF and ZIP imports failing with no error message

Describe the bug
When using Import > Images (PDF) option, eScriptorium will fail to import some PDFs but not all of them. I am running into this error for elem_grc_1883.pdf used for recognition testing in the test repository. eScriptorium provides no error message -- the import window closes, as is expected behavior. In the new UI, a message pops up saying that the import is queued. But the import never happens, and there is no record of an import task in any of the task lists.
Other PDFs still import successfully, such as any of those used in the selenium import-tests. I have previously uploaded the now-failing PDF successfully as test_user2, back on Sept 29th or a day or two before.
Tests so far

It does not seem to matter what user account I try to upload the now-failing PDF with, or whether it is a CAS-login account or not.
It does not seem to be an issue with the PDF already being imported elsewhere, because I am able to upload other duplicate PDFs.
It does not make a difference whether I am connected directly to the PU network or using the VPN for remote access.
I have tested both Firefox and Chrome with no luck.
Changing the PDF name makes no difference.
Changing the PDF contents slightly (deleting a page) makes no difference.

I have ways to work around this issue to get the images uploaded for testing purposes, but I am flagging the bug here so that we can track other occurrences if they turn up.

Update Nov 1: it seems it is not only PDFs that are sporadically failing with no error message. A recent attempt to upload a ZIP file of images and XML (the training data to be used for testing here) is also failing with no error message.
This is using the Import > Transcriptions (XML) option in the GUI. Selecting the ZIP and clicking "Start Importing" closes the import window and prompts a "Importing Queued...." message, but no progress is ever made, and refreshing the page causes the queue message to disappear. No tasks are reported in the Task Reports screen.

Turns out that this and #23 were being caused by the same issue. This was a nginx firewall issue that has now been resolved.


fix(isFreshPeer()): corner-case: announceObj.data is empty

:tada: This PR is included in version 1.5.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Document existing CI pipeline

As an product manager
I want high-level current documentation that explains CI pipeline from committing code to delivering features
so I understand product flow
AC

High-level overview documentation of CI pipeline specific to acs-engine that a new engineer/pm
ideally committed in markdown in the repo

@dmitsh here's a good guide on how to add formatting (like images) to markdown:  https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
Additionally, you can also drag images from some programs directly into the browser if you're using Chrome or Edge.

@dtzar This would be a good one to pick up after we switch to Circle CI.

Closing in favor of #1175


⚠ GitLab Server has degraded performance

In b776050, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11567 ms

Resolved: GitLab Server performance has improved in 70ddf5e.


Fix: error response handling for splitter and switch nodes

What this PR does / why we need it:
A bit of refactoring to keep router's code simple.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes: Does a refactoring to add uniformity to Splitter node handling. Also, added e2e tests for splitter node.
Type of changes
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[x] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[x] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

/cc @yuzisun

Thanks @rachitchauhan43 !
Nice tests!
/lgtm
/approve


PIP-235: Add metric for subscription back size

Motivation
Now we have pulsar_storage_backlog_size for topic backlog size, user can create an alarm rule like pulsar_storage_backlog_size > THRESHOLD, typically this alarm is going to notify corresponding subscription owner, but it need extra process to identify subscriptions that backlog size exceed the threshold. So we could add a new metric for subscription back size.
#9302 Added subscription backlog size info for topic stats and a configuration exposeSubscriptionBacklogSizeInPrometheus (default false) for topic metrics, but the latter was unimplemented.
Goal
New metric pulsar_subscription_back_log_size
API Changes
Since 0 is a valid value for subscription backlog size, change subscriptionStats.backlogSize to -1 from 0 if request the stats of topic with subscriptionBacklogSize=false.
Implementation
If and only if exposeSubscriptionBacklogSizeInPrometheus is enabled, expose the metric as pulsar_subscription_back_log_size
Alternatives
No response
Anything else?
No response

How about adding a new label subscription in the same metric? It should also not break any existing usage of the metric as well for those only aggregating on topic or cluster labels

How about adding a new label subscription in the same metric? It should also not break any existing usage of the metric as well for those only aggregating on topic or cluster labels

Since it's not enabled by default, it's hard to understanding if it has different meaning after config enabled. It also breaks user existing rule based on the original meaning.

Since it's not enabled by default, it's hard to understanding if it has different meaning after config enabled.
Yes, maybe, but can be fixed with clear documentation.

It also breaks user existing rule based on the original meaning.
It adds to the meaning of the existing metric. Any examples on the case where it would break the existing user rule assuming the original meaning?

The author(s) will send a note to the<EMAIL_ADDRESS>mailing list to start the discussion, using subject prefix [PIP] xxx. The discussion need to happen in the mailing list. Please avoid discussing it using GitHub comments in the PIP GitHub issue, as it creates two tracks of feedback.

https://github.com/apache/pulsar/blob/master/wiki/proposals/PIP.md
I've send a discuss to<EMAIL_ADDRESS>mailing list, we may continue discuss on that if you like so.


Move MAP_ROLE2ENVIRONMENT in to a yaml configuration

https://github.com/osism/python-osism/blob/main/osism/apply.py#L13-L266

Duplicate of https://github.com/osism/python-osism/issues/288


Product in getProducts() returns correct currency but incorrect price (iOS only)

Version of react-native-iap
4.6.3
Version of react-native
0.62.2
Platforms you faced the error (IOS or Android or both?)
IOS
Expected behavior
The product should return the correct currency and associated price.
Actual behavior
When testing my in-app purchase, the product that's returned includes the correct currency (GBP) but the incorrect price.
Tested environment (Emulator? Real Device?)
Real device
Steps to reproduce the behavior

Create an in-app purchase on App Store connect
Test the app on a real device, with a UK-based sandbox account.

I'm testing an in-app purchase for our app but the price I get back from the app store is incorrect. I'm based in the UK and the phone I'm testing our app on is using a UK Apple Id but the price for the product seems to return the US price instead of the GBP price. Here is the object I get back from getProducts() - note, some props are not included here:
{
"introductoryPrice":"",
"introductoryPriceSubscriptionPeriodIOS":"",
"introductoryPriceNumberOfPeriodsIOS":"",
"discounts":[],
"localizedPrice":"£11.99",
"introductoryPricePaymentModeIOS":"",
"price":"11.99",
"currency":"GBP",
"subscriptionPeriodNumberIOS":"0"
}
But in our app store connect page:

So, localizedPrice should be £9.99 and price should be 9.99. I'm having this problem on IOS only.

@FabianTauriello I would advise you to update the library. It's probably been fixed since the version you are using is pretty dated. Reopen if issue persists

Afternoon @FabianTauriello can you confirm how you fixed this? Am getting the same error? What version did you upgrade to? I dont really want to have to upgrade my react native version etc. Let me know

Hi ajdobson. I updated the library to the latest version but that didn't fix my issue. Strangely, if I use a sandbox account from a different region (e.g. Australia), the correct value is returned so it seems to be an issue with the GBP price locale only. Though it's probably an issue with Apple and not this library.

I've had the same problem. Even Apple's own reviewers noticed and complained about it, but I told them it had to be an error on their end and they let it go.


Tree shaking only works with process.env.NODE_ENV?

I'm finding that tree shaking only works with process.env.NODE_ENV and won't work with process.env.REACT_APP_[my variable name]
For example, if I do the following myModule is not showing up in my production build.
import {myFunction} from './myModule'

if(process.env.NODE_ENV === 'development') {
    myFunction()
}

But, if I want to use a different environment variable myModule is always included.
import {myFunction} from './myModule'

if(process.env.REACT_APP_ENABLE_MY_FUNCTION === 'true') {
    myFunction()
}

Is it known that tree shaking only works with process.env.NODE_ENV? Is there any way to do tree shaking with a custom environment variable?

Now I see that REACT_APP_ environment variables are available at runtime, whereas NODE_ENV is not. So this makes sense that using REACT_APP_ environment variables wouldn't enable tree shaking.
I guess that means my question is, is there a way to add custom environment variables that behave like NODE_ENV, where process.env.NODE_ENV is replaced with a string at build time? It seems the answer is no?
I see here (https://github.com/facebook/create-react-app/issues/8626) someone suggested using a dynamic import, which ultimately works if there is no other solution. However, then I'll need to write a post-build script to delete these bundles if I want to make sure they aren't on my server.

Here it is....
If you want to do this:
import {myFunction} from './myModule'

if(process.env.REACT_APP_ENABLE_MY_FUNCTION === 'true') {
    myFunction()
}

You must be sure to define REACT_APP_ENABLE_MY_FUNCTION.  If you do not define it then the if(process.env.REACT_APP_ENABLE_MY_FUNCTION === 'true') doesn't get turned into if(false) at build time.
But it still evaluates to false at runtime.
I don't see this documented anywhere, but it probably should be.  The only way I figured this out was by taking the time to go through the generated bundle.

I also faced this issue. Thanks for your investigation on this. I helped a lot! Would be great to have this documented.
Do you think you can contribute this to the documentation?

I also faced this issue. Thanks for your investigation on this. I helped a lot! Would be great to have this documented.
Do you think you can contribute this to the documentation?

I also faced this issue. Thanks for your investigation on this. I helped a lot! Would be great to have this documented.
Do you think you can contribute this to the documentation?

I'm not completely sure this is the best practice for achieving what I'm trying to do, so it would be nice to get some feedback from someone more knowledgable first.
For more clarity, my specific use case here is that I have two distinct builds I want to do for my app created with create-react-app.  I have one build that is my standard web build, hosted on Netlify, and another build that is for packaging with Cordova. In my standard web build I want to strip out all Cordova references at build time.  Using the method I described above is working for this use case, however, since it was so tricky to figure out I do wonder if there is a more appropriate approach to solving this problem?

I also faced this issue. Thanks for your investigation on this. I helped a lot! Would be great to have this documented.
Do you think you can contribute this to the documentation?

I'm not completely sure this is the best practice for achieving what I'm trying to do, so it would be nice to get some feedback from someone more knowledgable first.
For more clarity, my specific use case here is that I have two distinct builds I want to do for my app created with create-react-app.  I have one build that is my standard web build, hosted on Netlify, and another build that is for packaging with Cordova. In my standard web build I want to strip out all Cordova references at build time.  Using the method I described above is working for this use case, however, since it was so tricky to figure out I do wonder if there is a more appropriate approach to solving this problem?

Hi @NAllred91,
I am having a problem tree shaking some code for production while experimenting with MirageJs for development following this and got here while looking for solutions.
The thing is I am not even being able to tree shake my code with process.env.NODE_ENV.
I have tried the following
import { makeServer } from "./server";

if (process.env.NODE_ENV === "development") {
  makeServer();
}

or
import { makeServer } from "./server";

if (false) {
  makeServer();
}

And for any of the cases, the code is removed. It is removed if I do
import { makeServer } from "./server";

if (false) {
  // makeServer();
}

I am using the yarn build command, which uses react-scripts. The version I am using of react-script is 4.0.3. It is a brand new project created with create-react-app with no major changes. Which version are you using?
Do you have any ideas of what it could be?
Thanks and sorry for bothering you with not related things.

@joaoantunesTD I'm on 3.4.1 for react-scripts, I doubt that matters much but maybe give it a try on that version and see if you have the same issue?
It is odd that if(false) doesn't work, but commenting out the call to makeServer does.  All I can think is to try 3.4.1 and see if you get the same results?
I was also using typescript when I created this issue. I have never tried with javascript.

Thanks @NAllred91 for answering so fast :) !
Just to let you know what I have found. I do not know really why, but if I move the code inside theif I have the code removed on production build. I moved the miragejs import to index.tsx and I have now something like:
./server.ts
import { AnyFactories, AnyModels } from "miragejs/-types";
import { ServerConfig } from "miragejs/server";

export const BASE_CONFIGS: ServerConfig<AnyModels, AnyFactories> = {
  // configs removed here, just to show
};

export function generateConfigsForEnv(
  environment = "test"
): ServerConfig<AnyModels, AnyFactories> {
  return {
    environment,
    ...BASE_CONFIGS,
  };
}

And then on index.tsx:
import React from "react";
import ReactDOM from "react-dom";
import { createServer } from "miragejs";

import "./index.css";
import App from "./App";

import { generateConfigsForEnv } from "./server";

if (process.env.NODE_ENV === "development") {
  createServer(generateConfigsForEnv("development"));
}

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById("root")
);

I also face this problem. follow above comments,i found import did not work but require did work,and "react-scripts": "4.0.3"。when I use import i found axios-mock-adapter in my bundle.js

import:

require:

my english is not good,sorry about this.

Hi @wangi4myself ,
Thanks! Interesting, I have not tried with require. I ended up using an asynchronous import, something like this:
if (process.env.NODE_ENV === 'development') {
  (async function loadApiMockServer() {
    const apiMock = await import('my-lib');

    apiMock.initiateApiMock({ environment: 'development' });
  })();
}

PS: Your English is fine :)

Having the same problem, and here is my solution:
if (process.env.NODE_ENV !== 'production') {
  import('./server').then(({ makeServer }) => {
    makeServer({ environment: 'development' });
  });
}

@zoubingwu Thank you, your solution is the best here and it works fine for me.
I ended up a little improve in this way, it avoids conflict env error.
new webpack.DefinePlugin({
  ...(!process.env.REACT_APP_ENABLE_MSW && {
    'process.env.REACT_APP_ENABLE_MSW': false,
  }),
}),


Do not limit number of episodes by default?

Hi,
thanks for this package! It works nicely for me. One issue I have is that the feed only contains 50 episodes. Is there any particular reason for this limit?

No reason. It seemed like a large enough number, but there's no reason why this can't be a setting. Is that something you have a need for?

Yep. I am using your app for a podcast with currently ~130 episodes. I removed the limit by subclassing ShowFeed. I suggest not limiting by default and letting the user subclass (or maybe use a setting) if they want to limit the number of episodes. I think that typically, people will want to export all episoded in their feed.

Let me know how this update works for you. You can update with pip. Can I see the podcast you're doing? Just curious to see my work!

Thanks! I'll test it ASAP.
I'm not doing the podcast myself, I just provide the technical platform for the author. It's a faith-related thing in German, so the content might not be that interesting for you ;) It's on https://wunder-werke.de/podcast/ (we're working on getting it into itunes). As you can see, we are still using your default templates right now -- I still need to do customization and localization.
Cheers!

This looks awesome. If you have any suggestions for template improvements, I'm open to hearing those, too.


Computing hessian of unnamed functions throws error

I am trying to implement a function to compute hessians of an array of functions (it's actually a single function with vector output but functions are created to output individual indexes to allow the hessian calculation)
I tried 2 approaches these are the MWE for them
fncs = [x -> x[1]^2 + x[2]^2, x -> x[2] * sin(x[1]) - x[1]]
cons_h = function (res, θ)
    for i in 1:2
        res[i] .= Enzyme.jacobian(Forward, (x) -> Enzyme.gradient(Reverse, fncs[i], x), θ)
    end
end
x0 = zeros(2)
H3 = [Array{Float64}(undef, 2, 2), Array{Float64}(undef, 2, 2)]
cons_h(H3, x0)

and
cons_h = function (res, θ)
    for i in 1:2
        y = zeros(1)

        vdy = Tuple(zeros(1) for i in eachindex(θ))
        vdθ = Tuple((Array(r) for r in eachrow(I(length(θ)) * 1.0)))

        bθ = zeros(length(θ))
        by = [1.0]
        vdbθ = Tuple(zeros(length(θ)) for i in eachindex(θ))
        vdby = Tuple(zeros(1) for i in eachindex(θ))

        Enzyme.autodiff(Forward,
                        (θ, y) -> Enzyme.autodiff((x, y) -> (y .= fncs[i](x); return nothing),
                                                  θ, y),
                        BatchDuplicated(Duplicated(θ, bθ), Duplicated.(vdθ, vdbθ)),
                        BatchDuplicated(Duplicated(y, by), Duplicated.(vdy, vdby)))

    end
end
H3 = [Array{Float64}(undef, 2, 2), Array{Float64}(undef, 2, 2)]
cons_h(H3, x0)

Both give the below error which makes me suspect that the way I am defining the individual function might be the issue
ERROR: Attempting to call an indirect active function whose runtime value is inactive:
Backtrace

Stacktrace:
 [1] macro expansion
   @ ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:6819
 [2] enzyme_call
   @ ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:6544
 [3] CombinedAdjointThunk
   @ ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:6507
 [4] autodiff
   @ ~/.julia/packages/Enzyme/DIkTv/src/Enzyme.jl:217
 [5] autodiff
   @ ~/.julia/packages/Enzyme/DIkTv/src/Enzyme.jl:248
 [6] autodiff
   @ ~/.julia/packages/Enzyme/DIkTv/src/Enzyme.jl:354
 [7] #18
   @ ~/Optimization.jl/test/ADtests.jl:92
 [8] #18
   @ ~/Optimization.jl/test/ADtests.jl:0

The library code this is intended for involves a bit more of indirection (shown below) and throws a different stacktrace (very large)
function con2_c(res, x, p)
    res .= [x[1]^2 + x[2]^2, x[2] * sin(x[1]) - x[1]]
end
cons = (res, θ) -> (con2_c(res, θ, nothing); return nothing)
cons_oop = (x) -> (_res = zeros(eltype(x), num_cons); cons(_res, x); _res)
fncs = [(x) -> cons_oop(x)[i] for i in 1:2]
cons_h = function (res, θ)
    for i in 1:2
        res[i] .= Enzyme.jacobian(Forward, (x) -> Enzyme.gradient(Reverse, fncs[i], x), θ)
    end
end
x0 = zeros(2)
H3 = [Array{Float64}(undef, 2, 2), Array{Float64}(undef, 2, 2)]
cons_h(H3, x0)

error
error.txt

@Vaibhavdixit02 you must use autodiff_deferred on the inner functions (thus the gradient syntactic sugar wrapper should not be used).

julia> function f2(fnc, x)
           dx = zeros(length(x))
           Enzyme.autodiff_deferred(Reverse, fnc, Duplicated(x, dx))
           dx
       end
f2 (generic function with 1 method)

julia> Enzyme.autodiff(Forward, f2, fncs[1], Duplicated(x0, similar(x0)))
(var"1" = [1.38758355690365e-309, 1.38758355690365e-309],)

julia> Enzyme.jacobian(Forward, (x) -> f2(fncs[1], x), x0)
2×2 Matrix{Float64}:
 2.0  0.0
 0.0  2.0

julia> Enzyme.jacobian(Forward, (x) -> f2(fncs[2], x), x0)
2×2 Matrix{Float64}:
 0.0  1.0
 1.0  0.0

fncs = [(x) -> x[1]^2 + x[2]^2, (x) -> x[2] * sin(x[1]) - x[1]]
cons_h = function (res, θ)
    for i in 1:2
        function f2(fnc, x)
           dx = zeros(length(x))
           Enzyme.autodiff_deferred(Reverse, fnc, Duplicated(x, dx))
           dx
        end
        Enzyme.jacobian(Forward, (x) -> f2(fncs[i], x), θ)
    end
end
H3 = [Array{Float64}(undef, 2, 2), Array{Float64}(undef, 2, 2)]
cons_h(H3, x0)

gives me
ERROR: Return type inferred to be Union{}. Giving up.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] #s883#169
   @ ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:6943 [inlined]
 [3] var"#s883#169"(F::Any, Fn::Any, DF::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, specid::Any, ReturnPrimal::Any, ShadowInit::Any, ::Any, #unused#::Type, f::Any, df::Any, #unused#::Type, tt::Any, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Any)
   @ Enzyme.Compiler ./none:0
 [4] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any})
   @ Core ./boot.jl:582
 [5] thunk
   @ ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:7001 [inlined]
 [6] thunk(f::var"#f2#43", df::Nothing, ::Type{Const{Union{}}}, tt::Type{Tuple{Const{var"#36#38"}, BatchDuplicated{Vector{Float64}, 2}}}, ::Val{Enzyme.API.DEM_ForwardMode}, ::Val{2}, ::Val{false}, ::Val{true})
   @ Enzyme.Compiler ~/.julia/packages/Enzyme/DIkTv/src/compiler.jl:6994

What version of julia are you using? Also regardless, you should also use autodiff instead of jacobian so you can pass in multiple parameters rather than forcing a closure.

I am on 1.8.5. I was able to remove the above Union{} error by not specifying the mode in the autodiff_deferred call.
Below is a reduced MWE of two cases, one that passes
x0 = zeros(2)
fncs = [x -> x[1]^2 + x[2]^2, x-> x[2] * sin(x[1]) - x[1]]
function f2(fnc, x)
    dx = zeros(length(x))
    Enzyme.autodiff_deferred(fnc, Duplicated(x, dx))
    dx
end
Enzyme.jacobian(Forward, x -> f2(fncs[1], x), x0)

And this one causes the attached error
function con2_c(x)
    [x[1]^2 + x[2]^2, x[2] * sin(x[1]) - x[1]]
end
fncs = [x -> con2_c(x)[i] for i in 1:2]
Enzyme.jacobian(Forward, x -> f2(fncs[1], x), x0)

error.txt

julia> Enzyme.autodiff(Forward, f2, fncs[1], Duplicated(x0, similar(x0)))
(var"1" = [1.38758355690365e-309, 1.38758355690365e-309],)

In your comment doesn't this look incorrect?

Also regardless, you should also use autodiff instead of jacobian so you can pass in multiple parameters rather than forcing a closure.

I have this working for the objective hessian, both cases work for that actually. But in the case with the array of anonymous functions generated in the comprehension, I have been unable to get it to work using either of the approaches.

In your comment doesn't this look incorrect?

No that's to be expected. That was jsut testing the function ran, since I passed in uninitialized memory via similar(x0) instead of a particular shadow.

Can you use the latest main? That might be the fix and potential source of your bug. On main we changed the ABI to take autodiff_deferred(Mode, ...) rather than the previous one which did not. Moreover, main has many many fixes.

I had been intermittently trying with master. It does work now! Awesome! 🎉


Analyzer to err when referencing virtual members in constructor of defining class

In reference to PR https://github.com/Azure/azure-sdk/pull/1888 for the reiterated requirement to note reference virtual members of the class defining the constructor, we should have an analyzer that errs when you do this. Maybe it could see if there's a corresponding parameter (or if one was used to set the property), but at least erring calls attention to fixing this issue.

I've filed a bug https://github.com/dotnet/roslyn-analyzers/issues/5044, but this analyzer doesn't provide in-depth analysis. If virtual member is called by other member that isn't virtual, there will be no error.


Proposal: New cop for line breaks in long arrays

Is your feature request related to a problem? Please describe.
Long arrays can be hard to read. I like to place each element on its own line. For example:
-  ATTRIBUTES = %i[subtotal_price_set total_capturable_set total_discounts_set total_price_set
-                           total_received_set total_refunded_set total_refunded_shipping_set
-                           total_shipping_price_set total_tax_set cart_discount_amount_set
-                           shipping_line fulfillments refunds net_payment_set line_items
-                           physical_location shipping_address billing_address customer].freeze
+  ATTRIBUTES = %i[
+    billing_address
+    cart_discount_amount_set
+    customer
+    fulfillments
+    line_items
+    net_payment_set
+    physical_location
+    refunds
+    shipping_address
+    shipping_line
+    subtotal_price_set
+    total_capturable_set
+    total_discounts_set
+    total_price_set
+    total_received_set
+    total_refunded_set
+    total_refunded_shipping_set
+    total_shipping_price_set
+    total_tax_set
+  ].freeze

This layout also makes SCM diffs much easier to read.
In this example I alphabetized the array, but the proposed cop would not alphabetize, because sometimes the order matters.
Describe the solution you'd like
Add a cop to place each array element on its own line. Indentation (alignment) will be per Layout/ArrayAlignment. The new cop will have a configuration option like MaxLength.
It may be desirable if the new cop only applied to arrays wholly composed of string or symbol literals. We may decide that breaking arrays of e.g. small integers onto their own lines is not desirable.
Describe alternatives you've considered
For auto-correction, I'm not aware of any alternatives.
Additional context
If the maintainers approve, I'm offering to build and maintain this cop. I've built auto-correcting cops before.

Perhaps this can be added to the LineLength cop as some option, as it already breaks down long arrays. I just don't recall how exactly did it split them.

Perhaps this can be added to the LineLength cop as some option, as it already breaks down long arrays. I just don't recall how exactly did it split them.

I'd be OK with adding an option to LineLength if that's what we decide, but I'm (slightly) concerned about putting too much complexity in one cop. It makes that cop (slightly) harder to document and unit-test. It's your call.

@bbatsov have you reached a decision about which cop this belongs in? Thanks.

What order do cops run in?

They run in the same order as they are defined, which means the order they are listed in lib/rubocop.rb. But cops should not depend on any particular invocation order. They should work regardless.

I'd be OK with adding an option to LineLength

Yes, I think that's where the new functionality belongs. We should solve complexity problems by extracting helper classes or something.


Upgrade pinegrow-web-designer to v2.2

Thank you for the contribution. It was merged directly as dc241d423e5f1ca01c243c84c069a2d6324a10cf to keep commit history cleaner. Your contribution is still credited to you.


Support double click recognition in bevy_picking.

What problem does this solve or what need does it fill?
bevy_picking currently only able to recognize the type of clicks, but can't, for counts.
What solution would you like?
Add a DoubleClick type.
What alternative(s) have you considered?
Supporting MultipleClick<const N: usize> would be better.
Additional context
None

I guess the plugin needs a delay: Duration parameter.

https://learn.microsoft.com/en-us/windows/win32/inputdev/wm-lbuttondblclk
https://developer.apple.com/documentation/appkit/nsevent/doubleclickinterval
Should the interval default to that set in the OS?

https://learn.microsoft.com/en-us/windows/win32/inputdev/wm-lbuttondblclk https://developer.apple.com/documentation/appkit/nsevent/doubleclickinterval
Should the interval default to that set in the OS?

It looks like Linux doesn't have a standard way to get this https://discourse.gnome.org/t/what-should-i-use-to-get-the-double-click-time/19917/2

How should this interact with single clicking? As in, do single clicks get delayed until the double click time has expired? Do both events happen?

I think the obvious answer is "both events happen", but I don't actually know how it is typically implemented.

In Godot, double_click is a boolean field on the InputEventMouseButton input event. When a double click is made, two InputEventMouseButton events are sent. One for the first click (with double_click false) and one for the second (with double_click true).
Delaying the single click event would introduce too much latency.
I don't propose the Godot way, as it's sort of messy (why have a redundant field on all pointer click events?).
Each click could send the primary Click event, but also spawn an observer which monitors for other clicks of the same type that removes itself after a configurable duration, if another click of the same type is made while the observer is still alive, then fire a DoubleClick event.
Alternatively, these could be chained to achieve MultipleClick as per OP, but the questions for me with this approach are:

Are multiple clicks beyond double clicks something people actually use?
If so, would we fire a MultipleClick<2> and then a MultipleClick<3> if a triple click was made?
If not, how would we address latency on n-clicks listening for (n+1)-clicks that would exist for the reason that single clicks would be delayed if we withheld them until the double click window had elapsed.

I would like DoubleClick and TripleClick, porting bevy_cosmic_edit to using bevy::picking rather than getting the window cursor and doing manual math
For my use case, there is no delay for any click: The first click is handled immediately, and the second and third click should be handled immediately given the knowledge that this click is 'special' and is actually a double click

How should this interact with single clicking? As in, do single clicks get delayed until the double click time has expired? Do both events happen?

How about sending multiple different kinds of events, and then the user can listen to whichever behavior they want. And that would work together with triple and so on clicks too. And an additional piece of configuration on the clicked entity to limit the max amount of clicks (Let's name it ClickChainLengthLimit for this example) and the time treshhold where the next click could still occur (ClickChainTreshhold).
So for example a double click could (potentially) fire these events (and probably double them to have one for both keyup and keydown):

Example Entity 1: (ClickChainTreshhold(Duration::from_millis(100)), ClickChainLengthLimit(3))

Click { i: 0, isLast: false, anActualInput: true } // at 0ms
Click { i: 1, isLast: false, anActualInput: true } // at 70ms
Click { i: 1, isLast: true, anActualInput: false } // at 170ms (there's definitely not a third click, the threshold has elapsed)

And a single click this:

Click { i: 0, isLast: false, anActualInput: true } // at 0ms
Click { i: 0, isLast: true, anActualInput: true } // at 100ms (there's definitely not a second click, the threshold has elapsed)

Or if the target entity is configured to only receive single clicks:

Example Entity 2: ClickChainLengthLimit(1)

Click { i: 0, isLast: true, anActualInput: true } // at 0ms (Doubleclicks will be treated as two separate clicks)

Example Entity 3: (ClickChainTreshhold(Duration::from_millis(100)), ClickChainLengthLimit(2))

A doubleclick

Click { i: 0, isLast: false, anActualInput: true } // at 0ms
Click { i: 1, isLast: true, anActualInput: true } // at 70ms

The point of this would be to decouple the wants of the emitter and the receiver. The receiver wants to be sure whats happening, for some operations it doesn't matter if click is definitely a single click (like selecting a file on your desktop when you want to open it) and for others maybe it matters, but the systems can decide if they care about it or not, they will know if this behavioral difference makes any difference or not, the emitter of the event wont. And the configuration could help in those edge cases where both latency and "sureness" matters.
The names here are not suggestions, just so the examples stay simple, for example instead of anActualInput it could include something more broad from which it could be deduced if the input happened when the event happened.


Update xrdp-neutrinordp.c to support side button (forward/back) click

Hello, thank you for the NeutrinoRDP proxy module feature of xrdp.
While using the feature, we found that so-called forward/back button won't work, and in this PR, we would like you to consider merging this patch to solve the issue. @matt335672

What are the buttons on the side of my mouse called?

Just for reference, similar fix for the VNC module: https://github.com/neutrinolabs/xrdp/pull/2426

I don't think sending the mouse button as a keyboard event is a good way to implement this.
Is there any reason not to send mouse event as mouse event as-is?

I don't have suitable mouse to look at this, but agreed with @metalefty. These should be send as mouse events somehow, if this is possible.
The event numbers you're using (115-118) correspond to the TS_POINTERX_EVENT in [MS-RDPBCGR] <IP_ADDRESS>.<IP_ADDRESS>.4. On the input side, we map these events from the input PDU in xrdp_wm_process_input_mousex() if you want to look at that code.
This suggests to me the code you want should look more like this:-
--- a/neutrinordp/xrdp-neutrinordp.c
+++ b/neutrinordp/xrdp-neutrinordp.c
@@ -423,6 +423,26 @@ lxrdp_event(struct mod *mod, int msg, long param1, long param2,
         case 110:
             break;

+        case WM_BUTTON8UP:
+            flags = PTR_XFLAGS_BUTTON1;
+            mod->inst->input->ExtendedMouseEvent(mod->inst->input, flags, 0, 0);
+            break;
+
+        case WM_BUTTON8DOWN:
+            flags = PTR_XFLAGS_BUTTON1 | PTR_XFLAGS_DOWN;
+            mod->inst->input->ExtendedMouseEvent(mod->inst->input, flags, 0, 0);
+            break;
+
+        case WM_BUTTON9UP:
+            flags = PTR_XFLAGS_BUTTON2;
+            mod->inst->input->ExtendedMouseEvent(mod->inst->input, flags, 0, 0);
+            break;
+
+        case WM_BUTTON9DOWN:
+            flags = PTR_XFLAGS_BUTTON2 | PTR_XFLAGS_DOWN;
+            mod->inst->input->ExtendedMouseEvent(mod->inst->input, flags, 0, 0);
+            break;
+
         case 200:
             LOG_DEVEL(LOG_LEVEL_DEBUG, "Invalidate request sent from client");
             x = (param1 >> 16) & 0xffff;

I can compile this but I can't test it. Can you try it?

I agree with you both; yes, mouse events should be treated as they are if possible. The code I made was a quick fix when I was asked by colleagues to address the issue.
I will talk to him and try your code. Please allow me some time, and thanks a lot for the review and advice. @metalefty @matt335672

Hello @matt335672 @metalefty I tried the code using MX Ergo mouse device from my colleague.
The code almost worked as-is, except for that param1(=x) and param2(=y) were also needed to be passed, as forward/back works only when mouse pointer is over the window of the Web browser.

Also, in this PR, 115-118 magic numbers are used, following the other message types.
Constifying the existing magic numbers were a bit hard for me, as some of them are not in the xrdp_constants.h#L236-L258.

@naruhito - thanks for that. The magic numbers are fine for now - we can sort that out later. I'm happy to merge this.
Regarding the commit history, you could create another PR, or you can squash the 4 commits into one, and we can merge that one.
Are you comfortable with squashing? I can give you a hand if you want to learn about it.

I've now force-pushed one squashed commit (, was that what you meant?) Thank you again for the advice. @matt335672
For my note:
git rebase -i neutrinolabs/v0.9
pick/squash/squash
git push origin neutrinordp-proxy-sidebutton-click -f


pixiedust does not recognize "installPackage"

As a developer, I want to run a Jupyter notebook within the context the "Gather, visualize, and analyze IoT data" tutorial (https://console.bluemix.net/docs/tutorials/gather-visualize-analyze-iot-data.html#gather-visualize-and-analyze-iot-data). I am in the step called "Create a Jupyter (ipynb) notebook", and when I try to execute the first cell of the notebook, which says:
!pip install --upgrade pixiedust
import pixiedust
Use play-json version 2.5.9. Latest version is not supported at this time.
pixiedust.installPackage("com.typesafe.play:play-json_2.11:2.5.9")
Get the latest sql-cloudant library
pixiedust.installPackage("org.apache.bahir:spark-sql-cloudant_2.11:0")
Expected behavior
I guess I am supposed to get some feedback to the effect that the packages have been loaded. Instead, I am getting
Actual behavior

AttributeError                            Traceback (most recent call last)
 in ()
2 import pixiedust
3 # Use play-json version 2.5.9. Latest version is not supported at this time.
----> 4 pixiedust.installPackage("com.typesafe.play:play-json_2.11:2.5.9")
5 # Get the latest sql-cloudant library
6 pixiedust.installPackage("org.apache.bahir:spark-sql-cloudant_2.11:0")
AttributeError: module 'pixiedust' has no attribute 'installPackage'
Steps to reproduce the behavior

I found the source of my problem by looking at other issues. I hadn't instantiated a Spark service prior to starting to work on the notebook.


Lost ability to add a package & project (or at least see it)

Not quite sure what I've done but Package/Project creation quit working mysteriously.
In the test_rowan_340 repository, you can send RowanPackageDefinitionService>>createPackageNamed:inProject:
The default symbol dictionary name is 'SampleSymbolDictionaryName'.  No walkbacks or failure messages in the transcript. It just doesn't show up in the category list.
Maybe pilot error, but I'm creating the packages the same way Dale and I did this morning.

What does the category list do to list symbolDictionaries? Can you resolve SampleSymbolDictionaryName in an inspector?
I might have to debug this with you tomorrow

What does the category list do to list symbolDictionaries?
Not really sure yet.
Can you resolve SampleSymbolDictionaryName in an inspector?
When I retry with the same package, I get a "tried to load an existing package" error. So it looks like it does something.  But my limited inspector doesn't show me anything.
I might have to debug this with you tomorrow
Sure, whatever works best.

'Rowan image loadedProjects' does show all the projects I created with the packages. ... fyi

projects are managed in a different manner than SymbolDictionaries ... (symbolDictionaries own the classes, class extensions and methods) ...

I think this is issue was addressed ... new issues may pop up though:)


Warnings when compiling

[ 11%] Building C object ext/symengine/CMakeFiles/symengine_ruby.dir/ruby_basic.c.o
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_basic.c: In function ‘cbasic_get_args’:
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_basic.c:135:18: warning: initialization makes integer from pointer without a cast [enabled by default]
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_basic.c: In function ‘cbasic_free_symbols’:
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_basic.c:157:18: warning: initialization makes integer from pointer without a cast [enabled by default]
[ 22%] Building C object ext/symengine/CMakeFiles/symengine_ruby.dir/ruby_symbol.c.o
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_symbol.c: In function ‘csymbol_init’:
/home/travis/gems/symengine-0.1.0/ext/symengine/ruby_symbol.c:11:15: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]

Fixed via #53


Robust/mature way to minimize joint position steady state error while in rigid contact?

Type of Issue
Select the type of issue:

[ ] Bug report (to report a bug)
[ ] Feature request (to request an additional feature)
[x] Tracker (I am just using this as a tracker)
[ ] Refactor request
[ ] Documentation Ask

Description
(TLDR: In polymetis, is there a robust/proper way to move to a specified joint position with minimal steady state errors, while still being able to handle rigid contacts?)
In our robotic experiments with the Franka arm, we are using joint position deltas as the robot actions. We found that accurate execution avoids compounding errors and improves rollouts. Our experiments also require that the robot arm interact with rigid objects.
Our current method is adding an integral term to the move_to_joint_positions motion generator, and stop updating the integral term if the external torque is too large. This seems a bit suboptimal, and it's not entirely robust upon rigid contact.
Current Behavior
We have a custom move_to_joint_positions function with an integral controller on top of the joint impedance controller to minimize steady state error. This works great when there is no contact, but it exerts too much force when in contact with rigid objects. For example, if the model commands the robot to go into a rigid wall, it will happily push extra hard into the wall as the integral term gradually overcompensates.
Expected Behavior
Ideally, the controller tries to minimize both steady state error and external torque when interacting with rigid objects.
Steps to reproduce
Here is our current motion generator (sorry it's a bit messy):
import time
import torch
import bezier
import logging
import polymetis
import numpy as np

def normalize_0_1(lower: float = 0.0, upper: float = 255.0):
    def f(arr):
        arr = arr.clip(lower, upper)
        arr -= arr.min()
        arr /= arr.max()
        return arr

    return f

# motion profile with f', f'', f''' starting and ending at 0
BEZIER_NODES = np.array(
    [
        [-1, 1],
        [-0.5, 1],
        [0, 1],
        [0.45, 1],
        [0.5, 0.5],
        [0.55, 0],
        [1, 0],
        [1.5, 0],
        [2, 0],
    ]
)
BEZIER_NODES[:, 0] = normalize_0_1(-1, 2)(BEZIER_NODES[:, 0])
MOTION_PROFILE = bezier.Curve(BEZIER_NODES.T, degree=len(BEZIER_NODES) - 1)

# linear interpolation: w_a * a + (1 - w_a) * b
def lerp(a: torch.Tensor, b: torch.Tensor, w_a: torch.Tensor):
    w_a = w_a.unsqueeze(1)
    a = a.unsqueeze(0)
    b = b.unsqueeze(0)
    w_b = 1 - w_a
    return w_a * a + w_b * b

class RobotController(polymetis.RobotInterface):
    def move_to_joint_positions_bezier(
        self,
        joint_positions: torch.Tensor,
        time_to_go: float = 4.0,
        fps: int = 60,
        converge_pos_err: bool = False,
        eps: float = 1e-2,
        I_gain: float = 0.1,
        I_clip: float = 0.1,
        torque_limit: float = 5.0,
        torque_comp_gain: float = 0.001,
    ):
        if not hasattr(self, "I_term"):
            self.I_term = torch.zeros(7)
        sleep_period = 1.0 / fps
        n_points = round(time_to_go * fps)
        xs = np.linspace(0, 1, n_points)
        xs, ys = MOTION_PROFILE.evaluate_multi(xs)
        ys = torch.from_numpy(ys)
        start = self.get_joint_positions()
        joint_cmds = lerp(start, joint_positions, ys)
        for i in range(len(joint_cmds)):
            if converge_pos_err:
                cmd = joint_cmds[i] + self.I_term
            else:
                cmd = joint_cmds[i]
            self.update_desired_joint_positions(cmd)
            time.sleep(sleep_period)
        if converge_pos_err:
            # integral controller to drive down steady state error
            err = torch.ones(1)  # position error placeholder
            tau = torch.zeros(7)  # torque placeholder
            while err.norm() > eps and tau.norm() < torque_limit:
                err = self.get_joint_positions() - joint_positions
                tau = torch.Tensor(self.get_robot_state().motor_torques_external)
                logging.info(f"tau: {tau.norm()}")
                self.I_term += -I_gain * err
                self.I_term = torch.clamp(self.I_term, -I_clip, I_clip)
                cmd = joint_positions + self.I_term
                self.update_desired_joint_positions(cmd)
                time.sleep(sleep_period)

    def reset_I_term(self):
        self.I_term = torch.zeros(7)

Links to any relevant pastes or documents

Hello @jeffacce! We actually pushed an update to Polymetis early August that hugely improves the tracking accuracy. If you haven't upgraded yet, please do so as it might just resolve your issues with tracking accuracy without the need of an integral controller.
If the performance of the updated Polymetis does not meet your specs, you can try increasing the P gains within the config files. (You can also change them by specifying Hydra overrides when running launch_robot.py)
If you find that PD alone cannot achieve your accuracy specs while having enough compliance, you might still need the integral term. What I have seen in practice is to decay the integral (multiplying the error integral by a constant slightly smaller than 1 each timestep), or just clamping it to the maximum acceptable force that the integral term can create.


Feature/string backed enum in order by

I have an enum defined for fields that an API endpoint can be sorted by.
enum UserIndexSort: string
{
    case CreatedAt = 'created_at';
    case Name = 'name';
    case Email = 'email';
}

I'd like to pass this directly into the query builder, rather than having to convert to a string.
$sort = UserIndexSort::Name;

$users = User::query()
    ->orderBy($sort->value, 'desc')
    ->paginate();

The change I have made is quite deep in the framework. Illuminate/Database/Grammar::wrap is used in a lot of places. That being said, I do not see it being problematic - any BackedEnum being passed to wrap should be handled like so? Code will behave exactly as prior, unless a BackedEnum is passed.
As such, this change likely allows for BackedEnums to be used in other places too - happy to look through / update existing DocBlocks if that is desired. I think it will be, I just didn't want to do it too early, and then have the PR rejected.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If applicable, please consider releasing your code as a package so that the community can still take advantage of your contributions!


Spread syntax with story/temporary variables causes TwineScript error

Describe the bug.
Using spread syntax without a space (I.E. [...$var]) causes issues. But using a space to separate does not. (I.E. [... $var])
To Reproduce:
Example:
Attempting to convert a Set to Array. $set is a Set variable.
<<set setup.setToArray = function (set) { return [...set] }>>
<<set _arr = setup.setToArray($set)>>
This would work.

<<set setup.set = $set>>
<<set _arr = [...setup.set]>>
This would work as spread is not used on a story or temporary variable.

<<set _arr = [... $set]>>
This works. A space is used to separate the spread syntax.

<<set _arr = [...$set]>>
This errors out "$set is not defined".

Expected behavior.
Spread syntax should work with story or temporary variables even if there is no space separating them.
Project details.

SugarCube Version: 2.36.1
Compiler & Version: Tweego version 2.1.1+81d1d71

Desktop details.

OS & Version: Windows 10 Enterprise LTSC Version 1809
Browser & Version: Chrome 111.0.5563.66 (64 bit)

Additional context.
Problem is rather minor, just posting it for good measure.

Point taken, it's called spread syntax not "spread operator" :D
Appreciate the fix!

WAT?  Oh.  The edits.  That's just for my own OCD.  It is a syntax, rather than an operator, so call a spade a spade and all that.

you must craft the perfect title before you close this and never look at it again


Remember the sort order of lists across sessions

Is there an existing issue for this?

[X] I have searched the existing issues.

Describe the solution you'd like
Maybe the sort order of lists can be saved and reapplied at the next restart, fort both overview and inspect tabs.
Is your feature request related to a problem?
Every time I start the app, I should reset the sort order. Maybe this is not relevant for users that prefer the default state, but it's quite annoying for others that prefer a different order.
Maybe they could be saved to the config file on shutdown and reloaded at startup.
This is not a big issue, but the usability could be improved after adding this feature.
Anyway, I didn't say it before, but thanks for this application, it's very helpful. There are other tools on Linux that does quite the same thing, but at least sniffnet is more user friendly.

Adding this is extremely trivial since Sniffnet already uses a config file for the parameters included in the settings.
My only concern is whether it's actually meaningful or not.
I'm not sure this kind of stuff is usually saved into configs, and maybe it could be non-intuitive for some users.
I can think of a case where a user changes the sort order just out of curiosity and then reopens the app expecting to see most recent data without noticing that the sort order is still that set last time.
I feel seeing most recent data is what majority of the people are interested in.
Why do you prefer a different sorting strategy? Maybe getting your point of view can help.

Anyway, I didn't say it before, but thanks for this application, it's very helpful. There are other tools on Linux that does quite the same thing, but at least sniffnet is more user friendly.

Thanks so much 🙏
I'm also thankful to you for all the opened issues, they are indeed useful for me / the project.

My only concern is whether it's actually meaningful or not. I'm not sure this kind of stuff is usually saved into configs, and maybe it could be non-intuitive for some users. I can think of a case where a user changes the sort order just out of curiosity and then reopens the app expecting to see most recent data without noticing that the sort order is still that set last time.
I feel seeing most recent data is what majority of the people are interested in. Why do you prefer a different sorting strategy? Maybe getting your point of view can help.

To see which connection is using more data. I think the user expects to see the sort order they set previously. In example, if I set a specific order in Thunderbird to get mails sorted in the way I want, at the next startup the order does not change.

After more carefully evaluating this request I've come to the conclusion that I prefer leaving things as they're now.
Despite adding this configuration is straightforward, the running pages of the app (Overview, Inspect, Notifications) are stateless by design: the idea is that when a new capture is restarted, it begins from a completely clean state.
Adding states for the sort orders would make this more ambiguous, since other parameters'd be reset anyway:

data representation unit
favorite hosts
search filters in Inspect page
notifications list

The parameters with a state are included in the settings of the app, and none of them is relative to the analysis itself (except for the MMDB files, but they are more time consuming to select than a simple click on the sort arrows, and they are not directly visible in the running pages).


[Improvement] Use template to reduce Privileges duplicate codes

What would you like to be improved?
Currently Privileges.java have more than one thousand duplicate code to instantiation CreateCatalog, AlterCatalog, ...
public abstract static class CreateCatalog implements Privilege {

    private static final CreateCatalog ALLOW_INSTANCE =
        new CreateCatalog() {
          @Override
          public Condition condition() {
            return Condition.ALLOW;
          }
        };

    private static final CreateCatalog DENY_INSTANCE =
        new CreateCatalog() {
          @Override
          public Condition condition() {
            return Condition.DENY;
          }
        };

    private CreateCatalog() {}

    /** @return The instance with allow condition of the privilege. */
    public static CreateCatalog allow() {
      return ALLOW_INSTANCE;
    }

    /** @return The instance with deny condition of the privilege. */
    public static CreateCatalog deny() {
      return DENY_INSTANCE;
    }

    /** @return The generic name of the privilege. */
    @Override
    public Name name() {
      return CREATE_CATALOG;
    }

    /** @return A readable string representation for the privilege. */
    @Override
    public String simpleString() {
      return condition().name() + " create catalog";
    }
  }

How should we improve?
I think we can use the template to reduce these duplicate codes.
GenericPrivilege.java Template code just like there:
public abstract class GenericPrivilege<T extends GenericPrivilege<T>> implements Privilege {
  @FunctionalInterface
  public interface GenericPrivilegeFactory<T extends GenericPrivilege<T>> {
    T create(Privilege.Condition condition, Privilege.Name name);
  }

  private final Condition condition;
  private final Name name;

  protected GenericPrivilege(Condition condition, Name name) {
    this.condition = condition;
    this.name = name;
  }

  /** @return The instance with allow condition of the privilege. */
  public static <T extends GenericPrivilege<T>> T allow(
      Name name, GenericPrivilegeFactory<T> factory) {
    return factory.create(Condition.ALLOW, name);
  }

  /** @return The instance with deny condition of the privilege. */
  public static <T extends GenericPrivilege<T>> T deny(
      Name name, GenericPrivilegeFactory<T> factory) {
    return factory.create(Condition.DENY, name);
  }

  /** @return The generic name of the privilege. */
  @Override
  public Name name() {
    return name;
  }

  /** @return The condition of the privilege. */
  @Override
  public Condition condition() {
    return condition;
  }

  /** @return A readable string representation for the privilege. */
  @Override
  public String simpleString() {
    return condition.name() + " " + name.name().toLowerCase().replace('_', ' ');
  }
}

We can use GenericPrivilege.java to instantiation CreateCatalog, AlterCatalog, ...
public static class CreateCatalog extends GenericPrivilege<CreateCatalog> {
    private CreateCatalog(Condition condition, Name name) {
      super(condition, name);
    }

    /** @return The instance with allow condition of the privilege. */
    public static CreateCatalog allow() {
      return GenericPrivilege.allow(Name.CREATE_CATALOG, CreateCatalog::new);
    }

    /** @return The instance with deny condition of the privilege. */
    public static CreateCatalog deny() {
      return GenericPrivilege.deny(Name.CREATE_CATALOG, CreateCatalog::new);
    }
  }

I want to have a try. Can you assign to me? Thanks a lot.

Hi @rich7420 Thank you for interesting this issue, I assign to you, If you have any problem, please add comments to this issue. :-)

@xunliu thank you very much!

@xunliu I have a PR in #4010 . But actually, when I trying to run ./gradlew build in local, this error came out.
I think is because there are different numbers before <SecurableObject: [fullName=metalake], [type=METALAKE], [privileges=[ALLOW use metalake]]>. How should I resolve this issue?

Is it possible to modify the content in the test to use the actual values of the test instead of the memory addresses?


Separate "Contributing" doc

GitHub community standards expects a standalone CONTRIBUTING.md document in the project root.

/lgtm


feat: add checkPolicies endpoint to Policies V2 API

Adds a new CheckPolicies call to the PoliciesV2API that returns both Tag Policies and Fin Ops Policies
Adds the FinOpsPolicies to the output
Modifies comment & upload commands to use the PoliciesV2API instead of TagPoliciesAPI
Remove TagPoliciesAPI

Note: I've also added a comment pr against this: https://github.com/infracost/infracost/pull/2666