[BEAM-12792] Install pipeline dependencies to temporary venv

The change allows users to submit multiple pipelines to the same SDK container without dependency conflicts. Dependencies in --setup_only mode are still installed globally.
With this patch, the deployment cycle looks like this:

Worker pool is spawned (PID 1 in SDK container => worker pool ID = 1).
Flink starts a job and a worker gets spun up with ID 1-1.
The worker creates a temporary venv in /opt/apache/beam-venv/beam-venv-worker-1-1 and deploys the artifact with dependencies.
Processing happens ...
Everything is cleaned up and a new job can be submitted.

The venvs are bound to individual workers (or sets of workers if they have siblings) and are cleaned up as soon as they finish. This makes multiProcessExactlyOnce() obsolete, so it was removed. Additional care was taken to ensure a clean signal flow between individual components, so anything that would cause a premature os.Exit() or a SIGKILL to be sent was adjusted to allow for clean worker shutdown.
fixes: #21123

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

cc: @ryanthompson591 for initial pass.

Any progress here?

R: @tvalentyn

@ryanthompson591 @tvalentyn I updated the PR. The venvs are now using random names and are bound to the workers, which is the only way to make this safe.
I also fixed how workers are cleaned up. Previously, they were simply SIGKILL'ed by the worker pool Python executable, which prevented any kind of clean up and also caused zombie processes inside the containers. I think there are also still some cases where processes are not cleaned up properly and just keep running forever, but most of that should be fixed now. Processes that keep running forever happen particularly when I'm using a global CombineFn, which causes Flink to believe that the last remaining worker is still running even though it has long finished. When that happens, not even cancelling the job will send signals to the remaining workers. But that's another bug (I think I reported that before on the mailing list, but never got a response).
All of this needs some more testing, but it seems to be running fine on my Flink cluster at least.

@tvalentyn @ryanthompson591 All right. I think I have it a point where it's ready for a final review. It runs robustly on my 130 node Flink cluster, all processes are reliably and gracefully cleaned up, and I haven't seen any zombie processes.
(also pinging the guys from the OWNERs file, maybe someone has additional remarks: @herohde @aaltay @charlesccychen)

Current set of reviewers looks great. I do not have much to add. Thanks for adding me.
worker_pool_main changes - R: @y1chi could review.

I added one more change: If a worker exits with a non-zero exit code, the boot binary also exits with a non-zero code. That makes it easier to debug things like Python interpreter crashes, e.g., due to failures in a native extension.

I reverted the return code thing, because it turns out Flink likes to send SIGTERM also on successful completion, so it's of no use.

Any reviews?

Current set of reviewers looks great. I do not have much to add. Thanks for adding me.
worker_pool_main changes - R: @y1chi could review.

LGTM for worker_pool_main changes

Run Python Dataflow ValidatesContainer

@phoerious please don't squash reviewed and unreviewed code until the review has finalized, see: https://beam.apache.org/contribute/#make-the-reviewers-job-easier

Looks like Dataflow's IT tests on prior iteration failed with:
2022-03-04 18:49:15.451 PST
"2022/03/05 02:49:15 Found artifact: dataflow_python_sdk.tar "
Info
2022-03-04 18:49:15.451 PST
"2022/03/05 02:49:15 Installing setup packages ...  "
Info
2022-03-04 18:49:15.490 PST
"2022/03/05 02:49:15 Failed to install required packages: failed to install SDK: fork/exec /var/opt/google/beam-venv/beam-venv-worker-sdk0/bin/pip: permission denied " "

Jenkins logs: https://ci-beam.apache.org/job/beam_PostCommit_Py_ValCont_PR/227/ (although these don't contain the Dataflow job logs though)

Strange. Does Dataflow provision local file systems that prevent setting the +x flag on file?

Actually, can you point me to the correct logs? I cannot find the error you are referring to. Only seemingly unrelated errors.

Let's make sure the error is still reproducible with latest changes

Run Python Dataflow ValidatesContainer

Looks like it indeed still fails. Actually, Dataflow does do some configuration. This may have to do with how the 'semi-persistent' directory is mounted into the container. I think in Dataflow's case it is configured as additional docker volume.

Unrelated: is the PR description up to date?

I updated the description.

@tvalentyn What's the plan now? I can't really debug Google Dataflow on my own.

I'll take a look or find somebody who can help.

@tvalentyn Sorry for nagging, but any news?

@tvalentyn is currently OOO.
@kerrydc do you know if someone else could help?

I spent some time debugging this today and got this far:
Dataflow container pod for SDK container has the following mount (from container manifest):
"volumeMounts": [ {
        "mountPath": "/var/opt/google",
        "name": "persist"
      },

...
"volumes": [ {
      "hostPath": {
        "path": "/var/opt/google/dataflow"
      },
      "name": "persist"
    }

The above maps a persistent directory /var/opt/google/dataflow on the host VM into a directory /var/opt/google in the running containers. This directory is passed to sdk harness container in 	--semi_persist_dir=/var/opt/google param.
We can see this directory referenced in the errors:
"2022/04/08 20:40:15 Failed to install required packages: failed to install SDK: fork/exec /var/opt/google/beam-venv/beam-venv-worker-sdk-0-0/bin/pip: permission denied

I can reproduce this behavior if I manually SSH into a VM created by Dataflow, and manually start a container via:
docker run -it --entrypoint=/bin/bash -v /var/opt/google/dataflow:/var/opt/google apache/beam_python3.7_sdk
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# python -m venv /var/opt/google/env
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# /var/opt/google/env/bin/pip
bash: /var/opt/google/env/bin/pip: Permission denied

On the other hand:
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# python -m venv /var/opt/env
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# /var/opt/env/bin/pip

Usage:
  pip <command> [options]

Permissions on the files are identical:
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# ls -al /var/opt/env/bin/pip
-rwxr-xr-x 1 root root 228 Apr  8 21:29 /var/opt/env/bin/pip
root@beamapp-valentyn-04082037-04081337-w2xj-harness-zq0w:/# ls -al /var/opt/google/env/bin/pip
-rwxr-xr-x 1 root root 235 Apr  8 21:29 /var/opt/google/env/bin/pip

but for some reasons, when we create a venv in the mounted directory, the pip script cannot launch. I am not sure what is going on.

Here's a repro without Dataflow in the picture:
gcloud compute instances create  valentyn-cos2 --zone=us-central1-f --project=<my gcp project> --image-family cos-stable --image-project=cos-cloud   --restart-on-failure
gcloud compute  ssh valentyn-cos2 --zone=us-central1-f --project=<my gcp project>
docker run -it --entrypoint=/bin/bash -v /tmp:/var/opt/google python:3.7-bullseye

python -m venv /var/opt/google/env
root@018e7f3cac24:/# /var/opt/google/env/bin/pip
bash: /var/opt/google/env/bin/pip: Permission denied

As for what to do next... @phoerious if you are interested and have access to a GCP project, you could continue investigate what happens in https://github.com/apache/beam/pull/16658#issuecomment-1093407575.
Another avenue, is to exclude the DataflowRunner from the new behavior. I think  we should be able to cleanly detect the runner by analyzing pipeline options in https://github.com/apache/beam/blob/2d27f44f58112ca4a5689614a94592de4e28d476/sdks/python/container/boot.go#L138

Another possibility is to try using python -m pip install in place of pip install throughout. It may help as well.

Another possibility is to try using python -m pip install in place of pip install throughout. It may help as well.

I think this will work.

What are the next steps on this PR?

I'll change pip to python -m pip and we'll see if that satisfies the CI.

Sorry, I didn't have time to push the fixups. I will try to do so next week.

I rebased the branch and added a commit that replaces the direct pip calls with python -m pip. Let's see if that works.

Run Python Dataflow ValidatesContainer

Looks like the suite didn't trigger. let's try again

Run Python Dataflow ValidatesContainer

Triggered now: https://ci-beam.apache.org/job/beam_PostCommit_Py_ValCont_PR/236/

Looks like it still failed. Will need to investigate further what's happening.

Any idea yet what may be causing this?

Run Python Dataflow ValidatesContainer

Sorry for not responding here. @phoerious is there a way I can help for you to investigate errors independently?
I started the test suite again, and while waiting to get results I tried to run a pipeline on Datataflow with a custom container built with your changes.
I saw these errors now:

2022-09-15 19:05:47.271 PDT
Installing collected packages: apache-beam
2022-09-15 19:05:47.272 PDT
 Attempting uninstall: apache-beam
2022-09-15 19:05:47.282 PDT
 Found existing installation: apache-beam 2.39.0.dev0
2022-09-15 19:05:47.288 PDT
 Not uninstalling apache-beam at /usr/local/lib/python3.8/site-packages, outside environment /var/opt/google/beam-venv/beam-venv-worker-sdk-0-1
2022-09-15 19:05:47.291 PDT
 Can't uninstall 'apache-beam'. No files were found to uninstall.
2022-09-15 19:05:56.065 PDT
Successfully installed apache-beam-2.38.0
2022-09-15 19:05:56.224 PDT
Successfully installed apache-beam-2.38.0
2022-09-15 19:05:56.494 PDT
2022/09/16 02:05:56 Executing Python (worker sdk-0-1): python -m apache_beam.runners.worker.sdk_worker_main
2022-09-15 19:05:56.608 PDT
2022/09/16 02:05:56 Executing Python (worker sdk-0-0): python -m apache_beam.runners.worker.sdk_worker_main
2022-09-15 19:05:58.279 PDT
Traceback (most recent call last):
2022-09-15 19:05:58.279 PDT
 File "/usr/local/lib/python3.8/runpy.py", line 185, in _run_module_as_main
2022-09-15 19:05:58.279 PDT
 mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
2022-09-15 19:05:58.279 PDT
 File "/usr/local/lib/python3.8/runpy.py", line 111, in _get_module_details
2022-09-15 19:05:58.279 PDT
 __import__(pkg_name)
2022-09-15 19:05:58.279 PDT
 File "/var/opt/google/beam-venv/beam-venv-worker-sdk-0-1/lib/python3.8/site-packages/apache_beam/__init__.py", line 92, in <module>
2022-09-15 19:05:58.279 PDT
 from apache_beam import coders
2022-09-15 19:05:58.279 PDT
 File "/var/opt/google/beam-venv/beam-venv-worker-sdk-0-1/lib/python3.8/site-packages/apache_beam/coders/__init__.py", line 17, in <module>
2022-09-15 19:05:58.279 PDT
 from apache_beam.coders.coders import *
2022-09-15 19:05:58.279 PDT
 File "/var/opt/google/beam-venv/beam-venv-worker-sdk-0-1/lib/python3.8/site-packages/apache_beam/coders/coders.py", line 58, in <module>
2022-09-15 19:05:58.279 PDT
 from apache_beam.coders import coder_impl
2022-09-15 19:05:58.279 PDT
ImportError: /var/opt/google/beam-venv/beam-venv-worker-sdk-0-1/lib/python3.8/site-packages/apache_beam/coders/coder_impl.cpython-38-x86_64-linux-gnu.so: failed to map segment from shared object

pip tried to install an SDK version that was staged with the piepeline, however container already had a .dev version installed. however uninstalling this version failed, possiby because it was in the global environment

Filed https://github.com/apache/beam/issues/19241 to make debugging easier

Some searching for the current error points to https://stackoverflow.com/questions/13502156/what-are-possible-causes-of-failed-to-map-segment-from-shared-object-operation , which suggests a possible permission issue.

This echoes the previous error we tried to solve.

Coming back to https://github.com/apache/beam/pull/16658#issuecomment-1093407575 , if I insert sudo mount /tmp -o remount,exec, when I first create the VM, the original permission denied problem also disappears.

Ok, I think I understand the nature of the problem. The virtual environments created in this PR will live in the semi-persistent directory (passed to boot.go  via semi_persist_dir flag). On Dataflow workers, the semi_persist_dir is a volume mounted into the SDK container from the host VM. The corresponding directory on the host VM lives in the "noexec" partition.
This causes permission issues within docker containers when we are trying to launch executables from semi_persist_dir.
I'll discuss this with Dataflow worker infrastructure maintainers. @phoerious there is no action necessary for you at this time.

Looked a bit further, semi_persist_dir on dataflow VMs is backed by /var, which is typically used for various application data, transient and temporary files.
@phoerious is it important in any way for your execution on Flink to create the venvs in the semi_persist_dir, as opposed to, say, /opt/beam-venv/... ? I think the latter should just work.

Also looks like semi_persist_dir unless supplied by runner, is defaulted to /tmp , which may have some undesired consequences for long-running pipelines if /tmp gets cleaned up

Thanks. I think the main reason to put it in semi persistent dit was that the Beam user has write access to it.

Thanks. I think the main reason to put it in semi persistent dir was that the Beam user has write access to it.

Ok. Can we make this change only for the workerPool == true case so that it doesn't have to wait on changes to Dataflow internals? Would that address the main motivation of this PR?

I will have to check.

Thank you. much appreciated. This would also reduce the surface area in case something goes wrong.

I rebased the branch, moved the venv to /opt/apache/beam-venv and added a check for *workerPool == true. This needs some more testing on my end, but I'm pushing it here already to see if it satisfies the CI.

Ah, stop! *workerPool is only true for the initial worker pool spawn, but not for the individual workers, which need the venv, so I had to revert that change. But perhaps moving the venv to /opt already does the job.

Run Python Dataflow ValidatesContainer

Tests passed.
I think this PR would benefit from another pair of eyes and with a focus on go readability.
@damccorm or @lostluck would you be able to TAL please? Thanks!

@lostluck Ready for re-review.

@tvalentyn ping. Can you run the Dataflow tests again and merge this? I think it's time. ;-)

Run Python Dataflow ValidatesContainer

Done.

tests passed: https://ci-beam.apache.org/job/beam_PostCommit_Py_ValCont_PR/255/

Merged. Thanks for your perseverance, @phoerious .

Looks like we have users that were affected by these changes. Currently saw couple of cases, both with users who provide custom containers, patched with an entrypoint from Beam.

If base image doesn't have python3-venv, environment creation fails. We could fall-back on single env in this case.
(Likely but not confirmed) see: https://github.com/apache/beam/issues/25085.

Still thinking how to respond and keeping an eye on other issues. An opt-in / opt-out capability via envrionment variable is another option.

We're also affected by this on Dataflow when upgrading our Python container image from copying in Apache Beam 2.43 to now 2.46. Weirdly, python3-venv is installed but still seeing an infinite loop with
Failed to initialize Python venv.

until the Dataflow job times out.

Given you use  ubuntu, I wonder if this  may be due to python command missing, since  I believe Ubuntu comes with python3, not python, and Beam assumes python. Filed https://github.com/apache/beam/issues/26958

Thanks @tvalentyn! Did both now (setting RUN_PYTHON_SDK_IN_DEFAULT_ENVIRONMENT in 2.48, and added python-is-python3 just to be safe) and got working Dataflow jobs again.


lack of education related data

all of the data thus far is just fake data generated from data generation libraries from sklearn. but i think its much more relevant to have data sets that are relevant to PER topics. This means like, a column shouldnt be feature3 but perhaps HSGPA or fci_prescore. then there can be discussions of the analysis of this data, like, i have no idea what it means that feature3 correlates to feature4, but if HSGPA correlates to fci_prescore we can think of some hypotheses as to why this is true.

Closed by 0e25eef


[tracking] Activate pseudo zext.[b|h] decoding

The tracer currently does not decode the pseudo instruction.
Use it once it is supported by more tools. Actually not quite which, but it was recently mentioned in https://github.com/llvm/llvm-project/commit/249d7de1190f50178181d2477aa661cd252e294c

I just noted that more recent development versions of the tools we use (e.g. the Spike version for @GregAC 's cosim framework) as well as GCC v.10.2.0 (see https://github.com/riscv-collab/riscv-gcc/tree/riscv-gcc-10.2.0-rvb) and Binutils (https://github.com/riscv-collab/riscv-binutils-gdb) needed for Bitmanip support zext.h (zext.b is not part of Bitmanip v.1.0.0). So we could change our tracer to output zext.h, WDYT? @luismarques do you maybe know what the status in LLVM is on this?

@luismarques do you maybe know what the status in LLVM is on this?

Both the current toolchain and the under evaluation one (based on LLVM 13) support those two instructions (with the appropriate command-line options). I did some quick testing and the encodings didn't seem to have changed. I can double-check that against the specs, if needed.

Thanks for your feedback @luismarques ! This sounds great, I suggest that once we provide both an LLVM and GCC toolchain that support these pseudo-instructions, we make the tracer to output them. I think the encoding is still the same, no need to check.


Mitigate problem with delay undefined for d3 chart

Motivation https://github.com/angularjs-nvd3-directives/angularjs-nvd3-directives/issues/210
D3 Transitions (contain delay) are a subset of all selections
API https://github.com/mbostock/d3/wiki/Transitions

@fxchen, closing, please reopen when you have a working patch with unit tests. Thanks.

Hey this does not have a unit test because this qualifier was not mean to be used in the way you have used it.
As I mentioned in my commit message: "D3 Transitions (contain delay) are a subset of all selections"
A unit test would mean testing d3 itself, beyond the scope of this pull request.

The mitigation I put in simply checks if the chart object is a transition (which has the api for delay) versus a selection (which is the original set of sequential calls)


The extension button is missing

Hello.
The extension button in the txt2img tab is missing.
UPD. Sorry, I was careless and didn't read in advance that this was an extension for the Forge.

I'm on webui-forge and the button is still missing

never mind i launched it today and it is now here

I'm using Forge, and it's still missing. Not sure when it went missing, only noticed it today. Its still active in the extensions list, but isn't showing up in txt2img.


0.3.0

need to include compiled module and typings to use with npm install (at least in typescript). otherwise when running tsc in a project including this module, it can't find what it needs.

The compiled code and typings are included in the npm version. There's no need to publish this to GitHub too (and is actually not recommended).

got it. it wasn't working right when i ran a fresh npm install (couldn't find types in lib) and then i wanted to install your 0.3.0 version and couldn't do so through npm.
trying to make abi work.

getABI is now working pretty well for functions and events. I think we need argument names in there (if that's possible), at least for events, to be able to use this get event logs with web3. Need to add mappings and variables and ABI should be fairly complete.


Double Tap Zoom Position Inaccurate

When you double tap, somply the zoomed in position is wrong which is really annoying. Anothet thing is that the scroll within the zoomed content is not smooth.

has optimized the position of double-click to enlarge at 0.5.0


Autorest Regen Preview to 3.0.0-alpha.20230615.15 by Chun Yu from refs/pull/3479/head

Triggered from https://github.com/Azure/autorest.csharp/pull/3479

API change check
API changes are not detected in this pull request.


The model does not perform well

Hello author, thank you very much for your work.When I run your code, after using the wadi data set in your paper and the parameters you required, the F accuracy is particularly low, how can I solve it

Thanks for your interest.
Based on the previous issues, one major reason is the preprocessing, which you could access via https://github.com/d-ailin/GDN/tree/main/scripts. You could also see some previous issues such as #52 for more details.

Thank you for your answer.
The A2 version of my data set is used. After I downloaded the A1 version, I found that there was no marked anomaly in the WADI_attackdata.csv file. If possible, you can send a copy of your data set to the<EMAIL_ADDRESS>

Thank you for your answer.
The A2 version of my data set is used. After I downloaded the A1 version, I found that there was no marked anomaly in the WADI_attackdata.csv file. If possible, you can send a copy of your data set to the mailbox<EMAIL_ADDRESS>


Cursor at wrong location in web-editor in examples section

In the Examples section (but not the reference section) of the p5 website, when you click in the web-editor, the cursor appears in the wrong location relative to your click.
The problem seems to be from CSS styling of the ace_content class:
.ace_content {
padding: 0 .5em!important;
}
this bumps the text over by about one character and if this is disabled, the cursor appears at the location you click as opposed to a character off.
Thanks!

thank you @jesse-harding this seems to have fixed the problem!


drop alpine edge repos from builder since 3.2 is official

Alpine 3.2 includes go 1.4.2, which satisfies build requirements.
Therefore we do not need testing repos.
This has the side effect of building the latest version of caddy.

https://circleci.com/gh/jumanjihouse/docker-caddy/16 is clean
:ship:


Fixed Missing Classes + Dranei Bug + Modularized Remove Racial Function

1. Added Missing Classes

Shaman, Druid, and Warrior now properly receive Arcane Torrent racials (Blood Elf)
Warlock, Druid, Rogue now properly receive the appropriate Heroic Presence, Gift of Naaru, and Shadow Resistance racials (Dranei)
Druid, Paladin, Priest now properly receive the appropriate Command and Blood Fury racials (Orc)

Detailed Explanation: Non-native-to-race classes did not have a conditional to receive racials with variants. For eg, a Blood Elf paladin that is trying to switch to the Orc racial would not receive Blood Fury because: 1. the target race (Orc) did not natively support the class (Paladin) and 2. certain racials had multiple variants (Blood Fury has a variant that increases AP, increases SP, or increases both, and the one learned depends on the class).
2. Fixed Misaligned Dranei Racial (Shaman vs Warrior)

Shamans now properly receive the spellpower version of Gift of the Naaru and the Shaman version of Shadow Resistance
Warriors now properly receive the attackpower version of Gift of the Naaru and the Warrior version of Shadow Resistance

Detailed Explanation: Previously, warriors did not receive Gift of the Naaru or Shadow Resistance at all, and Shamans received the warrior's version of these two spells. These have now been corrected.
3. Functionalized Racial Removal

added all the racial unlearn scripts into 1 function that is repeatedly called, rather than having it hardcoded 10 times

Hello, the pull request cannot pass the tests, because the repository is out of date. If I update it, do you know how to update your branch later to test your pull request? Confirm me, to make the change inside it, and then we test your contribution.

Yes, I can update my own branch w/ the new changes and make a new PR!

I'll try to update it tonight and I'll notify you.

If this pull request passes the tests, I'll make the margin for it, and then maybe, it will have to move its branch, to make it compatible. With that, we will be able to pass the tests, and perform the test to incorporate your code, in case it solves the problem. https://github.com/azerothcore/mod-racial-trait-swap/pull/15

I did not make modifications to the script, that is supposed to be done by you. I only update the repository, so that it adapts to the new way in which the modules have today and that it is compatible with the latest version of the emulator.

Done, you just have to update your branch, and we'll run the tests again, that should be more than enough. And then, we would carry out the tests to see that your changes help to improve the problem you mention.


React JS mobile version

Hi @kyuwoo-choi
Summary
I'd like to use this library in a React JS app on a mobile device. Is this possible?

@bernardbaker
Thank you for your question.
tui-image-editor supports mobile. (Mobile example page)

@bernardbaker
Thank you for your question.
tui-image-editor supports mobile. (Mobile example page)

@lja1018 but how do I implement it? I couldn't find any instructions.

@bernardbaker
I'm sorry for the late reply.
I think you can use React Wrapper.

@lja1018 where is React Wrapper. The link goes to the source code.

@bernardbaker You can see the README file when you click the link above.
Please check out this section again.


radius +/-

react-native-expo-geofence
use this package for radius capabilities

allow user to choose radius size using picker


Improving regex search in finding MSVC arch and vcvarsall.bat

Regex search in hunter_setup_msvc_arch.cmake and hunter_setup_msvc_vcvarsall.cmake improved

Something wrong with regex (Log https://travis-ci.org/ruslo/hunter/jobs/95553382):
Run test
  generator: Visual Studio 8 2005
  expected arch: x86
[hunter ** INTERNAL **] Can't detect generator arch: Visual Studio 8 2005

Just for your information here is instruction of easy testing: https://github.com/ruslo/hunter/wiki/dev.hunter.root#jenkinspy

In general I'm okay with this change but must to note that "^Visual Studio [0-9]+ [0-9]+ (Win64|ARM|)" is not the same as previous code. E.g. it will pass test even if CMAKE_GENERATOR will be set to some wrongly value like Visual Studio<PHONE_NUMBER>912 Win64.

Also here is the code from qt scheme:
  set(env_cmd "@HUNTER_MSVC_VCVARSALL@" "@HUNTER_MSVC_ARCH@")

  # Find the year of Visual Studio
  string(REPLACE " " ";" msvc_year "${CMAKE_GENERATOR}")
  list(GET msvc_year 3 msvc_year)

  hunter_status_debug("CMake generator: ${CMAKE_GENERATOR}")
  hunter_status_debug("Year: ${msvc_year}")

  string(COMPARE EQUAL "${msvc_year}" "" is_empty)
  if(is_empty)
    hunter_internal_error("Can't detect error of Visual Studio generator")
  endif()

  hunter_status_debug("Environment command: ${env_cmd}")

so this function also can set HUNTER_MSVC_YEAR variable.
Just an idea for further improvement.

Just for your information this version fails too:
Run test
  generator: Visual Studio 8 2005
  expected arch: x86
CMake Error at CMakeLists.txt:19 (message):
  Syntax error in cmake code at
    /Users/travis/build/ruslo/hunter/tests/hunter_setup_msvc/CMakeLists.txt:19
  when parsing string
      expected version: ${expected version}
  syntax error, unexpected cal_SYMBOL, expecting } (39)

Ohh thats the problem of the test changes I made.  But rather than running tests on local its faster to run tests on travis. My local machine is very slow and if I run these tests on background it becomes slower. Sorry for the inconvenience.

Related fixes https://github.com/ruslo/hunter/compare/e83cc0d3b6...20af3c1139


o11s Larboard/Starboard IDs are incorrect.

The correct IDs seem to be;
Starboard 1: 3262
Starboard 2: 3263
Larboard 1: 3264
Larboard 2: 3265

Thanks so much.  I think I did the right thing in the timeline, and messed up a few triggers.  Too much staring at ability ids today, whoops.  /o\


KinematichBody with KollisionShape (sphere shape or capsule shape, or ray shape) stuck.

Ray shape get stuck in any of the cases, if in the beginning it can a little move, but then got stuck and nothing more can be done at all, even the jump is not happening!
The capsule shape and sphere shape may for a long time moved, and it seems that there are no problems and everything seems to work fine.
BUT! this is not true! At some point, going on with them the same as with the ray shape it just stuck, and never come move.
This effect is very often occur when the grid moves along the map surface, it is possible that this is happening at the moment when shape reaches the junction point between the tiles of static bodies of grid map.
By the way a lot of problems also occur when sphere shape or capsule shape, touch the walls of which have a boss or pimple, and then it stuck as a result, but sometimes from the bulge, you can retreat, and again move freely.

I'm not 100% sure, but sounds like you forgot to wake up the "rigidbody"  (that's probably what you're using according to your FB post, since kinematicbody doesn't have character mode)  with set_sleeping(false) if rigidbody goes idle and freezes.

Ouch! I bring my apologies for the confusion!
I will remove the error from the topic ...
You're right, I'm just confused myself, kinematic body has no modes, (but at the moment when I was spending collation, for some reason, I decided that there are) and look at the fields in the "Inspector", I saw the word "character", I just looked there hoping to find out mode, but pulled out the word "haraktel" from the context of not paying attention to the rest ...
But still, a problem exists in effect ...

ray shape is not designed to be used with kinematicbody, use segmentshape instead

ray shape is for rigidbodies, it just pushes away in that direction but nothing else

What is a segment shape?
I have been unable to find anything similar?
and even if the ray shape, does not provide as work as I expected, what still from the sphere and the capsule? they too have this problem but it is hidden therein deeper?

oh sorry, I think I understand what's going on..
and yeah.
Ray shape is only meant as an add-on to other shapes. It pushes stuff away, but does not work on KinematicBody or by itself.

you could try a thin capsule shape instead

as I have said above, the problem also is that the capsule, as well as the scope, broken just like a ray, but it's a little harder to catch, and there is abruptly as diarrhea ... =))

OlexiyKravchuk, everything besides ray and plane works fine, you really have to provide example projects if you want your issues to be confirmed and resolved faster. I don't see anything wrong with sphere and capsule shapes.

Seems more like a general support issue than a bug, so archiving.


RFC Admin interface bootstrap template

Problem
Currently our admin interfaces is constrained in space (e.g. tables gets squeeze and there's not much real estate), and design is not particularly nice.
Proposal

Change base templates for all pages below /admin/ that uses Flask-Admin to a standard admin bootstrap theme.
Here are examples of free templates:

http://almsaeedstudio.com
http://www.blacktie.co/2014/07/dashgum-free-dashboard/
http://www.egrappler.com/templatevamp-free-twitter-bootstrap-admin-template/
http://startbootstrap.com/template-overviews/sb-admin-2/

Alternatively we could build something ourselves and model it over something like:
http://demo.neontheme.com/dashboard/main-3/

http://demo.neontheme.com/dashboard/main-3/

:+1:

Neon is unfortunately not free, but in my opinion the one that looks the best.

Seems like http://almsaeedstudio.com/AdminLTE/index.html might be the best open source version we can get.
/cc @jmartinm @jalavik Any opinions (re. deposit stats/holding pen)?

@lnielsen Yeah, looks decent. So the idea is to have this dashboard style to navigate across all admin pages including curation tools such as bibedit/multiedit and Holding Pen?

In the first round I would just make all Flask-Admin pages into using this new layout. I.e. collection management, index management, user management, kb management, stats pages?, ....
I'm not sure where e.g. holding pen/bibedit fits best. Likely there are some admin tasks which a best to keep in normal site layout - e.g. also deposits etc. Probably you're the best person to say where holding pen would fit best.

Thanks @lnielsen , it looks promising. Right now all the Flask-Admin interfaces are table based to edit some models, what do you have in mind once we move to this theme would be the layout?
Is the idea to move to that /admin page all the functionalities we have currently in /youraccount/display to access all tools like @jalavik suggested?
I am not sure if we will get into conflicts if we try to embed inside of that admin interface things like the Holding Pen, BibEdit and so on as it seems to depends in a handful of 3rd party libraries.

The idea would be that it for admins only - i.e. youraccount should not go there since it's for end-users, and I you would want to change the interface for normal users. Ie it's basically most of below I imagine could go in the admin:

Moved to https://github.com/inveniosoftware/invenio-admin/issues/5


Remove Firefox & Add Brave

I recommend removing Firefox from "Browser Recommendation for all OS's", because of various security reasons and include 'Brave' as it's alternative. I have provided all the reasons below 👇 for this purpose.
Reason to remove Firefox 👉 No doubt, it’s privacy friendly, though it’s missing some important security features like ‘Site Isolation’, which means websites in Firefox can access each others’ data. From this vulnerability, users’ privacy is greatly compromised. Apart from this, it has a really immature sandboxing process, lacking win32k lockdown on Windows, and numerous sandbox escapes on Linux & Android. With other numerous exploit mitigations. It would be too long to explain all the security issues here. You can take a look at https://nihal247.github.io to know about all these vulnerabilities. Privacy can’t be achieved at all, if security is compromised. I think Firefox should be removed from this list, though not the Tor Browser, as it provides real anonymity and privacy for users. Well I can hear some of you, we recommend 'Hardened Firefox', but by modifying it, we are consistently increasing the fingerprint, making us unique over the internet and can be easily identified. This significantly worsens users' privacy and is problematic for many reasons.
Reasons to add Brave 👉 1. Brave doesn't writes your browsing and search history.
2. IP Address is not collected too.
3. Brave connects it's users to a Brave-run server for Safe Browsing feature (which doesn't keeps any logs), instead of connecting to Google.
4. Brave discourage the use of DRM (provided by Google) and disables it by default.
5. Protects against browser fingerprinting and even offers fingerprint randomization.
6. Has the missing security features of Firefox, helping in real privacy gain! due to it's Chromium base.
7. Even recommends users' to choose a private search engine like DuckDuckGo, in Private Windows and earlier on welcome page (before introducing it's own search engine 'Brave Search').
8. Data collected from Brave Rewards & Sync is still encrypted (although I don't recommend using both!).
9. Tells about disabling Telemetry on it's welcome window, unlike not telling about Telemetry in Firefox, unless we manually check in settings.
10. Automatically upgrades to HTTPS version of sites.
11. Accessible to Tor Network (though I recommend using the Tor Browser for this purpose!).
12. Blocks third party cookies by default.
13. Blocks Ads & Trackers by default.
14. Available on all major platforms (Windows, macOS, Linux, Android & iOS).
15. No personally-identifiable data is collected while automatically checking for update.
Sorry for making you read so much! I hope to get response, instead of being ignored!

I know you guys have to work a lot for replacing 'Firefox' as it's there in the code numerous times and is deeply integrated, but spreading it to the masses, is overwhelming, it reduces security, and privacy at the cost of security isn't any good! Apart from that 'Hardening Firefox' will only reduce your privacy and make you 'unique', over the sites you visit, means you could be easily identified. Morally, for this purpose we should remove Firefox!
Sorry, I know some of you're deep Firefox lovers!

I would love to hear your opinions, and let me know if I'm wrong somewhere, Thanks!

I wanted to write an article explaining why madaidan is wrong, but I remembered PTIO can't even recommend brave for some reasons. So I'm gonna go with: they're staying with firefox because there's no better alternative.

Why you think PTIO can't recommend Brave, I know some of you suspect it's business model and rewards system, but as other non-profit browsers mentioned by PTIO are financially struggling, it appears that Brave’s business model is securing this browser’s future and ability to continue to innovate its products. Apart from that, Madaidan is not wrong! He has given several security issues that actually exists, like 'Site Isolation'!

but I remembered PTIO can't even recommend brave for some reasons.

Can you provide the reasons pls

It's not about the business model, Brave maintainers requested for its removal. For me it just seems because they one that once they're here, there will be an eye on their project and they can't play with it as they want. Just read about its history and how many times they did some shitty stuff and got caught for it.

He has given several security issues that actually exists, like 'Site Isolation'!

Fission exists and I've been using it since like 4 months. It works like a charm and will be available for beta in the next release AFAIK. All these theoretical security measures did nothing when an exploit was there. Read Discussion from Firefox Engineers and from the whonix team here:
https://matrix.to/#/!anEyEXBYVSlveMBsbt:mozilla.org/$qIt3ueIv2k_-3KkblXQk-IZK02v8tkUdY5DKsW9oOhw?via=mozilla.org&via=matrix.org
https://app.element.io/#/room/!DAzdivXKbExPfeQEjo:mozilla.org/$PjXxc3-cWjQQS4_8gdIcJWoS6G06aQK7usjdjVWFHmI
https://forums.whonix.org/t/chromium-browser-for-kicksecure-discussions-not-whonix/10388/84

It's not about the business model, Brave maintainers requested for its removal. For me it just seems because they one that once they're here, there will be an eye on their project and they can't play with it as they want. Just read about its history and how many times they did some shady stuff and got caught for it.

This is not a proper way of understanding the privacy practices of a company!

Fission exists and I've been using it since like 4 months

It's good you're using Fission, but its not mature than Chromium's! This is available if you change the flag. Average users don't know how to do this. And this is just one of the security issues present. There are numerous more vulnerabilities present!

Apart from that, I assume you're using 'Hardened Firefox' (as default Firefox has no privacy gain!), so you're already less private! (unique fingerprint), what are your thoughts on this?

@Nihal247 first why not just give original madaiden article link? But for your claims i agree using firefox not only has no privacy gain but also is a harm to users privacy, when you reccomend firefox to somebody you shouldn't expect them to go into about:config page and mess with a lot settings that not only makes the firefox bad user experience even worse but will also make them extremely unique and a suspicious target for most sites (lets not forget the official stable firefox isn't even allow android users to go into that page probably because of your recommendations that broke thier browser experience and thier complaints about thier problems on fenix repo).
Mozilla themselves are not to be trusted too they have alot of telemetry and trackers that need firefox to be patched and configured through about:config to remove (even then you can't be sure there is no leak to mozilla services). All of this just to make yourself stand out amongst huge mass of chromium users (firefox market share is like less than 5 percent?) , and all of these aside even torbrowser isn't  that good against fingerprinting (you can try this on a proper test https://abrahamjuliot.github.io/creepjs/ ) or in other words no browser is immune to java script fingerprinting unless they disable java script ( imaging asking an average joe to disable java script and thier experience after they do what you said).
So in the end i reccomend to keep this issue open until we come to good conclusion i'm not a big fan of brave and definitely against thier strategies but they are a big team (acually very few of them work on security or privacy and most are developing thier advertising system) but i would say it's the best available option to recommend to average users when you reccomend fire fox most people will have a bad experience compared to chrome and they also have to mess alot with configs and settings just to change back to chrome after a few days. Brave is very acceptable compared to both chrome and firefox it's just works and dosen't need to be configured this is exactly what and average user needs, yes i know chromium fingerprint resistance is extremely weak compared to firefox yet if you've used the above test you would know fingerprinting can be much more complex than what you thought and tbh firefox will only ruins your privacy by standing out against chromium users.
Recommending users to install several addons is also not a good privacy and security practice brave has this covered by using https everywhere and adblocker the only extentions and average user will need.
Ofcourse we can also recommend ungoogled chromium and bromite to desktop and android users but not only they aren't maintained enough they can also be hard to use for a normal user.
At the end i remember a few guys going into brave github and trolling thier team with trash talks and hate speech instead of having a nice conversation about privacy concerns on brave that eventually lead to thier team asking to remove thier software from ptio.
This really need to be considered as using firefox doesn't improve privacy and breaks average users browsing experience, we should at least consider recommending a chromium browser like ugc (which is most private) in addition to firefox (maybe find a windows maintainer for it in the meantime?).

I totally agree @AadenA, and here you go for the original link 👉 https://madaidans-insecurities.github.io (sorry I didn't provided as the link wasn't remembered!). A 'Hardened Firefox' doesn't only makes us unique but also worsens user experience. We shouldn't judge anyone based on their history, who knows if they've improved? I have seen people who don't understand privacy and security and blindly recommend Privacytoolsio's Firefox tweaks, without the knowledge that this only makes the less private. I think we should at least remove the 'Firefox Tweaks' section as early as possible, as this is just making people stand out in the masses! And yeah I'll definitely keep this issue open till we arrive at a final conclusion!

Hey @Nihal247, I'm honestly not going to start talking about why some of your points are wrong or do not align with PT's view since they have been discussed in multiple issues a myriad of other times, you can look for some named Firefox, Brave and the about:config (this last one deals with fingerpriting) if you are interested in the technicalities of the why not. I am not part of the PT team but I can already asure you they are going to close this issue, so if you want to let it open and wait for that, that's okay, otherwise I would close it myself.

Hey @LongJohn-Silver, it would be better if you tell where am I wrong (because I just want to know!), otherwise just closing issues because of one's state of mind isn't anything which this website is all about! If I'm wrong tell me the reasons straightforward! I'm not gonna look what others don't see what I see. I just want the simple answer that how 'Hardened Firefox' with missing 'Security features' can be a privacy gain, whereas Brave's 'Security Features' with 'Fingerprint Randomization' isn't! Everyone just looks on a single thing, 'Brave's Rewards System and their Business Model', how the hell this can tell a company's actual privacy practices? this really can't be understood by me! This is just random cherry-picking from those who think 'Chromium-based browsers can't provide real privacy',  whereas a 'Tweaked Firefox' could, but actually with no real privacy gain, but only uniqueness!

It would be better if someone explains how a 'Hardened Firefox' can give real privacy, and not uniqueness!

@Nihal247 if you trully seek a private browser i recommend you to use ungoogled chromium, vanadium and bromite ( these are your options on a reasonably private os ) if you use windows just stick to edge as trying to achieve even a minimum amount of privacy is almost impossible in windows (ltsc can provide that but it compromises security and not everyone can get thier hands on it), i recommended to add brave just as an alternative besides firefox since it would be a better option for normal users (vanilla firefox dosen't really strike you as either a private or trustable browser just like brave) and don't forget there isn't a browser that can evade fingerprinting (try the link in my last comment) unless using distros like whonix or tails in disposable vm's on private and secure hosts like qubes. i'm certain this would not be considered since folks at ptio try to support and endorse firefox to save it from it's demise (especially because tor browser dependancy on firefox and possibility of google taking even more questionable action's when are left without any rivals) so i'm pretty much sure they would close this issue without considering it.

@AadenA, I've already used Ungoogled Chromium though I didn't liked it (because it's not well maintained and has no auto-updates). It's not suitable for a day-to-day use case. I personally neither use Firefox nor Edge. I have Brave as my primary browser (because of a good mixture of privacy & security). May I ask what browser you prefer (or specifically use)?

It's sad they just blindly recommend Firefox, without knowing it's actual reality!

It would be better if someone just explains how a 'Hardened Firefox' can give real privacy, and not uniqueness!

But I definitely want to know this answer!

@Nihal247 i have several devices with different setups for different needs but just to give you an idea: ugc and tor (linux), edge and chrome (windows), chrome, vanadium(android).

What on a Mac?

what about keep firefox and add brave?

No @katzeprior, keeping Firefox, with tweaks will only reduce the privacy of users!, we shall remove it. Think how many people would've followed the tweaks of Privacytoolsio's and have became unique, for this purpose we need to remove Firefox (as vanilla Firefox provides no privacy benefit but only security issues), We shall replace it by Brave.

Firefox is the last common-use browser that don't use Chromium's engine but it's own. If users want an out-of-the-box privacy browser they should just install LibreWolf.

Yes, we can remove Firefox and add Brave and LibreWolf (though LibreWolf's doesn't functions properly with all it's components!)

@Nihal247 When Chromium is the only one left and they change something you don't like you have no other option and they can do whatever they want without having to worry about losing users.

@Nihal247 I completely understand your need for this knowledge, it's just that it has already been discussed quite a few times and I don't have the time to explain everything, plus I'm not so smart as other people who have explained in other issues with a better technical background.
I'll say something that I think hasn't been said much on why it is better to recommend Firefox against any Chromium based browser, and it's the fact that except for Apple proprietary one, it's the only non-Chromium based browser on Earth, if we lose it, that's it, we're merciless against Google, so in my opinion it's a thousand times better to support them.

Yes @LongJohn-Silver, I understand the importance of having a non-proprietary & open-source rendering engine. But why are you taking that just not recommending Firefox on PTIO, will lead to it's demise? (even I don't want it's demise and that's why I recommend Tor) The ones who're loyal to Mozilla, will continue to use Firefox, irrespective of the real private & secure choice. I feel it will be useful for those, who are coming to this new privacy and security sphere and will help in to make them realize what's real privacy and security. I'm not forcing you or anyone to ditch Firefox for Brave, but to make you understand about 'fingerprint uniqueness' and to recommend the one which is a real private & secure choice!

I'll keep this issue opened till I don't get a strong reason telling using 'Tweaked Firefox' is private and doesn't makes us unique (or till it doesn't gets closed by maintainers!).

a strong reason telling using 'Tweaked Firefox' is private and doesn't makes us unique

You are unique no matter if you use vanilla firefox, twaked firefox or brave.
If you use AddOns like uB the most trackers/fingerprinter are blocked
If you use CB or RFP you fool naive scipts (no effective different to Brave IMHO)

You are unique no matter if you use vanilla firefox, twaked firefox or brave.

It depends on the configuration of browser, by using tweaked Firefox, we remain super unique, but using vanilla Firefox (hidden in Firefox crowd but it's smaller than Chromium's!, and also compromises security) or Brave (hidden in Chromium crowd) you're not unique!

If you use AddOns like uB the most trackers/fingerprinter are blocked

Using Firefox is unsecure, even if you resist fingerprinting and block scripts. Even using uBlock Origin can't prevent fingerprinting at all, till javascript is disabled. (Think asking an average user to disable JS, and imagine their experience!).

If you use CB or RFP you fool naive scipts (no effective different to Brave IMHO)

It doesn't fools, you can still be identified. Use this link 👉 https://brax.me/geo/ and see your Fingerprint remains the same after each browser restart. Brave provides the only solution to this through Fingerprint Randomization, which changes your fingerprint with every browser restart, and hence you can't be tracked by the websites.

i think brax.me is broken because my fingerprint is even different on a simple refresh.

Yes, I just checked for it now, and this was the same case!

Nevertheless, you can use any other correct fingerprint test also, and you'll find your fingerprint changes with every browser restart, when using Brave. But doesn't happens the same with Firefox or any other one.

using vanilla Firefox hidden in Firefox crowd or Brave hidden in the massive Chromium crowd you're not unique!

This is not how fingerprinting works! You can only hide yourself in a crowd if this is a predefined crowd where all are the same. This is not the case for vanilla firefox nor for chrom* (IP, Canvas, WebGL, devpixelratio, screen dimensions, screen orientation, timezone, ...). You are unique if you use vanilla firefox!

If you use AddOns like uB the most trackers/fingerprinter are blocked

Even using uBlock Origin can't prevent fingerprinting at all

the most

It doesn't fools, you can still be identified.

It fools naive scripts. Advanced script can still identify you, that correct. But it's the same for Brave.

Use this link point_right https://brax.me/geo/ and see that your Fingerprint remains the same after each browser restart. Brave provides the only solution to this through Fingerprint Randomization, which changes your fingerprint with every browser restart, and hence you can't be tracked by the websites.

Go to https://fingerprintjs.com/ restart Brave, see same ID. Delete everything (${HOME}/.cache/BraveSoftware and ${HOME}/.config/BraveSoftware), see same ID. Open private window with Tor, see same ID.

Nevertheless, you can use any other correct fingerprint test

There are no "correct fingerprinting tests"!

This is not how fingerprinting works! You can only hide yourself in a crowd if this is a predefined crowd where all are the same.

I already know it, just didn't went to detail, as my fingers have became lazy 😂

the most

Then why uBlock Origin on Brave didn't changed the unique ID?

Go to https://fingerprintjs.com/ restart Brave, see same ID. Delete everything (${HOME}/.cache/BraveSoftware and ${HOME}/.config/BraveSoftware), see same ID. Open private window with Tor, see same ID.

Well, do we know why fingerprint randomization doesn't works here?

EDIT: Do the same with firefox and RFP, see different IDs every time.

Yes, it's different to my surprise!

There are no "correct fingerprinting tests"!

well https://fingerprintjs.com/ seems very accurate, if it's not perfect!

i get the same id every time with fingerprintjs.com on firefox, what did i do wrong?

@katzeprior You need to 1. clear cookies and 2. use RFP or CB.

I'll keep this issue opened till I don't get a strong reason telling using 'Tweaked Firefox' is private and doesn't makes us unique

What an absolutely loaded BS question. Would you like it if I blew into Brave's issues tracker and stated "Brave is shit, prove me wrong", and then cherry pick out of context snippets.
You're the one claiming "tweaked FF isn't private and makes you more unique" - and you are wrong. How about YOU answer the question that YOU have brought up at least three times. You can't. And I'll tell you why: you are conflating all privacy measures with fingerprinting when they are orthogonal - and even in fingerprinting, when you do nothing, you have high entropy, you can hardly make it worse.
I've give you one example of a change in Firefox that does more for privacy than everything else Brave has done put together: combined with Firefox's network partitioning [1] (on for all by default since FF85) which does far more than any other browser by a country mile, if you change ETP to strict mode, this also partitions all web site data [2] to eTLD+1, along with smart blocking, heuristics and shims. Job done, now almost all current website tracking techniques are mitigated. No other browser can do this.
And that's just ONE change. I could name a HUNDRED other changes (no other browser lets you do tweak this much) that make Firefox more private and secure, without making fingerprintng entropy any worse.
[1] https://groups.google.com/g/mozilla.dev.platform/c/uDYrtq1Ne3A

HTTP cache, Image cache, Favicon cache, Connection pooling, StyleSheet cache, DNS, HTTP authentication, Alt-Svc, Speculative connections, Font cache, HSTS, OCSP, Intermediate CA cache, TLS client certificates, TLS session identifiers, Prefetch, Preconnect,  CORS-preflight cache

and you can add Websockets to that list in FF92
[2]

cookies, localStorage, sessionStorage, IDB, service worker cache, asm-cache, and more

You don't even know what Firefox does. Over half the items in your 15-bulletpoint Brave list, Firefox also does. The other half if fluff and/or lacks context. If you were genuine, and not coming in with a pre-defined biased mindset and agenda, you also would have been balanced and listed all the things Firefox does that Brave doesn't.

You are also being deliberately misleading on the security issues: your comments lack context. You cannot compare the security of two such complex beasts as a whole: security is a many layered thing. How about chrome (and I assume chromium when I say chrome) having EIGHT, yes EIGHT, zero-day exploits patched this year that were IN THE WILD. Chrome 93 just patched 27 security fixes. Twenty-fucking-seven - of which FIVE, yes FIVE, are the highest severity and USE AFTER FREE, yet again. How about 75% of chrome's severe security bugs coming from memory issues (use after free) due to C++. On the other hand, 10% of Firefox is now written in Rust, and AFAIK from last check, approx 0% in chromium (it's a rounding error). Every browser can do better, and you can look at things in isolation and say "that's cool, we should do that", but you can't really compare them wholesale like you did.
In reality, main stream browsers are already very secure. The security issues you are talking about are welcome, and it's not like Firefox is sitting on its ass - Fission is very complex, win32 lockdown is almost there, then there's RDD changes and numerous other improvements, including the backend. For the record, it took chrome six years to implement site isolation. Firefox started fission in earnest about two and a half years ago, so that's pretty impressive, seeing as they're already starting to ship it to beta

and all of these aside even torbrowser isn't that good against fingerprinting (you can try this on a proper test https://abrahamjuliot.github.io/creepjs/ )

As someone who works with fingerprinting, you haven't got a clue how any of this works. That link (and I collaborate with abraham quite a bit: he even uses some of my methods, and me his) actually proves that Brave doesn't hold up against advanced scripts - Tor Browser does. Do you even know what that test is doing?
And you have the audacity to just trash Tor Browser as inferior to Brave .. because you think randomizing is some sort of magic bullet, and you clearly have an agenda to make Brave look the best at everything. I can tell you for a fact that all of Brave's randomizing can be detected. Not to be confused with revealing real values, just that the randomizing does not fool everyone, and that fingerprints ultimately come down to lowered entropy. Brave has stated that their aim is to only fool naive scripts. Tor Browser on the other hand, aims to defeat any script.
You don't have a clue what you are talking about

@Nihal247 i never bought or will ever buy anything from apple so can't reccomend anything for thier platform.
BTW use this test for fingerprinting and see if your browsers can actually avoid fingerprinting :
https://abrahamjuliot.github.io/creepjs/


Diagram notation Craw's Foot is not saved

Description
I create a diagram and change the notation:

Then I save, close and open this diagram again.
Expected behavior: the Craw's Foot notation is selected.
Actual behavior: the IDEF1X notation is selected:

DBeaver Version
Version <IP_ADDRESS>406091028
Operating System
Windows 11
Database and driver
This is reproduced with different DBs and drivers.
Steps to reproduce
No response
Additional context
No response

Looks like there's a workaround: menu Window - Preferences - Editors - Diagram editor - Notation type - set "Craw's Foot". This notation will be applied to all newly opened diagrams.
I think this issue may be closed if this is the intended behavior and it's not going to be changed.


Use HttpHeaders#headerSet where appropriate

See https://github.com/spring-projects/spring-framework/issues/33823

https://github.com/spring-projects/spring-framework/blob/v6.1.15/spring-web/src/main/java/org/springframework/http/HttpHeaders.java#L1873-L1887
/**
 * Return a view of the headers as an entry {@code Set} of key-list pairs.
 * Both {@link Iterator#remove()} and {@link java.util.Map.Entry#setValue}
 * are supported and mutate the headers.
 * <p>This collection is guaranteed to contain one entry per header name
 * even if the backing structure stores multiple casing variants of names,
 * at the cost of first copying the names into a case-insensitive set for
 * filtering the iteration.
 * @return a {@code Set} view that iterates over all headers in a
 * case-insensitive manner
 * @since 6.1.15
 */
public Set<Entry<String, List<String>>> headerSet() {
	return new CaseInsensitiveEntrySet(this.headers);
}

So, Spring Cloud Gateway 4.1.6 (in Spring Cloud 2023.0.4) requires Spring 6.1.15, which is available in Spring Boot 3.2.12+ or 3.3.6+.


Add a build profile for JDK 16

Motivation:
Java 16 will come around eventually anyway, and this makes it easier for people to experiment with Early Access builds.
Modification:

Added Maven profiles for JDK 16 to relevant pom files.
Removed the --add-exports java.base/sun.security.x509=ALL-UNNAMED argument when running tests; we've not needed it since the Java11-as-baseline PR landed.

Result:
Netty now builds on JDK 16 pre-releases (provided they've not broken compatibility in some way).

@chrisvest will you do another PR for 4.1 ?

@normanmaurer Yeah, I'll do that.

@normanmaurer Why don't we have Java 15 in Netty CI?

@hyperxpro its on my to do list... Just talked with @chrisvest about this earlier today.

Alright. :D


Generate type definitions for 'list' functions

Support one of the following syntaxes:
var keys = storageAccount.listKeys() // uses the api version of the storageAccount resource (if possible)
var keys = storageAccount.listKeys('2020-01-01') // specific api version

or
var keys = listKeys(storageAccount)
var keys = listKeys(storageAccount, '2020-01-01')

I was having a think about what the implementation would look like for a syntax like account.listKeys(). That'll require a few changes to consume the work that @jorgecotillo did for namespaces, and if possible, I'd like to share logic with namespace function resolution.
Some things I noticed which I think may need to change to support this:

Functions are currently symbols rather than type symbols.
Namespaces are currently symbols rather than type symbols.

My thoughts for changes required to Bicep:

Convert functions & function overloads to being explicit types rather than symbols.
Add dictionary of 'member functions' to the ObjectTypeSymbol definition (similar to 'member properties').
Create a TypeSymbolValidationFlags flag which blocks assignment (for the namespace)
Convert NamespaceSymbol into a type symbol which extends NamedObjectType, and set the unnassignable type flag on it.
Move instance function selection logic from NameBinding to TypeAssignment
Add special logic to handle emission of member functions on a resource (e.g. myres.listKeys() -> [listKeys(<id expression)]

I'm not sure I understand why functions and overloads must be modeled as types.

I'm not sure I understand why functions and overloads must be modeled as types.

Function resolution will depend on the type of the parent, so the function resolution logic can't happen at name binding time (where it is today). This works for namespaces today because we have pre-existing mapping from name -> namespace.

I understand that we need to have object types that have functions and functions have return types, but functions themselves aren't types. It seems that after the name binding visitor is done, the type assignment visitor could add additional bindings for instance functions. (Technically the whole name binding logic could probably be moved into the type assignment visitor to make it deferred, but that's probably not required.)

Maybe I am not understanding something but in TypeAssignmentVisitor FunctionSymbols return a TypeSymbol (return type of the function), which I think makes sense because a function itself is not a type is a symbol that returns some type. Is the proposal to defer the lookup of functions to TypeAssignmentVisitor?

Maybe I am not understanding something but in TypeAssignmentVisitor FunctionSymbols return a TypeSymbol (return type of the function), which I think makes sense because a function itself is not a type is a symbol that returns some type. Is the proposal to defer the lookup of functions to TypeAssignmentVisitor?

Yup, exactly this.

Makes sense

This is done


Randomize expire

I have some requests whose reponses change not very often, so long expiry makes sense. but not to hit the cache all the same time would be nice to randomize the expire, say something between 3w to 4w.
I'm currently using urls_expire_after patterns.
some idea is to use tuple for the pattern value and request-cache would do randomization:
urls_expire_after = {
    '*.site_1.com': 30,
    'site_2.com/resource_1': (60 * 2, 60 * 4),
    'site_2.com/resource_2': (timedelta(weeks=4 * 3), timedelta(weeks=4 * 4))
    'site_2.com/static': -1,
}
session = CachedSession(urls_expire_after=urls_expire_after)

If I understand correctly, the main thing you want to avoid is refreshing several cached requests at the same time? I think that makes sense, but let's think through some other options before considering random expiration.
Are these requests sent immediately one after another, like this?
response_1 = session.get(url_1)
response_2 = session.get(url_2)
...
response_n = session.get(url_n)

If so, they could be sent in parallel from different threads.
Otherwise, the stale_while_revalidate option would accomplish close to the same thing. I made a small compromise there that I think would be useful in your case: instead of strictly following same behavior as the Cache-Control: stale-while-revalidate header (RFC 5861), I made the stale_while_revalidate keyword argument apply to all refresh requests, not just revalidation requests.
That means that if all those requests expire and are re-requested at the same time, CachedSession will first return the expired cached responses, then send requests to update the cache from a separate thread, so your main thread doesn't have to wait for the responses.
That's still only in the beta, and I'm not 100% sure yet if that's the best way to handle it. I was considering splitting that into two separate arguments like stale_while_revalidate and stale_while_refresh, since there are slightly different use cases for each, but I don't know if anyone actually needs that currently. Any thoughts on that?

I'll close this for now, but let me know if either of the options above work for you, or if you have any other thoughts on this.


Make mjml render in the browser.

parseHead() now gets the element attributes using dom.getAttributes() and passes them to the handler in the same way as mjmlElementParser does. I've updated the attributes and font tags to use the newly passed attributes object.
Helps with #274 & fixes #395

Looks good ! Does it work in both node & client side ?

I've only tested a single large MJML file but that works in both - we're only just starting to use MJML so don't have a whole lot of examples to test against.
Among the standard layout tags it uses each of the head tags: attributes, font, style and title.

Hello ! I tested your PR, and it looks good for the most part !
Only thing I can't get to work with jQuery is the mj-style / mj-title . For some reason we're filtering on child.type  const innerText = el.children.map(child => child.type === 'text' && child.data).join('') and it's undefined with jQuery.
Do you have any idea on how to achieve that ?

 So apparently I was lying when I said I was testing all 4 head components =/
I've committed a fix for the style and title. Feels like it might be time to make the dom.getChildren() method return a more normalised list of children for both Cheerio and jQuery. Unfortunately I'm a bit snowed under with work to do this right now.
For sanity, here's the MJML I used for testing both in node and from Chrome.
<mjml>
  <mj-head>
    <mj-title>Hello Kitty</mj-title>
    <mj-font name="'Source Sans Pro'" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" />
    <mj-attributes>
      <mj-all font-family="'Source Sans Pro'" />
      <mj-class name="element-text" font-size="16px" font-family="'Source Sans Pro'" />
      <mj-class name="element-header" font-size="20px" font-family="'Source Sans Pro'" />
      <mj-class name="green-button" font-size="15px" font-family="'Source Sans Pro'" background-color="#5db734" color="#FFFFFF" />
    </mj-attributes>
    <mj-style>
      .red-color {
        color: red;
      }
    </mj-style>
  </mj-head>
  <mj-body>
    <mj-container>
      <mj-section full-width="full-width" background-color="#FFFFFF">
        <mj-column>
          <mj-text mj-class="element-header" align="center">

We need to talk...

          </mj-text>
          <mj-image src="https://images.pexels.com/photos/8923/pexels-photo.jpg?w=940&h=650&auto=compress&cs=tinysrgb" />
        </mj-column>
      </mj-section>
      <mj-section>
        <mj-column>
          <mj-text mj-class="element-text">

Cats have been domesticated for around 4,000 years. While they were once valued for their hunting abilities, they are now valued for their companionship and loving behaviour.

While not well known, the collective nouns used for cats and kittens are a clowder of cats and a kindle of kittens.

Cats have 30 teeth (dogs have 42) and most of us know how sharp they are!

Our domestic cats are known as little cats. They differ from large cats such as lions and tigers because they are naturally active at night and can purr.

Cats are now the most popular pet in the UK and in the US.

          </mj-text>
        </mj-column>
      </mj-section>
    </mj-container>
  </mj-body>
</mjml>

hi @ianchadwick !
I would like to merge it this week ! Can you take a look at my comment and give me your thoughts about it ?
Thanks !


Remove model name entirely

Model name is currently ONLY for the log.
It seems unnecessary because we could use folder name instead or the path.
So maybe let's delete it altogether for simplicity.

Done in v0.5.3


Crowdsec update?

Can we update Crowdsec ourselves (with a custom repo) or do we need to wait for the plugin maintainers to update the plugin?
I have some problems with the bouncer: https://github.com/crowdsecurity/cs-firewall-bouncer/issues/233 and I want to test with the latest version available.
Thanks.

Can we update Crowdsec ourselves (with a custom repo) or do we need to wait for the plugin maintainers to update the plugin?
I have some problems with the bouncer: https://github.com/crowdsecurity/cs-firewall-bouncer/issues/233 and I want to test with the latest version available.
Thanks.

You need to wait till the plugin maintainer updates it

ok


Add timeout capability to NodeRecycleThread

When specified, times out the NodeRecycleThread and
shuts down the node at the given value (in seconds).

@sebady @sundaramrajendran thoughts on this?


Docker Hub not updated

Please update the Docker Hub file to latest github version.
(If I am not mistaken, there should be an option for auto updates too)

I haven't dockerized the v2 version of the app yet. Seeing as to how much dependency it has on Firebase, I was wondering whether it would still be useful as a self hosted alternative. But feel free to dockerize the app and send a pull request if you think it's open to self hosting :)


Create Hello Rails Back End

Hello Rails Back End

In this project, implemented :

[x] Create a new Rails API app called 'hello-rails-back-end'.
[x] Initialize your project with Git.
[x] Make sure that your project has a Postgres database set up.
[x] Create a table for storing your messages and create 5 different greetings.
[x] Create an API endpoint that selects a random greeting from your table (you will need a controller with an action and rails route).

Hello React Front End

Hi @Debas-31,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request :x:

[ ] Kindly include the link to your backend repo in the README of your frontend repo :+1:

Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.


Add continuous integration infrastructure

Use GitHub Actions for this.
Ideally CI should do the following:

[ ] Run the projects unit tests
[ ] Perform static analysis on new code
[ ] Report test coverage
[ ] Publish build artefacts on tagged commits  (Is this possible with iOS?)

The Clang Static Analyser that is run by default as part of the build process is more than good enough, one thing that's missing is a resolution estimation time, but I can live without that.
Add instead a method to enforce code style.

Closing task for running unit tests as this is a simple call to swift test -v from GitHub Actions.


i think something wrong in this lib or in my code

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <FirebaseClient.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>

// Replace with your Wi-Fi credentials
#define WIFI_SSID "........"
#define WIFI_PASSWORD "......................................."

// Replace with your Firebase details
#define DATABASE_SECRET ".................................................................."
#define DATABASE_URL "..................................................................................."

// Define the relay pin
#define RELAY_PIN D1

WiFiClientSecure ssl;
DefaultNetwork network;
AsyncClientClass client(ssl, getNetwork(network));

FirebaseApp app;
RealtimeDatabase Database;
AsyncResult result;
LegacyToken dbSecret(DATABASE_SECRET);

void printError(int code, const String &msg)
{
    Serial.printf("Error, msg: %s, code: %d\n", msg.c_str(), code);
}

void setup()
{
    Serial.begin(115200);
    pinMode(RELAY_PIN, OUTPUT);
    digitalWrite(RELAY_PIN, LOW); // Ensure relay is off initially

    // Connect to Wi-Fi
    Serial.print("Connecting to Wi-Fi");
    WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
    while (WiFi.status() != WL_CONNECTED)
    {
        Serial.print(".");
        delay(300);
    }
    Serial.println();
    Serial.print("Connected with IP: ");
    Serial.println(WiFi.localIP());
    Serial.println();

    // Initialize Firebase
    Serial.println("Initializing Firebase...");
    Firebase.printf("Firebase Client v%s\n", FIREBASE_CLIENT_VERSION);
    ssl.setInsecure();
    ssl.setBufferSizes(1024, 1024);
    initializeApp(client, app, getAuth(dbSecret));
    app.getApp<RealtimeDatabase>(Database);
    Database.url(DATABASE_URL);
    client.setAsyncResult(result);
}

void loop()
{
    Serial.print("Fetching relay state from Firebase... ");
    bool relayState = Database.get<bool>(client, "/relayState");
    if (client.lastError().code() == 0)
    {
        Serial.print("Relay State: ");
        Serial.println(relayState);

        // Control the relay based on the Firebase value
        digitalWrite(RELAY_PIN, relayState ? HIGH : LOW);
    }
    else
    {
        printError(client.lastError().code(), client.lastError().message());
    }

    delay(10000); // Wait 10 seconds before the next read
}

no any error in showing in my serial monitor but my code stacked ,
i am geeting realtime data or changes in data from my app but my relay not going to change state
can anyone solve or any suggestions.

Read the library documentation thoroughly for the concepts and proper usage.

can you tell me whats wrong in my code and can you make changes for me
please
On Sun, Aug 18, 2024 at 8:54 PM Suwatchai K. @.***>
wrote:

Read the library documentation thoroughly for the concepts and proper
usage.
—
Reply to this email directly, view it on GitHub
https://github.com/mobizt/FirebaseClient/issues/133#issuecomment-2295300256,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALXAOEIWGXM4MLAC6FF2T33ZSC4ETAVCNFSM6AAAAABMWOM45WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJVGMYDAMRVGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Read and follow the examples comments.

#include <Arduino.h>
#if defined(ESP32) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#endif
#include <FirebaseClient.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>  // Include ArduinoJson library
#define WIFI_SSID "Jamsariyaji"
#define WIFI_PASSWORD @.***@"
#define DATABASE_URL "https://fir-8266-458c8-default-rtdb.firebaseio.com/"
#define DATABASE_SECRET "xbaiaVfrgiJWI4yG3DtwLN681P4RbbCGhH7pjyxX"
// Define the relay pin
#define RELAY_PIN D1
WiFiClientSecure ssl;
DefaultNetwork network;
AsyncClientClass client(ssl, getNetwork(network));
FirebaseApp app;
RealtimeDatabase Database;
AsyncResult result;
LegacyToken dbSecret(DATABASE_SECRET);
void printError(int code, const String &msg)
{
Serial.printf("Error, msg: %s, code: %d\n", msg.c_str(), code);
}
void setup()
{
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Ensure relay is off initially
// Connect to Wi-Fi
Serial.print("Connecting to Wi-Fi");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED)
{
    Serial.print(".");
    delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();

// Initialize Firebase
Serial.println("Initializing Firebase...");
Firebase.printf("Firebase Client v%s\n", FIREBASE_CLIENT_VERSION);

ssl.setInsecure();

#if defined(ESP8266)
ssl.setBufferSizes(1024, 1024);
#endif
// Initialize the authentication handler.
initializeApp(client, app, getAuth(dbSecret));

// Binding the authentication handler with your Database class object.
app.getApp<RealtimeDatabase>(Database);

// Set your database URL
Database.url(DATABASE_URL);

// In sync functions, we have to set the operating result for the

client that works with the function.
client.setAsyncResult(result);
// Control the relay based on the Firebase value
controlRelay();

}
void controlRelay()
{
// Read the relay state from Firebase
Serial.print("Fetching relay state from Firebase... ");
if (Database.get(client, "/relayState"))
{
bool relayState = Database.get(client, "/relayState");
Serial.print("Relay State: ");
Serial.println(relayState);
    // Control the relay based on the Firebase value
    digitalWrite(RELAY_PIN, relayState ? HIGH : LOW);
}
else
{
    printError(client.lastError().code(), client.lastError().message());
}

}
void loop()
{
// Fetch and update relay state every 10 seconds
controlRelay();
delay(10000); // Wait 10 seconds before the next read
}
// again this code written by me i am using esp8266 latest board version
with arduino json 6.21.2 and latest version of your lib , getting data from
database but again relay not going to change his state i also change the
firebase rule as true
On Sun, Aug 18, 2024 at 9:33 PM Suwatchai K. @.***>
wrote:

Read and follow the examples comments.
—
Reply to this email directly, view it on GitHub
https://github.com/mobizt/FirebaseClient/issues/133#issuecomment-2295310991,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALXAOENGS52KMP23V53MMZ3ZSDATXAVCNFSM6AAAAABMWOM45WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJVGMYTAOJZGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You don't even try to read the documentation.

I never give user advice and never wrote the examples and documentation about using delay in all my Firebase libraries in almost 6 years of development.

Sorry 😐 i apologize for it from bottom of my heart, I read it then get
back to you, I hope will always here for my help
On Sun, Aug 18, 2024, 9:40 PM Suwatchai K. @.***> wrote:

You don't even try to read the documentation.
—
Reply to this email directly, view it on GitHub
https://github.com/mobizt/FirebaseClient/issues/133#issuecomment-2295313361,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALXAOENMNTUPBTGN66VV2FDZSDBPTAVCNFSM6AAAAABMWOM45WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJVGMYTGMZWGE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Make examples smaller and fix indent

[x] Seems like we have missed --third-color var in first :root
[x] Fix code indent
[x] Reduced duplication to make examples more readable

Yeah, I messed up explaning some explanations. I would update the rest tomorrow.


Favourite Issue

Hello, i'm having a problem with favourite list. I have file structure like this:
packageTemplates -
- MVVM.json
- MVVMSubDir.json
and i can't put them both into favourite list. Just one at the time.
Files are almost the same just diferent with "name" and "skipRootDirectory"
Version 0.4.2

Hello, you can copy paste template.json(actual file in IDE's config/packageTemplates directory, not imported file) and rename it. When you open newly created file via select file\input path property name will automatically changes according to FileName.  So you achieve two same template with different names, now you can edit them as you wish.
Don't forget mark checkBox before apply Favorite to selected via path template.

Thanks for quick answer. I forgot the checkbox From path check box :/
Now its working perfectly

Create in custom lacation:
Use  [CustomPath (http://ceh9.github.io/PackageTemplates/tutorials/en/custom_path/)
for example:

Get PackageName
Predefined Global Variable: CTX_FULL_PATH or CTX_DIR_PATH details
You can edit this path via Script for example:


Unrecognized Symbols

Hi, I have problems with symbols.
Symbols don't recognize constant variable:

Why package CONSTANT ? why have the same symbol of package body?
And where are kRevision#, kRevisionDate,... constants?

Global variable are not recognized (ESITO_POSITIVO, ESITO_NEGATIVO, character_encoding_sii):

Type variable are not recognized (v_TaballegatoRep):

I think that you have to update getSymbolKind() method.
Thanks.

Currently symbole list is limited (navigation too).
Only package, package body and methods (functions or procedures) are listed. into symbol list.
I'll improve this in the future (I have started with navigation see issue 8)

Did you see symbolkind in vscode documentation?

Of course, I use some of them !
SymbolKind must be associated with some regexp to parse the code and create the list.
(If you want you can make a PR to complete this list...)

I download your extension and press f5 to debug, but have this error:

PR here: reference

up

Can you put Constants Symbol #25 in the main project?
It work well.

I refactor parser in Version 1.2.0, in order to consider global variables, constants, types in navigation and list of symbols.

@Danieleeee Tell me what is the extension do you use, to show in the left bar with name "code outline", please?

The extension here

Hi zabel, I have still the same problem with constants visualization in version 1.2.2
Thanks.

In version 1.2.2, all symbols in the package specification must be recognized, but there is still a problem with the package body (see # 37)
I'm already working on this issue ...


Use broccoli-test-helper to make tests easier to work with

Also update mocha to support async/await tests

In the time since tests were first written for this plugin, broccoli-test-helper was created, which allows describing input and expected output directories in code in the test body. This improves the readability and ability to manage the tests.
Once this is merged, I have some other improvements that build on top of it to modernize this addon and optionally enable caching. This is part of build performance work funded by @PrecisionNutrition.

Thanks. I've rebased on revised #77


session table not found

PDOException was thrown when trying to read the session data: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'chat.session' doesn't exist
where do i find this entity !

thanks

thanks


Unable to resolve action easingthemes/ssh-deploy@v5, unable to find version v5

Hello, I tried to update my workflow from:
    - name: Deploy to Production server
      uses: easingthemes/ssh-deploy@v4

to
    - name: Deploy to Production server
      uses: easingthemes/ssh-deploy@v5

and my action failed with: Unable to resolve action easingthemes/ssh-deploy@v5, unable to find version v5
I don't have much knowledge about publishing actions, but I think this is caused by v5 branch is not created in git.

name: deploy
uses: easingthemes/ssh-deploy@main

Latest version is v5.0.0
              - name: ssh deploy
                uses<EMAIL_ADDRESS>

Some actions are publishing  v5 as an alias to latest v5.x.x, but this requires a lot of maintenance. If there is some automated way to do this I would add it, but for now, short versions are not supported.


Setting a timeout using Fetch in Rust

Hi 👋 - I'm using CloudFlare workers to make external HTTP requests to other sites. I want to set a timeout on my fetch request to limit my client's upper bound latency. Does anyone have some boilerplate code or advice to implement something similar to this? or - is there a way to set a timeout on fetch?
Thanks!

This is currently possible with worker-sys using the Fetch api with an AbortSignal passed to the RequestInit using a timeout via setTimeout.
This currently would take quite a bit of interaction with the worker-sys crate and it seems like this should be an actual feature of the fetch api bindings.  I'll put an actual rust-y way to do this on my todo list :)

Thank you so much! for now, the client is doing a timeout on their side, but it would be nice for our CF workers to provide a reasonable fallback 😃


New release

I notice the last release is from 2018:
https://github.com/FStarLang/kremlin/releases
and this link is not valid anymore:
https://msr-project-everest.visualstudio.com/Everest/_build/latest

Thanks, where's the broken link?
I should probably add a note somewhere that I generally don't do releases and expect users to compile from source. Can you submit a pull request, e.g. on README.md?
Thanks!
Jonathan

Thanks, where's the broken link?

https://github.com/FStarLang/kremlin#kremlin


Feature request: Show diff between current and target branches in per-file diff view

At the moment in per-file diff views, it shows the difference from the common ancestor between current and target branches [1].
This gives different results from GitHub web. It'd be nice if this can be configured to head of target branch. (We all have to work with someone who just loves merging master/main into PR branches, don't we ;) )
[1] https://github.com/ldelossa/gh.nvim/blob/20604033b61db43173f85a5b3cfc793089232d1d/lua/litee/gh/pr/diff_view.lua#L436

@Frederick888 I don't know if you're still interested by this has been fixed
@ldelossa we can close this :tada:

Thanks @GuillaumeLagrange appreciated!


Parse Error with unquoted negative value for case statement

with 1.4.1,
the -1 value causes a parse error, adding quotes around the -1 fixes it
<cfscript>
    function doSomething(id){
		switch (id){
			case -1:
				return "new";
			default:
				return "existing";
		}
    }
</cfscript>

depends on
https://github.com/cfparser/cfparser/issues/127
moving to next milestone


add optional gdb package requirement

Update documentation to reflect need for gdb package if you want to use the VSCode debugger.

2 line documentation change, really easy to get it working.

2 line documentation change, really easy to get it working.


Adding more genders in Ph7cms

Hi,
I like to add more genders such as "Sub Male", "Sub Female", "Dom Male', "Dom Female", "Switch Male", and "Switch Female".
Instead of - Male, Female and couple (or along with Male, Female and Couple)
How can I do it?

This will require changes in coregendermodule, database, and mutliple changes in profile, search module and other places too. I am planing to add some extra genders soon so will explain more here when I do.

Yes, unfortunately, this would involve database ENUM changes.
https://github.com/pH7Software/pH7-Social-Dating-CMS/blob/master/_install/data/sql/MySQL/pH7_Core.sql#L86-L87
At the moment, the ENUM only contains "male", "female", "couple".
So, if you manually add some additional genders in the PHP form dropdown fields, it won't work as the current ENUM won't match with them.
Finally, it will also require some PHP modifications such as in https://github.com/pH7Software/pH7-Social-Dating-CMS/blob/master/_protected/app/system/core/classes/GenderTypeUserCore.php

Anyway, if you aren't a PHP dev, I'm sure you will be able to find someone on a Freelance website (e.g., https://www.freshbooks.com/blog/freelance-jobs) that will be able to make those changes for 15~20 hours.
Good luck!

P.S. Your profile image is great @MKDan Really like this kind of dog 😁, the Carlin pinscher...

By the way @MKDan, if you enjoy pH7CMS, it would be amazing if you can Star it (here, on GitHub) 😊

I plan on adding to the genders in the near future and will share how this is done on this issue once I have done so.

By the way @MKDan, if you enjoy pH7CMS, it would be amazing if you can Star it (here, on GitHub) 😊

I've star it.

Interested too !

https://github.com/pH7Software/pH7-Social-Dating-CMS/issues/746

Brilliant @Undefined-Variables  🤩
This is just an AMAZING "How To" issue!!!

I have seen the question a few times so thought id explain.


task: trigger the ISO build with the new Harvester commit

Currently, the ISO only builds on either harvester/harvester-installer change or the nightly build. It should be triggered (and gated in the future) the harvester/harvester build as well. Otherwise, we will get the latest ISO with an older version of Harvester.
REF: https://github.com/harvester/harvester/issues/1351#issuecomment-939056608

Target:
When new commit is merged into master, the harvester ISO needs to be built and put into release.
Solution:
In drone CI, add triggers on "push" event, so as to build and upload ISO.
In local test environment, the "Merge pull request" triggers build-iso, in last step, it upload the iso, please skip the error, as there is no related google_auth_key.

close in favor of https://github.com/harvester/harvester/pull/1506
ISO build of the Harvester repo is available via https://drone-publish.rancher.io/harvester/harvester/430/3/3

One of the two builds failed: https://drone-publish.rancher.io/harvester/harvester/429/3/2
The reason is unclear. Let's keep an eye on it.


Review when plot sections should collapse

Closes #2263
https://user-images.githubusercontent.com/3683420/187280252-4bf5253c-835f-4b01-a7fc-a954a62bfae6.mov

Do not collapse the section when clicking on the empty space on the right side of the title, but collapse only when clicking on the chevron-shaped mark beside the section title.

When clicking on empty space I suggest do not select the text.
I thought we will be removing the toggle from the title. But collapse only when clicking on the chevron-shaped mark beside the section title.
The tooltip is open -> click on the empty space beside the title will close the tooltip, but not the section

When a chevron-shaped mark hovered, show pointer (cursor)

I could not see this in the video.

Select the title to copy -> release the left mouse button, the entire section is collapsed
Select the title to copy -> right click is not working, no context menu with the text copy option is opened

I could not see in the video what is happening when the title is selected and the context menu is displayed.

Do not collapse the section when clicking on the empty space on the right side of the title, but collapse only when clicking on the chevron-shaped mark beside the section title.

When clicking on empty space I suggest do not select the text.

This is a built-in behaviour selecting the closest text when double clicking. (I've also been clicking way more more than a normal user would).
https://user-images.githubusercontent.com/3683420/187454834-9b418c16-576f-4836-9239-a4cd62869a66.mov

I thought we will be removing the toggle from the title. But collapse only when clicking on the chevron-shaped mark beside the section title.

We're using a standard HTML element for this and:

A summary or label must be provided using the  element.

This is the default behaviour of the element. IMO it's not good for user experience to move away from HTML built-in behaviours. Also, this would require to completely rethink the structure of the section.

When a chevron-shaped mark hovered, show pointer (cursor)

I could not see this in the video.

Sorry, it was there, I simply forgot t show it:
https://user-images.githubusercontent.com/3683420/187456900-2eb0578b-26e7-457c-b15e-a60735fabcb9.mov

I could not see in the video what is happening when the title is selected and the context menu is displayed.

Do not collapse the section when clicking on the empty space on the right side of the title, but collapse only when clicking on the chevron-shaped mark beside the section title.

When clicking on empty space I suggest do not select the text.
I thought we will be removing the toggle from the title. But collapse only when clicking on the chevron-shaped mark beside the section title.
The tooltip is open -> click on the empty space beside the title will close the tooltip, but not the section

When a chevron-shaped mark hovered, show pointer (cursor)

I could not see this in the video.

Select the title to copy -> release the left mouse button, the entire section is collapsed
Select the title to copy -> right click is not working, no context menu with the text copy option is opened

I could not see in the video what is happening when the title is selected and the context menu is displayed.

We suppressed these right-click menus long ago (#1736). You can still copy and paste with the keyboard.


Modularize hapi-fhir-osgi-core

Currently, the hapi-fhir-osgi-core is an all-in-one module which has everything in one big jar, e.g. client, server, model, utils etc. This means we will have to release the whole thing even for small bug fixes.
Do we have any plan to modularize it into individual bundles in the same way as we have done for the standard libraries?

The only reason all of the core and resource modules are bundled together is that there are “split packages” (Java package appearing in multiple JARs) in those projects which OSGi does not really allow. My original goal when writing the hapi-osgi-core project was just to publish all of the core projects as OSGi bundles. I did some analysis at the time and determined that three or four packages (mostly around the model classes) that would need to be refactored to allow this. At the time, James thought that this could possibly break existing user code.
Cheers,
Bill Denton
Akana/Rogue Wave
From: joedai<EMAIL_ADDRESS>Sent: Monday, November 13, 2017 11:58 AM
To: jamesagnew/hapi-fhir<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [jamesagnew/hapi-fhir] Modularize hapi-fhir-osgi-core (#784)
Currently, the hapi-fhir-osgi-core is an all-in-one module which has everything in one big jar, e.g. client, server, model, utils etc. This means we will have to release the whole thing even for small bug fixes.
Do we have any plan to modularize it into individual bundles in the same way as we have done for the standard libraries?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/jamesagnew/hapi-fhir/issues/784, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AM9ngjr9KwAIMH6QPyzEmmpqL6Cvd2Ywks5s2J83gaJpZM4QcUu2.

I just realized we have two open bugs about this (other one is  #777 )


License under MIT

Noticed your code was unlicensed, and I was interested in maybe using it. This pull request licenses it under MIT, I used the name on your github profile.

wrong repo.


fix release workflow with condition.

This is in relation with bug #56 and the following PR #57.
This fixes the case when release.yml is run manually.
In that case the version will be the one from pubspec.yaml.
But the better approach is still to push a git tag instead of running manually for a release, because then the git tags are perfectly aligned with the release artifacts.

This could be helpful to fritter, why not open a pull request their


Added support for cmd

Added support for CMD.

Thanks for the PR. As CMD seems to be a draft and not widely used, I am going to close the PR for now. I refrain from adding code that isn't absolutely necessary, and in this case CMD doesn't seem to be widely used.


embeddings.py last audio chunk always finishes at 600 sec regardless of audio file length

Embeddings cannot handle files longer than 600 seconds.
this appear to be picked up from line 47:
duration = cfg.FILE_SPLITTING_DURATION
This appears to a bar to reduce memory use.
From config.py line 101:
# Number of seconds to load from a file at a time
# Files will be loaded into memory in segments that are only as long as this value
# Lowering this value results in lower memory usage
FILE_SPLITTING_DURATION: int = 600

However the code is not moving to the next 600 second big chunk.
a chunks list is made on line 58:
chunks = analyze.getRawAudioFromFile(fpath, offset, duration)

An easy work around if memory use isn't an issue for you:
change line 58 to
chunks = analyze.getRawAudioFromFile(fpath, offset, fileLengthSeconds)

found the issue. The code is not saving the result, the 200 embeddings being saved are the last 200 embeddings in the files. I'll send a PR.

sent a PR #300

Thanks, good catch.