added the option enable_pam_slurm_adopt in lifecycle scripts

This PR adds the option enable_pam_slurm_adopt in config.py to run 2 scripts in lifecycle_scripts.py at the very end as post-install scripts.
By default set to False,
if enable_pam_slurm_adopt is set to true, it will:

fix Slurm slurmctld being not responsive at restart
install pam_slurm_adopt PAM module and:

Limit host memory usage at 99% MaxRAMPercent using cgroup enforcement
Prevent user to ssh without jobs running on that node

The 2 scripts are triggered by the option enable_pam_slurm_adopt are :
./utils/slurm_fix_plugstackconf.sh (cf #428 )
./utils/pam_adopt_cgroup_wheel.sh (cf #429 )

Thanks for testing - okay if this gets added to backlog for testing on Monday 10/7? Once tested, will submit approval.
If approval needed sooner, reach out on slack.
Best,
MN

Tested ssh prevention successfully on p5 node with following test:
buntu@ip-10-1-37-120:~$ sbatch 60.sh
Submitted batch job 37
ubuntu@ip-10-1-37-120:~$ squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
                37       dev 60sec_te   ubuntu  R       0:03      1 ip-10-1-1-198
ubuntu@ip-10-1-37-120:~$ sinfo
PARTITION      AVAIL  TIMELIMIT  NODES  STATE NODELIST
dev*              up   infinite      1  alloc ip-10-1-1-198
...
ubuntu@ip-10-1-37-120:~$ ssh ip-10-1-12-112
Access denied by pam_slurm_adopt: you have no active jobs on this node
Connection closed by <IP_ADDRESS> port 22
ubuntu@ip-10-1-37-120:~$ ssh ip-10-1-1-198
... succesfully SSH'ed into node

Mem test working as expected. Approving this PR, thanks!
(memory_test_env) ubuntu@ip-10-1-37-120:~$ srun --mem=200G run_cgroup.sh
System Information:
-------------------
Linux ip-10-1-1-198 5.15.0-1068-aws #74~20.04.1-Ubuntu SMP Tue Aug 6 19:32:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
-------------------
              total        used        free      shared  buff/cache   available
Mem:          2.0Ti        25Gi       1.9Ti       7.0Mi       8.0Gi       1.9Ti
Swap:            0B          0B          0B
-------------------
MemTotal:<PHONE_NUMBER> kB
MemAvailable:<PHONE_NUMBER> kB
-------------------
CPU(s):                               96
NUMA node0 CPU(s):                    0-47
NUMA node1 CPU(s):                    48-95
-------------------
run_cgroup.sh: line 20: 74503 Killed                  python3 ~/slurm_cgroup.py
slurmstepd: error: Detected 1 oom_kill event in StepId=51.0. Some of the step tasks have been OOM Killed.
srun: error: ip-10-1-1-198: task 0: Out

LGTM!


Where we can control the lambda parameter ?

Hi @e4s2022 , How can i control the percentage of the swapping ?

I am closing this issue !! Thanks

@vijeshkpaei did you find it?


Uncaught TypeError: count():

$  php src/index.php submit-expense "28 August 2021" "stichting" "Dutch railways" "Degrowth Conference train tickets" "transport" 100 "michiel"

->
PHP Fatal error:  Uncaught TypeError: count():
Argument #1 ($value) must be of type Countable|array, null given in /prejournal/src/platform.php:80
Stack trace:
#0 /prejournal/src/index.php(7): output()
#1 {main}
  thrown in /prejournal/src/platform.php on line 80

Your output give null, need array pass.


Web App - OAuth Clarification

The process of registering and using a Web App and OAuth is not clear.  The following should be implemented.

Add a button to the Web App landing page to redirect the user to the Oauth app registration (and use the standard Oauth app registration information)
The Oauth request page needs clarification and branding.

redesign content
include description and access requirements

When using a Web App, the user should be prompted with a message stating that this action will allow the app to read, write, and modify, their resources.  Do they wish to continue?

@Castronova
Regarding (1): setting up oauth is a one-time process that should be done by the Admin of App Server (Tethys, CyberGIS, SWATShare and...), not by app developers or webapp res owners. So I think maybe it is unnecessary to display any "OAuth" setting on a webapp landing page.
Further, currently any hs user can go to "/o/applications/" to register a new OAuth client. Is it what we want? Is there any potential security issue? What is the worst thing that can happen if a user unintentionally or intentionally leak his oauth client_id and client_secret to others? @selimnairb @ironfroggy @mjstealey

@zhiyuli This is a policy decision to be made by the PIs.  Google, and others, allow arbitrary developers to register applications and obtain OAuth client IDs.

I'd like to make any policy decision needed, but I do not understand the issues and consequences fully.  Can one of you @Castronova, @zhiyuli please explain in a bit more detail how this works, what the question is, and what options there are.  Alternatively, I'd be happy to listen to the recommendation of @alvacouch since it pertains to security.

@hyi I believe you have done some work on this since the year 2017

@cuahsimarko I have not involved with Web App - OAuth work for HydroShare.

I am in favor of closing this.  While I am uncertain where it is documented, I know that we have had web app developers connect successfully using Oauth.  Thus in the spirit of #3289 I am closing. If new Oauth questions arise, they can get their new issues.


Simplify Github templates

This PR:
I find the formatting of our github templates hard to read, and I notice no one is really ever filling it out. I want to remove some unnecessary/redundant sections. This description is my proposed PR template.
1.
2. If needed, delete if not
3. If needed, delete if not
Screenshots (if applicable):
Add any screenshots/videos here.
Additional Context (optional):
Add any other context about the PR here.
Future Steps/PRs Needed to Finish This Work (optional):
Add any other steps/PRs that may be needed to continue this work if this PR is just a step in the right direction.
Issues needing discussion/feedback (optional):
1.
2. If needed, delete if not
3. If needed, delete if not

Personally, I don't think the thin lines break up the sections enough - but I'm not married to the current template by any means. Not a big enough issue for me to argue. I'd be perfectly okay with removing the thicker lines.

But I think ⬆ here shows how each section is clearly divided.  The automatic heading lines only underline the heading basically.

While we are at it, I vote to eliminate the The Files This PR Effects section - all of that info is found in the Files changed tab of the PR itself.

Personally, I don't think the thin lines break up the sections enough - but I'm not married to the current template by any means. Not a big enough issue for me to argue. I'd be perfectly okay with removing the thicker lines.

But I think ⬆ here shows how each section is clearly divided. The automatic heading lines only underline the heading basically.
While we are at it, I vote to eliminate the The Files This PR Effects section - all of that info is found in the Files changed tab of the PR itself.

Idk maybe the issue I have is that no one is actually filling out any of these forms. At least for me, part of the reason is I see all these big thick lines and my mind goes "Ok stop here", and doesn't go further.
Maybe a happy middle is removing / combining some of these sections. I'll put up another commit with your suggestion, Scott.

@timbot1789 not sure if this is technically ready for review or not, but I'm still okay with getting rid of the lines.
I also propose dropping the concise title sections - as we already type a title for the Issue or PR (we dropped it for PR template.)
Maybe we also adjust the github auto-template stuff (whatever you want to call it) at the top of the files, or drop them too...
Like the Enhancement Request Issue has a title of Enhancement - [your title], and a label of enhancement.   Maybe we can do the same for Bug Report & Feature Request.

@xscottxbrownx @Jared-Krajewski responded to all your comments. I think this is gtg.


Working on 8x8.py

Trying to remake the scraper. In it's current state it extracts only one job from the company. Website loads dinamicaly and jobs are loaded using a 3'rd party crawler.

On the career site, there are many remote jobs that can be placed in Romania


Variable range sliders

Describe the feature
Variable range sliders would be cool.
Describe the solution you'd like
I want to start with a slider that goes from 0 at the left to for example 100 at the right. When the slider gets closer to the upper bound of the range, the range should automatically be extended so that I can actually enter arbitrarily large values.
Implementing that without making the slider jump is probably not trivial. But maybe you have an idea.

I can't think of how to achieve it.

Don't worry. I'll have a try myself. I'll reopen the issue, when I find a solution.


Using "change type" fails when the new type is defined by a script and current node already has a script attached

Godot version
4.0.2.stable.official
System information
Windows 10
Issue description
I had a node with a 'class_name' script attached, call it TypeA. I tried to right-click to change to a different type: TypeB. I expected it to change the script, associated node icon (I was using the Beehave plugin), etc. Instead nothing changed.
I feel that if you have a script attached and it's the original class_name script, and you "change type", it should change the script and update the icon accordingly. Instead there are several conflicting behaviors as listed in the "Steps to Reproduce".
Steps to reproduce
Notes
My example has three script-defined types: TypeA which is a script that extends Node, TypeB which extends Control, and TypeC which extends Node2D.
Test 1
Test: Add Node2D without script. Try to "change type" to TypeB.
Result: Node icon changes and script is attached. Success.
Test 2
Test: Add TypeC. Change Type to TypeA.
Result: Node icon changes to the parent of TypeA, but script does not. Reloading does not fix the wrong type and you get an error when running the scene as the actual node type doesn't match the type the script expects. Failure.
Test 3
Test: Add TypeB. Remove the script from the node. Change Type to TypeC.
Result: Node type changes from Control to Node2D but TypeC script is NOT attached. Failure.
Test 4
Test: Add TypeB. Remove the script. Save the scene. Reload the project. Change Type to TypeC.
Result: Node changes type to Node2D AND TypeC script is attached. Success-ish.
Minimal reproduction project
godot_change_type_bug_repro.zip

it should change the script and update the icon accordingly.

Godot does not have a way to automatically modify scripts after renaming something in a safe manner yet (i.e. without risk of breaking scripts), so this would have to be implemented first.


Layout Issues

Too many layout events fired create a feedback loop that can cause flashing and drop events resulting in incorrect final layout.   This occurs when resizing a windows, like RNTester window.

Duplicate of #322


[Event Request] codeunit 5802 OnAfterBufferPurchPosting(TempInvtPostBuf, ValueEntry, PostBufDimNo) in function BufferPurchPosting

Describe the request
Hello,
would it be possible to add a new event OnAfterBufferPurchPosting(TempInvtPostBuf, ValueEntry, PostBufDimNo) in codeunit 5802 "Inventory Posting To G/L" in function BufferPurchPosting as same as you already did for functions BufferAdjmtPosting and BufferSalesPosting?
local procedure BufferPurchPosting(ValueEntry: Record "Value Entry"; CostToPost: Decimal; CostToPostACY: Decimal; ExpCostToPost: Decimal; ExpCostToPostACY: Decimal)
var
    IsHandled: Boolean;
begin
    OnBeforeBufferPurchPosting(ValueEntry, TempGlobalInvtPostingBuffer, CostToPost, CostToPostACY, ExpCostToPost, ExpCostToPostACY, IsHandled);
    if IsHandled then
        exit;

    with ValueEntry do
        case "Entry Type" of
            "Entry Type"::"Direct Cost":
                begin
                    if (ExpCostToPost <> 0) or (ExpCostToPostACY <> 0) then
                        InitInvtPostBuf(
                          ValueEntry,
                          TempGlobalInvtPostingBuffer."Account Type"::"Inventory (Interim)",
                          TempGlobalInvtPostingBuffer."Account Type"::"Invt. Accrual (Interim)",
                          ExpCostToPost, ExpCostToPostACY, true);
                    if (CostToPost <> 0) or (CostToPostACY <> 0) then
                        InitInvtPostBuf(
                          ValueEntry,
                          TempGlobalInvtPostingBuffer."Account Type"::Inventory,
                          TempGlobalInvtPostingBuffer."Account Type"::"Direct Cost Applied",
                          CostToPost, CostToPostACY, false);
                end;
            "Entry Type"::"Indirect Cost":
                InitInvtPostBuf(
                  ValueEntry,
                  TempGlobalInvtPostingBuffer."Account Type"::Inventory,
                  TempGlobalInvtPostingBuffer."Account Type"::"Overhead Applied",
                  CostToPost, CostToPostACY, false);
            "Entry Type"::Variance:
                begin
                    TestField("Variance Type", "Variance Type"::Purchase);
                    InitInvtPostBuf(
                      ValueEntry,
                      TempGlobalInvtPostingBuffer."Account Type"::Inventory,
                      TempGlobalInvtPostingBuffer."Account Type"::"Purchase Variance",
                      CostToPost, CostToPostACY, false);
                end;
            "Entry Type"::Revaluation:
                begin
                    if (ExpCostToPost <> 0) or (ExpCostToPostACY <> 0) then
                        InitInvtPostBuf(
                          ValueEntry,
                          TempGlobalInvtPostingBuffer."Account Type"::"Inventory (Interim)",
                          TempGlobalInvtPostingBuffer."Account Type"::"Invt. Accrual (Interim)",
                          ExpCostToPost, ExpCostToPostACY, true);
                    if (CostToPost <> 0) or (CostToPostACY <> 0) then
                        InitInvtPostBuf(
                          ValueEntry,
                          TempGlobalInvtPostingBuffer."Account Type"::Inventory,
                          TempGlobalInvtPostingBuffer."Account Type"::"Inventory Adjmt.",
                          CostToPost, CostToPostACY, false);
                end;
            "Entry Type"::Rounding:
                InitInvtPostBuf(
                  ValueEntry,
                  TempGlobalInvtPostingBuffer."Account Type"::Inventory,
                  TempGlobalInvtPostingBuffer."Account Type"::"Inventory Adjmt.",
                  CostToPost, CostToPostACY, false);
            else
                ErrorNonValidCombination(ValueEntry);
        end;

    OnAfterBufferPurchPosting(TempInvtPostBuf, ValueEntry, PostBufDimNo);
end;

[IntegrationEvent(false, false)]
local procedure OnAfterBufferPurchPosting(var TempInvtPostingBuffer: array[20] of Record "Invt. Posting Buffer" temporary; ValueEntry: Record "Value Entry"; var PostBufDimNo: Integer)
begin
end;

Additional context
We need this event because we need to create additional lines in Invt. Posting Buffer.
Internal work item: AB#497933

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 15767.


[FEAT] Support Universal application with fused/dynamic feature.

Information

Apktool Version (apktool -version) - 2.7.0
Operating System (Mac, Linux, Windows) - Mac
APK From? (Playstore, ROM, Other) - Example app developed to demonstrate the issue.

Stacktrace/Logcat
I: Using Apktool 2.7.0 on app.apk
I: Loading resource table...
I: Decoding Shared Library (com.example.dynamicfeatures.dynlogin), pkgId: 128
W: Skipping package group: com.example.dynamicfeatures
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /Users/tamirda/Library/apktool/framework/1.apk
W: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f120201
W: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f11001d
W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x7f0e0000
W: Could not decode attr value, using undecoded value instead: ns=android, name=fullBackupContent, value=0x7f140000
W: Could not decode attr value, using undecoded value instead: ns=android, name=roundIcon, value=0x7f0e0001
W: Could not decode attr value, using undecoded value instead: ns=android, name=dataExtractionRules, value=0x7f140001
W: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f120203
W: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f11001d
W: Could not decode attr value, using undecoded value instead: ns=android, name=value, value=0x7f140002
I: Renamed manifest package found! Replacing com.example.dynamicfeatures with com.example.dynamicfeatures.dynlogin
I: Decoding file-resources...
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
I: Decoding values */* XMLs...
Can't find framework resources for package of id: 127. You must install proper framework files, see project website for more info.

Steps to Reproduce

Create application with dynamic feature, while adding to the dynamic feature manifest the flag <dist:fusing dist:include="true" />  (this flag makes sure bundletool merges the dynamic feature into the final apk).
use bundletool to create universal apk from aab
apktool d app.apk

steps 1-2 already made by me, attached aab and universal apk.
Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
APK
If this APK can be freely shared, please upload/attach a link to it.
A link to folder with aab and apk:
Click Here
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything?
Can not finish decode
If you are trying to install a modified apk, did you resign it?
Irrelevant
Are you using the latest apktool version?
Yes

This helps to have a more isolated/reproducible example - thanks. I believe I started some research on this in here: https://github.com/iBotPeaches/Apktool/issues/2514

Downloaded files and confirmed example.

Sorry if this is improper to ask this here (I don't really use GitHub), but I'm assuming since this is still open this is not implemented in the latest release? If it isn't then is there some sort of vague ETA on this feature or is it just sort of a "whenever you get to it" thing. Thanks.

but I'm assuming since this is still open this is not implemented in the latest release?

Correct, it would be closed if solved.

If it isn't then is there some sort of vague ETA on this feature or is it just sort of a "whenever you get to it" thing. Thanks.

I guess whenever I get to it. The entire idea of multi-package disassembles though is close to top of my list, as it appears to be occurring more and more.

Cheers, thank you for your response and your hard work on this project


Could not clone repos with OS-X/Mac git client

I could not connect to GIT Server (bonobo) with OS-X/Mac GIT client.
I tried with with Basic and Windows(AD) authentications  - always authentication fails
Please advise the fix.
Thanks,
Amar

I assume this got fixed as we have not heard anything else from you.
If the problem persists please reopen.


refactor!: express kinematics symbolically

Closes #174
This PR implements TR-011. It merges the ampform.data module into ampform.kinematics. Most notably, the recursive helicity angles are now expressed as SymPy expressions so that they can be computed with different computational back-ends. It also means numpy can be removed as a dependency of AmpForm.
Some issues:

This introduces further inheritance of sympy classes. This is needed to specify lambdification for specific nodes.
The ArrayMultiplication class is clumsy: it would be better to use something like tensor-contractions, but afaics this is not yet work well in SymPy. So for now, this class is there as a node that can be lambdified to a sequence of einsum (to mimic the existing MatrixSequence.dot is used here).
Big problem remains that the lambdified expressions for these symbolic helicity angles are huge and contain a lot of duplicate code (e.g. these zeros(len(...)) in BoostZ etc.). #166, possibly combined with cse may offer a way out there, but attempts so far were not promising, because this requires you to use exec instead of sympy.lambdify.
ArraySymbol is being dynamically hacked through ampform.sympy._array_expressions. This is needed as long as https://github.com/sympy/sympy/pull/22265 is open and not released.

I'm trying to understand what this issue is ultimatively trying to solve. So if I understand this PR correctly it will not provide a recursive python function (numpy), which converts events to kinematics data, but provides a math expression (sympy) that can be lamdified to perform this operation. Sounds quite nice, but which problem is this trying to solve? To unify the way the ampform package works right (as outlined here https://github.com/ComPWA/compwa-org/issues/56)?

There currently are no big practical problem with this ampform.data module ― it works, in combination with tensorwaves v0.3.x. But in terms of responsibility, it is weird that AmpForm (which is supposed to be a library of expressions for amplitude building) is handling data. Added to that, it does these computations with one specific backend (numpy), so TensorWaves has to convert these numpy arrays back and forth for the fitting (I imagine though that JAX and/or TF have some optimizations here).

I have to say though, that this PR makes the existing code quite a bit more complicated: the removal of the data module does not outweigh the number of added lines in the kinematics module. This number of lines decreases a bit once ArraySlice is released in SymPy, so that the temporary ampform.sympy._array_expressions module can be removed. But still, it would be better to formulate these array computations with existing SymPy classes rather than clumsy constructs like ArrayMultiplication.

There currently are no big practical problem with this ampform.data module ― it works, in combination with tensorwaves v0.3.x. But in terms of responsibility, it is weird that AmpForm (which is supposed to be a library of expressions for amplitude building) is handling data. Added to that, it does these computations with one specific backend (numpy), so TensorWaves has to convert these numpy arrays back and forth for the fitting (I imagine though that JAX and/or TF have some optimizations here).

Thats true.

I have to say though, that this PR makes the existing code quite a bit more complicated: the removal of the data module does not outweigh the number of added lines in the kinematics module. This number of lines decreases a bit once ArraySlice is released in SymPy, so that the temporary ampform.sympy._array_expressions module can be removed. But still, it would be better to formulate these array computations with existing SymPy classes rather than clumsy constructs like ArrayMultiplication.

Agreed. I guess I need a bit more time to do a review of the code, but this def seems like the right approach to me. The only thing we can keep in mind (or goes through my head) is how to be open to support multiple math expression formats/packages. Ideally there could also be some sympy alternative once, or just mathematica, and that can be turned into some expression tree. So theoretically having some expression tree package that serves as the base input to tensorwaves would be ideal.

Ideally there could also be some sympy alternative once, or just mathematica, and that can be turned into some expression tree.

Indeed. I'm a bit worried about how inheritance from sympy classes is increasingly propagating through the framework. This is done to customize the lambdification for certain nodes and to improve the latex rendering, but it couples the framework even more to sympy.

Merging this one so it can more easily be tested in TensorWaves through a pre-release. See #182 for follow-up steps.


Add pool_timeout as a parameter in HTTPConnectionPool

This issue is a follow up of this issue opened in the requests repository
As indicated in the file requests/packages/README.rst, if this is accepted, the changes will be first implemented and pushed here.

Is there a reason we need to do this? Requests can simply pass the appropriate option to urlopen or new_conn.

@Lukasa You are right, strictly speaking there is no need to put it here and requests can pass it to urlopen.
But since this parameter controls the connection pool behaviour exactly as block and maxsize do, I think it's better to follow the same approach.

Yeah, I think that makes some sense.


which options

Hello. I am not very familiar with reinforcement learning.
python3 main.py --log-dir trained_models/acktr --algo acktr --model squeeze --num-process 24 --map-width 27 --render
In the above, main.py does not work. Please tell me the options you need to run 'main.py'.

Hi Tsunehiko, thanks for your interest.
Apologies, the Readme is outdated. Try this:
python3 main.py --experiment test000 --model FullyConv --num-process 24 --map-width 16 --render --overwrite --algo a2c
Please have a look at arguments.py or call python3 main.py --help to see a full list of arguments available.

Thank you for your quick response.
I want to try other algorithms on Micropolis. Is it possible to connect gym_micropolis / envs / env.py to other algorithms (eg stable_baselines) as a gym environment?

Funny, this repository is actually an adaptation of the following: https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail, which is itself adapted from OpenAI baselines.
I suppose one could use this environment with a different learning algorithm. There would be two roadblocks for you to overcome, at least that spring to mind:

The function setMapSize() passes a bunch of micropolis-specific options to the environment. So you'd need to edit env.py to call this in the init() function, with predetermined options.
The action space in Micropolis is very large. It corresponds to a flattened 2D image the size of the map, with number of channels corresponding to number of tile-specific actions, so you'd need to make sure the model being used was compatible with this (i.e., I'm exploring fully convolutional NN's that retain a spatial correspondence between the observation and action spaces - you can find them in model.py; I don't think you'd want to use a net that bottlenecks too drastically - Atari has a much smaller action space, for example).

Indeed it would be nice for this to be incorporated as part of the standard family of gym environments. I am working on it here for now because I'm still experimenting with the environment itself, e.g., playing with different reward functions, designing mini-games, playing with different map sizes.
Which algorithm were you thinking of using in particular (stable_baselines is a collection of algorithms, not one single algorithm)?

Feel free to shoot me an email if you have any more questions, ideas, or want to chat about RL :)

Thank you for your kind explanation and kindness.
The reason I used stable_baselines is that I wasn't used to RL, and stable_baselines seemed to be the easiest way to handle the algorithm. (There was no particular emphasis on the algorithm.)
In model.py, an error occurs when the modules of densenet_pytorch and ConvLSTMCell are not found. Which module should I install?
I will ask you by email from next.

Aha, densenet_pytorch is an old dependency, so I got rid of that, and I added ConvLSTMCell.py to the repo. Do a 'git pull' from inside the repo and try again!
Thanks for bringing my attention to these problems.

And indeed, you'd probably be wise to start with RL by playing with stable_baselines and some Atari games, etc. But I selfishly would rather you play with this repo because you're helping me troubleshoot it :)

Thank you for your quick response. I'm glad if I'm useful too.
Can I use the --no-cuda option? I can not use a machine with GPU now, but I have to handle it only with CPU :(
By the way, I'm thinking of using this repo for at least July.

Not ideal, but no problem. Just patched up something that was in the way of using no-cuda. I've now got the above command working. Do another pull and let me know if you have any luck.

python3 main.py --experiment test000 --model FullyConv --num-process 24-map width 16 --render --overwrite --algo a2c --no-cuda
I ran the above command. The displayed screen only passes time, and no action is taken. How can I see how agents are playing? May I use enjoy.py?

Strange, I can't replicate this. What are you getting in the command line?

The command line output is very large, so I don't know which one to write. I wrote the last command line output. Also, the output of the screen at that time looks like an attached image.
 If time is passing on the map, then training must be underway, so you must be getting printouts indicating avg. reward, number of frames and the like. Try the same with --log-interval 1  so that this printout will occur as frequently as possible. Depending on your system training might be very slow. You might also adjust `--num-proc 2', so that only 2 games will run during training (there's a bug with only 1, at the moment). This will speed up gameplay in those individual games.

I tried both --log-interval 1 and --num-proc 2, but the map still displayed does not change, only time is advancing. The output displayed at the end of the command line is shown below.
==== STARTGAME
GENERATECITY
STARTMODE
('PAUSED', True, 'running', False)
('SWITCHPAGE', <micropolisnotebook.MicropolisNotebook object at 0x7fd3f24d3e10 (pyMicropolis+micropolisEngine+micropolisnotebook+MicropolisNotebook at 0x563695516510)>, <micropolisnotebook.MicropolisNot
ebook object at 0x7fd3f24d3e10 (pyMicropolis+micropolisEngine+micropolisnotebook+MicropolisNotebook at 0x563695516510)>, <micropolisnoticepanel.MicropolisNoticePanel object at 0x7fd3f24d5630(pyMicropolis+micropolisEngine+micropolisnoticepanel+MicropolisNoticePanel at 0x563695518340)>, 0)
('WINDOW SIZE', 800, 608)
('WINDOW SIZE', 800, 608)
('WINDOW SIZE', 800, 608)
('WINDOW SIZE', 800, 608)
{'Road': ['Road', 'Wire', 'Rail', 'Water'], 'Wire': ['Road', 'Wire', 'Rail', 'Water'], 'Rail': ['Rail', 'Wire', 'Road', 'Water'], 'Water': ['Road', 'Water', 'Wire', 'Rail'], 'Net': ['Net', 'Airport'], 'Airport': ['Net', 'Airport']}
PLAYCITY
('PAUSED', False, 'running', True)
PLAYMODE
('PAUSED', False, 'running', True)
{'Road': ['Road', 'Wire', 'Rail', 'Water'], 'Wire': ['Road', 'Wire', 'Rail', 'Water'], 'Rail': ['Rail', 'Wire', 'Road', 'Water'], 'Water': ['Road', 'Water', 'Wire', 'Rail'], 'Net': ['Net', 'Airport'], 'Airport': ['Net', 'Airport']}
PLAYCITY
('PAUSED', False, 'running', True)
PLAYMODE
('PAUSED', False, 'running', True)
len of intsToActions: 4864
 num tools: 19
len of intsToActions: 4864
 num tools: 19
BASE NETWORK:
 MicropolisBase_FullyConv(
  (embed): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1))
  (k5): Conv2d(32, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (k3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
  (val_shrink): Conv2d(32, 32, kernel_size=(2, 2), stride=(2, 2))
  (val): Conv2d(32, 1, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
  (act): Conv2d(32, 19, kernel_size=(1, 1), stride=(1, 1))
)
/home/tsunehiko/gym-micropolis/micropolis/MicropolisCore/src/images/tileEngine/tiles.png
/home/tsunehiko/gym-micropolis/micropolis/MicropolisCore/src/images/tileEngine/tiles.png

How fast is time moving? An update only occurs for me in the late 1900s. You could make --map-size 4 and --max-step 16? This should make updates occur by 1950 latest.

I tried --map-size 4 and --max-step 16, but the speed of the time was ultrafast and increased infinitely beyond the 1950s.

I'm at a loss. I can only recommend looking at line 265 in main.py, which should be printing out, and working backward from there with print statements, trying to find out why 265 is never reached.

Thank you for checking carefully.
I examine the code and try it myself. I will contact you again if I have any questions.

Also, try without --render, and see if you get any printouts.

I tried without --render. Results are now displayed! However, no matter how much learning is done, reward will not increase ...

Also, an error like an image has appeared. How do I fix this error?

That's some good news! I suspected that the problem stemmed from the GUI. In particular, there must be a call to gtk.main_interation(), or something to that effect, hidden somewhere. This function runs the GUI indefinitely, waiting for user input, so it would stop our training code dead in its tracks (and simply let the game run very fast). Strange that I don't experience the same issue on my end, and can't find a call to the function in the code. Might be an operating system-specific issue.
As for the "Unable to init server" error, I think this might be the result of too many dead python processes hanging out on the cpu (interrupting training is not yet handled gracefully by the code). Try again after pkill -python or simply after restarting your machine.
To see if the bot's doing anything. Try again with the option --print-map which will print an array representing (the 0th-ranked environment's) game map, with different tile-types corresponding to different integers. If this map is not changing, then the bot is not building on the map.

The array displayed by "--print-map" has changed, so it seems that learning is possible. How do I check the bots I learned? Should I use enjoy.py?
Also, "Unable to init server" is an error that was displayed when I tried using a GPU server that I can use, not my machine. This may be the cause.

Yes, you can try something like python enjoy.py --render --map-size 16 --load-dir a2c_FullyConv_w16/test000 (I wonder if we'll get stuck in the same GUI loop though!)


Updated to Microsoft Product Lifecycle.

Currently, according to Product Lifecycle Microsoft CSS only provides product support for the following SQL Versions that are listed as  compatible with SCCM Current Branch:
SQL 2012 SP4
SQL 2014 SP2, SP3
SQL 2016 SP2
SQL 2017
The versions were listed on the page that are no longer supported by Microsoft according to Lifecycle.
SQL Server 2014 SP1: Standard, Enterprise, Express (Support Ended: 2017/10/10)
SQL Server 2012 SP3: Standard, Enterprise, Express (Support Ended: 2018/01/09)
SQL Server 2016 RTM: Standard, Enterprise, Express (Support Ended: 2018/01/09)
SQL Server 2016 SP1: Standard, Enterprise, Express (Support Ended: 2019/07/09)
SQL Server 2008 R2 SP3: Standard, Enterprise, Express (Support Ended: 2019/07/09)
I know this may require testing from SCCM PG but this is accurate to product lifecycle.

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

@xstaindx : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@mestew see MicrosoftDocs\SCCMDocs-pr#3691, this contribution might fix that (or at least part of it?)

@mestew : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@xstaindx Thanks for the contribution!
I did have to edit your PR a bit to fix a few merge conflicts I knew were on their way... especially since I caused them =)
I also wanted you to get credit for your contribution to docs on this page and not just close your PR. Thanks so much for the help!


Use Lynis to test hardenings before & after

[ ] Check individual hardenings with lynis show details TEST-ID

[ ] boot_services
[ ] kernel
[ ] memory_processes
[ ] authentication
[x] shells
[x] filesystems
[ ] storage

USB & FireWire

[ ] storage_nfs
[ ] nameservices
[ ] ports_packages
[ ] networking
[ ] printers_spools
[ ] mail_messaging
[ ] firewalls
[ ] webservers
[x] ssh
[ ] snmp
[ ] databases
[ ] ldap
[ ] php
[ ] squid
[ ] logging
[ ] insecure_services
[x] banners
[ ] scheduling

cron & at

[ ] accounting

sysstat
auditd

[ ] time
[ ] crypto
[ ] virtualization
[ ] containers
[ ] mac_frameworks
[ ] file_integrity
[ ] tooling

TOOL-5002 - automation tooling
TOOL-5190 - IDS/IPS tooling

[ ] malware
[x] file_permissions

permfile & permdir in the profile

[ ] homedirs

HOME-9310

[x] kernel_hardening
[ ] hardening

compiler(s)
malware scanner

shells

SHLL-6211 /etc/shells -> remove_shells()
SHLL-6220 "Search for session timeout tools or settings in shell"
SHLL-6230 umask ->  configure_umask()

authentication

AUTH-9286 (Checking user password aging)

PASS_MIN_DAYS option in /etc/login.defs
PASS_MAX_DAYS

AUTH-9328 (Default umask values)
AUTH-9308 - Protect single user mode

Implemented in #43.


Issue with JOB_DESCRIPTION_LANGUAGES

No JOB_DESCRIPTION_LANGUAGES found in config.ts so when the program crashes.

Found that the code on the file was different from the code on the website.


poudriere distclean requires options

Executing just
poudriere distclean

results in no action, but printing of usage. However none of the options are mandatory. Passing any option (even -v) allows it to continue.

This works for me on poudriere-devel. What version do you have installed?

This was fixed in 3.1.0 from f56cc55c7ef458167c62f868636e38b706722c74


Algorithms =>DP => Count_Square_Matrices.cpp

Assigned Issue Number ?
#1160 #702
Language Opted ?
C++ and C
Number of files added or updated ?
2
Name of these files ?
Algorithms =>Dynamic_Programming => Count_Square_Matrices.cpp
+1 more
Checklist

[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've fill up this entire template correctly.

thanks @ahampriyanshu would like to contribute more.


Clean OSGi bundle cache after execution... and disable OSGi txn test …

…due to windows instability

Passed clean on a Windows 10 VM (offline).


How the the skining work?

Hi, from the skining script I can tell anywhere saved the skined fbx. Doesn't it for applying bvh animation to target fbx and generated new fbx with animation? I can 't get saved result of that.

Hi, the skinning script is only intended for creating the result for rendering in Blender. You will need to manually export it to fbx.


multiple fragments reported for some of the molecules in some of the descriptors.

Hi, some of the descriptors are showing values as a string saying multiple fragments, e.g. multiple fragments (SpAbs_A/SpAbs), multiple fragments (VE1_A/VE1), etc. What does it mean and how to fix it?

@sumone-compbio that means the descriptor is ill-defined for your molecule, and based on the error it seems like it has something to do with a lack of connectivity. I will also note that I have a fork of mordred called mordredcommunity that has some fixes applied to it so that it works with the latest versions of Python: https://github.com/JacksonBurns/mordred-community


[RFC] Shared database helpers & config

The database code in the backend-example is currently a bit verbose. I created some code in an example backstage app that could be potentially useful in backstage core.
Feature Suggestion

Shared database connection code that could be added to @backstage/backend-common
Support for postgres database uri connection strings (e.g. postgresql://postgres@localhost:5432/dbname)
Database migrations for creating plugin databases + helpers
Making knexfile use config + common connection code.

Possible Implementation

See https://github.com/andrewthauer/backstage-example/pull/1 complete examples with code.

backend:
  POSTGRES_URL: `postgresql://postgres@localhost:5432/backstage`

// packages/backend/src/index.ts
function makeCreateEnv(config: ConfigReader) {
  return (plugin: string): PluginEnvironment => {
    const logger = getRootLogger().child({ type: 'plugin', plugin });
    // single line to create knex client
    const database = createDatabase(config, `backstage_plugin_${plugin}`);
    return { logger, database, config };
  };
}

// packages/backend/src/index.ts
async function main() {
  const configs = await loadBackendConfig();
  const config = ConfigReader.fromConfigs(configs);

  // run migrations to create databses (e.g. backstage_plugin_auth & backstage_plugin_catalog)
  const migrationsDir = path.resolve(__dirname, '../migrations');
  await runDatabaseMigrations(createDatabase(config), migrationsDir);

  // ...
}

// packages/backend/knexfile.ts
import path from 'path';
import { loadBackendConfig, getDatabaseConfig } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';

module.exports = async () => {
  const configs = await loadBackendConfig();
  const config = ConfigReader.fromConfigs(configs);
  const dbConfig = getDatabaseConfig(config);

  return {
    ...dbConfig,
    migrations: {
      directory: path.resolve(__dirname, './migrations'),
    },
  };
};

Context
Looking to get some feedback on what portions might be useful to port to backstage core. I can create PR's to get the ball rolling for anything that seems relevant.

The only thing I would add, (and this is probably off topic - 😄 ), is that I would love to see SSL verification support.
I've hacked my own like this
port: config.getOptionalNumber('backend.postgresPort'),
host: config.getString('backend.postgresHost'),
user: config.getString('backend.postgresUser'),
password: config.getString('backend.postgresPassword'),
database: `backstage_plugin_${plugin}`,
ssl: {
  ca: fs.readFileSync(config.getString('backend.postgresPathToCa')),
  rejectUnauthorized: true,
},

IMO, the config names should be camelCased too.

It might also be worth considering nesting the database config under an actual database key:
backend:
  database:
    client: 'pg'
    connection:
      host: ...
      ssl: ...
      # ...

As an added bonus, this should make it easier to re-use settings with yaml anchors if desired.

I like the idea of a dedicated database root key, that a dedicated common function can consume and parse to emit a Knex config.
The one complication that I can see is if we don't cleanly permit varying types on config values. That is, for a one-to-one mapping to Knex, the config key database.connection would need to be able to be both a string and a complex object.
database:
  client: pg
  connection: postgresql://postgres@localhost:5432/dbname

vs
database:
  client: 'pg'
  connection:
    host: localhost
    ...etc

@freben - One downside from taking the connection config directly is you can't modify things like the actual database. In my example code, I am parsing the uri and able to swap out the database name for each plugin. I also didn't realize knex supported passing the uri as a string to connection. It didn't seem documented anywhere :(

Right, maybe it can be broken apart into separate helper functions, so you can get out a uri (built from parts if the config actually was an object) or an object (parsed out of a uri if that's what the config was) etc. Or, have a single call but it can accept an overrides object parameter.
I guess then you are at a level where you know your own config and what you want to do with it, rather than doing a generic thing.

@freben - I have the draft PR #1915 up, which could currently be used in some of the following ways:
const dbConfig = config.get('backend.database');
const database = createDatabase(config, `backstage_plugin_${plugin}`);

// or

const database = knex({
  pg: 'pg'
  connection: buildPgConnectionConfig(dbConfig, `backstage_plugin_${plugin}`),
}};

However, I'm wondering if this is more what your after?
const database = createDatabase(
  getDatabaseConfig(dbConfig, { database: `backstage_plugin_${plugin}` }),
)

The caveat is the override object is highly dependent on the client type, so passing through directly and overriding could cause issues. I suppose knex will hopefully throw an error right away so it's clear to the problem. Another option would be ignore / strip keys that are not allowed for particular client types.

My thinking goes something like this:

Overrides are an optional feature, and one that may be used by a smaller number of people (don't have anything to back this statement up, it's frankly mostly gut feel :))
The default should be sane and simple - basically, a raw passthrough of what's in the config directly to knex should be the "common path"

In the case that overrides ARE present, the points below apply:

The code making the override is probably in packages/backend, where it's completely controlled by the org in question
The choice of database, for that org, is basically known beforehand and static. They will be fine with the fact that if they use overrides, then it's a basic deep-merge of objects, and that if they try to use a connection string in conjunction with overrides, an error will be thrown

Does that make sense? It would reduce the problem scope immensely and not require any parsing or per-database logic or so.

@timja may want to pitch in too ^

@freben - Yes, I'm in complete agreement. #1915 mostly follows this line of thinking now. I've tried to keep these as small building blocks, but I think there is still some room for improvement.
The common cases I see for overriding seem to be:

swapping the database name for separate plugin databases
SSL - injecting the contents of a certificate that needs to be read in from a file (since a pass through won't suffice). I'm not sure if node-postges supports path based strings but those should work fine with a pass through.

Using straight pass through and deep merging will work for both of these except when using a postgres connection string. I looked into this a bit further and seems knex uses node-postgres which in turn uses pg-connection-string for this. It looks like pg-connection-string has support for handling ssl keys. https://github.com/iceddev/pg-connection-string/blob/master/index.js#L65. If we are willing to pull in a dependency on this (or maybe treat it as an optional peer), this could be used instead. I don't see that it supports some of the timeout related options which would probably require overrides on top of it as well.
I'd like to answer the following questions:

Do we want to provide a single common createDatabase method that handles all known cases or do we want the packages/backend to use the underlying database specific functions?
Do we want to use pg-connection-string to handle connection string handling when having to do overrides?

@andrewthauer Regarding reading certificate files, I think we should be able to rely on file secrets for that: https://github.com/spotify/backstage/blob/master/docs/conf/writing.md#file-secrets. That leaves it open for other ways of bringing in certificates too

@andrewthauer Regarding reading certificate files, I think we should be able to rely on file secrets for that: https://github.com/spotify/backstage/blob/master/docs/conf/writing.md#file-secrets. That leaves it open for other ways of bringing in certificates too

Agreed. This would work nicely out of the box for non connection string based database configs.

And I don't at all mind bringing in the connection string parser lib dependency if that's usable. And that would mean that the only time that it was ever invoked, was if (1) it's a pg connection string, and (2) overrides were specified, correct?

I think it can still be all exposed as a single function, to answer your first point.

I believe everything discussed here in regards to the database connection, ssl, etc. is covered in #1915 now.

The only other use cases here not covered by #1915 are related to migrations. It might make sense to cover that in a separate issue since the majority of this thread is relation he the configuration and db connection.
Specifically, I'm thinking about:

Updating the knexfile's to use the new connection helpers
Ability to create new plugin databases easily on a newly provisioned db (possibly using pgtools)
Common migration API for plugins with the ability to register and run them as a pre-deploy step

I'll close this ticket, but feel free to open issues for the additional improvements.


Line 142 causes qwiic.list_devices() not to work for other devices

I'm not sure of the purpose line 142 which adds all of the I2C addresses to _AVAILABLE_I2C_ADDRESS.
It doesn't appear that the I2C address of the VL531L1X can be changed (but I haven't looked exhaustively).  From my limited looking, it appears as if it is fixed at 0x52.
The inclusion of this line of code means that list_devices() will respond to any I2C device with 'Qwiic 4m Distance Sensor (ToF)', 'QwiicVL53L1X'.
I am hesitant to remove it without understanding why it is there.

I now see where the ability to set the address has been added to the driver.
I'm not certain how to resolve this functionality with list_devices().  Perhaps it makes sense to drop the line with the understanding that list_devices() is restricted to default addresses?

Are you referring to this method in the Qwiic_Py repository? If you are, I think you have filed the issue in the wrong repository.
Secondly, the purpose of that method is to retrieve a list of possible devices; however, that method hasn't been fully worked out. It requires a bit of complex logic since there are several devices that have configurable I2C addresses.

I believe that other "listed" devices may get overwritten if a device like the VL53L1X covers a large range of addresses. You can bypass this issue, by limiting the method to only looking for the default address of the packages. However, if you change the I2C address of the device, the method won't be able to find a listed device and may throw an error.

Yes, that is the method I'm referring to.
The real problem is this: if you have two devices on the bus, depending on the order of loading, the lower address device might be incorrectly identified as a VL53L1X.  With only one device on the bus, and that device not being a VL53L1X, it is identified as a VL53L1X.
I don't see a way to "bypass this issue by limiting the method to only looking for the default address of the packages" without making a change to the current code, which would either change the API or cripple your code.  Maybe I missed it and would appreciate you pointing it out if I did.
I fully agree with you that "that method hasn't been fully worked out. It requires a bit of complex logic since there are several devices that have configurable I2C addresses."  It also can't sort out devices like the PCA9685's default address being the same address as the TMP117.
I'm pretty certain for my application I'll need my own version of list_devices(), especially the VL53L1X driver continues to respond to any address from 0x08 to 0x78.  I'm trying to make a general purpose plug and play prototyping system where I configure the UI based on the devices plugged.  I need to survey the devices I plan to allow for to see if 1) they all have EEPROM storage registers, 2) I could use those registers to further identify the device.
I'm leaving this open to see if you're concerned about the two concerns I express at the top of this post.  If you're not, fine, close it, and I'll abandon using list_devices() because it will no longer be useful for my purposes.


gene essentiality

Can evo-1-8k-base be used for scoring the gene essentiality? Or only the evo-1-131k-base? Thank you!

Potentially, but we have not assessed its quality.  The 8k is not trained as long as the 131k.


fix(v2): fix incorrect keywords meta tag

Motivation
It should be <meta name="keywords"> instead of <meta property="keywords">.
Source: https://seo-hacker.com/what-are-meta-tags-and-why-are-they-important/
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan

Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/docusaurus, and link to your PR here.)

This should be available in the latest release correct? We are not seeing front matter keywords appearing in the page header (v2).


Dash Live 2 vod transition seekRange start wrong and timeline broken

Have you read the FAQ and checked for duplicate open issues?
Yes
If the problem is related to FairPlay, have you read the tutorial?

N/A
What version of Shaka Player are you using?

Latest
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from main?
Yes
Are you using the demo app or your own custom app?
Yes
If custom app, can you reproduce the issue using our demo app?
N/A
What browser and OS are you using?
FF and Chrome
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?

any live to VOD and i'm updating "has a reasonable seek range after going from live to VOD" with correct value
What configuration are you using?  What is the output of player.getNonDefaultConfiguration()?

default
What did you do?

Playing until the Live 2 vod transition
What did you expect to happen?
A proper seekable range
What actually happened?

The seakable range is starting at 0
Are you planning send a PR to fix it?
Yes

Related to https://github.com/shaka-project/shaka-player/issues/3567


Make fails in Fedora 23 because of different location of static llvm libraries

Static llvm libraries in Fedora 23, installed from packages such as llvm-static.x86_64, are in /usr/lib64/llvm/, but the current Makefile looks for them in /usr/lib/.
[giacecco@giaceccos-linux evmjit]$ mkdir build
[giacecco@giaceccos-linux evmjit]$ cd build/
[giacecco@giaceccos-linux build]$ cmake ..
-- The CXX compiler identification is GNU 5.3.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- EVM JIT 0.9.0
-- Using LLVM 3.7.0 (/usr/share/llvm/cmake)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/giacecco/Documents/Dico.im/GitHub-projects/evmjit/build
[giacecco@giaceccos-linux build]$ make
Scanning dependencies of target evmjit
[  5%] Building CXX object libevmjit/CMakeFiles/evmjit.dir/JIT.cpp.o
(...)
[ 95%] Building CXX object libevmjit/CMakeFiles/evmjit.dir/support/Path.cpp.o
make[2]: *** No rule to make target '/usr/lib/libLLVMCore.a', needed by 'libevmjit/libevmjit.so.<IP_ADDRESS>'.  Stop.
CMakeFiles/Makefile2:85: recipe for target 'libevmjit/CMakeFiles/evmjit.dir/all' failed
make[1]: *** [libevmjit/CMakeFiles/evmjit.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
[giacecco@giaceccos-linux build]$

See also https://github.com/ethereum/webthree-umbrella/issues/524 .
Thanks!

As I said in other issue, I can do much about broken packages of LLVM (usually binaries and executables are fine, but cmake matadata is broken). We have issues with them on multiple platforms and with multiple version of LLVM.
What you can do now is to build LLVM from source (this is the default since #64). Just make sure the cmake's option LLVM_DIR is not set.

For some time evmjit project is able to build LLVM by itself. It makes the build much longer ~20-30 mins but taking into account additional time that new user would need to spent on figuring out how to install LLVM packages on ones system it is not so bad. And it Always Works™.
Building with prebuilt LLVM is also possible, but for advanced users :).


ES6 "export 'default' (imported as 'name') was not found in '../dist/main'

Do you want to request a feature or report a bug?
I need to ask for a featurerequest.

What is the current behavior?
Hi, guys. I met a problem: when I used webback4 to compile a JS file, and then introduced the compiled file into vue-cli3, the browser made the following error：
"export 'default' (imported as 'name') was not found in '../dist/main'.
After I introduced the Babel plugin(@babel/plugin-transform-modules-commonjs), the browser did not prompt an error, but the output was not the expected result: {} (Yes, that's the output of the browser)
This question has puzzled me for a long time, so I came to GitHub to find out. Here are my related configuration files:
// webpack.base.config.js
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const devMode = process.env.NODE_ENV !== 'production'
module.exports = {
module: {
rules: [
{
test: /.vue$/,
use: ['vue-loader']
},
{
test: /.css$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: devMode
}
},
'css-loader'
]
},
{
test: /.less$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: devMode
}
},
'css-loader',
'less-loader'
]
},
{
test: /.(png|jpe?g|gif|svg)(?.)?$/,
use: { loader: 'url-loader' }
},
{
test: /.(mp4|webm|ogg|mp3|wav|flac|aac)(?.)?$/,
use: {
loader: 'url-loader',
options: {
limit: 10000
}
}
},
{
test: /.(woff2?|eot|ttf|otf)(?.*)?$/,
use: {
loader: 'url-loader',
options: {
limit: 10000
}
}
},
{
test: /.ejs$/,
use: ['ejs-loader']
},
{
test: /.js$/,
exclude: /node_modules/,
use: 'babel-loader'
}
]
},
plugins: [
new VueLoaderPlugin(),
new MiniCssExtractPlugin({
filename: '[name].css'
})
]}
// webpack.prod.config.js
const path = require('path')
const merge = require('webpack-merge')
const baseConfig = require('./webpack.base.config')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = merge(baseConfig, {
mode: 'production',
entry: {
main: './library/index.js'
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, '../dist')
},
plugins: [
new CleanWebpackPlugin(),
new OptimizeCssAssetsPlugin()
],
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /.css$/,
chunks: 'all',
enforce: true,
}
}
},
}
})
// library/index.js
let name = 'anyName'
export default name
// main.js of vue-cli3
import name from '../dist/main'
console.log(name)
If the current behavior is a bug, please provide the steps to reproduce.
This is not a bug, but I don't know how to solve it, so I hope to get help.

What is the expected behavior?
I hope to get the correct import result.
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version, and Operating System.
"webpack": "^4.39.3"
node: v10.9.0
win10

Please use repository or gist for configurations, it is really hard to read from issue

Please use repository or gist for configurations, it is really hard to read from issue

sorry ，i'll resubmit the question


remove RCTLocationObserver.m link in native modules ios

this PR remove RCTLocationObserver.m, when you click this link appears 404, about version 0.58 it works but 59 or greater it doesn't work.

Good catch! According to the CHANGELOG Geolocation was removed in RN 0.60.
Can you also update the current, 0.61 and 0.60 docs?
It would be nice if we can provide alternative example from the RN repo for those versions, but if there are no suitable one I think the removal is acceptable.

i try to find native-modules-ios.md in versioned_docs  0.60, 0.61 and it doesn't exist,  i think @Simek removal this file in  RN 0.62 is acceptable.

If there are no files for exact version you need to create 0.60 versioned page copy and remove the note there (so the old version will only load for docs below 0.59 below). Also the current version of the page need an update.

If there are no files for exact version you need to create 0.60 versioned page copy and remove the note there (so the old version will only load for docs below 0.59 below). Also the current version of the page need an update.
You can find more about docs versioning here.

Hi @Simek  i created exact version and copy native_modules_ios.md versioned 0.60 and 0.61 and i added this file in versiones_docs and delete this link in both versions, and new version can you check this commit thanks!!

If there are no files for exact version you need to create 0.60 versioned page copy and remove the note there (so the old version will only load for docs below 0.59 below). Also the current version of the page need an update.
You can find more about docs versioning here.

Hi @Simek i created exact version and copy native_modules_ios.md versioned 0.60 and 0.61 and i added this file in versiones_docs and delete this link in both versions, and new version can you check  last  commit thanks!!

Thanks for the update!


Video extract NullPointerException

Hi @pedroSG94 ,
I am encountering many cases where the video does not include the formats retrieved from the link below, resulting in a NullPointerException error. I understand that a video needs to have all the specified formats to work properly, but I don’t understand why the same video works fine when transferred to another device.
In cases where the formats cannot be retrieved, could you set it to return false or another state to avoid the NullPointerException? From my experience, videos missing these fields can still stream normally. If you have a better solution, I would really appreciate your suggestion.
Thank you very much!
You can found it here
https://github.com/pedroSG94/RootEncoder/blob/master/encoder/src/main/java/com/pedro/encoder/input/decoder/VideoDecoder.java#L57
if (mediaFormat != null) {
      width = mediaFormat.getInteger(MediaFormat.KEY_WIDTH);
      height = mediaFormat.getInteger(MediaFormat.KEY_HEIGHT);
      duration = mediaFormat.getLong(MediaFormat.KEY_DURATION);
      return true;
      //video decoder not supported
}

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
	at android.media.MediaFormat.getInteger(MediaFormat.java:1491)
	at com.pedro.encoder.input.decoder.VideoDecoder.extract(VideoDecoder.java:57)
	at com.pedro.encoder.input.decoder.BaseDecoder.initExtractor(BaseDecoder.java:67)
	at com.pedro.library.base.FromFileBase.prepareVideo(FromFileBase.java:152)
	at com.pedro.library.base.FromFileBase.prepareVideo(FromFileBase.java:187)
	at com.apptest.live.activity.LocalVideoActivity.prepare(LocalVideoActivity.kt:383)
	at com.apptest.live.activity.LocalVideoActivity.onLive(LocalVideoActivity.kt:475)
	at com.apptest.live.activity.LocalVideoActivity.initAction$lambda$14$lambda$13(LocalVideoActivity.kt:344)
	at com.apptest.live.activity.LocalVideoActivity.$r8$lambda$m-V5l8e-hJAEn_eugBnMpRbwmW8(Unknown Source:0)
	at com.apptest.live.activity.LocalVideoActivity$$ExternalSyntheticLambda8.onClick(D8$$SyntheticClass:0)
	at android.view.View.performClick(View.java:7769)
	at android.view.View.performClickInternal(View.java:7742)
	at android.view.View.access$3700(View.java:856)
	at android.view.View$PerformClick.run(View.java:29326)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:211)
	at android.os.Looper.loop(Looper.java:300)
	at android.app.ActivityThread.main(ActivityThread.java:8279)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)

Hello,
Thank you for the report. I will check it.
The reason about this crash is that each device have different decoders with different capabilities so maybe the video has an unsupported configuration for that device or the decoder selected is bugged.

Can you share me a video file that crash to try reproduce the case or at least know the exact configuration of the video?

Yes, I will send you via email

Yes, I will upload it to Google Drive and send it to you via email. I'm not sure if it will work for you, because the same video works fine on another phone.

Hi @pedroSG94 ,
Could you please create a JitPack snapshot on the master branch, so I can check it again?

Try with this gradle:
implementation 'com.github.pedroSG94.RootEncoder:library:master-SNAPSHOT'

This should update automatically with the master changes

This error should be solved now.

I confirm that it’s working now. Thanks for your help, @pedroSG94


Updated Upstream (Waterfall)

Please update Upstream from Waterfall

There's another thing or two I wanna do over the next few days before I deal with upstreaming, the biggest change can already be applied by tweaking your JVM flags


SOAP server

I have searched and search trough far lands of the interwebs but did not find an answere. Do we have support for creating a SOAP server with apigility?

IMO, it would have to be defined through a RPC service, in which you would inject your SOAP server instance.
Custom response rendering for SOAP envelopes would have to be defined too.
So, as for the answer, no, Apigility is meant to build and support REST services. But its structure allows you to implement SOAP endpoints.

Le 9 avr. 2015 à 10:48, Michal-sk<EMAIL_ADDRESS>a écrit :
I have searched and search trough far lands of the interwebs but did not find an answere. Do we have support for creating a SOAP server with apigility?
—
Reply to this email directly or view it on GitHub https://github.com/zfcampus/zf-apigility/issues/97.

Zend Framework provides a SOAP server implementation via the zend-soap component (https://github.com/zendframework/zend-soap with documentation at http://framework.zend.com/manual/current/en/modules/zend.soap.server.html). This could be implemented in a standalone script, or wrapped inside a controller easily (in Apigility, it would be an RPC controller with GET actions returning the WSDL and POST actions delegating to the server). That is the extent of our support for SOAP; we have no plans to provide ways to configure a SOAP server via Apigility.


Changing toasts positions

Is it even possible? I've tried using different ways using the custom toast css, but with no success.

Take a look at some closed issues/pull requests


feat(ingestion/powerbi): ingest powerbi app

Strange error not strictly linked to my PR, I suppose:
https://github.com/datahub-project/datahub/actions/runs/11350486344/job/31568984855?pr=11629#step:12:1720

Strange error not strictly linked to my PR, I suppose: https://github.com/datahub-project/datahub/actions/runs/11350486344/job/31568984855?pr=11629#step:12:1720

It will be fixed now

respond


Tooltip crossOffset example visual issue

🐛 Bug Report
Tooltip crossOffset triangle is centered on the left border of the tooltip, over the rounded corner.
🤔 Expected Behavior
Example(s) should all look good.
😯 Current Behavior
https://react-spectrum.adobe.com/react-spectrum/Tooltip.html

Consistent in both Safari and Firefox.
🌍 Your Environment

Software
Version(s)

Browser
Firefox & Safari

Operating System
OSX 12.3.1

I think this might get fixed by https://github.com/adobe/react-spectrum/pull/2842. Not seeing the issue in the latest build of that PR.

Duplicate of https://github.com/adobe/react-spectrum/issues/2258


ORC-29. Enable ColumnPrinter to print only selected columns.

Sorry for the long pause on this one.
I wanted to make some changes to Type that it made sense to roll together with this capability. In particular, rather than making ColumnPrinter understand the selected vector, I wanted to add a method to Reader to getSelectedType, which returns the schema filtered by the selected vector. Note that the column ids in the selected type are the same as the original file schema, so getting statistics works.
You can see my take in https://github.com/omalley/orc/tree/orc-29
Other changes:

I removed the Type.assignIds(0), which was always annoying. Now column ids are assigned automatically when the first one is requested.
I removed the uncalled kind2String.
I added Type.getMaximumColumnId, which returns the largest column id under the given type. That makes it easy to sweep through the selected vector to hit the right ids.
I added a ReaderOptions.include(std::vectorstd::string) that selects column names. Nothing uses or tests it yet, but it will let us extend the tools to use name-based column selection.
I moved the createRowBatch from the Reader to the Type class.
I moved the Type class to its own Type.hh out of Vector.hh.
I simplified the internal implementation of TypeImpl.
I tried to be more consistent to use uint64_t for columnIds.
Added TestType for testing the TypeImpl.
Fix the Reader.seekToRow implementation to use ColumnReader->skip rather than next.

This is a significantly bigger change than my original pull request. :) I agree that some of the subtype logic and handling of selected columns needed to be moved.
A few comments:

Type.getMaximumColumnId and Type.getColumnId share a lot of code (they are identical but the last line). Should this common code be moved to a separate function? Alternatively, the following can also work, but it's a bit ugly:
uint64_t TypeImpl::getMaximumColumnId() const {
getColumnId();
return static_cast<uint64_t>(maximumColumnId);
}

Methods ReaderOptions::include(std::vectorstd::string) and  ReaderOptions::include(std::list<uint64_t>) reset each other's settings. It looks like they are not meant to be used together . Is this an intended design?

Since the logic it that type->getSubtype(i).getMaximumColumnId() + 1 = type->getSubtype(i+1).getColumnId(), can we add this to TestType?

Ok, I pulled out the tree climbing code into TypeImpl::ensureIdAssigned(). I updated the comments on the ReaderOptions::include methods to clarify that calling either one resets the currently selected columns. I also added a check in TestType that ensures that ids are assigned correctly.

Here's the proposed update: https://github.com/omalley/orc/commit/108ddbfc629f0305bc7fed6f054cc40432b4078a

+1. Thanks!


Tear down assocation on ABORT chunk

Properly tear down the association when we receive an ABORT
chunk.

@Sean-Der Just to be sure that it can handle multiple errorCauses, I have added a marshaling test. I think your changes look good!

@enobufs thank you so much. I appreciate how much work you have put forward :)


⚠ Bofrost.lu has degraded performance

In 455f377, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2083 ms

Resolved: Bofrost.lu performance has improved in 00da4bd after 30 minutes.


[6.5.x] [RHBPMS-4399] pdfbox: XML External Entity vulnerability

Please merge this together with https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/pull/333


removing Markdown stuff

… as outcome of the discussion https://github.com/ruby-grape/grape-swagger/pull/560
the transforming of Markdown into HTML isn't needed anymore, OAPI descriptions accept GFM

#567 solve it


How to not use docker?

Can this project be run without Docker? I want to use the running mode of version V1. Can I choose whether to use Docker through configuration? If I don't use Docker, what should I do?Please help!

If you need to run ASPIRE dashboard, you need docker. If you choose to run only the Web API and Blazor app, you really don't need docker.


[CARBONDATA-1842]Fix 'wrong argument number' error of class Cast for Spark 2.2 when pattern matching

In class 'org.apache.spark.sql.hive.CarbonPreAggregateQueryRules', there is an 'wrong argument number' error of class 'org.apache.spark.sql.catalyst.expressions.Cast' when compile with Spark 2.2, because the constructor of class org.apache.spark.sql.catalyst.expressions.Cast has two arguments in Spark 2.1, but it needs three arguments in Spark 2.2.
Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[ ] Any interfaces changed?

[ ] Any backward compatibility impacted?

[ ] Document update required?

[ ] Testing done
Please provide details on
- Whether new unit test cases have been added or why no new tests are required?
- How it is tested? Please attach test report.
- Is it a performance related change? Please attach the performance test report.
- Any additional information to help reviewers in testing this change.

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

After  merging PR #1542 , there is 'wrong argument number' error in CarbonPreAggregateQueryRules when profile of spark-2.2 is active .
@kunal642 , @jackylk , @sounakr , please check this. thanks.

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1624/

SDV Build Success , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/2015/

I have tested successfully with below commands:

mvn -DskipTests -Pspark-2.2 -Phadoop-2.2.0 -Pbuild-with-format -Dspark.version=2.2.0 -Dhadoop.version=2.6.0-cdh5.7.1 clean package
mvn -Pspark-2.1 -Phadoop-2.2.0 -Pbuild-with-format -Dspark.version=2.1.2 -Dhadoop.version=2.6.0-cdh5.7.1 clean package

@zzcclp I have already handled this in #1508.
a new Expression is already defined by @sounakr which will take care of the Cast compatibility between spark-2.1 and spark-2.2

ok, i close this pr

resolved by #1508


Eliminate usage of reflection in TypeMappings - fixes 1049

Eliminate usage of reflection in TypeMappings by using INpgsqlTypeMapper.Mappings - fixes #1049
Update logic of PgTypes to use type mappings from INpgsqlTypeMapper.Mappings

Note: With the above fix, we don't need any change from Npgsql folks. @oskardudycz you can review and close the issue raised in Npgsql repo.

I'm pulling this one in. Looks perfectly fine to me

@mysticmind great job!