Efficiency Changes in the Universal Chemical Fuel Engine

Changed the coefficients for the formulas used to calculate the fuel efficiency of Diesel and Gas fuels. This should penalize the usage of simpler, low fuel value fuels compared to their more complex, higher fuel value alternatives.

TL;DR: The amount of additive needed is doubled/quadrupled for diesels and gases (they match after the change). This affects simple fuels more because of their lower fuel values. If the additive consumed 1% of the energy, it will consume 2% after the change, which is minimal. If it consumed 50% before, it'll consume 100% after the change, which is all the fuel can provide. Because of this, changing the formula like this benefits the complicated fuels compared to the simpler ones.
I graphed the formula used to calculate the fuel efficiency of fuels when burned in the Universal Chemical Fuel Engine (UCFE).

This is the main formula, with a change in one of the numbers, the coefficient that this PR is focused on. To summarize, the bigger it is, the more Combustion Promotor is needed to maintain efficiency, an expensive additive that cuts into the fuel generation. On the graph, the x-axis represents the amount of buckets of fuel being consumed per bucket of Combustion Promotor, and the y-axis represents the efficiency, in percentage, from this proportion. The UCFE will eat any amount of both that is provided, and then produce power equivalent to the fuel consumed, with a varying degree of efficiency based on this formula.
All the fuels consumed would need more Combustion Promotor, but the lower fuel value fuels already need more of it to begin with, so it is a higher flat amount increase for them, which penalizes their usage in LuV power generation. I believe this allows HOG and Nitrobenzene to shine more in this tier, so I made this PR to share the thought with everyone else.

This PR was marked as draft because 0lafe wanted to try a different formula for the UCFE altogether. Since that went nowhere over time (and I admittedly forgot about my own PR), I opened this again. It's finished, should work perfectly and I think it is a buff to HOG and nitrobenzene, even if in an unpopular powergen multi.


Raising the bar on code compliance

Most of the previously ignored style violations have been resolved. This includes unused imports and variables, as well as less intrusive style deficiencies.
Since we are starting essentially from scratch here I believe we should avoid perpetuating some of the issues that plagued our codebase before. Appropriate baseline is essential for this, as it prevents reintroduction of previously resolved problems.
Any further code ported from tripleo-ansible will possibly require some changes to comply. But since it isn't going to be done in one go it should be manageable, while also offering an opportunity to look over some other cases inviting possible refactor.
Signed-off-by: Jiri Podivin<EMAIL_ADDRESS>

helpers.py were changed in the previous commit, I'll rebase and push again. At least this proves that the CI works.

100% agree on this @jpodivin !

It appears that the pr-check needs to be expanded to other states of PR. It didn't trigger when I force pushed a new patch.

This should make sure that action is triggered on PR when the hash changes.
#16


docs: add embed capability info

What does this PR do?
This just adds some info on how to embed the hosted cart in your existing app or website.

:tada: This PR is included in version 1.0.13 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Callback Documentation

This Issue is about

An error in the documentation

The documentation for buttons, and I think for many other classes that contain callbacks don't show what parameter (if any) are passed in when they are called. This is confusing to me when reading the documentation and trying to figure out which options could be used.
For example, I don't know if the button click callback already passes an isOver parameter, since it still activates the function even when the pointer leaves the button, and that the onInputUp which is used to call it does pass in that parameter.
The Signal class documentation puts very little emphasis on callback parameters, but they are pretty important, especially the isOver parameter for onInputUp.

Agreed, the docs should note that the Button callback is actually added to Events#onInputUp.
If you find other callbacks with undocumented arguments, please add to this thread.

It's a pain but you can do console.log(arguments) to discover undocumented arguments.

Closing for 658f68a but please open a new issue if you find any other mystery callbacks.


Implement JpqlSerializer for JpqlLessThan

Backgrounds

In Kotlin JDSL 3.0.0, the Query objects no longer know how to draw themselves as SQL String.
The Query object is drawn in JPQL String by JpqlSerializer.

Requirements

Please implement  JpqlSerializer that draws JpqlLessThan as a SQL String.
Please implement a unit test for the implemented class.

Contribution

Please check if there is an assignee in this issue. And if it don't have an assignee, please change the assignee to yourself.
Please check the commit convention through the commitlint.config.js file. The commit  convention also described in the PR template.
When you use intellij, please set the code style through the .editorconfig file.
Please create the PR for develop/3.0.0 as the base branch.
If you have any questions, please leave comment in Kotlin-JDSL Discord Channel in LINE Open Source

저에게 할당 부탁드립니다

This issue is closed by #438


Manager upgrade support

We need to support upgrading Longhorn Manager.

Finished basic support since https://github.com/rancher/longhorn-manager/commit/98dd3f8fb20ad86e95fbd0429932f015c8c0b7c6 . Need extensive test.
The steps to upgrade with longhorn-manager code(only from v0.2 release):

Detach all the volumes. This version we cannot support engine live upgrade.
kubectl delete -f deploy/02-components/
kubectl apply -f deploy/01-prerequisite/
kubectl create -f deploy/02-components/
Select all the volumes in the UI, click upgrade and choose the latest default version.

The steps may change in the future, e.g. when we introduce longhorn-driver-deployer to replace longhorn-flexvolume-driver-deployer.

The next step is to figure out a way to upgrade for the Longhorn chart.

The chart upgrade pushed to v0.3.1

https://github.com/rancher/longhorn-manager/commit/84ba2fbb1a23b4ea327022ff79b8f9a39b4035c3 finished the upgrade from v0.2 to v0.3.


Updated the link to Swagger

Since Sanic-openapi was abandoned.

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1372   +/-   ##
======================================
  Coverage    81.5%   81.5%
======================================
  Files          17      17
  Lines        1692    1692
  Branches      321     321
======================================
  Hits         1379    1379
  Misses        246     246
  Partials       67      67

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d06ea9b...ddc170c. Read the comment docs.

sanic-openapi is not abandoned ... and in fact @abatilo (the developer behind sanic-swagger) has stepped up to take over the project.
See: https://github.com/huge-success/sanic-openapi/issues/68


chore: bdd-sbrp-import-1586899727 to 0.0.1

chore: Promote bdd-sbrp-import-1586899727 to version 0.0.1

[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 approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  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


Autoplay stops on card effects after manually moving to next or previous slide

Check that this is really a bug

[X] I confirm

Reproduction link
https://codesandbox.io/s/swiper-react-effect-cards-forked-qjzj9j?file=/src/App.jsx
Bug description
I just added autoplay to Swiper React Effect Cards codesandbox project.
At first, autoplay works fine.
But if I manually move to next or previous slide by dragging the card, it doesn't autoplay anymore.
Expected Behavior
No response
Actual Behavior
No response
Swiper version
^10.0.0
Platform/Target and Browser Versions
Chrome
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

You need to set disableOnInteraction parameters to false for autoplay. Checkout https://swiperjs.com/swiper-api#param-disableOnInteraction

thanks


thankYou page added

#195  issue is resolved
#200 also
Thank you page is impoved, added route to home page in thank you page
Added route to thank you page in Donor register page

@Saurav-Pant review my PR

Please share the video of it for both Dark and Light Theme @Devvart1

https://github.com/Saurav-Pant/Blood-Donation-Project/assets/78067388/f26c3bbd-0ffd-477e-b2c4-554d701bdb87
@Saurav-Pant

@Saurav-Pant It's under GSSOC'24 tag it also

Resolve Merge Conflicts @Devvart1


Small fixes

Coverage increased (+0.2%) to 83.247% when pulling b4b3606eee1bac46625b140873f906bd226b5879 on small_fixes into 1a7c502f28db22436a6b2a6d2c64c16e033bfd7b on master.


Update Read the Docs configuration

Description of PR
Summary of changes and related issue

Update docs/requirements.txt to a complete list of dependencies
Update Python version to 3.10

Relevant motivation and context
Read the Docs fails to build from time to time due to dependency issues. This PR tries to stabilize the build processes by pinning packages to versions known to be working.
Type of change

[ ] 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

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Build succeeded. Preview: https://climakitae--374.org.readthedocs.build/en/374/
Checklist:

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

Is there a reason for having so many packages in the readthedocs requirements? If it is only for setting up virtualenv locally for building files then what I do is first load the requirements.txt from the climakitae package and then load the requirements.txt here in the docs dir.

The packages are for setting up the remote builds as well. I hoped including them all would prevent some build failures due to dependency issues such as those that occurred recently.

@elehmer I reverted the updates, but added ipython to docs/requirements.txt. I also updated the order of req.txt and docs/req.txt installation in .readthedocs.yaml so the main requirements get installed first. Does this look better?

@elehmer I reverted the updates, but added ipython to docs/requirements.txt. I also updated the order of req.txt and docs/req.txt installation in .readthedocs.yaml so the main requirements get installed first. Does this look better?

Thanks for that as I think just the minimum to get readthedocs working is for the best.
Can you set ipython==8.5.0? That is what it is on the HUB. You can always check the version on the HUB by opening a Terminal and typing conda list | grep <package_of_interest>


Overlay not working because of update

Basically title. Are you planning updating it anytime soon?

https://github.com/TekkenOverlay/TekkenOverlay/releases/tag/4.22.0


add searchbox to load tasks by different neighborhood

An autocomplete search box was added to the top of the task results that allows users to enter a different address, select it and this will load tasks by the addresses's neighborhood instead. Additionally, if the search box doesn't have a valid input (a selection hasn't been made from the drop-down menu) it will default to the user's actual location.

Sorry for the late reply!

No worries at all, thanks for the feedback :) !


HDDS-8888. Consider Datanode queue capacity when sending DeleteBlocks command

What changes were proposed in this pull request?
Currently, one of the conditions for the SCMBlockDeletingService to decide whether to send a deletion transaction to a DN is whether the SCM's CommandQueue is empty, a better way to determine this is based on whether there is enough space in the DN's queue rather than the SCM's queue.
In some cases, even if a DN is able to get a delete transaction from the SCM, the DN will not be able to complete the task fast enough, command will be accumulated in the DN's queue, in which case, using this strategy will better control the load on the DN
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8888
Please replace this section with the link to the Apache JIRA)
How was this patch tested?
unit test

@Xushaohong PTAL Thanks.

@Xushaohong PTAL Thanks.

Hi @xichen01, not sure if you forget to push the commit or comment.

@Xushaohong PTAL Thanks.

Hi @xichen01, not sure if you forget to push the commit or comment.

Sorry, The comment is Pending status, I have commit the comments

Thanks @xichen01 for working on this.  License header is missing (reported by ratcheck):
hadoop-hdds/server-scm/target/rat.txt: !????? /home/runner/work/ozone/ozone/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java

https://github.com/xichen01/ozone/actions/runs/5322342178/jobs/9638901446#step:6:831
And new config property needs to be added to ozone-default.xml, too:
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.47 s <<< FAILURE! - in org.apache.hadoop.ozone.TestOzoneConfigurationFields
Error:  org.apache.hadoop.ozone.TestOzoneConfigurationFields.testCompareConfigurationClassAgainstXml  Time elapsed: 0.033 s  <<< FAILURE!
... 1 variables missing in ozone-default.xml Entries:   ozone.block.deleting.pending.command.limit expected:<0> but was:<1>

https://github.com/xichen01/ozone/actions/runs/5322342178/jobs/9638902642#step:5:3834

Thanks @xichen01 for working on this. License header is missing (reported by ratcheck):
hadoop-hdds/server-scm/target/rat.txt: !????? /home/runner/work/ozone/ozone/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestSCMBlockDeletingService.java

https://github.com/xichen01/ozone/actions/runs/5322342178/jobs/9638901446#step:6:831
And new config property needs to be added to ozone-default.xml, too:
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.47 s <<< FAILURE! - in org.apache.hadoop.ozone.TestOzoneConfigurationFields
Error:  org.apache.hadoop.ozone.TestOzoneConfigurationFields.testCompareConfigurationClassAgainstXml  Time elapsed: 0.033 s  <<< FAILURE!
... 1 variables missing in ozone-default.xml Entries:   ozone.block.deleting.pending.command.limit expected:<0> but was:<1>

https://github.com/xichen01/ozone/actions/runs/5322342178/jobs/9638902642#step:5:3834

License header has been added and the new config property has been added to ozone-default.xml.

@adoroszlai PTAL. Thanks

@xichen01 IMO, the changes is not required, as having queue will not provide any benefits. As per SCM deleteBlock processing, it will retry same blocks for delete till response in HB is not received.

SCM sends duplicate BlockIDs to the DN, we should avoid this problem because it affects the speed of DN marking blocks, in our Cluster, only about 1/3 of the blocks sent by SCM to the DN are valid, and the remaining 2/3 are duplicates.
And if the DN's DeleteBlocksCommandHandlerThread thread is blocked for any reason, this DN will not be able to report the status of the delete transaction to the SCM for a long time, which will cause the SCM to keep sending delete transactions to the stuck DN, and if the DN is stuck for a long enough period of time, you'll find that the SCM will send a delete transaction only to the stuck DN (all the deletes are duplicated), and other normal DNs will not be able to receive new deletion transactions (because they will be skipped).
Our business requires a deletion speed of at least 1000+ QPS to meet our business needs. The current Ozone deletion speed is not stable enough to reach this speed.

Our business requires a deletion speed of at least 1000+ QPS to meet our business needs. The current Ozone deletion speed is not stable enough to reach this speed.

I have seen another PR for solving duplicate delete blocks handling.
IMO, we can do below changes to improve deletion speed,

increase the item size, block.deletion.per-interval.max
reduce the frequency for triggering frequent getting blocks, ozone.block.deleting.service.timeout, like 30 sec in your case.
-- tuning above parameter can help achieve same result, as having code to keep queue of commands.

Our business requires a deletion speed of at least 1000+ QPS to meet our business needs. The current Ozone deletion speed is not stable enough to reach this speed.

I have seen another PR for solving duplicate delete blocks handling.
IMO, we can do below changes to improve deletion speed,

increase the item size, block.deletion.per-interval.max
reduce the frequency for triggering frequent getting blocks, ozone.block.deleting.service.timeout, like 30 sec in your case.
-- tuning above parameter can help achieve same result, as having code to keep queue of commands.

Thanks you for the suggestion, we have increase the size of block.deletion.per-interval.max , but we are increase the  ozone.block.deleting.service.timeout too, because if we just reduce this value from 60s to 30s, the valid(no duplicate) "Block deletion transaction" will reduce from 1/3 to 1/6 even more less, maybe 5/6 "Block deletion transaction" are duplicate.
And some DN are slower than others, that cause most (sometimes is all) of the "Block deletion transaction"'s are sent to the slow DN, which results in the other normal DN can not receiving the new transaction(figure below). this PR can resolve this issue.

For duplicate handled, HDDS-8882 is raised. So with that, this might not be issue.
Slow DN part, there can be another improvement can be done at SCM, if number of commitTransaction for the DN is more, SCM can control sending new blocks, but it will be tricky, to choose retry or sending new blocks to DN. As,

DN can go down or other failure

Instead of queue capacity at SCM, some analysis can be done for controlling retry and sending new blocks to DN - strategy.

Are you mean that we should consider "Does DN have too many unexecuted Block delete transactions" inside HDDS-8882?
If the DN has too many unexecuted delete transactions, we do not send new Block delete transactions for it.
But this is actually a similar implementation. In this PR we monitorer the length of the queue on the DN to determine whether to send a new delete transaction to the DN. This PR does not added any new queue on the SCM side. if a DN is down or other failure, its length of queue change can be monitored by SCM, so that shouldn't be a problem either.
Based on the HDDS-8882, it is acceptable to implement transmit control, do you have any suggestions?

Are you mean that we should consider "Does DN have too many unexecuted Block delete transactions" inside HDDS-8882? If the DN has too many unexecuted delete transactions, we do not send new Block delete transactions for it.
But this is actually a similar implementation. In this PR we monitorer the length of the queue on the DN to determine whether to send a new delete transaction to the DN. This PR does not added any new queue on the SCM side. if a DN is down or other failure, its length of queue change can be monitored by SCM, so that shouldn't be a problem either.
Based on the HDDS-8882, it is acceptable to implement transmit control, do you have any suggestions?

@xichen01 Sorry for late reply, Re-looked over this, It checks count of DN;s queue length and pending Command queue at SCM and take decision,

checking DN's queue length is good to avoid resending same command and being rejected by DN.

For commands getting queued at SMC, this check also enforce to add same command again if DN is down.

nodeManager.getTotalDatanodeCommandCount(() -- returns command count at DN and at SCM together
nodeManager.getCommandQueueCount() -- returns command count present at SCM only as used earlier
Case: if DN command queue previoulsy is "0" or less than 5 and also DN is down, this will cause to add same command at SCM till limit "5". (duplicating exactly till 5 overall).
So we can have above as additional check if required to avoid sending command if DN queue is already reached "5".
May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

//...
Case: if DN command queue previoulsy is "0" or less than 5 and also DN is down, this will cause to add same command at SCM till limit "5". (duplicating exactly till 5 overall).
//...

Thank you for your reply.
Yes, currently, if the DN is down, duplicate commands are put to the SCM command queue until the limit.
However, if the HDDS-8882 is merged, the SCM will not place duplicate commands into the SCM command queue, because if a command is not sent to the DN, the command status will be TO_BE_SENT and the TO_BE_SENT command will be skipped when the SCM generating a DeletedBlocksTransaction command.
So if the HDDS-8882 is also merged, while the DN is down, the SCM will generate unduplicated DeletedBlocksTransaction commands to the command queue.

May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

If HDDS-8882 can be merged, maybe this doesn't need to be added
What do you think?

@sumitagrawl @adoroszlai, PTAL, Thanks

May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

If HDDS-8882 can be merged, maybe this doesn't need to be added What do you think?

@xichen01
HDDS-8882 is merged now. Related to this, we need some improvement in check for this PR.
My concern was:
getTotalDatanodeCommandCount() returns DN queue count + command count at SCM. eg:
DN count = 2
SCM count=1
Total count=3
Default max count=5
-- in this case, it will add new set of command to SCM as meet the criteria and as result,
SCM count=2 in command queue at SCM.
We can optimize the logic as,
getTotalDatanodeCommandCount() < 5 && getCommandQueueCount() == 0
<-- this ensure that new command is not added at SCM till previous one is send to DN.

May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

If HDDS-8882 can be merged, maybe this doesn't need to be added What do you think?

@xichen01 HDDS-8882 is merged now. Related to this, we need some improvement in check for this PR.
My concern was: getTotalDatanodeCommandCount() returns DN queue count + command count at SCM. eg: DN count = 2 SCM count=1 Total count=3 Default max count=5 -- in this case, it will add new set of command to SCM as meet the criteria and as result, SCM count=2 in command queue at SCM.
We can optimize the logic as, getTotalDatanodeCommandCount() < 5 && getCommandQueueCount() == 0 <-- this ensure that new command is not added at SCM till previous one is send to DN.

@sumitagrawl
I understand, but is it too strict to limit getCommandQueueCount() == 0, because there may be a delay in updating the DN's queue information, which may leave the DN idle, I think it could be getTotalDatanodeCommandCount() < queueLen && getCommandQueueCount() < ceil(queueLen/2).
what do you think?

May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

If HDDS-8882 can be merged, maybe this doesn't need to be added What do you think?

@xichen01 HDDS-8882 is merged now. Related to this, we need some improvement in check for this PR.
My concern was: getTotalDatanodeCommandCount() returns DN queue count + command count at SCM. eg: DN count = 2 SCM count=1 Total count=3 Default max count=5 -- in this case, it will add new set of command to SCM as meet the criteria and as result, SCM count=2 in command queue at SCM.
We can optimize the logic as, getTotalDatanodeCommandCount() < 5 && getCommandQueueCount() == 0 <-- this ensure that new command is not added at SCM till previous one is send to DN.

@sumitagrawl I understand, but is it too strict to limit getCommandQueueCount() == 0, because there may be a delay in updating the DN's queue information, which may leave the DN idle, I think it could be getTotalDatanodeCommandCount() < queueLen && getCommandQueueCount() < ceil(queueLen/2). what do you think?

@xichen01 I got your point, that need one command to be in advance. We can then have it as
getTotalDatanodeCommandCount() < queueLen && getCommandQueueCount() < 2
reason of using only one in advance is that, when HB comes from DN, it will send all items in command queue from SCM to DN together. This is to avoid big message size in response as can happen if someone configure higher value of queueLen.
But this will solve the problem of idle, that if only one command in queue, next command can run parallel to be prepared.

May be we can check for lesser queue size at SCM to send like limit "2" to avoid duplicate for the change.

If HDDS-8882 can be merged, maybe this doesn't need to be added What do you think?

@xichen01 HDDS-8882 is merged now. Related to this, we need some improvement in check for this PR.
My concern was: getTotalDatanodeCommandCount() returns DN queue count + command count at SCM. eg: DN count = 2 SCM count=1 Total count=3 Default max count=5 -- in this case, it will add new set of command to SCM as meet the criteria and as result, SCM count=2 in command queue at SCM.
We can optimize the logic as, getTotalDatanodeCommandCount() < 5 && getCommandQueueCount() == 0 <-- this ensure that new command is not added at SCM till previous one is send to DN.

@sumitagrawl I understand, but is it too strict to limit getCommandQueueCount() == 0, because there may be a delay in updating the DN's queue information, which may leave the DN idle, I think it could be getTotalDatanodeCommandCount() < queueLen && getCommandQueueCount() < ceil(queueLen/2). what do you think?

@xichen01 I got your point, that need one command to be in advance. We can then have it as getTotalDatanodeCommandCount() < queueLen && getCommandQueueCount() < 2
reason of using only one in advance is that, when HB comes from DN, it will send all items in command queue from SCM to DN together. This is to avoid big message size in response as can happen if someone configure higher value of queueLen.
But this will solve the problem of idle, that if only one command in queue, next command can run parallel to be prepared.

Done.

Thanks @xichen01 for the patch, @sumitagrawl, @Xushaohong for the review.


The Research Paper is Garbage

Thank you for writing this, you've done a good job putting the sourced research paper/technical report into code.  Unfortunately the technical report is garbage.  I've spent the last few days trying to fix some of the major issues (I can see in the code you tried to address some of the problems as well).  The following is a quick summary.
Quick Observations that Something is Wrong
When running the program you can observe issues.  All prices are more or less random and trend towards pennies. No agents are profitable, they just go bankrupt faster or slower depending on idle time and resource costs.    The entire point of the paper is to find prices in a simulated economy, however this function is not accomplished and I claim cannot be accomplished using the methods described in the paper.
Critical Issues in the Technical Paper

The first thing I noticed was that the described double auction algorithm in the paper is not a proper double auction.  Trades should never execute at prices below the seller bid, nor above the buyer ask, yet the described algorithm does not prevent either case.  In particular the seller does not have proper control of the prices they are getting to allow them to be profitable.  At first I thought this was why agents weren't profitable, but I quickly found a larger problem...

Commodity prices in the sim have some interaction with supply/demand but have no foundation in production costs, so agents cannot be profitable.  Nor will discovered prices have much of a relation to the simulated economy.  Bids (and asks) are random values in a range that was based on observations of past trades (which were also set randomly).  So prices will cluster for a while at randomly found ranges somewhat effected by supply and demand, but none of the prices found will actually be relevant.  A particular glaring omission is the agents described in the technical paper do not take into account their costs when setting asks so have no hope of being profitable beyond random chance.   Also discovered commodity prices do not reflect the value that actually went into producing those commodities.  So prices are nonsensical, agents just go bankrupt, and the result of the simulation is meaningless.

A Few Fixes
For the first issue, adding a line to break out of the bid/ask trade processing loop in resolveOffers() when buyer.unit_price < seller.unit_price seems to patch the major problem. Other improvements can be made, but issue 2 is much more critical.
The second issue requires expanding Inventory to track the average price paid per unit for all purchased commodities in addition to commodity count.  I changed the Float in Inventory._stuff to be a Point to hold the extra value.  I added a BasicAgent.consumeInventory and BasicAgent.produceInventory to be called instead of changeInventory to help identify inventory changes that should track production costs.  Money lost due to being idle in Logic.perform also needed to be tracked.  Agent logic should change to make all _consume() calls before each _production() call is made so costs are tracked before production.
Once costs are tracked, Agents can then take those costs into account when setting ask levels for their produced commodities to allow for a profit.  In fact once you track costs associated with producing a commodity, it immediately becomes apparent that ask price selection as simple as: askPrice = costs * profit_factor.  If asks aren't hit, profit_factor can be reduced.  Meanwhile the ask selection method in the technical paper is nonsense.
After making the above changes I observe that agents can be profitable, prices stabilize, and they relate to each other reasonably given how some commodities have more value in them based on what goes into producing them.  Supply/demand dynamics are simulated as before.  Initial conditions for each commodity had to be modified as discovered prices were more than random nonsense and the initial conditions became important.
I would make a pull request except I ported the Haxe project to C# as I'm unfamiliar with Haxe.  Also I'm still messing around with things.

Hey! Thanks for this! I had some suspicions that some pieces were missing because I often observed some of the same things but never quite had the time to put my finger on it.
Are your changes available somewhere? Even if they're in a different programming language when I have a free moment I might try backporting them.

The project is only on my computer at the moment, and I'm still adding changes.  I could email it to you if you want.

Works for me. Lars dot doucet at gmail dot com.
On Fri, May 25, 2018 at 1:19 PM, Vibr8gKiwi<EMAIL_ADDRESS>wrote:

The project is only on my computer at the moment, and I'm still adding
changes. I could email it to you if you want.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/larsiusprime/bazaarBot/issues/17#issuecomment-392140612,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAtG-K0P-HiHSDDDmbbIs6irnrw3tgoLks5t2EszgaJpZM4UOYPI
.

--
www.fortressofdoors.com -- Games, Art, Design

I sent you a copy.  I'm still working on it...  it's acting better but still some things I think might be off.  Eventually I want to add more interesting agents, but I need to make sure I understand what its doing and that its working as it should.

Cool, really appreciate it!
On Fri, May 25, 2018 at 1:51 PM, David<EMAIL_ADDRESS>wrote:

I sent you a copy. I'm still working on it... it's acting better but still
some things I think might be off. Eventually I want to add more interesting
agents, but I need to make sure I understand what its doing and that its
working as it should.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/larsiusprime/bazaarBot/issues/17#issuecomment-392148814,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAtG-ILUBfUh9NUDCOnW6Q6fgb56HlOqks5t2FK0gaJpZM4UOYPI
.

--
www.fortressofdoors.com -- Games, Art, Design

Looking further at the simulation I made more changes.  I started simplifying things to better understand the economy dynamic and why sometimes buyers and sellers weren't trading.  In the end I think those simplifications should remain as they just make sense and result in more stable execution and pricing.
The major change was to make buyers places bids that execute as market orders rather than try to determine a bid price.  Sellers set ask price based on costs plus a tiny profit, while buyers simply buy at the ask.  All buyer/seller code to estimate price bids/asks with "belief" ranges, random effects, and strange behavior isn't used.  The lowest asks execute first so buyers get the best available prices, and suppliers with higher costs/prices might not sell if there isn't enough demand, as expected.  I also stopped using the code that tried to restrict supply based on price favorability as that was causing problems for no good reason.  Now that prices are rationally based on costs rather than randomly generated, everyone just buys what they need and sells what they produce.  With the odd randomized stuff no longer mucking things up, the result is more stable prices and better supply/demand and trade execution.  And it's much simpler to understand.
A few smaller changes were:

Use a default production cost on a produced commodity if production costs were zero.  This is mainly an initial condition thing due to agents coming into existence with inventory that have no associated costs.  Proper relative costs sort themselves out after a few rounds.  Price level is largely determined by initial conditions though so what you pick as the default has an impact.
Agent logic is important as that is the "economy" being modeled.  Bad state interaction in the logic can impact everything.  For example I've seen states where trade stops because agents can't get food to produce their product but the farmer is also held up waiting on wood which will never come.  I solved that by adding a state to the farmer that will produce a single food even if it has no wood.
I changed the $2 cost punishment for an agent not producing anything to instead be a constant consumption of food each round. Money should not just vanish from the economy, it should move around from agent to agent.  So a food requirement is fine, but just pulling out money from the economy is strange and causes unnecessary bankruptcy.

The goal of the program is to find relative prices and agent count (supply/demand levels) appropriate for the logic of the simulated economy.  I think the above methodology of setting ask prices based on costs and buys made at market does it well and without all the complexity and randomness of the method from the technical paper.  Prices are more stable and oversupply of agents is sorted out by bankruptcy as before, but bankruptcy is now accurately a reflection of oversupply and not due to bad ask pricing or trades not executing due to failing bid pricing.  Unfortunately the entire "meat" of the technical paper is no longer used, but then it was nonsense to begin with in my opinion.

Cool! Do you have an updated version of the code I could take a peek at so
I could maybe backport the changes? To be honest, I stalled out on this
project because I found all these anomalies in the behavior and assumed it
was down to my implementation rather than the fundamental theory. I would
love to pick it back up if I can get it somewhere sane.
On Sat, May 26, 2018 at 10:00 AM, David<EMAIL_ADDRESS>wrote:

Looking further at the simulation I made more changes. I started
simplifying things to better understand the economy dynamic and why
sometimes buyers and sellers weren't trading. In the end I think those
simplifications should remain as they just make sense and result in more
stable execution and pricing.
The major change was to make buyers places bids that execute as market
orders rather than try to determine a bid price. Sellers set ask price
based on costs plus a tiny profit, while buyers simply buy at the ask. All
buyer/seller code to estimate price bids/asks with "belief" ranges, random
effects, and strange behavior isn't used. The lowest asks execute first so
buyers get the best available prices, and suppliers with higher
costs/prices might not sell if there isn't enough demand, as expected. I
also stopped using the code that tried to restrict supply based on price
favorability as that was causing problems for no good reason. Now that
prices are rationally based on costs rather than randomly generated,
everyone just buys what they need and sells what they produce. With the odd
randomized stuff no longer mucking things up, the result is more stable
prices and better supply/demand and trade execution. And it's much simpler
to understand.
A few smaller changes were:

Use a default production cost on a produced commodity if production
costs were zero. This is mainly an initial condition thing due to agents
coming into existence with inventory that have no associated costs. Proper
relative costs sort themselves out after a few rounds. Price level is
largely determined by initial conditions though so what you pick as the
default has an impact.
Agent logic is important as that is the "economy" being modeled.
Bad state interaction in the logic can impact everything. For example I've
seen states where trade stops because agents can't get food to produce
their product but the farmer is also held up waiting on wood which will
never come. I solved that by adding a state to the farmer that will produce
a single food even if it has no wood.
I changed the $2 cost punishment for an agent not producing
anything to instead be a constant consumption of food each round. Money
should not just vanish from the economy, it should move around from agent
to agent. So a food requirement is fine, but just pulling out money from
the economy is strange and causes unnecessary bankruptcy.

The goal of the program is to find relative prices and agent count
(supply/demand levels) appropriate for the logic of the simulated economy.
I think the above methodology of setting ask prices based on costs and buys
made at market does it well and without all the complexity and randomness
of the method from the technical paper. Prices are more stable and
oversupply of agents is sorted out by bankruptcy as before, but bankruptcy
is now accurately a reflection of oversupply and not due to bad ask pricing
or trades not executing due to failing bid pricing. Unfortunately the
entire "meat" of the technical paper is no longer used, but then it was
nonsense to begin with in my opinion.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/larsiusprime/bazaarBot/issues/17#issuecomment-392266863,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAtG-F9an8Am5pz2ZFEEeQjSQMsJeC-Rks5t2W36gaJpZM4UOYPI
.

--
www.fortressofdoors.com -- Games, Art, Design

I have no ambitions with the code...  just learning and hobby fun for me (how sad is it that I find economic simulations fun?).  I hadn't expected the project to ever leave my computer, but I guess I could put the project up here with links to you or whatever the license requires.

If you don't upload it to github I wouldn't mind a copy.
<EMAIL_ADDRESS>

I sent you a copy too AndrzejOran.

I was hoping you'd uploaded it @Vibr8gKiwi but since I don't see it anywhere could you please also send me a copy<EMAIL_ADDRESS>thanks

You should have now received a copy knoxx093.
By the way, anyone is free to upload the C# project if they want.  I claim no ownership, it's just a C# port of larsiusprime's code modified as described above.

Cool, if you don't mind David I might just put that up since people keep
asking -- is the version you sent me the latest? Any license you prefer?
I'd list you as the porter/author.
And I'll eventually get around to updating the Haxe version, too.
On Tue, Jul 10, 2018 at 6:30 PM David<EMAIL_ADDRESS>wrote:

You should have now received a copy knoxx093.
By the way, anyone is free to upload the C# project if they want. I claim
no ownership, it's just a C# port of larsiusprime's code modified as
described above.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/larsiusprime/bazaarBot/issues/17#issuecomment-403997631,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAtG-HfUuLsYJC9JPdLpZFKVBsaV1aDHks5uFTj9gaJpZM4UOYPI
.

--
www.fortressofdoors.com -- Games, Art, Design

Hey, looks like I'm a bit late on this, but would someone mind sending  me the C# project as well? Couldn't find it up as any of your repos. :(
<EMAIL_ADDRESS>

Could someone be so kind as to make a repo for the C# project?

I created a repo BazaarBot2 and uploaded it.  It's not as clean as the original...  e.g. it doesn't have as nice reporting and I didn't port the json processing.  But it contains the fixes described in my comments above.  If anyone has questions/comments, or wants to clean it up a bit, please feel welcome.
bazaarBot2

@larsiusprime can you please update the Haxe repository with changes? I am looking for java port and it will be great if I can compile java sources directly from Haxe.

@DigitalSmile I have reimplemented @Vibr8gKiwi changes in Java. I haven't tested thoroughly.
https://github.com/JeremyWildsmith/bazaarbot-java

Thanks @JeremyWildsmith , that's cool!

Thank you guys! Will check it

I'll hop onto this train as well. I've also translated @Vibr8gKiwi into Unity ECS code.
https://github.com/Kmsxkuse/A_Simulation_Dream
Key changes are reimplementing Json input files and completely removing agent history (mean, min, and max) and replacing it with a flat random number from 50% of needed goods to 150% of needed goods. This change was due to the exponential increase in memory needed as the quantity of agents increased. In a game where I'm envisioning over 10,000 different agents at least, the memory requirement would be astronomical.
Performance in removing agent history also dramatically improved. From ~13 milliseconds a tick to less than 5 ms for about 100 agents.

I've also found that using a liberal amount of "consume input goods up to" values for factory (agents) inputs drastically increases economic stability. Hard coding input good requirements frequently results in factories sitting idle and eventually bankruptcy.
It's a real shame that there is no mathematical function to allow for a moving window calculation of standard deviation like mean does. I might have been able to implement a "present time" calculation of buyer willingness to purchase using previous observed price, previous standard deviation, and current standard deviation...
Wait, I might be able to do that using the current rapid calculation method and lerping the old value to new value by 20%. Use the old value to determine the willingness by 1 - z score and replace old with new score weighted 0.8 * old + 0.2 * new.
Still, at leaves the problem of actually implementing this in a video game.

Interesting to see where this all goes.

I am writing a market simulator engine based on the research paper by Doran and Parberry.
Although not a port of BazaarBot, it is largely inspired by it. It is written in Free Pasal, but I plan to port it in other languages (PHP, Python...).
It is far from finished yet. I'm trying to improve the economic stability. So far, I only tested a very basic simulation with only one commodity. I am currently writing the simulation script based on the example of Doran and Parberry.
I have tried to address some of the issues discussed here.
I added a condition in the double auction algorithm to stop the transaction if the seller's price is higher than the buyer's price. I also simplified the agent's stock handling.
The agent's price belief (lower value / higher value) is used as a "trading range" to determine the favorability. So the agent does not need to store a history of all transaction prices for each commodity. I was indeed concerned with the huge amount of memory required. Furthermore, it is how I understand the paper.
The price belief update algorithm is slightly different (still based on the 2010 paper though).
It is named Moneta, after the name of the roman goddess of money.
The project is described here : https://moneta.tuxfamily.org/

Good luck wintermute2021, as I explain above, I think the "belief range" stuff (and most things in the paper) are nonsense.  If you actually care about having a functional economy and not going bankrupt, prices aren't "beliefs", they tie to real economic realities like production costs.  If you just want to simulate prices with trading ranges for a game, why bother with an underlying simulated economy, just pick a cost and add a random walk factor to it with high/low ranges or something simple.

For what it's worth I'm also working on a c# port of this project, for use in Unity eventually: https://github.com/omikun/EconSim
Suffering from major price fluctuation and job imbalance. Will try some of the things David mentioned and see if it gets better!

Ok wow this dramatically made debugging so much easier. I'm able to  run a simulation for 800 rounds with even just a few agents per profession, something I was never able to do before with price beliefs! I think I'm finally ready to add loans and multiple markets next~
Thanks again for your suggestions, David!

Good luck @omikun, I'm glad my updates here are still being found useful.


getting this error while running illustrip3d : !ssize.empty() in function 'resize'

-------------------------------------------------------------------------
error                                     Traceback (most recent call last)
Cell In[7], line 30
     27 else:
     28   depthdir = None
---> 30 depth_infer, depth_mask = depth.init_adabins(size=size, model_path='AdaBins_nyu.pt', mask_path=depth_mask_file)
     32 def depth_transform(img_t, depth_infer, depth_mask, size, depthX=0, scale=1., shift=[0,0], colors=1, depth_dir=None, save_num=0):
     33   size2 = [s//2 for s in size]

File ~/aphantasia/depth/depth.py:63, in init_adabins(size, model_path, mask_path, mask_blur, tridepth)
     61 masksize = (830, 500) # it doesn't have to be this exact number, this is just the max for what works at 16:9 for each crop
     62 mask = cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE)
---> 63 mask = cv2.resize(mask, masksize)
     64 mask = cv2.GaussianBlur(mask, (mask_blur,mask_blur),0)
     65 mask = cv2.resize(mask, (size[1][/](https://<IP_ADDRESS>:54364/)/2, size[0]//2)) / 255.

error: OpenCV(4.5.1) [/tmp/pip-req-build-ms668fyv/opencv/modules/imgproc/src/resize.cpp:4051](https://<IP_ADDRESS>:54364/tmp/pip-req-build-ms668fyv/opencv/modules/imgproc/src/resize.cpp#line=4050): error: (-215:Assertion failed) !ssize.empty() in function 'resize'

I already tried different opencv versions but still same results . please suggest me how to solve this error .

i see some random url inserted on the line 65 in your error log, which is not in the original code: https://github.com/eps696/aphantasia/blob/575edd631329fd9c3eb4ad73bb7fc64492d338c5/depth/depth.py#L65
considering that error is happening before that line, i suspect there may be more erroneous edits in the repo copy.
if you use google drive, i would suggest removing the repo copy from it altogether and start from scratch (to copy a clean codebase).

@eps696 i beleive there sohuld be something like error protection for this in that case it checks the mask file is available if not then use the mask = cv2.resize(mask, (size[1]//2, size[0]//2)) / 255.  line .

thanks for the hint; unfortunately, it's not feasible to safeguard everything (especially against random edits in the open-source code). please let me know if you get any errors running the original code.


I got bit by this...

Thanks!
We forgot to add this precision in the docs when we added invalidate.
Sorry about that.


Spike: editor input, layout, selection, and editing

This spike explores APIs and abstractions for displaying and editing a document.
This spike doesn't explore any event sourcing solution for document changes.

 Among them:

All keyboard input is implemented via a priority-order list of rules to allow for extensibility.
I've added a rule to prevent deletion of the title or 1st paragraph. This was implemented by way of the aforementioned keyboard rules. However, this approach needs to be re-evaluated because it probably belongs in some other phase of editing.
All visual components are now built with a configurable builder.
Hint text for an empty title and 1st paragraph. This was implemented by way of the aforementioned component builder.
Rendering support for ordered lists, unordered lists, images, and horizontal rules.
Initial rendering support for different types of text, e.g. paragraph vs header1.

I'm trying to continuously push the boundaries of what is here and then refactor the abstractions to a state that allows for desired extensibility.

Hi @justinmc,

I think the high level approach here is more or less how I'd imagined this being implemented.
Do you see any likely candidates for future issues within the current abstractions and APIs? Are there any obvious features that will likely conflict with this API?
My biggest concern is the amount of divergence between this and the framework's codebase. It may be hard to maintain this package as the framework's text editing code changes.
Doesn't the divergence work the opposite way? As you've seen in the wiki, I've outlined a number of reasons why none of the existing Flutter widgets with editing capability and selection ability are useful for our purposes. I built on top of the lowest level text-based widget that Flutter offers, which should therefore be the most stable, and most narrowly focused. While this divergence might result in more code for us to maintain in the package, and more features for us to test, to me this sounds like the easiest way to stay in sync with Flutter, not the most difficult.

On the other hand, if what you mean is that features beyond text editing will be out of sync, like a popup editing bar, etc, then I would suggest that this is a composition problem with Flutter. Widgets that pop up here and there for specialized text editing purposes should not be integrated with fundamental text editing widgets. This package should be able to refer to, and use, whatever editing widgets Flutter uses, without needing to buy into Flutter's entire EditableText or SelectableText ecosystem. I think in the area of text editing, Flutter has very much moved away from aggressive composition, towards a monolithic subsystem. I would recommend that the Flutter team work to address that.

Ideally a lot of this code would be shared or baked into the framework. Flutter's current text editing should maybe even be a subset of a rich editing approach like this. I realize there is a lot of friction and breaking changes to start moving in that direction, though.
Would you like to partner with us to move some of these low-level concepts and widgets into Flutter? Given all the factors at play with Flutter team development, I'm doubtful that any refactoring path of the existing widgets in Flutter will lead to good solutions within any reasonable period of time. Not only are various controls missing from the current API, like direct control over selection bounds/painting, but the current implementations also do too much, like implicitly incorporating scrolling. I think the odds are very low that these existing widgets ever become an ideal compositional tool for editable text. I think at best, they'll become a kind of Franken-monster living half in simple mobile world, and half in complex desktop world.
Edit One other thing I thought about talking to @chunhtai. Has anyone thought of how to stringify a document for example when copy/pasting?
Did you see the current implementation of selection, copy, and paste in this package?

@goderbauer

This is a huge PR, so I haven't looked at all of it.

I'm not sure if you received my initial email to Chris, but this is the place to start a review:
https://github.com/superlistapp/rich_text_editor/wiki/Super-Editor-Initial-Review

One high-level question I have: It seems (unless I missed something) that this will always layout and render the entire document (even if only a little bit is visible in the viewport). Presumably, that would be bad for performance if the document gets big. Have you thought about lazily rendering only what's visible?

I've considered that issue, but I decided that it's not an issue worth solving right now. All early use-cases that I'm aware of should work just fine with full layout on every frame. I get the impression that either we'll discover reasons why lazy layout isn't desired, or moving from full layout to lazy layout will end up being reasonably simple when such a thing becomes a priority.

I'm going to merge this PR because it's a spike and it won't impact the package definition.


Support TOPMed metrics for 90X samples

VM (10/01/19)
TOPMed metrics that need to be met for 90X samples.

Average Coverage : 90X
Per coverage > 95% for 60X
Per coverage > 90% for 70X
Bases at Q20 > 205 x 10^9
Contamination : < 1%

Since currently the 60X and 70X is not generated by the normal pipeline, we will be getting it from Kim’s group. But Scandium also provides these metrics, but it has not been implemented in the pipeline yet.

Correction.
Contamination: < 3%
Scandium also provide these metrics (autosome+x, y), but we will need autosome only and getting them from NGRD team.

Issue resolved in PR #16

Closing.


Enable Edit location in the US + Sweden

Description
Adds Swedish + Spanish translations  + removes country flag to launch in those countrys.
On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[x] iOS - Emulator
[ ] iOS - Physical device

Can the reviewer please test the US/SE flows also? I've tested and think I'm happy but another set of eyes wouldn't hurt.

@abubuwe Seems good to me


fix(docs): site layout

Looks great in both schemes !! Thanks @rachelbt for the fix :)

Looks a bit damaged in mobile. Suggesting to focus and merge #538 first

didn't happen to me.
There are no fonts in your print screen - maybe it wasn't fully loaded?
It looks OK once the drawer is closed :)

@yinonov - ready for re-check.
One thing though - there's a horizontal scroll in mobile because of long headline combined with too big font.
When theres scroll than the side -drawer and the header breaks.
We have a typography PR so I'm leaving it for now.

@jshenkman
for Visual QA:

now the header is starched above the side-drawer
in main page: added the grey in the first part
in all component page - added bg to the component name. (didn't add the image - leaving it to another PR).
please check both desktop & mobile
there might be some breaking in mobile due to the typography and lone names of the components member (e.g. Accessibility).
Thanks


Port v4 to 1.19.4, 1.19.2, 1.18.2, 1.17.1, 1.16.5

Some fixes (like that of #46) would be pretty useful in 1.18.2.
I should also note that some people religiously avoid 1.19 because of chat reporting.

Updating this to say v4

1.20.1 would also be nice

Not asking for an ETA or anything but is this still a planned thing?


fix(toc): adjust mobile selector to condition on layout

Related Ticket(s)
Closes #11588
Jira ticket
Description
Fixes sticky behavior issue with TOC horizontal plus Dotcom shell at less than lg breakpoint.
Testing instructions

Open the Dotcom shell > Default
Scroll the page
The Masthead should be sticky until it reaches the TOC, then the masthead should scroll away, while the TOC becomes sticky to the top.
Repeat at both lg and less than lg breakpoints
Repeat 1-4 with the Dotcom shell > With ToC horizontal  story

Changelog
Changed

TOC dotcom shell sticky behavior fixed at less than lg breakpoint.

Thanks @annawen1 ! See this other PR for the v2 fix of the same bug: https://github.com/carbon-design-system/carbon-for-ibm-dotcom/pull/11589


Proposed agenda for 2024-04-24-TAC.md

Added proposed agenda

Closing this to create a new one with the minutes and captured all the changes that @Naomi-Wash suggested. Will link here too.


[VS Code] Joining collaboration session: Incorrect join ID: c3e3f3fd6a8d67419ee692ca3832082137a2

Error:
Joining collaboration session: Incorrect join ID: c3e3f3fd6a8d67419ee692ca3832082137a2
Steps to Reproduce:
1.
2.

Version Data

extensionName
VSLS

extensionVersion
1.0.657

protocolVersion
2.2

applicationName
VSCode

applicationVersion
1.37.0

platformName
Windows

platformVersion
10.0.17763

We would need the logs to investigate further, you can use the Live Share: Export Logs command to get a zip file with logs, then attach to this issue.


findFiles ignores 'base' part of exclude glob

This searches for *.ts files and excludes .ts files in the second workspace folder.
vscode.workspace.findFiles('**/*.ts', new vscode.RelativePattern(vscode.workspace.workspaceFolders[1], '**/*.ts')).then(result => {
        console.log(result);
});

When I run this, I get 0 results, when it should return results from the first workspace folder.
Seems like it's always been that way. Is that intentional @bpasero? If not I can fix it. We can pass absolute exclude globs to search.
https://github.com/Microsoft/vscode/blob/b7e6e04666ca8dde560b69081c43365dce77d12a/src/vs/workbench/api/node/extHostWorkspace.ts#L357

@roblourens that looks like a bug to me, I would also expect to find any *.ts file from the first workspace folder.

On the same idea, I'm trying to give users the possibility to include folders in a file search, in a multi or single root workspace.
It looks like:
let globPatternSource = `**/*.yml`;
if (sourceFolders !== undefined && sourceFolders.length > 0) {
    globPatternSource = `{${sourceFolders.join(",")}}/**/*.yml`;
}
vscode.workspace.findFiles(globPatternSource);

On a single root workspace it works fine, but with multi-root they can't just include "rootA", they would have to include all of rootA subfolders because the roots are already included in the search path.
Is that the same issue or is that intentional?

but with multi-root they can't just include "rootA", they would have to include all of rootA subfolders because the roots are already included in the search path.

Sorry I don't understand what you're trying to do. You want to search a root, but not search its subfolders?

Sorry I wasn't clear.
Imagine a multi-root workspace like:
RootA:

fileA.yml
RootB:
fileB.yml

I'd like findFiles("RootA//*.yml") to return fileA.yml. But at the moment it doesn't return anything because the resolved search queries are "RootA/RootA//.yml" and "RootB/RootA/**/.yml".
To me, the root folders shouldn't be included in the query.
Was I clearer?

I see - this is what RelativePattern is for - https://github.com/Microsoft/vscode/blob/master/src/vs/vscode.d.ts#L1805

@roblourens do you know if this is still an issue?

findFiles2 might fix it, but I don't know. Should be easy to test


make airdrop current

just bringing it up to date with main.
Not sure this is any kind of fix.

Hey guys when I wake up I've got to correct "root"--kinda neglected the airdrop module.....

Airdrop module is in.
Goal: run it in CI (it leaves a log that way) and use that as genesis.

I think the path to the binary in the CI might be wrong? That looks like why it's failing the check

this is ready to be merged into Zaki's PR.

 CI builds it though and we need to get it updated, so probably best to merge into airdrop ASAP so we can thrash out any issues that arise


Create communication-related apps

Using the App creator, OpenAPI or Python directly, create any of the following apps (or other ones!):

[ ] Discord
[ ] Slack
[ ] MS Teams
[ ] Skype
[ ] Messenger
[ ] SMS
[ ] Email provider

Hi,
Which functions would need to be provided? Are these full bots, or mainly message post?

I'd say start with message read, message post, read available chats.
For the ones I've played with, the Shuffle workflow would be the bot itself, while the apps only provide endpoints to handle it.


getSwipeBackLayout().addSwipeListener(new SwipeBackLayout.OnSwipeListener()没有回调！！

Issues Guideline
Following information can help us to resolve the issue faster.

Library version
Support-v4 version
Logs
Screenshots

In addition, we do not accept issues unrelated to Fragmentation.

无法复现，建议断点调试下


Include javadoc jar in releases

I was trying to view the Javadoc online at https://javadoc.io/doc/pub.devrel/easypermissions/, but it fails due to missing javadoc.jar.

@pushbit thanks for noticing this, would be a good imprivement.

This is fixed in version 0.4.3 which was just released.


remove space

Question
remove space before shopware.yml
shopware:
      cdn:
          url: "https://my-really-cool-company.b-cdn.net"
      filesystem:
        public: &bunnycdn
          type: "bunnycdn"
          url: "https://my-really-cool-company.b-cdn.net"
          config:
            endpoint: "https://storage.bunnycdn.com"
            apiKey: "secret-ftp-password"
            storageName: "my-really-cool-company"
            useGarbage: true
        sitemap:
          <<: *bunnycdn
        theme:
          type: "local"
          url: ""
          config:
            root: "%kernel.project_dir%/public"
        asset:
          type: "local"
          url: ""
          config:
            root: "%kernel.project_dir%/public"

Hi @Tim-VL
I was unable to find the question. How can I help you?

I've copied the code to shopware.yml to edit, but only got 500 error. Turns out that there is a  before the word shopware in the sample config. Took me some time to figure that our.

Is also get this error when opening the plugin config:
https://shopwarecommunity.slack.com/files/U03PYQBFTAA/F07EJA8H6U8/image.png

I‘ll check it soon. So it no question, but a bug report, isn‘t it?
To summarize the issue:
The config example in README has wrong indentation.
Besides that, you are welcome to create a PR.

Is also get this error when opening the plugin config: https://shopwarecommunity.slack.com/files/U03PYQBFTAA/F07EJA8H6U8/image.png

please open a dedicated issue adding following information:

plugin version
shopware version
type of installation (zip download, composer,…)

Fixed with https://github.com/FriendsOfShopware/FroshPlatformBunnycdnMediaStorage/commit/2ccfe476ee9d7d34385c55968731d9761b5f0396


added new feature for project name in creating new project

Regarding #2045 and also #2139

Can one of the admins verify this patch?

@AppInventorWorkerBee ok to test

@ewpatton
Thanks for teaching and notifying me about this.
I will work on that

@ewpatton
Check this!

@Ramanathi There are still some code style issues in your latest changes. Consider merging mit-cml/master into your version, and then run
misc/checkstyle/checkstyle-git.py 8086a6c2615a28e07c7aafee8a2ceb8e546c5873
to get a summary of the issues.

@ewpatton I've resolved code style issues


Prevent double slash in docBaseUrl.

Can you add a test for this?

Test has been added. I also fixed a bug that I discovered with it.

LGTM, thanks!

Published in v1.14.3


Set default Authorino image via env var

We may need to roll back to setting the default Authorino image used by the Operator based on an env var, instead of the current approach of branding this value inside the Operator's binary, at compilation time.
This PR removes the controllers.DefaultAuthorinoImage ldflag from the Go binary, replacing it with a new env var DEFAULT_AUTHORINO_IMAGE.
Why to we need this change?
TLDR: productisation.
It turns out that Red Hat productisation machinery for building Kubernetes operators is more prepared to tweak with the image build settings when using env vars for configuring the related operand image, than by following our current approach.
Some automatic pinning of sha256 image digests from floating tags and conversion between registry references can only be leveraged at certain steps of the productisation pipeline. These exclude the building of the operator image following the lastest build of the operand, as part of the same pipeline.
Why would we NOT want this change?
This change does not come without a cost. By ditching the ldflag set at compilation time, we:

lose some traceability of the Operator's binary and container image, whose checksums will no longer reflect the paring to a specific default Authorino image;
introduce the risk of misuse of this configuration potentially breaking all deployments of Authorino in a cluster.

Codecov Report
Attention: Patch coverage is 0% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 61.78%. Comparing base (99e413d) to head (76836e1).

Files
Patch %
Lines

controllers/authorino_controller.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #174   +/-   ##
=======================================
  Coverage   61.78%   61.78%
=======================================
  Files           2        2
  Lines         785      785
=======================================
  Hits          485      485
  Misses        249      249
  Partials       51       51

Flag
Coverage Δ

unit
61.78% <0.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Update: For the time being, we found a "hack" in the productisation system that makes it work with the current approach, based on branding the default image inside the binary at compilation time. This makes this PR less urgent than before.
Let's keep it open for a while 'cause I anticipate some further discussion on how we want to approach this – if we want to standardise for all operators, if overriding the image in the operand's CR would still make sense, etc.
Thanks, @eguzki, for the feedback!


[GHSA-6fp8-cxc9-4fr9] Uncontrolled Resource Consumption in OPCFoundation.NetStandard.Opc.Ua

Updates

Affected products

Comments
Core library was not flagged

Hi there @opcfoundation-org! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our highly-trained Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory

@mregen same question as with https://github.com/github/advisory-database/pull/626 on this one. Should OPCFoundation.NetStandard.Opc.Ua.Core replace OPCFoundation.NetStandard.Opc.Ua or be added along side?


wrapAsync

Add wrapAsync. A function that wraps a function that returns a promise, transforming it to a function which accepts the same arguments and returns a Highland Stream instead.
Addresses #517
@vqvu I didn't add any additional error handling because it looks like the constructor already handles promise errors in the same way as _.fromError (by creating an error stream with a single value). I've included that code for reference:
function promiseStream(StreamCtor, promise) {
    if (_.isFunction(promise['finally'])) { // eslint-disable-line dot-notation
        // Using finally handles also bluebird promise cancellation
        return new StreamCtor(function (push) {
            promise.then(function (value) {
                return push(null, value);
            },
                function (err) {
                    return push(err);
                })['finally'](function () { // eslint-disable-line dot-notation
                    return push(null, nil);
                });
        });
    }
    else {
        // Sticking to promise standard only
        return new StreamCtor(function (push) {
            promise.then(function (value) {
                push(null, value);
                return push(null, nil);
            },
            function (err) {
                push(err);
                return push(null, nil);
            });
        });
    }
}

Also, I'm aware that I have not updated the changelog. I have some questions about that and am planning to do it after the rest of the work is compete.

Just one minor point. Everything else looks good.

@vqvu I removed the throw from the try block and added an extra test for that specific error. I'm ready to update the changelog but I'm not sure what version to put this under. Would it be a new version 2.11.0?

It should be under 3.0.0.


Android application crashing while rendering adaptive card

Target Platform
Android
Please list the platform(s) that your application is targeting and remove platforms you are not targeting:

Android

Android
Android native application
Problem Description
Android native application is crashing while rendering data of Adaptive card. The same data render properly in iOS and Windows applications and designer sites.
Screenshot (Screen shot of designer page where it is working)

Card JSON
{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "actions": [
        {
            "data": {
                "action": "CANCEL"
            },
            "id": "CancelButton",
            "title": "Cancel",
            "type": "Action.Submit"
        },
        {
            "data": {
                "action": "Confirm"
            },
            "id": "ConfirmButton",
            "style": "positive",
            "title": "Confirm",
            "type": "Action.Submit"
        }
    ],
    "body": [
        {
            "bleed": true,
            "items": [
                {
                    "columns": [
                        {
                            "items": [
                                {
                                    "height": "34px",
                                    "spacing": "Small",
                                    "type": "Image",
                                    "url": "https://bsta1dbsbstorage01.blob.core.windows.net/chatbot/Food-Brownies.png",
                                    "width": "40px"
                                }
                            ],
                            "type": "Column",
                            "width": "44px"
                        },
                        {
                            "items": [
                                {
                                    "color": "Light",
                                    "size": "Medium",
                                    "text": "Brownie",
                                    "type": "TextBlock",
                                    "weight": "Bolder",
                                    "wrap": true
                                },
                                {
                                    "color": "Light",
                                    "size": "Medium",
                                    "spacing": "Small",
                                    "text": "Confirm quantity.",
                                    "type": "TextBlock",
                                    "wrap": true
                                }
                            ],
                            "type": "Column",
                            "width": "stretch"
                        }
                    ],
                    "type": "ColumnSet"
                }
            ],
            "spacing": "Medium",
            "style": "emphasis",
            "type": "Container"
        },
        {
            "items": [
                {
                    "columns": [
                        {
                            "items": [
                                {
                                    "columns": [
                                        {
                                            "items": [
                                                {
                                                    "text": "Order Quantity",
                                                    "type": "TextBlock",
                                                    "weight": "Bolder",
                                                    "wrap": true
                                                },
                                                {
                                                    "choices": [
                                                        {
                                                            "title": "1",
                                                            "value": "1"
                                                        },
                                                        {
                                                            "title": "2",
                                                            "value": "2"
                                                        },
                                                        {
                                                            "title": "3",
                                                            "value": "3"
                                                        },
                                                        {
                                                            "title": "4",
                                                            "value": "4"
                                                        },
                                                        {
                                                            "title": "5",
                                                            "value": "5"
                                                        },
                                                        {
                                                            "title": "6",
                                                            "value": "6"
                                                        },
                                                        {
                                                            "title": "7",
                                                            "value": "7"
                                                        },
                                                        {
                                                            "title": "8",
                                                            "value": "8"
                                                        },
                                                        {
                                                            "title": "9",
                                                            "value": "9"
                                                        },
                                                        {
                                                            "title": "10",
                                                            "value": "10"
                                                        }
                                                    ],
                                                    "id": "Brownie-ItemQuantity",
                                                    "placeholder": "Select Quantity",
                                                    "type": "Input.ChoiceSet",
                                                    "value": 1
                                                }
                                            ],
                                            "type": "Column",
                                            "verticalContentAlignment": "Center",
                                            "width": "stretch"
                                        }
                                    ],
                                    "separator": true,
                                    "spacing": "Medium",
                                    "type": "ColumnSet"
                                },
                                {
                                    "columns": [
                                        {
                                            "items": [
                                                {
                                                    "text": "Order Delivery Location",
                                                    "type": "TextBlock",
                                                    "weight": "Bolder",
                                                    "wrap": true
                                                },
                                                {
                                                    "choices": [
                                                        {
                                                            "title": "MR3",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "BR1",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR8",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR9",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR1",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR2",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR4",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR5",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR6",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "MR7",
                                                            "value"<EMAIL_ADDRESS>                                                        },
                                                        {
                                                            "title": "Conference Room 1",
                                                            "value": "Conference Room<EMAIL_ADDRESS>                                                        }
                                                    ],
                                                    "id": "DeliveryLocation",
                                                    "placeholder": "Select Delivery location",
                                                    "type": "Input.ChoiceSet",
                                                    "value"<EMAIL_ADDRESS>                                                }
                                            ],
                                            "type": "Column",
                                            "verticalContentAlignment": "Center",
                                            "width": "stretch"
                                        }
                                    ],
                                    "separator": true,
                                    "spacing": "Medium",
                                    "type": "ColumnSet"
                                },
                                {
                                    "columns": [
                                        {
                                            "items": [
                                                {
                                                    "text": "Order Comments",
                                                    "type": "TextBlock",
                                                    "weight": "Bolder",
                                                    "wrap": true
                                                },
                                                {
                                                    "id": "Comment",
                                                    "isMultiline": true,
                                                    "placeholder": "Additional order comment",
                                                    "type": "Input.Text"
                                                }
                                            ],
                                            "type": "Column",
                                            "verticalContentAlignment": "Center",
                                            "width": "stretch"
                                        }
                                    ],
                                    "separator": true,
                                    "spacing": "Medium",
                                    "type": "ColumnSet"
                                }
                            ],
                            "type": "Column",
                            "width": "stretch"
                        }
                    ],
                    "type": "ColumnSet"
                }
            ],
            "type": "Container"
        }
    ],
    "type": "AdaptiveCard",
    "version": "1.2"
}

Sample Code
Use android SDK and the same code as suggested in the documentation.
Version of SDK
2.6.0
What version are you using?
2.6.0

@golddove, @almedina-ms - does anything immediately pop out to you?

Cannot repro the crash, but the visualizer does refuse to render the card because the "value" provided for the "Order Quantity" ChoiceSet is the wrong type (should be a string "1" instead of 1). Note that while the designer renders the card, it ignores the invalid value.

@golddove Behaviour in visualizer is not the same for android. As you mentioned value should be "1" instead of 1 because that SDK is giving a parsing exception.

@ranjanraviraj yes, the string "1" would be correct for the value property, as the expected type is a string (see our schema ).
However, we do have an an issue to track making our mobile parsing more lenient (which would include ignoring invalid values like this). Does #6015 describe your needs, or is it something else?


Improve "Our Contributor section"

there is no github icon image as well as no proper spacing

I'd be happy to take this on if you're willing, @akshitagupta15june!

Go for it


Problem with ATZ command

Hello, I have the case on Android that we need to run the ATZ command which reboots the device, but no response is coming back from the device (a response like "OK command received I will reboot now"), it just reboots instantly.
I read on your documentation this:

As before, if the connection drops, the Flow will remain active, upon reconnecting the same underlying platform characteristic will be used to to resume streaming characteristic changes.

Here is my code:
        if (!write(command)) {
            listener.invoke(Either.Left(BluetoothError.ConnectionRejectedError()))
            return
        }

                    readCharacteristic?.let { characteristic ->
                var isSuccess = false
                val inputFlow = peripheral.observe(characteristic)

                inputFlow.takeWhile {
                    val currentResponse = String(it).replace("\r", "").replace("\n", "")
                    if (currentResponse.contains("ERROR")) {
                        Timber.e("[BLE Communication] ERROR: $currentResponse")
                        isSuccess = false
                        return@takeWhile false
                    } else if (currentResponse == "OK") {
                        isSuccess = true
                        return@takeWhile false
                    }
                    true
                }.onCompletion {
                    Timber.d("[BLE Communication]: Success: $isSuccess")
                    if (isSuccess) {
                        listener.invoke(Either.Right(Unit))
                    } else if (it == null) {
                        listener.invoke(Either.Left(BluetoothError.ATCommandError))
                    }
                }.collect()
            }

My problem is that the listener never invokes, as the BLE Device is getting rebooted and I am waiting for this listener to be invoked in order to proceed further and/or reconnect afterwards.
How to handle it? I tried everything but without the observe part it is not working. The BLE Device does not reboots without it.

Do you just need to reconnect upon disconnect?
You should be able to handle that within a separate coroutine, this is demonstrated in the SensorTag sample here.
While that separate coroutine is running, then the observe will remain active.
It sounds as though this is not the desired behavior?
If you want the flow to terminate on disconnect, you could use takeWhile and have it monitor the peripheral's connection state.
It isn't quite clear to me how you'd like it to behave, so let me know if that doesn't quite answer your question(s).

I would like the flow to terminate on disconnect, think it as complete reset. I managed to solve it by using the following code:
    suspend fun reboot(command: String, listener: (Either<Failure, Unit>) -> Unit) {
        if (!write(command)) {
            listener.invoke(Either.Left(BluetoothError.ConnectionRejectedError()))
            return
        }

        readCharacteristic?.let { characteristic ->
            coroutineScope {
                // TODO: Reboot command doesn't seem to do something.
                val job = launch {
                    peripheral.observe(characteristic).cancellable().collect()
                }
                withContext(coroutineContext) {
                    if (command == AT_REBOOT_COMMAND) {
                        job.cancel()
                        listener.invoke(Either.Right(Unit))
                    }
                }
            }
        }
    }

Do you think that's an OK way of handling it?

Without having more context about the codebase, here is some general feedback:

The listener is unnecessary, if you have to invoke the listener multiple times, then use a Flow; if you only have to return once, you're already a suspend function (so why not just return the result?)
I don't understand what the purpose of the withContext(coroutineContext) is
It isn't clear why you spin up the job only to immediately cancel it if (command == AT_REBOOT_COMMAND)

Maybe you could add more detail around:

I tried everything but without the observe part it is not working. The BLE Device does not reboots without it.

...more specifically, why does the device not reboot w/o the observe? Does your firmware need a characteristic observation to be active in order to reboot?


Enhancement query profile ui page is too wide when the sql is very long

Search before asking

[X] I had searched in the issues and found no similar issues.

Description

The sql statement column in profile page, try to display the total sql in the page, but f the sql is very very long the page is not very well. I think maybe we could limit the width of the page and only display part of the long sql. For example display it in a multi line text field.
Solution
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

To address the issue of the query profile UI page being too wide when the SQL is very long, I want to implement the following enhancements:

Text wrapping

Collapsible sections

Horizontal scrolling

Responsive design

I want to work on this issue. can you please assign this issue to me?


adding Stepaside Educate Together Secondary School

Adding new secondary school in Ireland:
Stepaside Educate Together Secondary School

@Bart-Ss First stage of verification passed, official domain is stepasideetss.ie as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@Bart-Ss Thank you for your patience while waiting for a review and processing your request. Pull request merged.


how to skip SSL validation, while taking to a secure Jenkins Server.

Page: /setup/ci/jenkins/
Feedback:

Thanks for filing this issue. It looks like this might be a request for help rather than a bug. In that case, you're probably better off looking for answers from our Slack community, since there is a larger pool of users there. Use the search functionality to find users who have a similar experience, or post a message in #general or another related channel.


"Cookie is empty"

Hi,
I can't seem to make cookies.txt work.
File cookies.txt contains:
kemono.party	FALSE	/	FALSE<PHONE_NUMBER>	session	[token]
coomer.party	FALSE	/	FALSE<PHONE_NUMBER>	session	[token]

I tried adding dot on beginning, change 2nd FALSE to TRUE, change session to kemono_auth or commer_auth, because your example is different from what cookie export gives you.

Your example

### Cookie File
only needed if you want to download favorite creators or posts
--cookie PATH
cookie file, default is cookies.txt (value separate by whitespace)
syntax:

Domain
Include subdomains
Path
Secure
Expiry
Name
Value

.kemono.party
FALSE
/
TRUE
1706755572
kemono_auth

you can get cookies easily by using Chrome extension Get cookies.txt LOCALLY

I get this error:
2023/09/17 12:37:06 cookie is empty
Regardless if I do:
.\kemono-scraper_no_cookies_detection.exe
.\kemono-scraper_no_cookies_detection.exe --cookie .\cookies.txt
I tried full path to the cookies.txt file, backslash and quotes.
Config:
cookie: .\cookies.txt
content: true
banner: true
async: true
max-download-parallel: 5
fav-site: coomer
fav-creator: true
output: D:\kemono-scraper
template: "[<ks:service>] <ks:creator>/<ks:post>/<ks:filename><ks:extension>"
image-template: "[<ks:service>] <ks:creator>/<ks:post>/<ks:index><ks:extension>"
video-template: "[<ks:service>] <ks:creator>/<ks:post>/video/<ks:filename><ks:extension>"
retry: 10
retry-interval: 15
# proxy: socks5://proxy:1080

I once again tried full path to the cookies.txt file, backslash and quotes.
I have to use the version with detection and even that  has to be pointed on a browser that is not being used, otherwise I'll get an error like this:
2023/09/17 13:56:15 Error reading cookies: could not open database copy: could not read database file:
open C:\Users\shodan\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies:
The process cannot access the file because it is being used by another process.

Am I doing something wrong? Can you add an option to use the cookie token in CLI for example?
Is it possible to run more processes at once? Because I thought the max-download-parallel refers to how many posts or creators are being scraped at once, but it seems to work only if currently scraped post has more of files inside of it.

I found an error where I was looking for the file, and I'll fix it as soon as I can.
Regarding not being able to access the cookie database with the browser open, it seems that this has been the case since the previous chrome update.

Regarding not being able to access the cookie database with the browser open, it seems that this has been the case since the previous chrome update.

I reckon that even when I tried Firefox while I had it open it had the same error. But Firefox runs on Chromium, so it could copy the same issue.

Cookies.txt works now. Thanks.
Also what download speeds should I expect? I am usually at 600KB/s and sometimes it goes up to 1MB/s, but that's it.
I get that they don't have servers setup for this, but I was expecting 2-5MB/s .

Cookies.txt works now. Thanks.
Also what download speeds should I expect? I am usually at 600KB/s and sometimes it goes up to 1MB/s, but that's it.
I get that they don't have servers setup for this, but I was expecting 2-5MB/s .


Broken links for notebooks on main readme

Hi team,

on https://github.com/IntelRealSense/librealsense/tree/jupyter
both links are broken.

Hi @omer-re  You can find working links to these two Quick Start projects here:
https://github.com/IntelRealSense/librealsense/tree/jupyter/notebooks

thanks, though it might worth fixing the readme as well

I will add a Documentation label to this issue so that it can be referred to in future as a documentation matter by the RealSense team.  This issue should be kept open, but you do not need to do anything else.  Thanks very much for the report!


ipsec: remove dead code

UpsertIPsecEndpointPolicy is not used.
Remove this.
Remove unused function in IPsec control plane.

/test


Docker Image for JVM platform contains fixed JVM 8 by default

This causes runtime failure, if a user builds. code to jvm 11
so the app in image built with scala-cli package --docker --jvm 11 will fail to start
https://github.com/tpasternak/scala-cli/blob/shebang-args/modules/cli/src/main/scala/scala/cli/commands/Package.scala#L355

We should probably change that depending on --jvm. At least default to openjdk 8 / 11 / 17 images, picking a version higher than or equal to the one of the JVM passed via --jvm when possible.
We might also check if there are specific docker images for specific JVMs (zulu, graalvm, etc.), although that looks a bit like an overkill…

It's now bumped to jvm 11, closing for now https://github.com/VirtusLab/scala-cli/blob/2294fbfe9d3e90929df6c7e00215110bd3901e2d/modules/cli/src/main/scala/scala/cli/commands/Package.scala#L356