[Bug] Landing on back causes random sliding at certain speeds (can sometimes softlock)

Describe the bug
When you land on your back (jump and right click) sometimes you'll randomly slide for a split second for no reason when you hit the ground at a certain speed. Sometimes when doing backwards get up animation, the slide causes you to softlock, unable to move
This issue doesn't occur when you have a weapon equipped so it should be an easy fix
To Reproduce

Run, jump, and then right click
Land on your back
See that you slide
Do the same but with a weapon equipped
See that you don't slide

Expected behavior
I should land on my back and not randomly slide for no reason, having a weapon equipped never causes this issue
Screenshots/Videos
https://github.com/JonnyBro/beatrun/assets/32617562/95e3f8bf-16db-4804-a2c3-00cce8edc003
https://github.com/JonnyBro/beatrun/assets/32617562/1a02c9a4-595c-4cfe-b92f-c2411acb65ec
Additional information:

Game Version: x64
Game Type: Singleplayer

i had this problem whenever i use arccw weapons. it's also better to use main version of the game, since x64 may cause issues with beatrun sometimes

Can you try disabling each addon one by one and see what does this. I recently found out that this addon can cause simillar problem, disable or uninstall if you have that

Can you try disabling each addon one by one and see what does this. Also, I recently found out that this addon can cause simillar problem, disable or uninstall if you have that

Jonnybro I found out that the ArcCW base  does the same thing.


chore: bump kube-vip to v0.8.1

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Problem:

Solution:

Bump kube-vip to v0.8.1 and its chart version to 0.6.1.
Related Issue:
#6125
Test plan:

Verify VM-type LB functionality works as usual:

Upgrade from Harvester v1.3.1

Harvester Cluster VIP
User-created LBs

DHCP IPAM
Pool IPAM

Newly installed cluster

Harvester Cluster VIP
User-created LBs

DHCP IPAM
Pool IPAM

Please also keep an eye on the LB IP release when deleting LB objects.

@mergify backport v1.4


CAS Management WebApp Jar not published anymore

cas-management-webapp-4.2.0-20151118.165332-86.jar was the last JAR, which was published on https://oss.sonatype.org/content/repositories/snapshots/org/jasig/cas/cas-management-webapp/4.2.0-SNAPSHOT/
I guess the reason is, that the jar is not getting signed and therefore not uploaded.
If you dont wish to publish the classes of the Management WebApp anyway, just ignore this issue (and I have to find a way, how to convince my jenkins, not to treat my missing locally signed jar as an error).

Yes we dont. That was a fluke that happened while migrating to gradle. If you need those classes outside the war let us know and we can break it down.


[AutoDiff] populate diff witnesses during differentiation

The main point of this PR is to populate differentiability witnesses during the differentiation pass, while still using attributes for everything, so that we can incrementally switch everything over to using witnesses.
A few adjustments in other things were necessary to get this to work:

Extend the parameter indices in the attribute to handle the capture case. This code is copied from similar code for handling the same case for witnesses, in SILGen.cpp.
SIL sorting for witnesses was broken.
SILVerifier adjusted to work when witnesses point at things touched by LoadableByAddress.

I'm going to run a toolchain build and swift-apis tests on this before merging, because I'm not super confident that all the assertions I added will always pass.

@swift-ci please test tensorflow


refactor(vue): reuse script ast for rewriting default

https://github.com/vuejs/core/pull/7068#pullrequestreview-1177957635

Description

Reuse the AST and MagicString instance from resolveScript.
Please don't merge it until the upstream PR got merged and released.
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[ ] Read the Contributing Guidelines.
[ ] Read the Pull Request Guidelines and follow the Commit Convention.
[ ] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

Moving to https://github.com/vitejs/vite-plugin-vue


Add Ability to View Receipts in User Selected Currency

Who is your user?
All users of the OC platform
What are they trying to achieve?
It would be nice if users could see the receipts (in the Payment Receipts section in settings) in the currency that they've selected (in the Info section in settings).
How are they currently doing this?
This request is useful for the users especially for taxation purposes so that they can directly submit the receipts rather than either converting it to their currency.
How well understood is this problem?

[ ] Surfacing: if you feel this is a seed of an idea that needs to be researched.
[x] Understanding: if you've done some research and feel it is already well understood and ready for shaping.
[ ] Shaping:  if you feel a solution is clearly defined and can be made into a pitch (read more about shaping)
[ ] Pitching: if you feel that it is ready to be presented for prioritisation (read more about pitching)

This was reported at, https://discord.com/channels/1241017531318276158/1258886173347287181

Thanks very much for this issue. ❤


Space-y-* not being applied

In my code space-y-* is not being applied, however the other classes are.
<ScrollView
                className="flex-1 flex-col pt-4 space-y-8"
                showsVerticalScrollIndicator={false}>

                <CustomTextInput
                  title="An input field"
                />

                <CustomTextInput
                  title="Another input field"
                />
              ...

NativeWind v2.0.11
RN v0.72.3

space- will not work in all situations. Please read how it is implemented in the docs and ensure that it works with your components.
https://www.nativewind.dev/tailwind/spacing/space-between
Without a full reproduction (what is CustomTextInput?) I cannot assist you any more than that.


Reuse dbs_controller function to get obs_points in SFINCS adapter

Kind of request
None
Enhancement Description
Reuse dbs_controller function to get obs_points in SFINCS adapter, see comment in PR # https://github.com/Deltares-research/FloodAdapt/pull/308
Task list
Reuse dbs_controller function to get obs_points in SFINCS adapter
Use case
No response
Additional Context
No response

This is already part of other refactors


Print name of tree root

Current behavior is a little bit confusing when printing tree of several dirs:
$ target/release/lsd --tree ~/dir*
├── subdir11
│  ├── file111
│  └── file112
└── subdir12
│  ├── file121
│  └── file122
├── subdir21
│  ├── file211
│  └── file212
└── subdir22
│  ├── file221
│  └── file222

For comparison:
$ exa -T ~/dir*
/home/user/dir1
├── subdir11
│  ├── file111
│  └── file112
└── subdir12
   ├── file121
   └── file122
/home/user/dir2
├── subdir21
│  ├── file211
│  └── file212
└── subdir22
   ├── file221
   └── file222

And can say that printing │ at the beginning of line after last dir entry makes it even more confusing.

Hi @alex-pat,
Thanks for the issue. The --tree option need a lot of improvements indeed. It also need a big refactoring but it a big piece of work. I will work on it soon.


Pre-populates incorrect data using password manager LastPass

Laravel Version: 5.5.*
Voyager Version: ^1.0
PHP Version: 7.1
Database Driver & Version: mySQL 5.7

Description:
Both the admin login form and the Users forms (create/edit) have email fields (named "email") and password fields (named "password").  When using password managers such as LastPass, if the login credentials are saved from the login page, that email and password will auto-populate in every User create/edit form in the Voyager admin.  This could be prevented by simply making it so the "name" attribute for the email and password on the login page are different than the email and password field names in the User admin area.
Steps To Reproduce:

Log into the admin using<EMAIL_ADDRESS>and password
Save the login credentials to LastPass
Click on Users
Click on Add New or Edit

The user form loads with the login email and password auto-populated into the email and password fields.
I literally have a client that is making us change our admin software because of this behavior in Voyager.  They are concerned that users, while editing other users, will accidentally overwrite the email/password fields thanks to LastPass auto-fill.
Again, all that needs to happen to prevent this is to rename the "name" attribute for either the email/password fields on the login page, or to rename all the rest of the email/password fields throughout the admin.
Thank you

Ah yes this is a biting one. Bit me (and I'm guessing a number of users) in bad ways. Not sure what the maintainers will pick as the best resolve, so that we can maintain the password managers' mechanisms to pick up password updates.

I am facing the exact same issue as stevencook when editing and creating users. Our client is currently reviewing an application that we built with Voyager and this is one of their critiques.

This is a pretty critical fix in my opinion, had issues in an application I'm building today where I didn't notice it had done that and messed up one of my users.

Thanks for the report and the detailed explanation @stevencook.
This will be handled.

@akazorg What can we do to improve issue triage, I'm seeing truly critical and useful issues & PRs can sometimes fall by the wayside.

I haven't dive into the problem, but from what @stevencook related, we need to change the user view?
I'll handle that now.

Maybe put the form of the password reset in a separate modal? Then the fields will only be present if you want to change them.

@akazorg Sorry I didn't get the notification for this. Will try your fix out and see what I can add :+1:

@victorlap I didn't follow you, sorry.
Thanks @samtheson, fix that, please :D

I'll take a look again at your attempt @akazorg

Thanks @samtheson, that would be great! :)

This was fixed in #3000 here


odt2txt: Convert openDocuments to txt

Add odt2txt to use it on git-for-windows

https://ci.appveyor.com/project/Alexpux/msys2-packages/build/1.0.990#L434

I need hints to do the 32 compilation. Any example in other PKGBUILD?

It would be much more preferably to build this as a MINGW package (i.e. without depending on the MSYS2 runtime to emulate POSIX semantics). Does odt2txt require any POSIX functions?

Ok, now this PR is passing CI. Now I can move it to mingw repo. Will keep this until that is working and passing CI

hmm, Does https://github.com/Alexpux/MINGW-packages/pull/2754#issuecomment-321077648 mean it cannot be a mingw package?

Ok this is the right repo for this PR.
Should I add that -lpcreposix link?

@dscho There's a strange error on appveyor, https://ci.appveyor.com/project/Alexpux/mingw-packages/build/1.0.3424#L486 but seems that  Alexpux/MINGW-packages#2754 is the correct place?

Finally it fits as MinGW package


Ballista

:newspaper: PR description
Closes #4
:memo: Reviewer instructions
Try running from within the l12n-shell:
l12n dockerized -e ballista

additional information
At the moment ballista doesn't have an official docker image and the latest release (0.8.0) does not include the aws s3 object store, so, as part of the implementation, we clone the latest git version and build from there.

thanks for this contribution @nanicpc ! cool to see a new engine being added ;-)
Is there a reason why you didn't add the CLI commands as for the other engines?

I just forgot the cli 👀 🙃


Diff all files opens a new tab every time

I am not sure if this is expected but the diff all files action (from the Status Dashboard) opens a new tab everytime I press f. I expect it to just focus to the already open tab.
When I open the status dashboard (if it is already open) it doesn't create a new tab and just focuses the existing one. This should be done for Diffs too, IMO.

This is a known issue, and should be resolved when the diff view is refactored using the interface base class (like the various dashboards).  This is a minor annoyance, though, so it will isn't on the top of my list.  I'd be happy to provide direction if you or someone else would like to take a look themselves.

This is not only for Diff All Files but for any Diff view!

Thanks @divmain


Ptyxis bluefin-cli profile breaks git commands requiring an SSH password

Describe the bug
When using the bluefin-cli profile in Ptyxis, git commands that trigger SSH key password entry fail. I use a key that requires a password so git clone fails:
📦[fred@fedora ~]$ git clone git@github.com:fbunt/bluefin.git
Cloning into 'bluefin'...
ssh_askpass: exec(/usr/bin/ksshaskpass): No such file or directory
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

What did you expect to happen?
I expected git commands that trigger password entry to succeed and provide a text or GUI password prompt.
Output of rpm-ostree status
State: idle
AutomaticUpdates: stage; rpm-ostreed-automatic.timer: last run 8h ago
Deployments:
  ostree-image-signed:docker://ghcr.io/ublue-os/aurora-dx:latest
                   Digest: sha256:624d149bb1a62b9b6fd99c153b0f405b7494ad114df02039ae1ea5ab09dcacc9
                  Version: 40.20240425.0 (2024-04-25T16:51:42Z)
                     Diff: 1 upgraded
          LayeredPackages: micromamba sway swaybg swayidle swaylock

● ostree-image-signed:docker://ghcr.io/ublue-os/aurora-dx:latest
                   Digest: sha256:624d149bb1a62b9b6fd99c153b0f405b7494ad114df02039ae1ea5ab09dcacc9
                  Version: 40.20240425.0 (2024-04-25T16:51:42Z)
          LayeredPackages: micromamba sway swaybg swayidle swaylock

  ostree-image-signed:docker://ghcr.io/ublue-os/aurora-dx:latest
                   Digest: sha256:b64ef691153b101b3b4255091a0aecebd34f3ad647dec7de07b0036dd51a2202
                  Version: 39.20240419.0 (2024-04-19T19:43:17Z)
          LayeredPackages: micromamba sway swaybg swayidle swaylock

Extra information or context
This is happening because the following variables are set:
📦[fred@fedora ~]$ env | grep ASKPASS
SSH_ASKPASS=/usr/bin/ksshaskpass
SSH_ASKPASS_REQUIRE=prefer
SUDO_ASKPASS=/usr/bin/ksshaskpass

As far as I can tell, they are being inherited from the host environment. The result is that SSH looks for ksshaskpass, can't find it, and then fails.
As stated above, this only happens when using the bluefin-cli profile. The custom command (sh -c "[ ! -e /run/.containerenv ] && exec distrobox enter bluefin-cli || /bin/bash" used seems to be what causes the problem. If I run the command from a host shell, I can reproduce the issue on any of the default images.
~
❯ sh -c "[ ! -e /run/.containerenv ] && exec distrobox enter arch || /bin/bash"
[fred@arch ~]$ git clone git@github.com:fbunt/bluefin.git
Cloning into 'bluefin'...
ssh_askpass: exec(/usr/bin/ksshaskpass): No such file or directory
<EMAIL_ADDRESS>Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

SSH_ASKPASS_REQUIRE=prefer
Was set for ksshaskpass to actually prompt the user while on the host. SSH_ASKPASS as well. If this is causing issues with distrobox-enter we'll need a different method for setting these variables for KDE.

This resolved with the latest image?

Yep. That fixed it. Thanks!


How to disable "No matches found" and autocomplete at all on select2/Tagging Support?

Hello,
How to disable "No matches found" and autocomplete at all on select2/Tagging Support?
Thanks

Great!!

You can just put this in your css
span.select2-search.select2-search--dropdown{display:none;}

????
On 5 July 2015 at 07:44, Alexander<EMAIL_ADDRESS>wrote:

You can just put this in your css
span.select2-search.select2-search--dropdown{display:none;}
—
Reply to this email directly or view it on GitHub
https://github.com/select2/select2/issues/1657#issuecomment-118610455.

.select2-no-results {
display: none !important;
}

.select2-results__message {
  display: none !important;
}

.select2-no-results {
display: none !important;
}


Create nikon d700.txt

AFPoints for Nikon D700

Thanks. Did you measure these top-left of image to top-left of focus point or to the center of the focus point?

The measure is taken from the center of the focus point. I do verify the size of the mesure point. Excuse my frenglish.

great. Thanks.


adc: harness regex string not capturing sample app

NTC thermistor changes updated the sample app output, correcting harness string to match sample app.
Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/56845

I'm sorry. I was wrong when approving this PR. I somehow read it that this PR added the ending : and that I forgot about it in 8cc7ca120802b2ea21341ddb6f3eb216109cd0d8. But it was the opposite. This PR removed that ending : but the sample puts it in the output: https://github.com/zephyrproject-rtos/zephyr/blob/aef973d65b4836aa5153a1e145239227f97545fc/samples/drivers/adc/src/main.c#L58
so this won't work and aef973d65b4836aa5153a1e145239227f97545fc should be reverted.

@anangl - Thanks! I didn't see you fixed this. Created revert


chore: install protobuf-compiler

protobuf-compiler needs to be installed for all build steps and platforms. Currently main is broken because protobuf compiler isn't installed on all platforms.
Expectations

Builds should pass on all platforms.
Use https://github.com/marketplace/actions/setup-protoc instead of manually installing
Reduce duplication as much as possible in ci.yml

/bounty 100$

@neo773
Are you still working on this.
I am done with changes.
Can i proceed?

@webbdays
Yes, but haven't made a PR yet

Ok. proceed.

Change seems straight forward.
isn't
may be i am wrong.
Does this take much time?

@neo773
can i proceed to open pr?

This has been fixed.


Using touch service with scrollable-content

Hello. I have a question about touch service. Can I use touch service (I need to know touch direction) on the element or on the whole page and still be able to scroll content?

I have this use case and can confirm that it works on v1.3.4. Although the original poster probably has no need for this answer anymore it may be useful to others arriving here with the same question. I believe this issue should also be closed.


Cannot create producer on Python 3.5

I'm trying to create a simple producer in Python 3.5 and come across the following error message:
  File "/app/.tox/py35/lib/python3.5/site-packages/pykafka/topic.py", line 88, in get_producer
    return Cls(self._cluster, self, **kwargs)
  File "/app/.tox/py35/lib/python3.5/site-packages/pykafka/producer.py", line 152, in __init__
    self.start()
  File "/app/.tox/py35/lib/python3.5/site-packages/pykafka/producer.py", line 189, in start
    self._setup_owned_brokers()
  File "/app/.tox/py35/lib/python3.5/site-packages/pykafka/producer.py", line 228, in _setup_owned_brokers
    self, partition.leader)
  File "/app/.tox/py35/lib/python3.5/site-packages/pykafka/producer.py", line 426, in __init__
    self.lock = self.producer._cluster.handler.RLock()
  File "/usr/lib/python3.5/threading.py", line 82, in RLock
    return _PyRLock(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'verbose'

I've tracked the problem down to the following line in pykafka/handlers.py:
    # turn off RLock's super annoying default logging
    RLock = functools.partial(threading.RLock, verbose=False)

So, what this seems to be doing is instantiating a new RLock, which is fine. But if we take a look at python 3.5's threading.py we see the following (I removed unnecessary info):
try:
    _CRLock = _thread.RLock
except AttributeError:
    _CRLock = None

   ...

def RLock(*args, **kwargs):
    if _CRLock is None:
        return _PyRLock(*args, **kwargs)
    return _CRLock(*args, **kwargs)

  ...

class _RLock:
    def __init__(self):
       ...

   ...

_PyRLock = _RLock

As you can see, if we don't have a CRLock, we end up using a PyRLock, which does not take any arguments. This causes the producer to fail being created since it gets an unexpected keyword argument.

Thanks @spudfkc, this is an annoying one. Turning off the logging is quite necessary, since it gets in the way of all of the other logging that pykafka does and makes reading posted logs really difficult. Checking the type of the lock as it's created isn't super appealing, because we use that RLock class attribute all over the place. Maybe I can set up a callable here in place of the partial that performs a type check and conditionally includes the kwarg.

Workaround thanks to @timmartin19:
# invoke this before you run into the error
handlers.ThreadingHandler.RLock = staticmethod(threading.RLock)

Thanks @spudfkc! Any information on why this works? It seems kind of magical, but if I understand the reason it works I can probably include it in pykafka.

It was actually @akatrevorjay who came up with the solution.  It's a monkeypatch to get it to work in python3.5.  Basically, we're just overwriting the RLock attribute which was originally the partial.  A better fix would look something like:
import threading

class ThreadingHandler(object):
    def RLock(*args, **kwargs):
        kwargs['verbose'] = False
        try:
            return threading.RLock(*args, **kwargs)
        except TypeError:
            kwargs.pop('verbose')
            return threading.RLock(*args, **kwargs)

I can submit a tested pull request if you want.

@timmartin19 Ok, makes sense that your solution only works in 3.5. If you'd like to submit a pull request, that would be great. Thanks!

I can grab this and open a pull request.


Need IP cam image as a byte array or input stream.

I can see that the WebcamDefaultDevice is a BufferAccess object. But IpCamDevice is not. I need the original byte[] of the image.
Is it possible to add that feature to IpCamDevice or is there any tweak that helps me to get the byte[] directly? Because for whatever reason BufferedImage to byte[] conversion takes more than 100ms time for my webcam having 2048 * 1536 resolution.
I have posted a question on StackOverflow to make the conversion faster but no one seemed to answer that.

Yes. It is posible to add BufferAccess to IpCamDevice. One would have to simply read directly from stream and return byte[] instead of using ImageIO.

If I make a custom class modifying the IpCamDevice, it becomes hard for me to wire up everything so that the library uses my customised class.
Do I need to build the whole library locally rather than using maven or gradle dependency for this library?

Yes, the best way to solve your issue is to download sources, modify IpCamDevice and build with Maven.
$ git clone git@github.com:sarxos/webcam-capture.git webcam-capture-parent
$ cd webcam-capture-parent
// change IpCamDevice to support your needs
$ mvn clean install
// recompiled jar will be in webcam-capture-drivers/driver-ipcam/target

Thank you very much for your time. Reopen the issue if you have any plan to add this feature.

Ok, @sumsuddin feel free to send pull request if you are willing to implement this on your own. I will be happy to check it :)


[Network] Support PrivateEndpoint for NSG and ASG

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

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

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network


apx-gui: 1.0.3 -> 1.0.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Vanilla-OS/apx-gui/releases.
meta.description for apx-gui is: GUI frontend for Apx in GTK 4 and Libadwaita
meta.homepage for apx-gui is: https://github.com/Vanilla-OS/apx-gui
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.0.4 with grep in /nix/store/nyk5014wf3rn0xc8ycsskm98pxfpq5cq-apx-gui-1.0.4
found 1.0.4 in filename of file in /nix/store/nyk5014wf3rn0xc8ycsskm98pxfpq5cq-apx-gui-1.0.4

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

apx-gui

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nyk5014wf3rn0xc8ycsskm98pxfpq5cq-apx-gui-1.0.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A apx-gui https://github.com/r-ryantm/nixpkgs/archive/3700daff46104eb197f66daab84c2da341a51ebc.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/3700daff46104eb197f66daab84c2da341a51ebc#apx-gui

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nyk5014wf3rn0xc8ycsskm98pxfpq5cq-apx-gui-1.0.4
ls -la /nix/store/nyk5014wf3rn0xc8ycsskm98pxfpq5cq-apx-gui-1.0.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review

x86_64-linux

:white_check_mark: 1 package built:

apx-gui

Maintainer pings
cc @chewblacka for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Closing PR as it needs a manual edit to fix.


cOS variants

It is possible already to specify a different base image in https://github.com/mudler/cOS/blob/master/packages/base/definition.yaml#L6 but it's not sufficient to build cOS on top of a foo distribution.
We have already a mechanism for templating globally, that can be exploited to provides the values in the specific templates ( e.g. https://github.com/mudler/cOS/tree/master/values ) .
The Issue is about creating a new cOS variant (ubuntu, debian, etc) , and attaching to the CIand build it aside the standard cOS.
The values files in values corresponds to a specific variant which is being targeted while running make build. For now, we are sticking with a generic "amd64" which is empty only because the mechanism can be used also to provide multi-arch  builds, but we can reuse the same mechanism to provide different cOS flavors.
See also: https://luet-lab.github.io/docs/docs/concepts/packages/templates/#interpolating-globally

I am starting to have a look


Drop file handle just to be extra certain

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Related issues
A list of issues either fixed, containing architectural discussions, otherwise relevant
for this Pull Request.
Additional Notes
Anything else we should know when reviewing?

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1019  👈
#1017
#1016
#1015
#1012
#1011
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @blt and the rest of your teammates on  Graphite

Merge activity

Oct 2, 10:25 PM EDT: @blt merged this pull request with Graphite.


How to disable back-arrow-icon at the top-left of the screen when setting vrModeEnabled = false (ViroSceneNavigator)

Hello Viro team,
I'm really excited about the latest release.
But is there any ways to dynamically disable back-arrow-icon at the top-left of the screen when setting vrModeEnabled = false? such as: backArrowIconVisible={false} ?
Because to handle this, it is super easy to do, and basically, in general, we don't like this icon in fullscreen.
And another issue is, in my application, we use vrModeEnabled (true and false) in 1 route, the value true/false is given in the params passed to this route from the previous one (you know what I mean, right?)
The flow could be described like this: Route 1 --> navigate--> Route 2 (which has VR components).
Firstly, Route 1 passed vrModeEnabled=false --> We watch VR mode like facebook did.
Next, Route 2 --> goBack--> Route 1.
Finally, Route 1 --> choose option vrModeEnabled=true, navigating and passing it to Route 2
And the app crashed.
So I have to degrade Viro back to 2.1.0 :(

Hi @vjtc0n,
Unfortunately it’s not possible to remove that back button right now. We can see if we can turn that into an option in our next release.
As for the crash you’re running into. That does sound like a bug on our platform, we’ll see if we can reproduce it and fix it in our next release.
Thanks for reporting the issue!
Andy

@achuvm Any updates on this? On iPhone X it renders under the time and is not clickable. Thanks!

Still no updates? It looks very silly on iPhone X.
I'm going to look if I can cook up a workaround by disabling the view under the hood using RN UIManager..


#35 Added Camel icon in the gutter

@adrianbumbas FYI I mention you on my latest release tweet with name. Could't find your twitter name https://twitter.com/fnharms/status/817371987748200449

Thank you for mentioning my name. Unfortunately I don't have a Twitter account.


🎁paginator improvements

Codecov Report

Merging #445 into master will decrease coverage by 0.17%.
The diff coverage is 97.3%.

@@            Coverage Diff             @@
##           master     #445      +/-   ##
==========================================
- Coverage   87.05%   86.87%   -0.18%
==========================================
  Files         222      225       +3
  Lines        4649     4755     +106
  Branches      692      710      +18
==========================================
+ Hits         4047     4131      +84
- Misses        600      622      +22
  Partials        2        2

Impacted Files
Coverage Δ

...eIssuerConfig/certificateIssuerConfigRepository.ts
100% <100%> (ø)
:arrow_up:

src/index.ts
100% <100%> (ø)
:arrow_up:

src/foundation/Devices/device/deviceRepository.ts
88.13% <100%> (-0.2%)
:arrow_down:

...iceUpdate/firmwareImage/firmwareImageRepository.ts
100% <100%> (ø)
:arrow_up:

...on/Security/preSharedKey/preSharedKeyRepository.ts
100% <100%> (ø)
:arrow_up:

src/common/index.ts
100% <100%> (ø)

src/foundation/Accounts/apiKey/apiKeyRepository.ts
100% <100%> (ø)
:arrow_up:

...randing/darkThemeImage/darkThemeImageRepository.ts
100% <100%> (ø)
:arrow_up:

src/common/page.ts
100% <100%> (ø)

...ccounts/userInvitation/userInvitationRepository.ts
100% <100%> (ø)
:arrow_up:

... and 24 more

Continue to review full report at Codecov.

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


Bonding Curve Complete

When calling the createAndBuy function and attempting to purchase a token for 1 SOL, I encounter an issue where I cannot buy or sell tokens because the bonding curve is complete. I have tried using different wallets to execute the transaction but encountered the same problem with each. Why can’t my main wallet or any other wallet successfully complete the token transactions? How can I ensure that I keep buying the token? @rckprtr I’m fairly new to this, so any detailed explanation would be greatly appreciated.
P.S. I've sent you a message on TG @rckprtr
Sample code:
const buyAmountSol = BigInt(1000000000); // 1 SOL in lamports
const pumpFunSDK = new PumpFunSDK(provider);
(async () => {
const result = await pumpFunSDK.createAndBuy(creator, mint, createTokenMetadata, buyAmountSol);
console.log(result);
let bondingCurveAccount = await pumpFunSDK.getBondingCurveAccount(mintKeypair.publicKey);
console.log(bondingCurveAccount);
})();
bondingCurveAccount:
BondingCurveAccount {discriminator:<PHONE_NUMBER>402821399n, virtualTokenReserves:<PHONE_NUMBER>000000n, virtualSolReserves:<PHONE_NUMBER>3n, realTokenReserves: 0n, realSolReserves:<PHONE_NUMBER>n, …} complete: true discriminator:<PHONE_NUMBER>402821399n realSolReserves:<PHONE_NUMBER>n realTokenReserves: 0n tokenTotalSupply:<PHONE_NUMBER>000000n virtualSolReserves:<PHONE_NUMBER>3n virtualTokenReserves:<PHONE_NUMBER>000000n [[Prototype]]: Object

Are you on devnet or mainnet?

I just tested devnet and everything worked with a new mint.
I noticed in your code mint and minterKeyPair` are different names, is it possible you are creating a token with one mint and trying to buy a token from a different bonding curve? Can you confirm the mintKeypair.publicKey and the mint value are the same?
Also do you have any tx signatures to share? It might make it easier to debug.

No problem, I assumed so and double checked the 0s in the buyAmountSOL but great its fixed.


I would like to adapt your code to display bluetooth device information. I need to be able to test the code, but don't have chroot.

I like your approach of drawing over the existing wallpaper.png file to display details. I don't know much about making this a service that can be turned on and off. I would appreciate any help.
Here's what this script does:

It defines functions to get battery information and update the wallpaper, similar to the previous script.
It initializes the wallpaper with the initial battery information.
It creates an inotify watcher to monitor the /sys/class/power_supply/ folder for changes.
It adds a watch on the power_supply folder and watches for IN_MODIFY events (file content changes).
When a relevant file in the power_supply folder changes, it updates the wallpaper with the new battery information.
It continues to watch for changes until interrupted by a keyboard signal (Ctrl+C).

#!/usr/bin/env python3
import sys, os, argparse, re, subprocess, inotify.adapters
from PIL import Image, ImageFont, ImageDraw
from dialog import Dialog

# Dialog
d = Dialog(dialog="dialog", autowidgetsize=True)
d.set_background_title("Battery Devices Info")

# Function to get battery capacity level and charge status
def get_battery_info(device_folder):
    capacity_level_file = os.path.join(power_supply_dir, device_folder, 'capacity_level')
    if os.path.exists(capacity_level_file):
        with open(capacity_level_file, 'r') as file:
            battery_capacity_level = file.read().strip()
    else:
        battery_capacity_level = 'N/A'

    status_file = os.path.join(power_supply_dir, device_folder, 'status')
    if os.path.exists(status_file):
        with open(status_file, 'r') as file:
            charge_status = file.read().strip()
    else:
        charge_status = 'N/A'

    return battery_capacity_level, charge_status

# Function to update the wallpaper
def update_wallpaper():
    # Create an image with PIL to display the information
    image_height = len(device_folders) * 80
    image = Image.new('RGB', (400, image_height), color='white')
    draw = ImageDraw.Draw(image)
    font = ImageFont.load_default()

    # Loop through the device folders and display their information
    y = 10  # Initial Y position
    for i, device_folder in enumerate(device_folders, start=1):
        # Parse the device name from the folder
        match = re.search(r'(.*?)(battery_\d+)$', device_folder)
        if match:
            device_name = match.group(1)
        else:
            device_name = device_folder

        # Get battery information
        battery_capacity_level, charge_status = get_battery_info(device_folder)

        # Prepare text to display
        text = f'Device {i}: {device_name}\nCapacity Level: {battery_capacity_level}\nCharge Status: {charge_status}'

        # Wrap the text if it's too long
        max_width = 40
        text = '\n'.join([text[j:j+max_width] for j in range(0, len(text), max_width)])

        # Draw the text on the image
        draw.text((10, y), text, fill='black', font=font)
        y += 80  # Increase Y position for the next device

    # Save the image as wallpaper
    image.save('/media/fat/wallpaper.png')

# Get the list of devices in the /sys/class/power_supply/ folder
power_supply_dir = '/sys/class/power_supply/'
device_folders = [folder for folder in os.listdir(power_supply_dir) if os.path.isdir(os.path.join(power_supply_dir, folder))]

# Update the wallpaper initially
update_wallpaper()

# Create an inotify watcher to monitor the power_supply folder for changes
i = inotify.adapters.Inotify()

# Add a watch on the power_supply folder
i.add_watch(power_supply_dir)

# Watch for IN_MODIFY events (file content changes)
try:
    for event in i.event_gen(yield_nones=False):
        _, _, _, filename = event
        if filename in device_folders:
            # A relevant file changed, update the wallpaper
            update_wallpaper()
except KeyboardInterrupt:
    pass
finally:
    i.remove_watch(power_supply_dir)

# Exit
sys.exit()

Amazing idea!
One bummer you should be aware of, you need (AFAIK) to restart the menu core to update the displayed wallpaper :(
Keep in mind I haven't looked at my own code here in almost 3 years, but I do add the code to startup (updated how this works was the last thing I did in this project), and I might remember wrong, But I think I wait until internet is reachable, and update the wallpaper, and then I check if the menu core is still running, and I restart the menu core if the user did not open another core yet.
Afaik there is no better way to update the wallpaper than to restart the menu core. I am not sure Sorg would be interested in having a way to do that. If there isn't already. I might be wrong though!

I just wanted to give an update on this:
I decided not to proceed, but I will leave this info here in case someone else stumbles upon it in the future.
I was able to compile my scripts to run without additional dependencies using the following command:
 pyinstaller --onefile --add-binary "/usr/lib/arm-linux-gnueabihf/libxcb.so.1:." --hidden-import=PIL bgtest.py

The hidden-import PIL adds python image library named pillow to the executable so that it can be a standalone program. The --add-binary adds libxcb to the standalone executable.
obviously, if you are doing something different and don't need the pillow library, you can eliminate that.
My dev environment was a Debian buster docker container on my M1 mac. All I had to do was install the official docker app, launch it, and then run this command from the terminal. I tried a newer Debian build, but the version of glibc was too new.
Here is the command to get the container and mount the container's /app directory to a local filesystem path:
docker run -it -v /Users/alex/development/armv7:/app arm32v7/python:3.9-slim /bin/bash

In case that is obsolete in the future, here is where all of the docker containers are hosted:
https://hub.docker.com/r/arm32v7/python/

Finally, here is where I ended up with the script.
#!/usr/bin/env python3
import sys, os, argparse, re, subprocess, inotify.adapters, textwrap
from PIL import Image, ImageFont, ImageDraw
from dialog import Dialog
import logging

# Set up logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

# Dialog
d = Dialog(dialog="dialog", autowidgetsize=True)
d.set_background_title("Battery Devices Info")

def get_battery_info(device_folder):
    logging.info(f"Fetching battery info for device {device_folder}...")
    capacity_level_file = os.path.join(power_supply_dir, device_folder, 'capacity_level')
    if os.path.exists(capacity_level_file):
        with open(capacity_level_file, 'r') as file:
            battery_capacity_level = file.read().strip()
    else:
        battery_capacity_level = 'N/A'

    status_file = os.path.join(power_supply_dir, device_folder, 'status')
    if os.path.exists(status_file):
        with open(status_file, 'r') as file:
            charge_status = file.read().strip()
    else:
        charge_status = 'N/A'

    logging.info(f"Device {device_folder}: Capacity Level = {battery_capacity_level}, Charge Status = {charge_status}")
    return battery_capacity_level, charge_status

def update_wallpaper():
    logging.info("Updating wallpaper...")
    wallpaper_path = '/media/fat/wallpaper.png'

    # Load existing wallpaper or create a default one if not found
    if os.path.exists(wallpaper_path):
        image = Image.open(wallpaper_path)
    else:
        logging.info("No existing wallpaper found. Creating default base wallpaper.")
        image = Image.new('RGB', (1920, 1080), color='grey')  # Assuming a default size; adjust as necessary

    draw = ImageDraw.Draw(image)
    font = ImageFont.load_default()

    if not device_folders:
        logging.info("No device folders found. Displaying default message.")
        draw.text((10, 10), "No Bluetooth Controllers Available!", fill='black', font=font)
    else:
        y = 10
        for i, device_folder in enumerate(device_folders, start=1):
            match = re.search(r'(.*?)(battery_\d+)$', device_folder)
            device_name = match.group(1) if match else device_folder
            battery_capacity_level, charge_status = get_battery_info(device_folder)
            text = f'Device {i}: {device_name}\nCapacity Level: {battery_capacity_level}\nCharge Status: {charge_status}'
            max_width = 40
            wrapped_text = textwrap.fill(text, width=max_width)
            draw.text((10, y), wrapped_text, fill='black', font=font)
            y += 100

    logging.info(f"Saving wallpaper to {wallpaper_path}...")
    try:
        image.save(wallpaper_path)
        logging.info("Wallpaper saved successfully!")
    except Exception as e:
        logging.error(f"Error saving image: {e}")

power_supply_dir = '/sys/class/power_supply/'
device_folders = [folder for folder in os.listdir(power_supply_dir) if os.path.isdir(os.path.join(power_supply_dir, folder))]
logging.debug(f"Detected devices: {device_folders}")
update_wallpaper()

i = inotify.adapters.Inotify()
i.add_watch(power_supply_dir)

try:
    logging.info("Starting watch on power_supply directory...")

    for event in i.event_gen(yield_nones=False):
        (header, type_names, watch_path, filename) = event

        # If directory is created inside the watched path
        if 'IN_CREATE' in type_names and 'IN_ISDIR' in type_names:
            logging.info(f"New directory detected: {filename}. Updating wallpaper...")
            device_folders = [folder for folder in os.listdir(power_supply_dir) if os.path.isdir(os.path.join(power_supply_dir, folder))]
            update_wallpaper()

#    for event in i.event_gen(yield_nones=False):
#        _, _, _, filename = event
#        if filename in device_folders:
#            logging.info(f"Change detected in {filename}. Updating wallpaper...")
#            update_wallpaper()

except KeyboardInterrupt:
    logging.info("KeyboardInterrupt detected. Exiting...")
finally:
    i.remove_watch(power_supply_dir)

sys.exit()

So if you got Sorg to add a way to load new wallpapers on the fly (I guess he wont, benevolent dictator(no offense)), then you could add a udev rule to run your script and update the wallpaper on the fly


chore(main): release 0.11.0

:robot: I have created a release beep boop
0.11.0 (2023-12-25)
Features

day 24 completed (5bceb23)

Bug Fixes

day24 part1 completed (6525b00)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/fretboarder/aoc23/releases/tag/v0.11.0 :sunflower:


Drydock

@DanSanche are you still interested in making these changes? If so, can you re-push under the Github account that has signed the cla?


Is the Information outdated now?

I tested on my pc and find out that I can use a virtual Event in my base class ,and make the derived class to
override it.Thus the correct result was yielded.

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

ID: 48effe00-bf69-be72-bb9b-b343702de37b
Version Independent ID: bd6b5366-556a-76e6-4ccd-e06ddaff1cd1
Content: How to: Raise Base Class Events in Derived Classes - C# Programming Guide
Content Source: docs/csharp/programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

The advice is not outdated. If a field-like event overrides a virtual event, then the derived class can raise the event, but the base class most likely cannot.
Consider the following sample:
using System;

namespace PR11745
{
    class Program
    {
        static void Main()
        {
            var obj = new Derived();
            obj.Event += (source, e) => Console.WriteLine("Event handler invoked.");
            obj.Demo1();
            obj.Demo2();
        }
    }

    class Base
    {
        public virtual event EventHandler<EventArgs> Event;

        public void Demo1()
        {
            Console.WriteLine("Base.Demo1 is raising Event.");
            this.Event?.Invoke(this, EventArgs.Empty);
            Console.WriteLine("Base.Demo1 finished.");
        }
    }

    class Derived : Base
    {
        public override event EventHandler<EventArgs> Event;

        public void Demo2()
        {
            Console.WriteLine("Derived.Demo2 is raising Event.");
            this.Event?.Invoke(this, EventArgs.Empty);
            Console.WriteLine("Derived.Demo2 finished.");
        }
    }
}

The output is:
Base.Demo1 is raising Event.
Base.Demo1 finished.
Derived.Demo2 is raising Event.
Event handler invoked.
Derived.Demo2 finished.

That is, the event handler in Main was not called when Base.Demo1 raised the event.
You can fix that by adding a method that raises the event, and using that instead of overriding the event:
using System;

namespace PR11745
{
    class Program
    {
        static void Main()
        {
            var obj = new Derived();
            obj.Event += (source, e) => Console.WriteLine("Event handler invoked.");
            obj.Demo1();
            obj.Demo2();
        }
    }

    class Base
    {
        public event EventHandler<EventArgs> Event;

        protected void RaiseEvent(EventArgs e)
        {
            this.Event?.Invoke(this, e);
        }

        public void Demo1()
        {
            Console.WriteLine("Base.Demo1 is raising Event.");
            this.RaiseEvent(EventArgs.Empty);
            Console.WriteLine("Base.Demo1 finished.");
        }
    }

    class Derived : Base
    {
        public void Demo2()
        {
            Console.WriteLine("Derived.Demo2 is raising Event.");
            this.RaiseEvent(EventArgs.Empty);
            Console.WriteLine("Derived.Demo2 finished.");
        }
    }
}

The output then is:
Base.Demo1 is raising Event.
Event handler invoked.
Base.Demo1 finished.
Derived.Demo2 is raising Event.
Event handler invoked.
Derived.Demo2 finished.

@KalleOlaviNiemitalo  Thanks for providing the answer to @asloppyone 's question.
I'll close this as an answered question.


fix: adjust wallet icon arrangement in sidebar

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


When preprocessing data, an error related to the h5 data processing tool occurs

Traceback revealed:ValueError: Unknown compression filter number: 32001
I don't know how to solve this, I ' ve checked blosc lib but no updates were found that conflict with the current deployment, I strictly followed the installation requirements and order of conda and pip.
If you have any solution, please reply, thanks for your work

Not sure what's wrong but have you tried out random stack overflow recommendations? E.g. https://stackoverflow.com/questions/37464262/blosc-compression-in-hdf5-via-h5py

Got the very same issue, any follow-ups would be much appreciated


execvp(3) failed.: No such file or directory

Hi,
My server can't start. I get this error:
Server is starting...
execvp(3) failed.: No such file or directory
[WARNING] This server has been detected as crashed by the management daemon. Restarting now...execvp(3) failed.: No such file or directory
[WARNING] This server has been detected as crashed by the management daemon. The restart process is being skipped due to the frequency at which this server is crashing (< 60 seconds between crashes).
What can I do?
Kind Regards,
Stefan Fransen

I don't think this particularly makes sense on GH:Issues. I think you should go over to our community forums to ask for support: https://community.pufferpanel.com/
Be sure to give as much information as possible, any logs from Scales will help immensely in solving your issue.

Hello,
You need to install Java. Just run the following command on your Scales node.
On Ubuntu: apt-get install default-jre-headless
On CentOS: yum install java-1.7.0-openjdk


Receiving unwanted error message in multi-admin of ECM test-cases

Issue:

Receiving unwanted error message in multi-admin of ECM test-cases
"Commissioning discovery over BLE failed: ../../third_party/connectedhomeip/src/platform/Linux/BLEManagerImpl.cpp:830: CHIP Error 0x00000032: Timeout"

When we tried to commissioning TH2 to DUT after successful commissioning TH1 to DUT we are facing above issue which is unnecessary because all the commissioning flow is doe and also got message
"Device commissioning completed with success".

Steps to repoduce :
DUT side : sudo rm -rf /tmp/chip_*
sudo ./chip-all-clusters-app --wifi
TH side : ./chip-tool pairing ble-wifi 1 zigbeehome matter123 20202021 3840 (on TH1)
./chip-tool pairing open-commissioning-window 1 1 100 1000 3840(on TH1)
./chip-tool pairing manualcode 2<PHONE_NUMBER>6(on TH2)
Issue screenshot

PFA logs
ECM_fail.txt
ECM_fail_dut.txt

But fundamentally, I expect the issue is that SetUpCodePairer::StopConnectOverBle gets called, which does:
    return mBleLayer->CancelBleIncompleteConnection();

That lands in BleLayer::CancelBleIncompleteConnection which does:
    CHIP_ERROR err = mConnectionDelegate->CancelConnection();
    if (err == CHIP_ERROR_NOT_IMPLEMENTED)
    {
        ChipLogError(Ble, "BleConnectionDelegate::CancelConnection is not implemented.");
    }

and based on my assumption baed on the log above that the commissioner is running on Linux, that lands in the Linux BLEManagerImpl::CancelConnection which does:
CHIP_ERROR BLEManagerImpl::CancelConnection()
{
    return CHIP_ERROR_NOT_IMPLEMENTED;
}

So first question.  Is there a "BleConnectionDelegate::CancelConnection is not implemented." error log much earlier in the log.  @sowmyassp

Commit used is - 41a431dcc7c123699818636afd01b57412a6f3a4
For the above question yes we get "BleConnectionDelegate::CancelConnection is not implemented." error log much earlier in the log.

Alright, that's the issue then: Linux does not implement canceling the BLE connection once we know we don't need it anymore, and eventually it times out and logs an error on timeout....

Then can we say this test-case is pass or its an major issue??

Testcase is passing as long as the device ends up commissioned and the client exists with a success status, I would think.  The logging along the way doesn't really matter.


ModuleLoaderConfiguration typing definition all properties required

The ModuleLoadConfiguration defined in vss.d.ts L2519-2528 has all properties as non-optional. This is contrary to samples which only setup init like so:
VSS.init({
    explicitNotifyLoaded: true,
    moduleLoaderConfig: {
        paths: {
            "scripts": "scripts"
        }
    }
});

// Wait for the SDK to be initialized, then require the script, then signal load complete
VSS.ready(function () {
    require(["./scripts/actions"], function (actions) {
        VSS.notifyLoadSucceeded();
    });
});

Should the interface be updated to:
interface ModuleLoaderConfiguration {
    baseUrl?: string;
    contributionPaths?: { [key: string]: ContributionPath; };
    paths?: { [key: string]: string; };
    shim?: { [key: string]: ModuleLoaderShimConfiguration; };
    /**
    * The maximum amount of time (in seconds) the AMD loader will wait for scripts to load.
    */
    waitSeconds?: number;
}

I agree with that. Because in TypeScript's intelliSense perception, it caused me a misunderstanding.


Flag validation isn't working

If you try run connectme without an API key, you get a silent error
Setting the API works as expected

Fix for #19


adding AzureDevOps Discovery Processor

Hey, I just made a Pull Request!
This is a draft PR for Azure DevOps Discovery processor (similar to GitHub and others).
It's missing tests and a more flexible setup, but I would like to get an initial PR up as soon as possible to get comments while working on the other things.
Closes #7330
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] All your commits have a Signed-off-by line in the message. (more info)

Open questions that I have:

What's the diff between search on cloud vs onpremise? Just the base URL?
What's the repository url structure onpremise, same as cloud? {baseUrl}/org/project/_git/repo?path=...
What search options do we want to support? I'm thinking of:

dev.azure.com/{org}/{project} -> this will search for catalog-info.yaml on ALL repos on ALL directories
dev.azure.com/{org}/{project}/_git/{repo} -> this will search for catalog-info.yaml on {repo} on ALL directories
dev.azure.com/{org}/{project}?path=/ -> this will search for catalog-info.yaml on ALL repos, but only on root dir
dev.azure.com/{org}/{project}?path=/* -> same as dev.azure.com/{org}/{project}
dev.azure.com/{org}/{project}?path=/src -> this will search for catalog-info.yaml on ALL repos, but only on /src dir
dev.azure.com/{org}/{project}?path=/src/* -> this will search for catalog-info.yaml on ALL repos, but only on /src dir and below
dev.azure.com/{org}/{project}?file=mycatalog.yaml -> this will search for mycatalog.yaml (instead of catalog-info.yaml) on ALL repos on ALL directories
dev.azure.com/{org}/{project}?path=/src&file=mycatalog.yaml -> this will search for mycatalog.yaml (instead of catalog-info.yaml) on ALL repos on src dir

@awanlin Would like to get your opinion on the above

Thanks for starting on this, very exciting!
To answer your questions:

Yes, in place of dev.azure.com on-premise can be pretty much anything you want it to be, the remaining URL parts after that are "generally" the same. I've run into odd cases here and there but the repository APIs have been pretty consistent
Yes, the repository URL structure for on-premise is the same
Your suggestions look good to me and what I would expect but I have a feeling that if we can use the search function in the AzureUrlReader @Rugvip mentioned we will get all of those and then some. The then some being support for both cloud and on-premise :)

https://github.com/backstage/backstage/blob/1fd9e6f601cabe42af8eb20b5d200ad1988ba309/packages/backend-common/src/reading/AzureUrlReader.ts#L147

AzureUrlReader seems to search within a repo, so I guess I'll still need the search API to find the repos that have the yaml and then use AzureUrlReader as it supports all the glob/searching options.
@awanlin what's the search api url on-premises? Because the cloud version is a separate subdomain:
https://almsearch.dev.azure.com/${org}/${project}/_apis/search/codesearchresults?api-version=6.0-preview.1

Yeah if the native APIs support what you need, then they can be superior to use!
You'll see in the build error that you need to run yarn build:api-reports and commit the results of that along with the PR.

thanks @freben
just added a changeset as well 👍

@goenning you are correct looks like using the Azure DevOps Code Search API is the right direction for this. Your recent updates look great! The URL for on-premise is very similar as per the docs:
https://{baseUrl}/{collection}/{project}/_apis/search/codesearchresults?api-version=5.0-preview.1
Now the documentation for on-premise says you need to use api-version=5.0-preview.1 but I've just tested this and it will also work fine with api-version=6.0-preview.1

Question regarding Team Projects: we have about 12, of which about 4 or 5 have repos with items we'd like to catalog in Backstage using this feature. Is the intention that we would just list each of these Team Project like this for example:
catalog:
  locations:
    - type: azure-discovery
      target: https://dev.azure.com/myorg/business-unit-alpha
    - type: azure-discovery
      target: https://dev.azure.com/myorg/business-unit-beta
    - type: azure-discovery
      target: https://dev.azure.com/myorg/business-unit-charlie

Yes, that's how I'd see it being setup. I'd imagine most orgs have only a couple of projects (we have 3) and we only want one on backstage.
But I'll have a look later if it's possible to search across multiple projects in a single API query, because we could then be more flexible and have wildcards just like in repository name.

@freben I think I have addressed them all

any chance we could search all projects inside an organization. we have at least 30 projects..

qualquer chance de podermos pesquisar todos os projetos dentro de uma organização. temos pelo menos 30 projetos..

+1


Remove unnecessary font types

Hello, eot, ttf and svg-fonts are not really necessary anymore, since woff is supported in IE9+ and woff2 in evergreen browsers, so those can probably be removed. More info about browser support here (https://css-tricks.com/snippets/css/using-font-face/). I also added a woff2 version of the icon font.

Updated to latest master.

It would be good to know the browser visit statistics for the website before approving. Is there a sizable chunk of visitors that this impacts?

Browserlist is set to IE9+, although layout is slightly restricted in IE9 due to the flexbox grid. It should be fine in most major browser that got released in the last and this decade, aside from Chrome 4, Safari 4.3 and the stock Android 4.3 browser.

No, Browserlist is set to IE9+, which supports woff1.

Sure, there's a list. But real living people in Germany don't match a text file that developers find convenient. The entire purpose is to get as many people as possible to download the app, not snub someone who doesn't even know what it means to be 2 versions behind.

Okay, makes sense.

😞 my comment was "It would be good to know the browser visit statistics for the website before approving", not "don't do this".

Don't worry. It's only like 10 lines of code, that would be removed. Not really worth the effort to be honest, especially since the existing code still works and changes would probably only save a few bytes.


Please Write MVVM Dagger Mocked Unit test

@vipinhelloindia It is in development and soon you will get this. Stay tuned!

This has been taken care of in the latest update. Do check out the all-new rewritten TvMaze repo in Kotlin


Input Filter Factory uses a different FilterPluginManager instance

I created a custom filter which needs dependency injection by a factory. I added the filter to the config array like so:
return  [
    'filters' => [
        'factories' => [
            'ToFile' => 'Module\Factory\Filter\ToFile',
        ],
    ],
];

I am able to get a filter instance from the FilterPluginManager inside a controller:
$filter = $this->getServiceLocator()->get('FilterManager')->get('ToFile');
var_dump($filter);

Inside the init() method of a class extending Zend\Form\Form I configured an input filter using the custom filter. The form also uses custom form elements from the FormElementManager.
$this->getInputFilter()->add([
    'name' => 'file',
    'required' => false,
    'filters' => [
        [ 'name' => 'ToFile' ],
    ],
]);

Custom form elements are working fine but the custom filter always raises a ServiceNotFoundException:
Zend\Filter\FilterPluginManager::get was unable to fetch or create an instance for ToFile

I found out that the Input Filter Factory is using a different FilterPluginManager instance which has never seen the config array. The custom filter with its factory is not included in the plugin manager.
This is unexpected behaviour? Or am I wrong?

This is expected behavior.
To get the input filter as configured at the application level, you need to do the following:

Your input filter needs to be registered as a service under the input_filters key (this follows standard ServiceManager configuration paradigms); this ensures that when you retrieve it, its factory is injected with the configured filter and validator plugin managers.
Your form needs to be registered as a service under the 'form_elements` key (this follows standard ServiceManager configuration paradigms); this ensures that when you fetch the form, it is configured using hydrators configured in your hydrator plugin manager and input filters configured in your input filter plugin manager (which was the above point).
Finally, you will then need to either pull your form (and thus its related input filter) from the form_elements plugin manager, and/or use a factory to do so in order to inject your form into the appropriate controller.

Alternately, you can set all this up semi-manually.
In your controller, you will do something like the following:
$services = $this->getServiceLocator();
$inputFilters = $services->get('InputFilterManager');
$inputFilter = new YourCustomInputFilter();
$inputFilterFactory = $inputFilter->getFactory()->setInputFilterManager($inputFilters);
$inputFilter->init();

A simpler approach would be to register your input filter with the InputFilterManager. Assuming you have no constructor dependencies, it could be registered as an invokable:
return [
    'input_filters' => [
        'invokables' => [
            'YourCustomInputFilter' => 'FullyQualfied\Namespace\For\YourCustomInputFilter',
        ],
    ],
];

From there, you could do the following in your controller:
$services = $this->getServiceLocator();
$inputFilters = $services->get('InputFilterManager');
$inputFilter = $inputFilters->get('YourCustomInputFilter');

Even better would be to inject it directly into your controller via the constructor, and to create a factory for your controller. The tutorial demonstrates such factories.
What the above approaches do is ensure that any input filters or inputs you've defined in the InputFilterManager are injected in your custom input filter's internal factory — and this simultaneously pulls the configured FilterManager and ValidatorManager and sets them in the default filter and validator chains, ensuring that you have access to those filters and validators you defined in modules and/or the application level.
The reason it works this way is because ZF2 does not define any globally static plugin managers; you must inject them where you want them. This prevents a whole category of problems we encountered in ZF1, and makes your code ultimately more testable (particularly if you inject the input filter into the controller instead of pulling it from the service manager within your controller).

Thank you very much for this detailed answer!
I want to define the input filters next to their related form elements inside a class extending Zend\Form\Form, not as different services. I retrieve the form instance through the FormElementManager which does inject the form factory with its dependencies. That's why the custom form elements are available in my form.
When the object bound to the form does not implement InputFilterAwareInterface, the form creates its InputFilter instance itself when getInputFilter gets called (as described here):
$this->filter = new InputFilter();

In this case, the Zend\InputFilter\Factory dependency of this newly created input filter instance does not get satisfied which results in creating a different factory instance with separate ServiceManagers.
The form has a pointer to a Zend\InputFilter\Factory instance with properly injected ServiceManagers. It uses it here.
Adding following line right after the statement shown above makes custom filters and validators available inside the form as expected:
$this->filter->setFactory($this->getFormFactory()->getInputFilterFactory());

I wanted to continue the discussion here before opening a pull request in the zend-form repository. Let me know about your thoughts!


Quick fix for cleanup of mbtiles

Quick fix for #757
Added the parameter dimensions to remove_tile function although it is not used.

Thanks for that!


fix: rename gitea secret for better description

partially fixes #216
This only covers the gitea secret renaming, as apparently the argocd one is generated by argo on installation, and is hardcoded to argocd-initial-admin-secret.
See here: https://github.com/argoproj/argo-cd/blob/0f11dfb5961361807962aafc68b11426b8a47490/cmd/argocd/commands/admin/initial_password.go#L16
There's some world where we could replicate the secret into one with a name we like better, but that sounds like a recipe for confusion.

Approved !

@rattboi @nabuskey Im getting below error while pull the latest code and deploy. Im not sure if this is related to this PR.
❯ k describe externalsecrets.external-secrets.io gitea-credentials -n backstage
Name:         gitea-credentials
Namespace:    backstage
Labels:       <none>
Annotations:  argocd.argoproj.io/tracking-id: backstage:external-secrets.io/ExternalSecret:backstage/gitea-credentials
API Version:  external-secrets.io/v1beta1
Kind:         ExternalSecret
Metadata:
  Creation Timestamp:  2024-04-26T18:55:27Z
  Generation:          1
  Resource Version:    3292
  UID:                 cc875094-b758-42ec-b20a-07265d00bd8e
Spec:
  Data:
    Remote Ref:
      Conversion Strategy:  Default
      Decoding Strategy:    None
      Key:                  gitea-credential
      Metadata Policy:      None
      Property:             username
    Secret Key:             GITEA_USERNAME
    Remote Ref:
      Conversion Strategy:  Default
      Decoding Strategy:    None
      Key:                  gitea-credential
      Metadata Policy:      None
      Property:             password
    Secret Key:             GITEA_PASSWORD
  Refresh Interval:         0
  Secret Store Ref:
    Kind:  ClusterSecretStore
    Name:  gitea
  Target:
    Creation Policy:  Owner
    Deletion Policy:  Retain
    Name:             gitea-credentials
Status:
  Conditions:
    Last Transition Time:  2024-04-26T18:55:27Z
    Message:               could not get secret data from provider
    Reason:                SecretSyncedError
    Status:                False
    Type:                  Ready
Events:
  Type     Reason        Age                 From              Message
  ----     ------        ----                ----              -------
  Warning  UpdateFailed  40s (x14 over 85s)  external-secrets  error retrieving secret at .data[0], key: gitea-credential, err: secrets "gitea-credential" not found

are you using a rebuilt idpbuilder binary, or just the ref-implementation package against the old binary? The secret is provisioned by idpbuilder itself, and I would say this is a breaking change.

Yea just need to update the secret name in the example.

I think you both are right. I didnt rebuild the binary, let me try that out! Thanks!

@nabuskey Could we have a patch release for this breaking change?

+1 on a micro release if the latest binary doesnt go with the ref implementation.

Yeah we really need to decouple the two and pin to a version


Warp Terminal support

I'm not sure if this is a bug or a feature request, I mostly just want to understand how it works.
I've been trying out Warp. It has its own Ctrl-R integration, fine, but what's weird is that Hishtory can read Warp's command history, but Warp cannot read Hishtory's commands created in a different terminal like iTerm. I'm not sure how Hishtory binds itself to the zsh history, but apparently Warp doesn't work with it.
Any thoughts on how I can debug this, or if this is expected behavior?

I'm marking this as closed, but if you still are running into issues here that you think could be improved upon by hishtory, please reopen this!


fix: do not hard-code arch to amd64

Issue #, if available:
Description of changes:
Instead of hard-coding GOARCH to amd64, set it based on docker TARGETARCH.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/ok-to-test


Samsung S21: Noisy AI Inference Results with App Animations in PlayService/GPU Mode

System information

Android Device information :
samsung/o1qzhx/o1q:12/SP1A.210812.016/G9910ZHU2CVG2:user/release-keys
TensorFlow Lite in Play Services SDK version :
'com.google.android.gms:play-services-tflite-support:16.0.1'
'com.google.android.gms:play-services-tflite-gpu:16.1.0'
Google Play Services version
23.16.13(190408-527363516)

I followed the tutorial from
https://www.tensorflow.org/lite/android/play_services#java_6.
Everything seemed fine on almost all devices. However, our test team recently attempted to test our app on the Samsung S21 and discovered that the AI inference results are noisy when there are animations on the app's GUI. This issue only occurs in the PlayService/GPU scenario. If I switch to standalone mode, everything works well. We also found that setting "android:hardwareAccelerated" to false in the AndroidManifest.xml can produce stable results, but it's obviously not a reasonable solution. Has anyone else experienced a similar issue? I would appreciate any advice or suggestions.

I have the same problem on Samsung S21. Prediction errors will occur randomly when hardwareAccelerated is enabled.

Update some new information.
I have discovered that not only can animations in the app cause errors, but if there are operations in other apps simultaneously with the model's prediction, they can also impact the predicted results of the model.

Hi @JeremyJian,
Can you please fill out the issue template?: https://github.com/tensorflow/tensorflow/blob/master/ISSUE_TEMPLATE.md
Additionally for this use case are you using the Task Library API? The Interpreter API? Are you using a real device or an emulator in Android Studio? Is the same behavior happening in both?
Any additional information will be great. Thanks!

Hi, in my project, I use the Interpreter API provided by Google Play Services. We have found this issue only on the Samsung S21, which is a real device. We have also run the same code on other devices such as the Pixel 5, Pixel 6, and Samsung S10, and everything works fine. To further clarify the issue, we have written a simple code using a simple model (MNIST model) to observe the behavior. The video is shown below.
https://drive.google.com/file/d/1CUb6fIeuX-Xg1KA4p0lKM5umjmjb5wJS/view
In the sample app, we perform inference with the same input(handwritten 7) 100 times for each scenario and display the accuracy on the user interface. As you can see in the video, when we run the inference and the circular progress bar simultaneously, the accuracy drops to 94%. However, we are using the exact same input (a bitmap of a 7-digit number), so the accuracy should always be 100%.

Hi @JeremyJian, can you try on a Samsung S21 emulator as well and let us know the results? I'm trying to determine if we can replicate it on emulator here as well (this will help us immensely as that would make it reproducible on our end) otherwise we would have to procure a real device. Additionally, it seems your drive link is going to the github issues page instead, I can copy and paste the info to get there but if you can edit it so that the community doesn't get confused, that'll be great.

Sorry, I can't find the emulator of Samsung S21 (SM-G9910) from Android Studio or Firebase TestLab. On the other hand, our issue only occurs in scenarios where both the GPU and Google Play Services (com.google.android.gms:play-services-tflite-gpu:16.2.0) are used simultaneously. It seems that reproducing this issue on a simulator may not be suitable. As described in the initial question, using the CPU or the standalone version of TensorFlow Lite (org.tensorflow:tensorflow-lite-gpu:2.9.0) does not encounter this problem.
Thank you for your reminder. The video link has been corrected.

Thanks for the info, @sirakiin, can you please take a look at this? Thanks.

Hi, Is there any new information or update regarding this issue?
Thanks

We have recently encountered similar issues with both the Samsung S22 Ultra and S23 Ultra devices. Including the previously mentioned S21 series, are equipped with Qualcomm processors. While we're uncertain whether the processor is directly linked to these problems, we are eager to receive any updates or new information regarding this issue. Please keep us informed if you have any new insights.

The similar noisy output is observed on other devices as well when the inference is run on hardware accelerated.
The results of same transformer model with float32 precision is different on Android CPU and GPU. This issue becomes more significant when the noise explodes over deep architectures.
In my case model run fine on Intel x86 CPU, Nvidia A100 GPU, Android Qualcomm based CPUs of S23, s24, Fold5 etc. But on Android GPU (qualcomm snapdragon 855 or 845) the results are different and unusable. Not sure what the reason it.
Using tflite gms apis 16.0.1

Hi, @JeremyJian
Thanks for raising this issue. Are you aware of the migration to LiteRT? This transition is aimed at enhancing our project's capabilities and providing improved support and focus for our users. As we believe this issue is still relevant to LiteRT we are moving your issue there. Please follow progress here: https://github.com/google-ai-edge/LiteRT/issues/170
Let us know if you have any questions. Thanks.


SHRTCODE (Independent Publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[x] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[x] I attest that the connector works and I verified by deploying and testing all the operations.
[x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[ ] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[x] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[x] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[x] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Hi @v-EgorKozhadei, Thank you.
about the other connectors getting affected:- That connector has also been submitted for me and @harshinivarma, I have just updated the contact email address in that, and nothing changed in the API definition or settings file.
Do let me know if it's possible to change or can't be done.
Thank you,
Chandra

Hi @sekharmalla!
Thank you for the answer! I think it'd be better to update an existing connector in another PR.
In this PR we will review the new connector and queue it up for certification and deployment once everything is done here.
Could you please raise a PR with an update for the other connector?
Let us know if you have any questions, thank you!

Hello @v-EgorKozhadei, thank you for your response,
It's okay i will update that PR sometime later as i have few updates coming to that connector as well, thanks and looking forward for certifying the connector.

Hello just checking on the connector status, do I have to make any changes?
please do let me know if yes,
Regards,

Hi @sekharmalla!
Thank you very much for the update!
Please make sure that apiDefinition file for Notion connector is not affected in any way so that it is not included in changed files for this PR. You can raise an update for this connector in a separate PR.

Hi @v-EgorKozhadei
I have kept the file as it is and did not perform any changes, if it's possible can you check from your side and do let me know if I have to delete the file from this PR.
right now it's showing like this,

Hi @sekharmalla!
Thank you for your message!
We should remove the file from the PR, yes. You could try replacing the contents with the original ones that are in the open-source repository, the link to the file here. This file should not show up in "Files changed" tab.

Hi @v-EgorKozhadei
Thank you for your message.
I have replaced content with original ones but it's still there in files changed. Please do let me know what should i do now and sorry for the trouble.

Thanks

Hi @sekharmalla!
Could you please try to go to "Changed files" tab, click at three dots icon at the right upper corner of the file, click on "Edit file". I see that there's a newline at the end of the file. Try to remove it and click on "Preview changes" tab. Removing the newline should make the file match the original one.

Hi @v-EgorKozhadei
I have removed the space and checked in the preview but it's showing like this even after committing the file.

Thanks,

Hi @sekharmalla!
It should be displayed as unchanged. I tried comparing both files and all characters are the same now. There must be something wrong with the formatting, but files look the same for me.
Could you please quickly recreate your fork and raise a new PR with SHRTCODE connector files only? I'm sorry for the inconvenience.

Hi @v-EgorKozhadei
Sure, I will now open New PR with SHRTCODE and leave this PR.
Thanks,

Hi @sekharmalla!
Thank you very much! I'll close this one when the new one will be opened.

@v-EgorKozhadei
I am not able to make new PR as it's showing 'is able to merge'

is it possible you can refer me to any guide that I can follow?
Thanks

@sekharmalla
I'll try to push one change to your branch to see if it fixes the problem.
If it won't help, we can recreate the fork: delete the existing one by going to Settings tab in your fork, create a new fork from the open-source repository by clicking on "Fork", clone new fork, add and commit connector files, then create a new PR.

@sekharmalla
Thank you for your patience.
The issue is fixed, everything is OK now.

Thank you very much you are awesome @v-EgorKozhadei 👍🏼

@sekharmalla
Congratulations, your connector is approved. We will move forward with the certification process. We are preparing your connector for production deployment and will queue up for the next deployment schedule. Once your connector onboards the next deployment schedule, it starts to deploy your connector in our production environments that typically takes 3-4 weeks.
Please let us know if you have any questions.
Thank you very much for working with us.

[[certify-connector]]

Hello @sekharmalla,
I hope you are doing well.
Your connector is in production deployment and queued up for the next deployment schedule. This process typically takes 3-4 weeks. Please note that the documentation for your connector will not be generated until the deployment process is in the final steps.
Please let us know if you have any questions.
Thank you very much for working with us.

Hello @sekharmalla,
I hope you are doing well.
Congratulations, the deployment of your connector and documentation page was already completed, We have a short survey on the connector certification process that we would like for you to complete. Your feedback is appreciated and will help us improve the program.
Thank you very much for working with us.


update for Bulgarian language

I noticed some wrong translations. Here is re-translated file. Now everything is perfect. :)
bg.zip

This will be included in 4.6.1... if you want to try the beta release:
sudo npm install -g --unsafe-perm homebridge-config-ui-x@next

bg.zip
Fixed translations.

Will you put new language improvments in next update? I uploaded the new file at 25 september.

Sorry I missed that. If you edit the file on GitHub you'll be given the opportunity to create a "Pull Request" which allows me to merge in your changes directly (and you're given attribution for them).
https://github.com/oznu/homebridge-config-ui-x/blob/master/ui/src/i18n/bg.json

I don’t remember all changes that I had made.

Please put the updated bg.json in the plugin.

Hi , yesterday I updated the plugin but changes on my translation are not included. Will you update Bulgarian language?

Hi @mafyata, it will be included in the next release.
Thanks.


SH1106 I2C not working

I tested the demo on a SH1106 with I2C and it works as follows:
There is a very fast left scrolling text in line 1
the image drawn before (another demo) is still displayed (the display did no clear)
After re-power the most of the screen is garbish with some pixel lines scrolling fast to the left
NodeMCU with SDA=D2 and SCL=D1

I can confirm, same issue

Has anyone ever resolved this issue with the SH1106 library working with ESP8266?
I have been stuck on this

For me this Library works fine with ESP-8266, see http://www.hjgode.de/wp/tag/fhem/ and https://github.com/hjgode/SH1106_mqtt_display

Hello i have this same problem. My skills are in hardware mostly. I'm in need of some help please. Can someone please help me. I also get the same junk links and scrolling at the bottom.
Joseph

Hello i have this same problem. My skills are in hardware mostly. I'm in need of some help please. Can someone please help me. I also get the same junk links and scrolling at the bottom.
Joseph


Demo Notebook: Integrating feedback for next demo

Create a demo notebook that combines the basic tutorial and the attack

Notes:

Show attack is thwarted + utility

Two boxes next to each other

Here’s a database

Here are the stats we we want to get
Now’s there's an attack, it’s thwarted

Big picture, then details

e.g. show validation working before all the ways that dp calculation fails b/c validator catches it

Accelerated. Version needed for 4/27-28 for 4/30 rehearsal


chatcommunicate.py: Using sdc to invoke standard commands

Note that "sh " and "!!/" are of the same length.
Linked issue #4083

Let's not use sh, due to the fact that there is a Unix/Linux shell of the same name. When I first saw this, I thought you were trying to allow running arbitrary commands on the SD instance, so there's definitely room for confusion here. I also don't want to be training people's muscle memory to be typing sh reboot, etc.

 Yeah, it might be convenient in some cases. Yes, running SD effectively gives people with write access to the GitHub repo the ability to run arbitrary code, but that is a much smaller subset of people and leaves a record on GitHub which is difficult to eliminate (you can cover over it, but it's hard to actually eliminate the record).

So... What I actually mean is to implement something like
def grep(in, exp):
    try:
        regex_exp = regex.compile(r"^.*" + exp + r".*$")
    except Exceptions:
        raise CmdException("Invalid regex")
    in_lines = in.split('\n')
    out = list()
    for line in in_lines:
        if regex_exp.match(line):
            out.append(line);
    return "\n".join(out)

@user12986714  I think this is a good idea.
I tested this new code with my personal Smokey instance and found issues with commands that used raw data.
Examples:

sdc bisect test searches for bisect testin the watchlist/blacklist instead oftest
sdc watch-number 123456789 tries to add watch-number 123456789 to the watched_numbers.txt list as opposed to 123456789
sdc blacklist-keyword test tries to blacklist blacklist-keyword test to the blacklist

Happy to do any more testing after the code has been modified!


Atom deps update

[X] All compiled assets are included (atom packages are git tags and hence the built files need to be a part of the source control)

:rotating_light: WARNING:rotating_light: : This is based on update-typings branch, since working with old typings isn't much fun. I'm creating this PR on that branch for the sake of simplicity, but it means it requires a manual merge (since GitHub doesn't allow changing target branch after PR is created). It does not necessarily depend on new typings though, so it could be manually rebased onto current master.
So the main idea here is to check that any one of atom-ide-ui or linter is in the list of available (i.e. installed, although not necessarily active) packages. If neither is, prompt user to install atom-ide-ui via atom-package-deps, otherwise just continue with activation. Reason for atom-ide-ui instead of linter+friends is simplicity. atom-ide-ui is a single package, while linter+friends is not.
It seems like it's a lot more changes than it is due to indentation change. With git diff -w or git log -p -w, changes in lib/main/atomts.ts amount to (note a mix of word- and line-diff)
export {+async+} function activate() {
-  require("atom-package-deps")
-    .install("atom-typescript", true)
-    .then(() => {
+  const pns = atom.packages.getAvailablePackageNames()
+  if (!(pns.includes("atom-ide-ui") || pns.includes("linter"))) {
+    await require("atom-package-deps").install("atom-typescript", true)
+  }

I also changed target to es2016 and changed lib accordingly for the sake of Array.includes, which is available at least since Atom 1.19, I believe. Could be more specific, but I'm pretty sure recent versions of Atom support es7 anyway.
Closes https://github.com/TypeStrong/atom-typescript/issues/1368

Waiting on https://github.com/TypeStrong/atom-typescript/pull/1367. I really don't want to rebase this on master if I can avoid it.

Actually found a bug introduced by this change. Code in activate used stuff initialized in consume* -- usually it's the other way around, but call order isn't guaranteed. Last two commits address that (first one moves config schema to package.json to avoid costly initialization when opening settings)

Merged into master.


feat: speed up workflows (via. builder and deployer updates)

There have been a number of enhancements to the builder and deployer actions that can speed up this pipeline.

Unless there's interest I'm going to leave nr-fom's devops alone.


Fix: Handle multiple 1xx responses

This change updates the client to handle multiple 1xx (Processing etc) responses from the server. The client now waits for the final response with a status code other than 1xx before proceeding.
From https://datatracker.ietf.org/doc/html/rfc7231#section-6.2

A client MUST be able to parse one or more 1xx responses received
prior to a final response, even if the client does not expect one.  A
user agent MAY ignore unexpected 1xx responses.

fixes #8568

cc @reschke

LGTM; make sure it's 1xx, not 10x though.


Remove the client role from the preflight playbook, now that we have a dedicated client playbook?

To avoid confusion? Can we do that?

@sebastian-philipp As of now the new client playbook is just installing ceph-common
where as preflight can be used to update
@pcuzner

To avoid confusion? Can we do that?

@sebastian-philipp I think we can (I would even say we should) rework those 2 playbooks, yes.
I'm working on a patch for this


How to control the wheel's rotation speed individually?

Hi, I have found functions in PythonAPI set_wheel_steer_direction to set the wheel's steer direction indvidually.  How can I control the wheel's rotation speed invidually to make the vehicle's wheel rotating? I found no function in PythonAPI to control the wheel rotating speed.
(ps: if iI want to use set_wheel_steer_direction to make it work , must I use set_simulate_physics(False) before? I have tried wheel's steer direction only work when I set simulate_physics to False)

@YSFlower Were you able to control the speed of the wheels individually? I would also be interested in being able to do that


App is not working on Windows

There's a problem when building the app apparently happening only on Windows OS check this thread for more details #71

I'm closing it since I was able to run it on Windows 10 with no problems building or deploying it. It seems the user is selecting a city without stores in the demo database that's the reason because the user seeing a blank screen


Bootstrap remove

drop all bootstrap related styles
apply neat and sass
improve some UI

@MarioRicalde can you please review this PR?


New league support

From Slack:

For those that are interested in adding support for different kinds of leagues (infinite series, series, zh, quads, or other new ideas), can I ask you to work on a list of all the things that are not currently supported in heltour/chesster? For example, different pairing generation, different types of scheduling, different views, different scoring/tournament structures. More detail is better. If we're going to make model changes to heltour I would like them to be holistic, taking into account everything we want to support, rather than ad hoc changes for each individual thing.

Please put responses in a comment here.

It would be great if heltour could support additional tournament structures such as round-robin, knockout, and round-robin plus knockout (the current Rapid Battle format), as well as league-specific tiebreakers (if not enabled already).

It would be great if heltour could support additional tournament structures such as round-robin, knockout, and round-robin plus knockout (the current Rapid Battle format), as well as league-specific tiebreakers (if not enabled already).

More details please! What kind of round-robins? Play in any order with some kind of scheduling (ala series), play in a series of rounds (ala blitz battle), or something else? What kind of knockout structures - single or double elimination? Single or multiple games per round? How does the current rapid battle format work? What kinds of tiebreaks are you thinking of?

Guess I’m asking for Series-style round robin, ie where players in a group can play each other in any order, but each pairing has a deadline (currently 2 weeks after the end of the ‘official’ scheduled week) after which unplayed games are marked as double forfeits.

I guess for the current round robin series comes down to two separate features: 1. Support round robin pairings and 2. Support having multiple rounds of a season in progress at the same time or during overlapping times (of course 2 is only relevant in conjunction with 1 because in Swiss tourneys you cannot start a round without knowing the results of the previous round).

I do not know exactly how the rapid battle works but I guess minimum missing feature is the support of 2-game matches in an individual round.

Yes, for Rapid Battle supporting n-game matches in an individual round is essential. In the group stages, matches consist of two 15+10 games, but in the knockout stages they consist of four rapid games, followed by two 5+5 games and then an unrated armageddon.

Penalty system: the current penalty system just counts the number of penalties in a season and then suggests players are removed if a certain limit is reached. In a new season players might start with no card at all or already on a yellow card. For an infinite season a penalty system would ideally implement for a probation system: a first penalty brings the player into a probation status for N weeks. If the player does not get another penalty during that time, they get back to a clean state. If a player gets another penalty while being on probation, they will be removed for X weeks. After re-entering the league they will be on probation status again for N weeks.

Rapid Battle has a similar structure to the football World Cup.
First, the organiser(s) define sections by dividing up the pool of registered players by rapid rating; eg in the current RB there are two sections (untitled and U1800). Structure's the same for each section. Players are assigned to groups where they play each other once in an unordered round-robin format. Groups can vary in size depending on the player pool; eg in the current U1800 section, 21 players have been assigned to four groups of 5, 5, 5 and 6 players each, with three qualifying spots in each group (thus slightly disadvantaging players in the larger group, but that's a standard risk with this format).
Players are responsible for ensuring they play all their matches by a certain deadline (say 4 weeks to play all group games). Unplayed games are forfeited. Each group stage match consists of two rapid games, and match draws are allowed. Following the completion of all group games, the top 3 players per group qualify for the knockout stage. Those who finish first receive a bye to the quarterfinals; those who finish second and third play in a last-16 round beforehand. Group tiebreaks: if two or more player tie, the player who scored best against the top players in the standings is ranked above. If two or more players still tie, the lower rated player is ranked above. (Worth noting that the sole RB mod right now wants to revise these tiebreakers based on player feedback; future changes might include accounting for head-to-head results, hence why I requested the ability to define league-specific tiebreaks.)
Knockout stage is single-elimination. The last-16 and QF pairings can be logically defined beforehand: eg in a section with four groups ABCD with four players each, the four last-16 pairings might be: B3 vs C2 (to play A1 next), A3 vs D2 (to play B1 next), A2 vs D3 (to play C1 next), and B2 vs C3 (to play D1 next).
In the knockout phase, players are expected to complete their matches within a week. All knockout matches consist of four 15+10 games (ie first to 2.5 points wins). If a match is tied (2-2), then two 5+5 tiebreaker games are played. If a match is still tied (3-3), an unrated armageddon 4+1 game is played (where White starts with an extra mintute (5+1), Black has draw odds, and colours are assigned randomly). If all goes to plan, in each section four round-of-16 knockout matches are followed by four quarter-finals then two semi-finals then (in the last week) a final and a third-place match. So it takes eight weeks in total to run the tournament; four weeks for the group stage, and another four for the knockout stage.

Scoring system: The current scoring system essentially just counts all the games that were played during a season. For an infinity series a scoring system would have to be more flexible. We are not settled on an approach yet, but a rule set that might be most reasonable is the following:

for each player, only the results of the last N games played in the infinite series are counted.
However, in order to be counted, these games must have been played within the last P weeks, otherwise they are ignored completely.
And optional: - If by that measure a player does not get N games, an additional score is added for pairing purposes: for each missing game, the expected result of the player against a hypothetical player of the league average rating (using the ELO formula) is added to the score.
E.g. Player rating is 1900
Average rating of the league is 1980
Expected score for the 1900 player against a 1980 player: 0.43
The player starts with a score of 10x0.43 = 4.3 points into the league => rounded to 4.5 points
If the player wins their first game, their score will be 9x0.43 + 1 = 4.87 => rounded to 5.0
If the player loses their first game, the score will be 9x0.43 = 3.87 points => rounded to 4 points
A similar calculation could be done for a player that only has 5 countable games due to long absence.

Player availability: currently players set themselves (un)available for individual rounds. They get the possibility to set their availability for the complete season. For an infinite series this approach is not really usable. It will be more practical that a player can change their availability status and then that status is considered during the generation of pairings. So, a player will set themselves unavailable if they decide to drop out of the infinite series and then after some weeks set themselves available again. Maybe it would be useful to allow to specify a time when the next availability change will take effect.

I have taken a keen interest in this. Is this still a goal? I have done some stuff in the past with bracket generation for knockout tournaments and stuff like this.
I would like to see things like infinite series, blitz cup etc on the website.
Has there been work on this? Would like to offer a hand.

yes, this is definitely still a goal. we'd love to be able to support more of the side leagues.
as for whether any work on this has been done: unfortunately i don't know for certain, but i am not aware of anything.

I'm not actively developing heltour any more and AFAIK Lakin has been focused on maintenance. So there's not been anyone to do this kind of work.


[TEVA-2009] Constrain versions per Hashicorp best practices

Jira ticket URL
https://dfedigital.atlassian.net/browse/TEVA-2009
Changes in this PR:
Implement best practices regarding Terraform version constraints before provider version bumps
Per https://www.terraform.io/docs/language/expressions/version-constraints.html

Constrain re-usable modules with >=
Constrain root modules with ~>

Review app deployed to https://teaching-vacancies-review-pr-2879.london.cloudapps.digital