Add Debian 10 to list of available distros

Updated the list of supported distros now we create packages for Debian 10.

Even though its stated as being supported, I can't find the packages under http://download.opensuse.org/repositories/home:/katacontainers:/releases:/x86_64:/master/


test: Generate incremental code coverage data

This generates a more detailed JSON coverage file containing maps of
exactly what statements were executed by tests.  This also extracts
the data from this file and updates the PR with a comment showing how
much of the changed code is covered by tests.

Ready for review!  See https://github.com/joeyparrish/shaka-player/pull/11#issuecomment-1213777946 for an example of the reporting this generates.


⚠ ClamAV has degraded performance

In 26907fa, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 50 ms

Resolved: ClamAV performance has improved in af79c96 after 5 minutes.


clean scan optimization: scan disk index only for zero lamport

Problem
Generally, we don't need to scan disk index for clean because disk index only contains single ref single entry account index, which is nearly always "alive" and shouldn't be cleaned, except for one special case - single ref zero accounts (single ref zero accounts need to be cleaned).
Currently, we scan disk index for every candidate, which can be optimized to only scan disk index for zeros.
Summary of Changes
optimize clean scan.

add is_zero mark on cleaning info.
only scan disk index for is_zero candidate.

Fixes #

i think this is correct. I need to look at this again monday. Do you have a machine monitoring this? Do we have a metric that shows us the difference in clean disk index loads?

Yes, it is running on dev12 (3gB7) since yesterday.
I am starting a base line master for comparison now. I will report the result soon.

clean scan time stats
red: master
blue: this PR.
It looks like blue is lower and better.
Note that from 8:00-11:00UTC we don't have any metrics recorded because the certificate of solama metrics is expired.

@HaoranYi can you please show metric comparison for:
scan_missing on clean_accounts?
Should be close to 0 on normal machines and a lot higher on your machine.

@HaoranYi can you please show metric comparison for: scan_missing on clean_accounts? Should be close to 0 on normal machines and a lot higher on your machine.

blue: this PR.
red: master
Yes, missing is much higher with this PR. But on normal machine, missing is small but not close to zero (between 5-6K per minute).

I think it is not zero because we are adding dead store back to "dirty stores"
at the end of cleaning-shrinking cycle.
https://github.com/anza-xyz/agave/blob/489f483e1d7b30ef114e0123994818b2accfa389/accounts-db/src/accounts_db.rs#L8113
And those dead storages are not dropped until next clean starts (This is
required and is correct).  When next clean starts, all the keys in those dead
stores are populated as candidates, which could be missing from the index.
That's why "missing" is not zero.

This has been running fine on mainnet for a week. So merge it.


Update navbar component with mobile responsiveness

Purpose

The purpose of this PR is to fix #380
Update navbar component with mobile responsiveness
Screenshots

Desktop

Tablet

Mobile

Thanks for the PR @kanushka ! just one thing, would be nice if the mobile view hamburger drop-down menu closes when a user touches outside the dropdown

I will update the behaviour of mobile nav


Improve documents on reviewing and approving a kata

The article under concern: https://docs.codewars.com/curation/kata and kata approval section
Assumption: The quality of katas depends quite significantly on the approval process, so the necessary norms and standards should be clear and precise.

The current state of the document on this topic is vague, imprecise, and redundant which makes it easy to miss the important points. There is no sharp distinction on roles of approvers and reviewers (which should be), an approver can be a reviewer but the responsibility in being an approver is more than a reviewer.
(A reviewer (if it is defined by one of who solves a kata) can choose to not check anything and drop "Very satisfied", which is not a big problem)

At least these points should be in documentations and the approver should take care of them:

Check for the duplicate: one should not assume that the kata is not duplicate just because no one has raised an issue on it, one must ensure and ask in relevant discord chatroom for the same.
Check the discourse for unfixed issue/potential issues: It is not uncommon that authors in the rush of making their kata out of beta resolve issues because they think it is not an issue, or sometimes some users resolve issues based on downvotes, sometimes there are legit doubts about duplicacy, but the reviewer is not sure about it and it is often neglected by approvers [1] [2]

More generally, if kata is "Awaiting Approval state" that does not mean that the job of the approver is just to approve the kata without reviewing it responsibly.

if a rework is done on this, this one needs a clarification too: https://docs.codewars.com/curation/guidelines/kata/

Approvers should keep responsibility for all issues in the kata they approved. You should actively maintain all problems which slipped through your review and ended up in an approved kata: fix issues, consider suggestions, answer questions.

Even if that's true for "abandonned kata", thisstrongly suggests that the author has no responsibility at all in the process, which doesn't feel right at all. Translators' responsibility should be involved as well (especially since they often are the only contributor who actually can modify some languages.


No npm publish in a week

TypeScript Version:  3.0.0-dev.20180609
Code
npm info typescript

Expected behavior:
Contains a typescript@next publish from sometime this week.
Actual behavior:
Last typescript@next publish was on June 9th.

Wesley's doing it now.

Aaaaand we have a working publish task again and an @next published for today. 😌


Old CoreUI version

Please merge PR with latest CoreUI or let me know if I can improve it.

Looks dead, @lukevp can you maintain this in your own site.
Also share some help with tag helpers/view components

@weedkiller this PR comes from my fork, you can use my fork'ed version.  If you want to work on some changes put them on my fork.

When I get from here, it gives me the old version. I was thinking about razor components or view components/widgets
side note, saw your site on your profile, seems like your website is down.


Microsoft.PolicyInsights/checkPolicyRestrictions API

Add the checkPolicyRestrictions API to Microsoft.PolicyInsights.  This is a pure copy/paste (other than changing api-version from preview to stable) from the private repo PR here:  https://github.com/Azure/azure-rest-api-specs-pr/pull/1707
Contribution checklist:

[x] I commit to follow the Breaking Change Policy of “no breaking changes
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Please follow the link to find more details on PR review process.

/azp run automation - sdk

Migrating the ArmSignedOff label from the private repo as no changes were made to the API between that PR and this.  Only the api-version was changed to be non-preview.

/azp run automation - sdk

The .NET SDK failure is due to the changes from this previous PR not being present in the SDK repo yet:  https://github.com/Azure/azure-rest-api-specs/pull/7909
I'm following up with the author of that change to ensure they get those changes there soon.

The .NET SDK failure is due to the changes from this previous PR not being present in the SDK repo yet: #7909
The python breaking change is the same issue. The breaking change was in the above PR and hasn't been generated in python yet...
I'm following up with the author of that change to ensure they get those changes there soon.

Just want to confirm if  this work has done

The .NET SDK failure is due to the changes from this previous PR not being present in the SDK repo yet: #7909
The python breaking change is the same issue. The breaking change was in the above PR and hasn't been generated in python yet...
I'm following up with the author of that change to ensure they get those changes there soon.

Just want to confirm if this work has done

Someone on my team is working on it at the moment but its not done yet.

The .NET SDK failure is due to the changes from this previous PR not being present in the SDK repo yet: #7909
The python breaking change is the same issue. The breaking change was in the above PR and hasn't been generated in python yet...
I'm following up with the author of that change to ensure they get those changes there soon.

Just want to confirm if this work has done

Someone on my team is working on it at the moment but its not done yet.

Any update?

@pilor  There is Python SDK breaking change , could you confirm its impact , or do you really want to bump a SDK version ?

@pilor There is Python SDK breaking change , could you confirm its impact , or do you really want to bump a SDK version ?

The python SDK breaking change was from a previous PR linked above (#7909) that hasn't been generated in the python repo yet.  The people that made that change are in the process of getting it out to the various SDKs.

@pilor There is Python SDK breaking change , could you confirm its impact , or do you really want to bump a SDK version ?

The python SDK breaking change was from a previous PR linked above (#7909) that hasn't been generated in the python repo yet. The people that made that change are in the process of getting it out to the various SDKs.

Thanks, pls let know if the PR is ready to merge

/azp run automation - sdk

@jianyexi The SDK breaking change should finally be resolved as the .NET SDK has been updated to reflect the previous breaking change.  Just merged from master to trigger a new validation pass to verify.  Python SDK generation request is underway which should resolve the Python breaking change warning.  If you don't mind I'd prefer to wait for the language specific SDKs to be generated off of the existing tag in "master" and then verify the python breaking change goes away.
If you feel this has been open for too long I can close it and re-open when python generation is done.

@jianyexi This should be good to go now.  Is there a way to re-trigger the SDK validation against python to ensure the breaking change warning goes away?

/azp run

/azp run

@jianyexi Pyrhon/.NET are good to go now.  However, it looks like the generated code form some paginated APIs that aren't touched in this PR changed in the GO sdk.  The funcs now take the current page as a param which they did not take before...  Is this a known issue in GO generation right now?

@jianyexi Pyrhon/.NET are good to go now. However, it looks like the generated code form some paginated APIs that aren't touched in this PR changed in the GO sdk. The funcs now take the current page as a param which they did not take before... Is this a known issue in GO generation right now?

@ArcturusZhang could you take a look ?

@jianyexi ready to merge unless you have additional feedback


ci: run UI tests when merging to main and on main as well

FYI: @mkolasinski-splunk

Will be done in #799


Native Notebooks - Survey link for stable experiment

Survey link for stable experiment to be rolled out as same cadence as our other surveys.
Assignees: Ping for survey link

Validated. Got the survey with the new extension on stable.


Added support of Twig 3

Questions
Answers

Description?
Fixed support of Twig 3 : Like develop is now based on Twig 3 (Thanks @atomiix), autoload load firstly the dependency of the core and after the dependency of the module. It's why I detect if Twig 3 class is here or not.

Type?
bug fix

BC breaks?
no

Deprecations?
no

Fixed ticket?
Fixes PrestaShop/PrestaShop#25624

How to test?
Cf PrestaShop/PrestaShop#25624 : check on PS 1.6/1.7/develop the display of the module

Possible impacts?
N/A

Thank you @Progi1984


Error when applying a function with apply_ufunc() when using a function that returns multiple arrays

Code Sample, a copy-pastable example if possible
You can reproduce this error I think by using the code found here: https://github.com/monocongo/climate_indices/tree/issue_191_groupby
To exercise the code where the error occurs run the following command:
$ python scripts/process_grid_ufunc.py --index palmers --periodicity monthly --netcdf_precip example_inputs/nclimgrid_lowres_prcp.nc --var_name_precip prcp --netcdf_pet example_inputs/nclimgrid_lowres_pet.nc --var_name_pet pet --netcdf_awc example_inputs/nclimgrid_lowres_soil.nc --var_name_awc awc --output_file_base /data/test/nclimgrid_lowres_ufunc --calibration_start_year 1951 --calibration_end_year 2010

Within scripts/process_grid_ufunc.py, in the compute_write_palmers() function:
    # stack the lat and lon dimensions into a new dimension named point, so at each lat/lon
    # we'll have a time series for the geospatial point, and group by these points
    da_precip_groupby = da_precip.stack(point=('lat', 'lon')).groupby('point')
    da_pet_groupby = da_pet.stack(point=('lat', 'lon')).groupby('point')
    da_awc_groupby = da_awc.stack(point=('lat', 'lon')).groupby('point')

    # keyword arguments used for the function we'll apply to the data array
    args_dict = {'data_start_year': data_start_year,
                 'calibration_start_year': kwrgs['calibration_start_year'],
                 'calibration_end_year': kwrgs['calibration_end_year']}

    # apply the self-calibrated Palmers function to the data arrays
    da_scpdsi, da_pdsi, da_phdi, da_pmdi, da_zindex = xr.apply_ufunc(indices.scpdsi,
                                                                     da_precip_groupby,
                                                                     da_pet_groupby,
                                                                     da_awc_groupby,
                                                                     output_core_dims=[[], [], [], [], []],
                                                                     kwargs=args_dict)

Problem description
I have a function that I apply to xarray.DataArray objects using xarray.apply_ufunc().
The function I'm using returns five arrays. The signature is this:
def scpdsi(precip_inches: np.ndarray,
           pet_inches: np.ndarray,
           awc: np.ndarray,
           data_start_year,
           calibration_start_year,
           calibration_end_year):
...

   return scpdsi, pdsi, phdi, pmdi, zindex

I'm applying the function over three xarray.DataArray objects like so:
# keyword arguments used for the function we'll apply to the data arrays
args_dict = {'data_start_year': data_start_year,
             'calibration_start_year': kwrgs['calibration_start_year'],
             'calibration_end_year': kwrgs['calibration_end_year']}

# apply the self-calibrated Palmers function to the data arrays
da_scpdsi, da_pdsi, da_phdi, da_pmdi, da_zindex = xr.apply_ufunc(scpdsi,
                                                                 da_precip_groupby,
                                                                 da_pet_groupby,
                                                                 da_awc_groupby,
                                                                 output_core_dims=[[], [], [], [], []],
                                                                 kwargs=args_dict)

When I run the code I get the following error:
ValueError: applied function does not have the number of outputs specified in the ufunc signature. Result is not a tuple of 5 elements: [array([nan, nan, nan, ..., nan, nan, nan], dtype=float32), array([nan, nan, nan, ..., nan, nan, nan], dtype=float32), array([nan, nan, nan, ..., nan, nan, nan], dtype=float32), array([nan, nan, nan, ..., nan, nan, nan], dtype=float32), array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)]

When I step through the xarray computation.py code I see that the result data is returned as a list of arrays rather than as a tuple, and this is what raises the error (line 565 in computation.py). I've tried modifying the function to return the arrays as a tuple, along with marking the function's return type as a tuple in the signature but none of this has helped, i.e. the result data always comes through to xarray as a list of arrays rather than as a tuple.
I am using xarray version 0.10.9 with Python 3.6.
Expected Output
I was expecting to get the five arrays returned after applying the function. I may be doing something else wrong, as this is my first time using appy_ufunc() in this way, and if so please advise.
 I don't think this is related to numba, as I'm running this using the environment variable NUMBA_DISABLE_JIT=1 (I do this when debugging my code since numba JIT prevents stepping into and inspection of JIT annotated code since it's compiled). In any event, I can comment out the @numba.jit annotations and report any discrepancies.

Any guidance as to where I should start when looking into this further?
At this point, all I've been able to surmise is that the arrays returned by the applied function appear to be present, but are present as a list of arrays rather than as a tuple. That's where things go wonky in computation.py where it's checking for a tuple instance. Is xarray responsible for putting the arrays into a tuple upon function completion, and if so where should I go to look into that?

Is xarray responsible for putting the arrays into a tuple upon function completion, and if so where should I go to look into that?

No, I don't think xarray is responsible for this. Depending on the options you pass to apply_ufunc ( e.g., vectorize=True) we may substitute a function for the provided func, but that's not the case by default.
 That was my bug. I really appreciate your help!


[BUG] - Sidebar Hides Some Routes in Mobile Page

Describe the bug
Some route buttons are hiding behind others:

Some are out of the viewport:

Your Example Website or App
nextui.org
Steps to Reproduce the Bug or Issue

Visit nextui.org
Adjust webpage resolution to mobile size

Expected behavior
Sidebar shows every route button.
Screenshots or Videos
No response
Operating System Version
macOS
Browser
Chrome

I found something in category might be related to the problem:
const postsHeight = useMemo(
  () => routes.length * (isMobile ? 32 : 26) + margin * (routes.length - 1),
  [routes, isMobile]
);


Unable to read videoclip / voicemail

Hello,
First thanks for this tool, it very helpful to make the 300x working in HA.
This is not a real PR, but an issue.  It's not possible to open one on this repo.
Currently i can see i have one voicemail , but how can i play the video ?
I'm also usion scrypted that see this voicemail, but i'm unable to play or download it.
Any idea can i do to make it work ?
Thanks !
/videoclips?raw=true
[{"file":"message_1","info":{"Date":"Sat,  2 Mar 2024 10:18:48 +0100","MediaType":"2","EuAddr":"20","cause":"0","Status":"0","UnixTime":"1709371128","Read":"1","Duration":"15"}}]

/voicemail
Found 1 messages.
 viewed - Sat,  2 Mar 2024 10:18:48 +0100
 ``

This is handled here:
https://github.com/slyoldfox/c300x-controller/blob/main/lib/apis/voicemail-messages.js#L29
It looks for messages in the folder here defined here:
https://github.com/slyoldfox/c300x-controller/blob/main/lib/apis/voicemail-messages.js#L3
The endpoint should normally be:
http://INTERCOM_IP:8080/voicemail?msg=message_1/aswm.avi&raw=true
http://INTERCOM_IP:8080/voicemail?msg=message_1/aswm.jpg&raw=true
Note that sometimes the jpg files are absent (if I remember correctly).

according to https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
avi files need video/x-msvideoand not video/mp4
Now the link http://INTERCOM_IP:8080/voicemail?msg=message_1/aswm.avi&raw=true
is working. Before my browser was unable to read/download the file. Only curl was able to do that.
So the API works now with that header. Need to check why i still have issue inside scrypted now for voicemail.

So about Scrypted, i continue here for now as you are the main developper of the scrypted plugin too :-).
Download the voicemail is working on Scrypted only if your are connected to :10443.
I used the HA Scrypted Addons and the url is rewrite to <HA_adress>:. Might be a scrypted issued. But it works.
But I cannot play the voicemail inside scrypted. All. HTTP call seems 200OK, But the data of octet/stream is not playing.
Tried on :10443 to avoid issue and on Arc, Chrome,Safari.
Do this is working on your side ?

@Minims no, streaming hasn't worked ever.
Only the download "works" at the moment.
The reason is that the file is not a file that is able to support streaming.
I'll try and have a look at this coming days.

@Minims try bticino plugin 0.0.15 with these changes in c300x-controller:
https://github.com/slyoldfox/c300x-controller/commit/8ea39ca22ce4d5c91a54b15064b2bd05a967cd40
https://github.com/slyoldfox/c300x-controller/commit/9a6a8977da56f32a10d28bfe97b29c1ef027f460

Join channel #sip to on Discord https://discord.gg/DcFzmBHYGq if need more assistance

Thanks for the update, i will continue on discord.
FYI :

Download from c300x-controller : OK
Stream from Scrypted : OK
Download from Scrypted :  FAIL


Error on Youtube clipping similar to #166 that is listed as fixed. Uncaught TypeError: Cannot read properties of null (reading 'frontmatter')

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
I have been using this fantastic plugin for several months now without getting any errors, and this is how I would like for it to continue to operate.
Current behaviour
I am getting a notification that the note was created successfully as it was before, and this is true.  Note is being created and it seems to be normal.  However, I am getting several message boxes popping up with eh above error messages as noted int he subject line.  I have included a screen capture for your reference.  Plugin seems to be functioning fine even with the errors, but something is not right.  More of a nuisance than anything, but may be an indicator of larger issue somewhere else??

Steps to reproduce
Just activate command ReadItLater: Save Clipboard via a hotkey for any YouTube video.
Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[ ] macOS
[X] Windows

Obsidian Version
1.6.7
Plugin Version
0.5.1
Checks

[ ] I have tried it with all other plugins disabled and the error still occurs

Possible solution
Thought maybe it was having an issue with a property that I am adding via the template, but it a blank value. (I add it manually later).  Removed it from the template, and issue still persists.

I was unable to replicate this issue, even with the same video.
Please provide your YouTube template, so I can investigate more. Also, did you try disabling other plugins?

Hmm. Interesting. I have not. I will give that a try. The template has been
fine and untouched for some time other than me removing the one blank
property I mentioned. I will try disabling other plug-ins and see if I can
find it. I have several that recently updated.
Thanks for the quick response.
On Sun, Sep 8, 2024 at 6:18 AM Adam Lukacovic @.***>
wrote:

I was unable to replicate this issue, even with the same video.
Please provide your YouTube template, so I can investigate more. Also, did
you try disabling other plugins?
—
Reply to this email directly, view it on GitHub
https://github.com/DominikPieper/obsidian-ReadItLater/issues/168#issuecomment-2336629166,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6OCGGEYHP2TVS74UPYIHB3ZVQP7NAVCNFSM6AAAAABN223SQ2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZWGYZDSMJWGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Remove percent field

@recluze Score added in server response.
d07d49fc57ba99cda3bba0f1e1659bfc2521eea9

And there's also a "percent" column on the assignment page for students. In master, it seems to be showing the percentage and not score.

@recluze We are in RemovePercentField branch now.

Sure. Just wanted to point it out. If it's ok from your side, you can push so that I can test in detail once more. Everything seems to be working smoothly mashaallah.

Shall I merge this branch?

Sure. Please go ahead.

Working great on prod.


PDF: Support additional definition list rendering options

The default definition list output differs significantly between HTML & PDF output, which often confuses new users.

In HTML output for <dl> & <parml>, terms are rendered on one line, with definitions on a line below.
In PDF output, definition list entries are converted to table rows, with term and definition in columns.
Parameter list entries render in PDF with an style reminiscent of HTML, with indented definitions.

We should consider adding a parameter that would toggle definition list rendering between the default (table) and an indented style as used for <parml> or alternative presentation styles such as those provided by the dita-generator.
This would permit users to configure the rendering style that best matches their needs and allow them to sync presentation between HTML & PDF, or render  <dl> & <parml> consistently.
While some users prefer the default tabular output to conserve vertical space in simple scenarios where term and definition are both short, this format actually requires more space in lists where definitions are significantly longer than their terms.

While I'm sympathetic towards this feature request, I'm worried about feature bloat. If we add this, we have three different output alternatives to maintain. Same goes for three different alternatives for e.g. glossary or alternative output for index.
I would really prefer PDF2 to implement the basic functionality for producing PDF from DITA and then allow other plugins the add alternative layout and output.

@jelovirt Does that mean you would like to ship another PDF plugin that is based on PDF2 with the core OT?

Pretty much yes. Just like the current default output should be a separate plugin and the core PDF2 plugin would be pretty much unstyled. But not sure where the sweet spot is. I prefer modular approach where the end product is constructed from multiple plugins. I'm pretty sure most OT users would prefer to just get rid of the whole plugin system and just change files in situ, but that's not sound approach from software development point of view.

I certainly don't like the table form of <dl/>, and had also been thinking about a variable to switch between table and list form.
The problem with a table is that each <dt/> cell resizes to the length of its content, and it is not easy on the eye. It is actually quite awkward.
I also like the modular approach to PDF2. AS a starting point, it would be great to see the bookmap requirements separated from the basic ditamap and topic only processing.

+1 from our tech writer, nested dl lists look horrible with the current table representation.

:+1: from user on DITA Users List:
https://groups.yahoo.com/neo/groups/dita-users/conversations/messages/40353


Incompatible with latest i18next release

I updates my i18next des to their latest releases and received following error
Failed to compile.

/Users/danielsogl/workspace/vda-rga/react-vdarga/src/i18n/index.ts
TypeScript error in /Users/danielsogl/workspace/vda-rga/react-vdarga/src/i18n/index.ts(35,14):
Argument of type 'typeof I18NextXhrBackend' is not assignable to parameter of type 'Module | ThirdPartyModule[]'.
  Type 'typeof I18NextXhrBackend' is missing the following properties from type 'ThirdPartyModule[]': pop, push, concat, join, and 27 more.  TS2345

    33 | export const initI18n = (env: Environment) => {
    34 |   if (env.translationsEndpoint) {
  > 35 |     i18n.use(XHR).init(
       |              ^
    36 |       Object.assign(i18nOptions, {
    37 |         backend: {
    38 |           loadPath: `${env.translationsEndpoint}?controller=translation&method=getJson&language={{lng}}`,
``

PR welcome

I mentioned the issue also here https://github.com/i18next/i18next-xhr-backend/pull/319#issuecomment-517946389

Thank you for mentioning...but I guess all are aware of the problem ... and mentioning it won't fix it magically...

Myself and others that worked on the types made the mistake of thinking that the signature was use(instance), not use(classOrObject) in the upstream types (which it is).
I'm adding a test here which confirms the breakage and will figure out the upstream type change in #322
If you are not already aware, you can temporarily workaround this issue with .use(XHR as any).

Fix is merged to i18next.  Once released, everyone should be good.  I'm sorry I mixed this up, it was my misunderstanding of the runtime when tightening the types of the arguments.
Tests added here in #322 to make sure local types are conforming in the future.

<EMAIL_ADDRESS><EMAIL_ADDRESS>


Logrotate ERROR: No running copy

root@88efec7f40cd:/# squid3 -k rotate
squid: ERROR: No running copy
root@88efec7f40cd:/# cat /var/run/squid3.pid
1
Any ideas?
TIA

➤ Henrique M. Gontijo commented:
I was having the same issue and I mapped the container log folder to a host volume. It has been working fine.
Here's my logrotate without squid3 -k rotate:
Logrotate fragment for squid3./var/log/squid3/*.log {
daily
compress
delaycompress
rotate 2
missingok
nocreate
}

➤ Sameer Naik commented:
not sure why it does not work. tried locally and i see the same issue.

➤ taksekine commented:
When squid's pid==1, ploblem is appeard.
Use "docker run --init" etc.

➤ stefcl commented:
Perhaps it would be safer to use copytruncate, given that we can't invoke the  -k rotate command to tell squid to reopen the file?

   copytruncate
          Truncate  the  original log file in place after creating a copy,
          instead of moving the old log file and optionally creating a new
          one,  It  can be used when some program can not be told to close
          its logfile and thus might continue writing (appending)  to  the
          previous log file forever.  Note that there is a very small time
          slice between copying the file and truncating it, so  some  log-
          ging  data  might be lost.  When this option is used, the create
          option will have no effect, as the old log file stays in  place.

Otherwise, it may be possible to use kill -USR1 1 (where "1" is the main app PID number in docker) according to the squid.conf file


[BUG] Kvrocks SCAN does not match with Redis SCAN

Describe the bug
Scanning on Kvrocks produces incorrect responses when compared to Redis.

To Reproduce
Steps to reproduce the behavior:

run docker
get images "docker pull redis" and "docker pull kvrocks/kvrocks"
"docker run --rm -d  -p 6666:6666/tcp kvrocks/kvrocks:latest"
"docker run --rm -d  -p 6379:6379/tcp redis:latest"
open two redis-cli instances one on port 6739 and 6666
set "hi" and set "hello there" on both instances
preform the same queries as shown in the image.

Expected behavior
I believe scan should be the same as how redis is preforming the scan.

Thank you for the quick response and explanation. I'd be nice to have that implemented. I believe it can be useful in certain scenarios. Though feel free to decide if you'd like to implement it or not considering that fact that it will be inefficient.

and if you are curious, we maintain a fork of the Redis Python library to make the iterator works on kvrocks.

@ShooterIT Another concern is that on Kvrocks, SCAN return the cursor "_hello" but actually if you want to iterate on next element, it requires a number based cursor.
For example:
<IP_ADDRESS>:6666> set "hi there" v0
OK
<IP_ADDRESS>:6666> set "hello" v1
OK
<IP_ADDRESS>:6666> SCAN 0 MATCH hel* COUNT 10000
1) "_hello"
2) 1) "hello"
<IP_ADDRESS>:6666> SCAN 0 MATCH he* COUNT 10000
1) "_hello"
2) 1) "hello"
<IP_ADDRESS>:6666> SCAN 0 MATCH h* COUNT 10000
1) "_hi there"
2) 1) "hello"
   2) "hi there"
<IP_ADDRESS>:6666> SCAN "_hi there" MATCH h* COUNT 10000
1) "0"
2) (empty array)
<IP_ADDRESS>:6666> SCAN "hi there" MATCH h* COUNT 10000
1) "0"
2) (empty array)
<IP_ADDRESS>:6666> SCAN 1 MATCH h* COUNT 10000
1) "_hi there"
2) 1) "hi there"

Note that SCAN "_hi there" ... returns "0".

Sorry. I get it wrong.
<IP_ADDRESS>:6666> SCAN 1 MATCH h* COUNT 1
1) "_hi there"
2) 1) "hi there"
<IP_ADDRESS>:6666> SCAN 0 MATCH h* COUNT 1
1) "_hello"
2) 1) "hello"
<IP_ADDRESS>:6666> SCAN "_hello" MATCH h* COUNT 1
1) "_hi there"
2) 1) "hi there"

The cursor should work.

See #1489.


MariaDB support planned ?

Hi !
Do you plan to support MariaDB ? It should not be very different from mysql.
Curently this cookbook realize some versions/output checks that blocks mariadb mysql client usage (even when I'm trying to fake real mysql behaviour) :

Hi,
I already use this cookbook with mariadb. In my case mysql_database and so on works with it, too. I just had to set the provider of mysql2_chef_gem to Chef::Provider::Mysql2ChefGem::Mariadb
(I used
Chef::Platform.set platform: :ubuntu, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mariadb

before using mysql_database resources to do overwrite https://github.com/sinfomicien/mysql2_chef_gem/blob/master/libraries/z_provider_mapping.rb settings, without wrapping this cookbook - but perhaps there is a better way, to set a default provider without need to set it in mysql2_chef_gem resource itself).

Hey thx for your post :)
I'll try to use mysql2 gem Right now.
If it works (it seems to) maybe it's a good idée to upgrade/backport providers upstream (just an idea) ?

This cookbook already uses mysqh2_chef_gem https://github.com/opscode-cookbooks/database/blob/master/libraries/provider_database_mysql.rb
My only problem with this was, that mysql2_chef_gem uses per default Mysql Provider. So I really only needed that one line above, to make this cookbook working with mariadb.

Hi !
So i just added in my code (as you said) :
Chef::Platform.set platform: :ubuntu, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mariadb
and then I called :
mysql_database_user 'john' do
  connection mariadb_conn #it's a simple conf hash :)
  password 'doe'
end

But it's not working, ... Does it was really the only thing you changed to make this work :'( ?

just find out why user provider didn't worked (and database one did) :

#121
#110

@BarthV I'm unable to get it working as well at this moment. Having issues with the client complaining about an unsupported client version.
Does the version check need to be this strict? For example, on debian you have the dotdeb repository, which includes a mysql 5.6 version. In this case it will also complain about an unsupported version as it is set to 5.5.

currently it works if you use this PR branch ( https://github.com/BarthV/database/tree/mysqluser-allow-noversion ) with this code :
# It seems to work without this line too ...
Chef::Platform.set platform: :ubuntu, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mariadb

mysql2_chef_gem 'default' do
  provider Chef::Provider::Mysql2ChefGem::Mariadb
  action :install
end

mysql_database_user 'nagios' do
  connection myconn
  host '%'
  privileges    [:super,:process,:select]
  password 'mypassword'
end

Yeah, first line is not needed, if you specify provider in mysql2_chef_gem. Your solution is better, than mine, since yours works on all supported plattforms, while I've overwritten it only on ubuntu ^^

^ yep. that's the solution. v4.x has been decoupled from the mysql gem. You can use the mysql2_chef_gem resource and the mariadb provider to use the mariadb libs.


CIS hardening profile parse bug

When using a current version of RKE2 like v1.30.5+rke2r1 the CIS hardening is not applied, although it is set in `inventory//group_vars/rke2_servers.yaml.
rke2_config:
  profile: cis

This is recommended in the CIS hardening guide.
The code does not recognize a simple cis as profile and wants something like cis-1.23
https://github.com/rancherfederal/rke2-ansible/blob/058fd8324b020d9c2cfe2de2363239f18213f735/roles/rke2_common/tasks/cis-hardening.yml#L4
Using cis-1.23 is not accepted by v1.30.5+rke2r1 anymore. Starting the rke2-server results in
level=fatal msg="cis-1.23 profile is deprecated. Please use 'cis' instead."

That behavior is also documented in the CIS hardening guide. Should I provide a pull request or will you fix this anytime soon?

Hey @hotsource59 we are actually moving towards a rewrite. I can confirm the rewrite we are working on works with the "CIS" profile. It should take fairly minimal changes on your end to switch over to that.

This was already fixed in https://github.com/rancherfederal/rke2-ansible/pull/187, the regex can handle cis or cis-1.23 depending on what version of rke2 you are installing.

Thanks for the fix. It's working now.


Datamatrix barcode size

Hi
I'm trying to create a datamatrix barcode that meets the following spec:
The Royal Mail 2D barcode is a Complex Mail Data Mark (CMDM) barcode. It has the
specified format of a Data Matrix type ECC200 code complying with the international
standard ISO/IEC 16022, version 2006. It must be produced as a type 12 barcode with
following key characteristics
• Barcode Size: 44 x 44 modules
• Module Size: 0.5mm - 0.7mm
• Physical Size: 22mm x 22mm - 30.8mm x 30.8mm
• Total Capacity (with C40 encoding): 213 characters
and it's working fine except that for a typical 204 character input string, it is generating a 52x52 or 48x48 barcode and not 44x44.
I'm way out of my depth here but suspect that the C40 encoding might be the problem.
Does this package support C40 encoding or am I barking up the wrong tree?
Any guidance would be much appreciated.
--
Ian.

Hi,
you are right there is currently no C40 encoding. Only ASCII...
It would require an replacement for encodeText. If you want to help with this let me know otherwise it might take some time till I have time to implement this...
Regards
Florian

Thanks Florian.  I've written an encodeC40 method which appears to be working, subject to confirmation from Royal Mail.  Happy to share that with you however you wish.
--
Ian.

Would be happy if you would contribute it to the project because it may help other people.


Production deployment

I want to merge this change because...

Block iso-crate users from accessing the dashboard

PR intended to be tested with API branch:
Screenshots

Pull Request Checklist

[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Translated strings are extracted.
[ ] Number of API calls is optimized.
[ ] The changes are tested.
[ ] Data-test are added for new elements.
[ ] Type definitions are up to date.
[ ] Changes are mentioned in the changelog.
[ ] The changes are tested in different browsers (Chrome, Firefox, Safari).
[ ] The changes are tested in light and dark mode.

Test environment config

API_URI=https://master.staging.saleor.cloud/graphql/

Merging this for some urgent fix for iso-crate.


Node.js 12 actions are deprecated

Describe the bug
We are getting an error in our CI.
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: futureware-tech/simulator-action
Additional context
Could you please update action.yml to use Node 16?
runs: using: 'node16'

Thank you.  This has been fixed; please used @v2 version in the action clause (see README.md).


Callback ignored in JSONP calls to the HTTP RESTful Endpoint

Until version 2.1.2 of OrientDB I used to call the RESTful HTTP endpoint with JSONP requests with no problem:
function callOrientDB(query){
  var credentials = 'reader:reader';
  var baseURL = 'http://localhost:2480/query/VehicleHistoryGraph/sql/';
  return $.ajax({
    type: 'GET',
    url: baseURL+encodeURIComponent(query),
    dataType: 'jsonp',
    contentType: 'application/json',
    headers: {
      Authorization: 'Basic '+btoa(credentials)
    },
  })
  .done(callback);
}

What the result used to be (until 2.1.2) is something like the following:
jQuery17209145641725044698_1444301282307({"result":[ ... ] });

What is returning since upgrading to 2.1.3 is a pure JSON:
{"result":[ ... ]}

Which of course upsets jQuery:
Uncaught SyntaxError: Unexpected token :

Just followed the guide to restore back the previous setting about JSONP in the webserver.
For who lands here from a search engine, here's the solution:

Go to orientdb-server-config.xml
Enable again the JSONP support by adding the following entry:
<entry value="true" name="network.http.jsonp"/>
Restart OrientDB et voilà

Hi @dej611
Yes, the default was changed for security reasons.
I suppose I can close this issue
Thanks
Luigi

I have OrientDB 2.1.6 installed (on Windows) and even if I add <entry value="true" name="network.http.jsonp"/> to orientdb-server-config.xml (I guess it should be in <properties> like other <entry>s) and restart server (actually I'm restarting system service), I don't get JSONP response.
I am requesting with Postman and I'm getting clear JSON response (callback parameter is in the request).

hi @Wirone
just tested in 2.1.6 with this config in orientdb-server-config.xml
<properties>
        <entry value="1" name="db.pool.min"/>
        <entry value="50" name="db.pool.max"/>
        <entry value="true" name="network.http.jsonp"/>
        <entry value="true" name="profiler.enabled"/>
        <entry value="info" name="log.console.level"/>
        <entry value="fine" name="log.file.level"/>
    </properties>

And it worked.

Just dropping here a new note. Since OrientDB 2.2.x the trick explained above doesn't work any more.
We've found another solution explained here: http://stackoverflow.com/questions/27612752/building-web-app-using-orientdb-javascript-api
For who lands here from a search engine, here's the solution - quoting from the linked page:

Add this entry in config/orientdb-server-config.xml
<parameter name="network.http.additionalResponseHeaders" value="Access-Control-Allow-Origin: * ;Access-Control-Allow-Credentials: true;Access-Control-Allow-Headers: Content-Type;Access-Control-Allow-Methods: POST, GET, DELETE, HEAD, OPTION" />

above
<parameter value="utf-8" name="network.http.charset"/>


Slow initial instancing in _process()

Godot version: v3.2.beta2
OS/device including version:
Intel Core i7-4790K CPU
16GB ram
Windows 8.1 64bit
When I measure the time it takes to instance scenes (or do .new()), under certain circumstances it's taking much longer in beta2 than beta1. For my computer in beta1 it takes 15ms, in beta2 it's taking 80ms. It seems subsequent instancing doesn't have this delay, so there's a possibility that it's not a bug at all and just how the engine works in handling initial instances, I wouldn't know.
This only affects certain nodes:

MeshInstance with a mesh assigned
Light2D
Particles2D

Possibly others, I only tested a dozen or two.
Steps to reproduce:
This takes 80ms on my computer:
func _process(delta):
	var test = OS.get_ticks_msec()
	var id = Light2D.new()
	print('Code time: '+str(OS.get_ticks_msec()-test)+'ms')
	set_process(false)

This takes 0ms on my computer:
func _ready():
	var test = OS.get_ticks_msec()
	var id = Light2D.new()
	print('Code time: '+str(OS.get_ticks_msec()-test)+'ms')

Minimal reproduction project:
SlowInstancing.zip
Here is a project that tests the speed of instancing MeshInstance scenes subsequently. If you uncomment the text in _ready() all speedtests will drop to 0ms. I have no idea what's going on.

Which graphics card model do you have? Do you have a lot of USB devices connected when starting the project? I wonder if this is tangentially related to #20566 (even if less extreme).

GTX 970, unplugging USB devices made no difference.
I tried running the test on my other older PC (E8400 cpu) with a fresh Godot installation. The result was 342ms. I'm sure this bug is consistently reproducible by anyone.

I can't reproduce issue on Ubuntu 19.10 also with Nvidia GTX 970
My times are usually:
Code time1: 1ms
Code time2: 1ms
Code time3: 1ms
Code time4: 1ms

but I have a little modified test script
extends Node2D
var scene = load("res://MeshInstance_Scene.tscn")

func _ready():
	var test1 = OS.get_ticks_msec()
	for i in range(100):
		var id1 = MeshInstance.new()
	print('Code time1: '+str(OS.get_ticks_msec()-test1)+'ms')

	var test2 = OS.get_ticks_msec()
	for i in range(100):
		var id2 = scene.instance()
	print('Code time2: '+str(OS.get_ticks_msec()-test2)+'ms')

func _process(delta):

	var test3 = OS.get_ticks_msec()
	for i in range(100):
		var id3 = MeshInstance.new()
	print('Code time3: '+str(OS.get_ticks_msec()-test3)+'ms')

	var test4 = OS.get_ticks_msec()
	for i in range(100):
		var id4 = scene.instance()
	print('Code time4: '+str(OS.get_ticks_msec()-test4)+'ms')

	set_process(false)

SlowInstancing.zip

Remove the _ready() code and run it again, the issue only occurs without _ready(). Sorry if I wasn't clear.

--- Debugging process started ---
Godot Engine v3.2.beta.Xrayez.636bc5c32 - https://godotengine.org
OpenGL ES 3.0 Renderer: GeForce GTX 750 Ti/PCIe/SSE2

Code time2: 185ms
Code time3: 0ms

Could one of you bisect between 3.2 beta 1 (077b5f6c2c06bb2c0af525ee25f87e0db719f9d2) and 3.2 beta 2 (b7ea22c5d203da1b592a743a4c893de25cd34408)?
Given that it seems to affect rendering-related nodes, I guess it might be a regression from changes to rendering code. Might be good to check if it happens only with GLES3 or also with GLES2.

git bisect reported regression  from cd40154890ba9791b219d66beaf187a7d8dcdba5 (CC @clayjohn) 🙂

@Xrayez that bisect must be mistaken. That commit mostly changes shader code. The only CPU-side code it changes is only run when instancing a sky resource.
It will have absolutely no effect on instancing nodes.

@clayjohn It could be that the shaders take more time to compile initially though, especially since this slowdown is only reproduced on the first instantiation.

@akien-mga Potentially, but it still shouldn't affect any 2D nodes. And the changes made to scene.glsl were very minor.

Potentially, but it still shouldn't affect any 2D nodes

The reproduction project does use MeshInstance specifically. Opening up the scene is also slow, but I don't use 3D to tell the difference...
Shader compilation bottleneck was always an issue indeed, it's going to become more noticeable in these cases perhaps. Lets hope Vulkan solves this in the future: #13954.

I speed tested 100-200 nodes/resources using .new()
Here's the ones that exhibit this behavour where they all consistently take 70-80ms on my PC in _process (the expected time is usually 0-1ms):

Light2D
Particles2D
Particles
World
CubeMap
CPUParticles2D
CPUParticles
Texture3D
TextureArray
Skeleton2D
OccluderPolygon2D
CameraFeed
ViewportTexture
StreamTexture
ProxyTexture
NoiseTexture
ImageTexture
GradientTexture
CurveTexture
AnimatedTexture

Out of the Textures group specifically, here's the textures that don't exhibit this behaviour:

CameraTexture
AtlasTexture
LargeTexture
MeshTexture

By the way MeshInstance only has this issue when it has a mesh assigned. Here's the same issue without needing to spawn a scene:
func _process(delta):
	var test1 = OS.get_ticks_msec()
	var newMesh = MeshInstance.new()
	newMesh.mesh = CubeMesh.new()
	print('Code time: '+str(OS.get_ticks_msec()-test1)+'ms')
	set_process(false)

MeshInstance.new() and CubeMesh.new() by themselves have no issue.
Here's some speedtests using this MeshInstance with CubeMesh code I just posted above (ran 3 times each):
GLES3
Godot_v3.0-stable_win64: 81ms, 75ms, 81ms
Godot_v3.1.1-stable_win64: 86ms, 86ms, 78ms
Godot_v3.1.2-rc1_win64: 81m, 73ms, 88ms
Godot_v3.2-alpha1_win64: 15ms, 16ms, 15ms
Godot_v3.2-alpha2_win64: 15ms, 15ms, 15ms
Godot_v3.2-alpha3_win64: 15ms, 15ms, 15ms
Godot_v3.2-beta1_win64: 15ms, 16ms, 15ms
Godot_v3.2-beta2_win64: 77ms, 76ms, 82ms
GLES2
Godot_v3.1.1-stable_win64: 2ms, 2ms, 2ms
Godot_v3.2-alpha3_win64: 2ms, 2ms, 2ms
Godot_v3.2-beta1_win64: 2ms, 2ms, 2ms
Godot_v3.2-beta2_win64: 2ms, 2ms, 2ms
I also did the tests with ImageTexture.new() and got the same results.
GLES2 is displaying an issue here with its consistent 2ms, sometimes 3ms. When I do it in _ready() it's 0ms across the board. If it's a shader compiling issue why is it so fast in _ready?

Few important things to note. The issue is in 3.0, 3.1+ and 3.2 beta 2, accordingly it is unlikely that a PR introduced in 3.2 beta 2 is solely responsible.
Second. The fact that it appears only in _process and only in GLES3 makes it seem overwhelmingly likely that it is a shader compile issue.
Shaders are compiled on the first frame that an object is drawn, so when the object is instantiated in _process and drawn for the first time, the shaders have to compile right away. When you instantiate in _ready, the shaders would compile later.

I'm way ahead of you clayjohn.

so there's a possibility that it's not a bug at all and just how the engine works in handling initial instances

lol but seriously, thank you for the answer.

I'm confused, why was this reported as a regression between 3.2 beta 2 and beta 3 then? User error?

I didn't call it a regression and give it high priority, that was your interpretation.

For my computer in beta1 it takes 15ms, in beta2 it's taking 80ms.

This is still true. And weird. So your interpretation of a regression is fine. Don't let your user error bum you out too much. haha.

between 3.2 beta 2 and beta 3

You mean beta 1 and beta 2. Nice user error. lol
FINE I MESSED UP BIG TIME I'M CRYING NOW ALL THOSE SPEEDTESTS FOR NOTHING AAAAAAHHHHH

@rainlizard in either case, we just have to accept the possible slowdown and implement #13954.
The times when I bisected the issue between 3.2 beta 1 (077b5f6) and 3.2 beta 2 (b7ea22c) there was only two values: 30ms and 180ms, and interpreted those as "bad" and "good" on my machine.


vr-video-player and openvr init

Motivation for this change
There still is a problem with the https://git.dec05eba.com/vr-video-player git repository, so I made this a draft PR.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@ofborg build vr-video-player


Request to create a milestone named "backlog" to backlog some unresolved or difficult issues

As I said in https://github.com/kubesphere/ks-devops/pull/326#issuecomment-948711201, some problems may involve too many other modules, and are not suitable to be resolved in current release. So that we can put them into backlog milestone.
If some of them are suitable to be resolved, we can move them from backlog into next-candidate milestone.
/kind chore

Thanks for your efforts.


In need of update

Not much is correct here when it comes to the Azure function. The code doesn't even compile.

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

ID: 915c7aa9-0969-912b-bbc4-a2b0bf9b1533
Version Independent ID: 6a97a5e8-8397-be98-5528-70d20e8fbed8
Content: Use Azure Functions to create custom branch policies - Azure Repos
Content Source: docs/repos/git/create-pr-status-server-with-azure-functions.md
Product: devops
Technology: devops-code-git
GitHub Login: @apawast
Microsoft Alias: yohasna

I have to use {organization} instead of accountName variable
I realized that with this version:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/statuses?api-version=5.1-preview.1
On this link:
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull request statuses/create?view=azure-devops-rest-5.1


Fix page loads when refreshing location with anchor

Currently, if the location is http://example.com#main, and we call Turbo.visit(location.toString()), the page will just scroll to the anchor without reloading the page. This makes is impossible to refresh a current page via a Turbo visit.
Rather than checking for the presence of a URL hash, this pull request just checks that the hash has changed. If so, it's a same page visit.
/cc @jayohms

@domchristie Thanks, this looks like an improvement 👍. I'm wondering if this covers all situations here:

We were using Turbo.visit() to force redirect of same page to anchor after modal window will close to refresh just added record, and now with this PR doesn't trigger the visit.
Is there a way to override this behaviour or introduce a new action to Turbo.visit() ?

Say you're on page http://example.com/feature, display a modal, add a new record, close the modal and call Turbo.visit("http://example.com/feature#new_record_id_1234"). The new visit will not be performed to refresh the page and the anchor will not exist on the page yet. Should we support this situation? I'm wondering if we should allow replace visits to bypass the same-page anchor scrolling entirely. Thoughts?

Another idea is to validate that the #anchor element exists on the page before considering it a same-page visit.

I'm wondering if this covers all situations here:

@jayohms Unfortunately not. This PR was inspired by that feedback, but will only perform a full visit if the locations are identical—with a nice side-effect of simplifying the code (I'm not sure why I didn't think of this approach before!)

I'm wondering if we should allow replace visits to bypass the same-page anchor scrolling entirely. Thoughts?
Another idea is to validate that the #anchor element exists on the page before considering it a same-page visit.

Interesting! I've been mulling over a fix for this, and to summarise the options:

isSamePage should be false for replace actions
validate presence of anchor on page, and if it does not exist isSamePage is false
add an visit option to override the isSamePage check: Turbo.visit(location, { samePage: false })
allow same-page visits to be intercepted: addEventListener('turbo:before-same-page', e => e.preventDefault())
don't support this behaviour and instead require a full-page workaround: window.location = newLocation

I think I prefer your options as they elegantly don't require additional API. Just wondering if they cover all situations? For example, let's say that rather than Turbo.visit("http://example.com/feature#new_record_id_1234"), we had Turbo.visit("http://example.com/feature#last_record"). The #last_record element will be on the page but won't be updated if the page isn't refreshed.
Re. option 1: I'm struggling to think of a reason why someone would intentionally perform a same-page replace visit and not want the page to reload—I don't think this is even possible with the default browser behaviour?
I could be wrongly second-guessing people's intentions for same-page visits, but the more I think about it, the more I think option 1 (plus perhaps 2), will cover most situations.

I think I prefer your options as they elegantly don't require additional API. Just wondering if they cover all situations? For example, let's say that rather than Turbo.visit("http://example.com/feature#new_record_id_1234"), we had Turbo.visit("http://example.com/feature#last_record"). The #last_record element will be on the page but won't be updated if the page isn't refreshed.

Yeah, I'd like to avoid new APIs if possible, too. In this situation, I think it's ok to say a replace visit is necessary if you're visiting #last_record, it already exists on the page, but you want new contents.

re. option 1: I'm struggling to think of a reason why someone would intentionally perform a same-page replace visit and not want the page to reload—I don't think this is even possible with the default browser behaviour?

I can't think of any negative consequences here, either.

I could be wrongly second-guessing people's intentions for same-page visits, but the more I think about it, the more I think option 1 (plus perhaps 2), will cover most situations.

Yeah, I think so too. I think we should try solutions 1 and 2 together, because then by default it'll handle the situation where you try to visit a new anchor that doesn't currently exist, i.e. Turbo.visit("http://example.com/feature#new_record_id_1234"). It preserves the old behavior for edge cases, while allowing same-page scrolling to occur for natural situations.

I think we should try solutions 1 and 2 together
👍

Solution 1 is currently complete in this PR. Part 2 might require a bit more thought. I haven't fully got my head round it, but the logic might get complex if we consider blank/undefined anchors

Thanks @domchristie! I haven't really considered the implementation for solution 2. If it looks like it's going to be complex, consider splitting into a separate PR that we can evaluate separately.

(I'm not sure why I didn't think of this approach before!)

Now I do! … If we only check the hash changes, then navigating from /#main to / will be considered a same-page location and will just scroll to the top. I think the typical browser/expected behaviour is to reload the page(?). However navigating Back from /#main to / should just scroll to the top.
So this results in a pretty gnarly check:
  locationWithActionIsSamePage(location: URL, action: Action): boolean {
    const anchor = getAnchor(location)
    const currentAnchor = getAnchor(this.view.lastRenderedLocation)
    const restoreToTop = action === 'restore' && typeof anchor === 'undefined'
    const anchorElementExists = anchor === '' || this.view.snapshot.hasAnchor(anchor)

    return action !== "replace" &&
      getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&
      (
        restoreToTop ||
        (anchor != null && anchor !== currentAnchor && anchorElementExists)
      )
  }

:/

Still in two minds about validating whether an element exists. It's cool, but it feels a bit odd given that a browser will just scroll to the top.

@jayohms 4eb3720 updates this PR to fix the navigate back issues. I've not included the anchor element check, but can do so if needed.

Yeah, totally fine leaving out for now. If we hear feedback on it, we can reevaluate 👍.

Great, rebasing now…

@jayohms Done. (I think that failing test is a flaky one)


Cannot access nuxt plugin and $nuxt in new Vue() instance

Versions

nuxt:  v2.14.7
node: v10.21.0

Reproduction
https://codesandbox.io/s/loving-forest-mynl6?file=/pages/index.vue
Steps to reproduce
import Vue from "vue";
export default {
  created() {
    console.log("root $nuxt", this.$nuxt);
    console.log("root $foo", this.$foo);
  },

  methods: {
    handleClick() {
      const vm = new Vue({
        created() {
            console.log("new Vue instance $nuxt", this.$nuxt);
            console.log("new Vue instance $foo", this.$foo);
        },
      });
    },
  },
};

Logging $nuxt and $foo(custom plugin) when App created.
console.log("root $nuxt", this.$nuxt);  // {...}
console.log("root $foo", this.$foo); // 'foo'

Click create vue instance button
Not logging $nuxt and $foo (custom plugin) in new Vue instance.
console.log("root $nuxt", this.$nuxt);  // undefined
console.log("root $foo", this.$foo); // undefined

all nuxt plugins are undefined.
What is Expected?
$root and arbitrary vue instance can access $nuxt and plugins

Likely a consequence of https://github.com/nuxt/nuxt.js/pull/8170

Likely a consequence of #8170. You can add these properties to the Vue prototype yourself if you are comfortable with the implications.

thanks for the reply.
There are still some problems：

could set custom property to Vue.prototype, but $nuxt, $route, $router...
couldn't redefine Vue.prototype property because when calling inject, inject already define a non-configurable property.

eg.
in inject function:
  function inject(key, value) {
    // ...

    // Call Vue.use() to install the plugin into vm
    Vue.use(() => {
      if (!Object.prototype.hasOwnProperty.call(Vue.prototype, key)) {
      // non-configurable  `$api`
      Object.defineProperty(Vue.prototype, key, {
          get () {
            return this.$root.$options[key]
          }
        })
      }
    })
  }

** in custom nuxt plugin **
export default function (context, inject) {
  context.$api = $api;
  inject('api', $api);
  // cannot redefine `$api`
  Object.defineProperty(Vue.prototype, '$api', {
    get () {
      return $api;
    }
  });

  // workaround: define another key
  Object.defineProperty(Vue.prototype, '$api2', {
    get () {
      return $api;
    }
  });
}

@erraX how did you solve this issue?

@erraX how did you solve this issue?

@danielroe so how to resolve it, instead of just going for the workaround?

@danielroe so how to resolve it, instead of just going for the workaround?

@PayelKarmakar06 Without seeing a reproduction from you it's difficult to advise.

@PayelKarmakar06 Without seeing a reproduction from you it's difficult to advise.

@erraX how did you solve this issue?
I polyfill related properties to new Vue instance.

eg.
const vm = new Vue();

// parentVm has all $options

// polyfill `$axios`, `$nuxt`, ...
vm.$root = parentVm.$root;

// polyfill vue-router
vm._routerRoot = parentVm._routerRoot;
vm._router = parentVm._router;

// polyfill vuex
vm.$store = parentVm.$store;

@erraX how did you solve this issue?
I polyfill related properties to new Vue instance.

eg.
const vm = new Vue();

// parentVm has all $options

// polyfill `$axios`, `$nuxt`, ...
vm.$root = parentVm.$root;

// polyfill vue-router
vm._routerRoot = parentVm._routerRoot;
vm._router = parentVm._router;

// polyfill vuex
vm.$store = parentVm.$store;

@danielroe I am not sure if this is the exact repro env -

@danielroe I am not sure if this is the exact repro env -


[T4A5][T11-B4] Tan Jun Hao

Ready for review

@e0003083 Some comments added. Please close the PR after reading comments.


Search results of DB Metadata would not respect the Configure columns (even modified in last search)

System information:

Operating system (distribution) and version:  Windows 10 x64 enterprise "10.0.17763.2061"
DBeaver version:  <IP_ADDRESS>204170718
Additional extensions: None for DBeaver

Connection specification:

Database name and version:  some, like Oracle Database 11g Enterprise Edition Release <IP_ADDRESS>.0 - 64bit Production
Driver name:  some, like oracle.jdbc.OracleDriver  (seems <IP_ADDRESS>)
Do you use tunnels or proxies (SSH, SOCKS, etc)? No

Describe the problem you're observing:

The search results of DB Metadata would be only the Name column, even without those other default columns in Configure columns panel.
And Even after manually modified in Configure columns panel, everything still keep no-change ...

Steps to reproduce, if exist:

just like the description

Include any warning/errors/backtraces from the logs

seems not very necessary ... (and excuse me to omit that ...

Hello @cijcij
Can you provide please the screen of DB Metadata search? And table DDL.

Sorry for late response……
I just tested on another PC, with a fresh DBeaver Sample Database (SQLite) and the search options exactly same as yours.
And reproduce that.

The information is a little different from the original top comment.
System information:

Operating system (distribution) and version:  Windows 10 x64 Home 10.0.19043 (21H1 19043.1645)
DBeaver version:  CE <IP_ADDRESS>204041900 (from MS Store)
Additional extensions: None for DBeaver

Connection specification:

Database name and version:  DBeaver Sample Database (SQLite)
Driver name:  org.sqlite.JDBC (org.xerial:sqlite-jdbc:RELEASE <IP_ADDRESS>)
Do you use tunnels or proxies (SSH, SOCKS, etc)? No

Sorry for the late responce too @cijcij
Thanks for the bug report.


[FP]: Keycloak services for CVE-2021-3632

Package URl
<EMAIL_ADDRESS>CPE
cpe:2.3:a:keycloak:keycloak:6.0.1:::::::, cpe:2.3:a:redhat:keycloak:6.0.1:::::::
CVE
CVE-2021-3632
ODC Integration
None
ODC Version
9.1.0
Description
Actual vulnerable component in Keycloak services

It's part of the keycloak project
https://github.com/keycloak/keycloak/blob/main/federation/ldap/pom.xml
and as such will receive the exact same CPE from NIST NVD
We don't do submodule attribution for vulnerabilities listed in the NVD. If you'd like to have submodule attribution of CVEs you would have to resort to licensed SCA vulnerability scanners that have the means to build their own database of vulnerabilities versus libraries or accept the occasional false-positive because your used lib is a non-vulnerable subcomponent of a project that has vulnerabilities in the same version of some other component.


Need help building raylib example

I don't understand cmake well enough to follow a single step apparently:
This driver requires the code to be compiled with emscripten.

emcmake cmake -DRAYLIB_LIBRARY_PATH=<path to raylib lib file> -DRAYLIB_INCLUDE_PATH=<path to raylib headers folder> .

So I do:
emcmake cmake -DRAYLIB_LIBRARY_PATH="../../../raylib-web/src/libraylib.a"
-DRAYLIB_INCLUDE_PATH="../../../raylib-web/src/" .
It can find the headers but gives me this even though it exists:
cannot find -l../../../raylib-web/src/libraylib.a: No such file or directory
Isn't it supposed to be -lraylib anyway? Regardless after hours of trying nothing works...
PS: I'm on windows with mingw makefiles

@lesleyrs can you try using absolute paths?

Then I get: libraylib.a: error adding symbols: file format not recognized
I have already used it for emscripten without nbnet though.

@lesleyrs it looks like your libraylib.a was not built for the right target. Are you sure you built raylib with emscripten?

Yes I'm sure because I've already been building with emscripten to host on itchio, regardless both on Windows and Linux I get the same file format error now.

@lesleyrs this error is a linker error stating that the architecture from which libraylib.a was built does not match the one you are trying to compile for. I suggest that you try rebuilding raylib with the same version of emcc that you are trying to compile the nbnet example with.

Ok I managed to get it to build on Linux after far too much time and I still don't fully get the problem 😮💨. These were the problems I encountered:
1: On both platforms I got
/home/azureuser/dev/nbnet/examples/raylib/../../nbnet.h:4985:9: error: call to undeclared function 'clock_gettime'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 4985 |     if (clock_gettime(CLOCK_MONOTONIC_RAW, &tp) < 0)
      |         ^
/home/azureuser/dev/nbnet/examples/raylib/../../nbnet.h:4985:23: error: use of undeclared identifier 'CLOCK_MONOTONIC_RAW'
 4985 |     if (clock_gettime(CLOCK_MONOTONIC_RAW, &tp) < 0)

I saw raylib does this    #define _POSIX_C_SOURCE 199309L     // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. so I changed -std=c99 to gnu99 and that made the program run but it crashes.
2: I got emscripten from apt on Linux because I thought it was a recent version, but nope it's 3.1.5 instead of 3.1.50, big difference. It was missing a glfw function definition.
3: full paths were needed to find libraylib like you said, and I dont' even remember what I did to get the file format error.

@lesleyrs I'm glad you figured it out. I fixed the README.


re-introduce angular material

Change Summary

[x] re-added the menu bar (without styling for now)
[x] made a default action for all menu items
[x] moved open project into the menu bar: File :arrow_forward: Open Project...
[x] moved open modal into the menu bar: Testing :arrow_forward: Open Modal

this resolves #67


Project Page - when we click outside then also due date gets clicked

Describe the bug
https://www.berrycast.com/conversations/ba10365c-f0ef-5e14-b3cd-e19d04b65af2

https://www.berrycast.com/conversations/73dcabcd-2c6a-5b68-a411-0eb8be68d340


Home and Minigame teleport timers don't appear when teleporting from underwater

Because these timers check for the animation (not the graphic) of your player, if you are floating underwater and trigger a teleport, your animation does not change. We can change this to check your player's graphics change events instead of animations.

Fixed in #14842


Secondary Datastores are not looked at with ampinstmgr repair

Bug Report
Secondary Datastores are not looked at with ampinstmgr repair
System Information

Operating System (Including distribution name and version number) Windows 10 Pro 20H2
AMP version and build date (Always use the version number, 'latest' is not valid!) <IP_ADDRESS> 27/10/2022 18:15
Which AMP release stream you're using (Mainline, Nightly or FastTrack) Release

I confirm:

[x] that I have searched for an existing bug report for this issue.
[x] that I am using the latest available version of AMP.
[x] that my operating system is up-to-date.

Symptoms

What are you trying to do? Repair my datastores after an issue where drive letters were changed
What are you expecting to happen? After setting the datastore in the WebUI and restarting the target ADS, expected to be able to use ampinstmgr repair and have the instances turn up
What is actually happening? ('Nothing' is not an acceptable answer!) Nothing is actually an acceptable answer here as it states there are no instances to import. Reading on Discord indicates that this is not a thing it does - I consider this a bug as the only way to re-import something now is to copy it to the primary datastore, and import it.

Reproduction

Have unattached instances in secondary datastore
Use ampinstmgr repair
See that it does not import them
Copy them to the primary datastore
Use ampinstmgr repair
See that it imports them

ampinstmgr isn't aware of multiple datastores, only ADS is - so this isn't going to be possible. Indeed the path forward once it's possible to migrate between datastores is that repairs are done into the primary datastore, and then moved to the desired one.

If thats the case then somehow having a rescan of the datastores via ADS so it can rediscover them would be required - otherwise you have the potential of just losing all your stuff because it's not in the right drive...

Could add a right click "Repair" option in ADS itself to repair a datastore?

Keeping it in the GUI is probably preferred anyways. Nobody wants to use ampinstmgr, but the need arises sometimes. Seems like a good solution.

Ci now allows for datastores to be repaired via the web interface.


Add lrauv_system_tests package.

Including support libraries for testing. Depends on #193 and #194.

Alright, all green and reviewer's happy. Merging.


[action] create_keychain: Fix for issues with Keychains with spaces #14310 & create_keychain #14418 with UnitTests

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[ ] I've updated the documentation if necessary.

Motivation and Context

There are two pending issues related to creating the Keychain where keychain path needed to be shellescaped properly.
Issue link https://github.com/fastlane/fastlane/issues/14310
The fix was merged into the recent update of fastlane 2.118.0 but it created a regression as described here https://github.com/fastlane/fastlane/pull/14424

The current PR will fix both the issue https://github.com/fastlane/fastlane/issues/14310 and https://github.com/fastlane/fastlane/pull/14424
closes #14310
closes #14424
Description

The PR changes the way the HOME directory is referred within the fastlane action of create_keychain
Previously Home directory was referred via tilde ~ where as the correct approach should be using the #{ENV['HOME']} variable

The changes were tested as described in the testing document at https://github.com/fastlane/fastlane/blob/master/Testing.md
The create_keychain_spec.rb file was also modified for UnitTest to pass by looking for expected value of HOME variable instead of ~

Now with the conflicts this will be to hard to combine. If the problem still exists, someone will hopefully create an issue again and we can fix the current codebase.


Admin can register users

Special feature that allows an admin to open accounts on behalf of other users. It will just send the first email confirm notification without actually reserving a user record for them.

Later we will record them somewhere but not now.


customize log verbosity

Hi,
Postgrest seems fantastic!
It would be nice to see logged near the requests submitted to postgrest, also the pg response errors.
What do you think?

We could add that, although the errors will be in your db logs as well depending on your logging settings.

Note there is more documentation now about debugging server problems - https://postgrest.readthedocs.io/en/v0.4/admin.html#debugging

Revisiting this, a log level would be nice in order to both reduce logging (since it might be duplicating the logs of a proxy server), or turn them up.
I propose we allow syslog style log levels.

Hi, are there any progress on that ?
All other tickets end up here. I would like to have some verbose logging without having to modify the db side logs, for example for SSL connection:
SSL established: TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384/ECDH=prime256v1

When having several clients that access the database, it can be hard to pinpoint the log entries that belong to a particular pgrst instance.
I think we should recommend using log_line_prefix and setting application_name in the connection uri(on db-uri). This would be like:
postgres://user@localhost/mydb?application_name=pgrst_mydb_myschema"

I was also thinking if we could somehow set the application_name ourselves. But in any case this should be documented.

I have a counterpoint against doing more detailed logging in the syslog style.
Recently, I helped an user that was in need of an audit trail for PostgREST events, this was needed for compliance with a standard. The idea was to have detailed request information in JSON(payload body, headers, success/error codes, etc) and then send them to Kafka for later processing.
Naturally the first idea that comes to mind was to add more detailed logging in PostgREST itself and construct the required JSON.
However, this detailed logging would introduce code paths that can lead to performance degradation. In the past we have had problems such as #690 and #925(#1206 still open btw). Those were fixed basically by not messing with the payload body in Haskell code and instead rely on directly sending it to pg through parametrized queries.
So, why introduce these issues in PostgREST(we'd have to discuss what goes in a DEBUG level, which format, measure the memory consumption impact, go back to previous perf issues for certain settings, etc) when PostgreSQL logs can already be formatted in JSON(thanks to jsonlog, this was the eventual solution we landed on) with much more detailed information than what we could output in pgrst(certain error messages will not be exposed through libpq, see https://github.com/nikita-volkov/hasql/issues/112).
CSV logs are also already available in pg and jsonlog could soon be included in core(see this discussion).
I think PostgREST has remained and should still be a transparent layer over PostgreSQL. We could leave the detailed logging to PostgreSQL. In a way this would also reinforce our "db as the source of truth" principle.
I propose we refrain from detailed logging and to always do minimal logging(not go to a higher level).  Instead we should add to the docs a good explanation on logging with these recommendations https://github.com/PostgREST/postgrest/issues/540#issuecomment-540649767 (we can include some log samples) and with a single grep pgrst_mydb_myschema one can get all the detailed logging pg already provides for your pgrst instance(to debug SSL issues, etc).

For docs, we could also show how to set the log_min_messages per postgrest app. By recommending to set the setting per user(can also be done per db but probably not desired), like: alter role authenticator set log_min_messages to fatal.

A lower level of logging - for failed requests(status >=400):

Can be done by using https://hackage.haskell.org/package/wai-extra-<IP_ADDRESS>/docs/Network-Wai-Middleware-RequestLogger.html#t:RequestLoggerSettings in Middleware.hs.
Example of how to use this: https://stackoverflow.com/a/25538767/4692662

another to options for the record:

if log is too verbose on clientside eat it in nginx: https://github.com/PostgREST/postgrest-docs/issues/326
if systemd started postgrest is too verbose reroute it via StandardOutput= etc

One more reason to offer a lower log level, the verbose output makes the log file grow quickly.
Also, one other thing I've noticed is that our connection retries messages go to stdout. They should go to stderr.
So, looks like we should have a logging_level config option that offers three levels:

info: Our current logging level. Log all requests, successful or unsuccessful.
debug: In addition to logging all requests. Show the main SQL query. No parameters from prepared statements will show.
error: Only log unsuccessful requests.

Should error be the default level? Maybe we should make a breaking change now.

+1 to set error as the default level.

log-level config added! https://github.com/PostgREST/postgrest/pull/1604
Also, the error level is now the default.
I'll close this general issue and continue to track the debug level on https://github.com/PostgREST/postgrest/issues/1578.


Bump firrtl to 1.2.x

Bumps firrtl and scala versions. Subsumes #10 .

@azidar Would you rather squash-and-merge this and then update PRs that point to this, or rebase everything and then they can all be merged-committed together?

Yes, the commits should work independently so let's just do a pure merge.


Parameterize the JDK update

The ./buildDockerImage.sh builds a docker image assuming JDK 8u60, but the latest is u66. Maybe a good idea to parameterize this or be a bit more flexible on the specific update.

Users are free to use whatever JDK they want (and that are certified by WLS versions, if support is required). The scripts are starters only. Feel free to customize as you wish.


Add OtoNoke by creepy nuts

Song Name
OtoNoke
Artist Name
creepy nuts
Source
Youtube
Youtube Link
https://m.youtube.com/watch?v=nSVHMVYxJy8&pp=ygUTb3Rvbm9rZSBjcmVlcHkgbnV0cw%3D%3D
Direct File Link
No response
Song ID
360804
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 109016278

reject
popular songs like the sakupen hell song are too inconvenient to be replaced by smth unrelated and are therefore usually rejected.
Note that you can still use the song yourself, but it won't be public


⚠ Samsung has degraded performance

In 096b34c, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2001 ms

Resolved: Samsung performance has improved in 4f0bc41.


Port minor changes (CHANGELOG, version) from 0-stable to master

This changelog update found its way to master in 95838748.


qt: Customization and finetuning of custom classes

This PR ist part of a series of +-25 PRs related to UI redesigns. Its ancestor is #3564, its successor is  #3566. I did not screenshot every single PR and its changes, instead i made "walk through all screen" videos with the result of this PR series and also with the 0.15 UI. If there are any concrete screenshots wanted, just let me know. To build with the full set of changes you can build from the branch xdustinface:pr-ui-redesign which always contains all changes.
 -> Walk through 0.15
 -> Walk through Redesign
I tried to give the commits enough text to make things obvious without a lot description for each PR. Also here, if you want more description for this specific PR, let me know.
About this PR
See individual commit messages.

Included in #3563


Test case 2 (Lab6) - issues with statistics

Summary
I encounter a problem with my average wait time in the statistics on test case 2.

Description:
In my ServeEvent class I increment the waiting time by passing on the current time of the ServeEvent class (the time that the customer get served) along with the customer object.

and in the incrementWaitTime method I subtract the time of of when the customer got served (ServeEvent's current time) with the customer's arrival time to get the total wait time and divide it by the number of customers who got served.

It looks right to me but maybe I missed something or misplaced the statistics update? Has anyone encountered similar issue and how did you solve it?

I am assuming your updateStats method is in the ServeEvent class, and it is overriding an abstract method from the abstract Event class. So, every single class that you have has an updateStats method.
You might want to check that all of them have the correct method written down, and whether the customer class is being passed into the method correctly, (i.e. i think line 45 should be this.customer)

I think you could try updating your customer in your Statistic after every updateStats and/or incrementWaitTime to make sure that the current customer is passed in correctly :) personally i think customer could also be included in your Statistic constructor

I think you could try updating your customer in your Statistic after every updateStats and/or incrementWaitTime to make sure that the current customer is passed in correctly :) personally i think Customer could also be included in your Statistic constructor

Thank you all for the response! I solved this by calculating the average in the toString() instead of in the incrementWaitTime()


Can solve the problem of menu loss after game switch?

What do you mean with "after game switch"?

Enter the main interface of the game, switch to the desktop, and then switch to the game does not show the menu

bandicam 2019-11-17 16-10-41-754.zip

“比赛后切换”是什么意思？您正在玩局域网游戏，游戏完成后您看不到按钮吗？

I sent a video. Check it out

Doesn't happen for me, can you send me your ddraw.ini?

ddraw.zip

Maybe it's my problem

After many tests, the configuration should be correct, perhaps because of the way it was read

One problem (menu buttons) was caused by bad settings, you need to make sure you always have the right settings for RA2+YR:
noactivateapp=true
handlemouse=false
The other problem was caused by devmode=true, I made a fix for it (check ddraw.zip) below
ddraw.zip

ok

A minor problem that is not part of the program itself.zip

Yeah I know about this, someone told me 1 year ago. I don't know why it happens yet

Because the system will automatically scale up the game window

You can try this function
SetProcessDPIAware();

using that already, all scaling is disabled. But somehow some parts still scale, no idea why

Whether the component can be repositioned？

The game is doing that, I don't how it works and from where it takes the X Y coords


Preperation for L2 -> L1

Description
Part of #381, performing some much needed cleanup before handling logic as seen in #382
Checklist:

[ ] I have reviewed my diff in github, line by line.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to the issue(s) that it resolves.
[ ] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[ ] The branch has been merged or rebased against the head of its merge target.
[ ] I'm happy for the PR to be merged at the reviewer's next convenience.

LGTM


Make Jetty servers tunable

Fixes #796  #314
Adds an extension to let people configure their Jetty Server

Interesting, I'll have a look in the weekend.

I did as few changes as I could.
To go further, one could make the JettyServerFactory more generic: configure the connectors and so forth.
I would require passing more arguments (port, address, ssl...)

@gquintana Looks good to me, trying to get a hold of the elusive @perwendel so he can OK this.

I'll check this soon.

Did a quick review and it looks good. I'll do a more thorough review soon and then merge.

Good stuff!!!
:+1:


Unable to get it working with Kotlin

Im using kotlin and have been following the guide in the readme.
Problem 1
I came across the section below in the readme and i cannot get it to work.
class BookCell(item: Book) : SimpleCell<Book>(item) {
  override fun getLayoutRes(): Int {
    return R.layout.cell_book
  }

  override fun onBindViewHolder(holder: SimpleViewHolder, position: Int, context: Context, payload: Any) {
    holder.textView.text = item.title
  }
}

Android Studio does not recognize textView in this line:
 holder.textView.text = item.title
I did create the layout file and have a textView with the matching Id so im not sure whats going on.
I was under the impression that maybe you were doing some sort of compile time generation to generate the holder to be used based off of the layout file, but that cant be because com.jaychang.srv.kae.SimpleCell uses SimpleViewHolder explicitly which only extends com.jaychang.srv.SimpleViewHolder.
Problem 2
Cant create list of SimpleCell type in kotlin that is shown in the Multiple Types section of the readme.
List<Book> books = DataUtils.getBooks();
List<Ad> ads = DataUtils.getAds();
List<SimpleCell> cells = new ArrayList<>();

My version, In Kotlin
val books:MutableList<Book> = DataUtils.getBooks();
val ads:MutableList<Ad> = DataUtils.getAds();
val cells:MutableList<SimpleCell> = mutableListOf()

Android Studio is complaining about SimpleCell in the list declaration ( MutableList<SimpleCell> ) stating that I must add the Type argument.
One type argument expected for class SimpleCell<T>
I am very confused and would greatly appreciate it if you could provide a more detailed guide for using this library with kotlin and perhaps several kotlin example activities in the source.
I suppose for the time being i can write this in java but that also means other areas of my app that are already in kotlin will have to be converted back to java, which is a bummer. :(

Problem 1:
Have you added kotlin android extension plugin?
Problem 2:
SimpleCell<T> is a parameterized type, so you should write val cells:MutableList<SimpleCel<*>> = mutableListOf()

@jaychang0917, Yes i am using the kotlin android extension plugin. I even tried cleaning and building to make sure but no dice.
Correct me if Im wrong but doesn't that plugin only work when referencing views directly?
like below:
textView.text = item.title

The example show this though which I haven't seen work like this anywhere else:
holder.textView.text = item.title

Perhaps I need to just remove holder? Wouldn't that cause the holder pattern to break though?


findPromotions: ignore users not in retrieved list

Fixes #16
It looks like my suspicions in that bug report may have been correct. Before the fix, my test gave:
  1) Checkers
       findPromotions
         ignores users not in retrieved list:
     TypeError: Cannot read property 'role' of undefined
      at /Users/jwilhelm/Documents/workspace/godaddy/orglinter/src/lib/checkers.js:2:1624
      at Array.filter (<anonymous>)
      at Object.findPromotions (src/lib/checkers.js:2:1452)
      at Context.<anonymous> (test/checkers.spec.js:56:31)
      at processImmediate (node:internal/timers:463:21)

Should be all good now!

✅ , but you should document what each step does and why it's a no-op if the user doesn't exist here.

Created #20 to cover this. And of course, contributions are welcome. 😉


docs: add pmc guide doc

Signed-off-by: Tiexin Guo<EMAIL_ADDRESS>@daniel-hutao @steinliber @aFlyBird0 @KeHaohaoke
I have created a draft of the PMC guide.
Please review.
Feel free to add more details, especially on the "standards" part.

I've reviewed it and send the comments through IM.

Updated according to Daniel's input. Merging now.


Again, on fixing mobile usability issues

At 4:05pm on 3/22/2015, I sent my 2nd e-mail comment on fixing mobile usability issues to
https://github.com/google/WebFundamentals/issues/1173
only to have it disappear into cyberspace because issue #1173 was summarily closed about 2:00pm.
Given that today is a Sunday, it never occurred to me that we would only be allowed about 6 hours for discussion, or I would have responded sooner (anything rather than have to open my own issue! ;-).
Because I do not feel the issues I have already raised about designing for the content -- to quote the guide again:
"Content is the most important aspect of any site. So let’s
design for the content and not let the design dictate the
content."

-- have been adequately addressed, I thought I'd try raising them one more time here.
IMO, designing for the content takes precedence over "cater[ing] for users across all form factors."
And for me, this isn't simply a matter of style: it's about my ability to create high-quality, scholarly content, where website design has a didactic function which apparently places it at odds with "mobile-friendly" websites, as determined by Google Search.
That is the point I was trying to make earlier, with the response to PaulKinlan I was locked out from posting to
https://github.com/google/WebFundamentals/issues/1173#issuecomment-84682733
this afternoon, so am posting again now:

On 3/22/2015 12:26 PM, Paul Kinlan wrote:

this is the problem, the lack of understanding of why
it is important to cater for users across all form factors.
You are forcing users to zoom in on your content on a
mobile device.  Google search has always been about
giving users the best result at the best time, and if
users can't easily read your content, it is not the best
result.

Just as I thought. Google Search is now evaluating content based on whether or not users can "easily read" it.
But this is not the goal -- nor should it be -- of publishing postdoctoral research.
Moreover, readability standards vary for different audiences, as I have documented here:
http://she-philosopher.org/home/design_2W1.html
So on what grounds does Google presume to decide what I -- a person, not a statistic -- will find readable?
... What trade-offs I am willing to make at a particular point in time -- and those trade-offs will vary a lot depending on ever-changing circumstance and context -- in order to access educational content that I believe might be of value to me?

Un-happy users means less time on site,
less click's through to other content
and less chance they will convert
(if you take payments).

Again, I fail to see how it is Google Search's mission to predetermine whether or not my website will make visitors "happy" enough to stick around and read my content.
As bobgasink argued, that negotiation should not be mediated by Google, but should be worked out directly between the visitors and the website developer(s).
Instead, Google Search is using its near monopoly on search to push a business model that's proven profitable for Google, but is irrelevant to scholarly sites like mine, which will not accept advertising.

Just to reiterate, if you don't
want to make your content work well
on mobile, that is perfectly fine.

I didn't say that.
What I said was I don't want Google Search determining how I should or should not design content that it hasn't even indexed and doesn't understand.
I get that
"Google search has always been about giving users the best
result at the best time"

as long as advertising revenues drive search results and rankings.
But it is simply not true that Google gives users the best "content" available on the Web in response to every query it receives.
In fact, the new design standards require me to dumb down my content for some statistical mass of users who are probably not my target audience to begin with.
And when I won't do this, Google Search is going to bury my content and warn off potential visitors who may well be in my target audience, but who are intimidated enough by technology and/or Google's imprimatur that they worry my website is going to somehow harm their phones, or isn't safe to visit.
If you're truly concerned about giving users "the best result at the best time," how about giving them meaningful information, such as:
This site will require you to pan around and zoom in order to
read its content on your mobile phone.

?
In other words, tell them what the technical issues truly are, and let them make up their own minds about what kind of content they value, and how happy it makes them.
Deborah
I probably should state for the record that I will not be able to engage anyone further on this issue until late tomorrow (Monday).
And if such a leisurely style of deliberation isn't permitted at GitHub, so be it. I expect I've made my point by now.

Sorry, this isn't a discussion forum to decide on whether you should go mobile or not.  This is an Issue tracker to deal with issues in the guidance of the Web Fundamental project that helps you once you've made that decision.
With regards to your specific issues, I subscribe to the Marshall McLuhan thought in "The Medium Is the Massage."[sic] which points towards the content, the method of delivery of that content and how it is consumed to be critical.  In this case, by not optimizing for the medium in which the user reads your content then you are actively insulting them and saying that their needs are not as important as yours.

In fact, the new design standards require me to dumb down my content for some statistical mass of users who are probably not my target audience to begin with.

Again your are demonstrating your ignorance of the medium, the user and building for the web.

In other words, tell them what the technical issues truly are, and let them make up their own minds about what kind of content they value, and how happy it makes them.

We have done this in the recent past and feedback was that it should also be considered a ranking factor.


HTTP proxy doesn't handle array of json documents as quer parameter

The /sql interface of the http proxy doesn't handle an array of json documents as query parameter.
A plain json/jsonb query parameter works, and an array of any other datatypes also works, but an array of json that does not.
Steps to reproduce
set CONNSTR env variable to any neon database url and run:
$ curl -s -d '{"query": "select ($1::jsonb[])", "params": [[{"foo": 1}]]}' -H "Neon-Connection-String: $CONNSTR" -H "Content-Type: application/sql" https://ep-tight-math-08339409.eu-central-1.aws.neon.tech/sql |jq
{
  "code": "22P02",
  "message": "db error: ERROR: malformed array literal: \"{{\"foo\":1}}\"\nDETAIL: Unexpected array element.\n\nCaused by:\n    ERROR: malformed array literal: \"{{\"foo\":1}}\"\n    DETAIL: Unexpected array element."
}

Expected result
No error. The query parameter is a single-element array with a json document, so the result should be the same as:
neondb=> select array['{"foo": 1}'];
      array
------------------
 {"{\"foo\": 1}"}
(1 row)

Logs, links
Reported by a user over slack.

The reason of this bug is that in PostgreSQL there is no direct casting from string to jsonb array (jsonb[]).
The provided example is incorrect in sense that there is no option to do select ($1::jsonb[]) for all possible arguments.
I am not sure if this problem is our responsibility to fix.

The reason of this bug is that in PostgreSQL there is no direct casting from string to jsonb array (jsonb[]).
The provided example is incorrect in sense that there is no option to do select ($1::jsonb[]) for all possible arguments.
I am not sure if this problem is our responsibility to fix.

There is a cast from string to all datatypes in PostgreQSL, including jsonb[]. SELECT $1::jsonb[] is perfectly valid. For example:
neondb=> prepare mypstmt as select $1::jsonb[];
PREPARE
neondb=> execute mypstmt ('{"{\"foo\": 1}"}');
      jsonb
------------------
 {"{\"foo\": 1}"}
(1 row)

The string has to be a correctly formatted string representation of jsonb[]. The problem arises if you pass the query parameter as plain JSON to the HTTP proxy. The conversion in the HTTP proxy from an array of json documents to text produces a string that PostgreSQL doesn't understand.
I think the fix needs to go somewhere in https://github.com/neondatabase/neon/blob/5158de70f392ea1ff7224414d8a90c60ce7a5d16/proxy/src/http/sql_over_http.rs#L95. Not sure where exactly...


Add ability to search within the organization to prune down information

Overview
With large orgs there's the potential for not being able to actually grab all the data. For example, we've seen some orgs with 15,000+ repositories. Thus it'd be performant and ideal to be able to additionally prune down the search in those cases, such that you can search for the things you want.
Acceptance Criteria

tested
documentation updated
configuration optional
allows for searching by topic, team, or repo name

I saw the old sdc had a team config file that let you list repos to include. Maybe adding a list of repos might be another good option in addition to search by topic, team, or repo name? (this could totally be another issue/feature ask)

Pull request has been merged to provide said functionality.