Examples of Service Containers do not work

I picked the sample above and pasted it in a pipeline, but was not able to execute the pipeline. The error I get when I use the nginx and redis pipeline is when the apt get command is run.
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/683b6fb6-dbe3-4dea-a205-d102ee22e8bf.sh
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
/home/vsts/work/_temp/683b6fb6-dbe3-4dea-a205-d102ee22e8bf.sh: line 2: psql: command not found
On changing the command to run as sudo, the challenge is Ubuntu 16 onwards does not have sudo installed and since apt-get does not work cannot install it either. As a workaround I am using the vsts ubuntu 14.04 image but that increases the build time.
The documentation needs to be corrected or please identify if I am doing something wrong.

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

ID: 7d1c794c-d676-fc7e-758e-3464f16a1554
Version Independent ID: 941de04a-2d34-ec82-8612-00e4070de673
Content: Service Containers - Azure Pipelines & TFS
Content Source: docs/pipelines/process/service-containers.md
Product: devops
Technology: devops-cicd
GitHub Login: @thomps23
Microsoft Alias: dakale

@thomps23 please assign to @dakale

I got the same problem here

It seems that I can define 'services' only under 'jobs' according to the document about YAML schema ( https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#server )
So I think those examples in this article don't work in the first place. (Actually, it didn't on my env.)
How did you guys write your .yml?

The following didn't work for me:
resources:
containers:

container: sql
image: mcr.microsoft.com/mssql/server
ports:

8080:80
env:
SA_PASSWORD: "*****"
ACCEPT_EULA: "Y"

container: api
image: my-api:latest
ports:

8080:80
env:
connectionString: "Server=tcp:sql,1433;Initial Catalog=my-db;Persist Security Info=False;User ID=sa;Password=*****;MultipleActiveResultSets=False;Connection Timeout=30;"
services:
sql: sql
api: api
pool:
vmImage: 'ubuntu-16.04'
steps:

script: |
ping localhost -c 10
curl localhost:8080

The container job example does not work because the ubuntu container is not running as root user so you can't run apt-get. It would be nice if the examples were valid

The documentation is still wrong.

I also ran into an issue where because Azure Pipelines was not running the service container as root, it couldn't install anything through apt-get.
I had to modify the base image before using it in the pipeline, which is really clunky.
Why is it the case that service containers are not permitted to run as root? It really restricts what they are able to do.
The documentation should also be updated to reflect that service containers may not do what you want, because they're not running as root.


Flexible ETR buffer location

Introduce etr-buffer into the tddconf binding to support flexible placement of the etr buffer in the memory map. The location will then be stored into the user information configuration registers and loaded on power on

Dropped moving the actual buffer from this PR, that also means this change can apply cleanly without a new sdsc bundle. We can move the memory region when new nrf-regtool and sdsc bundle are released

@anangl @masz-nordic Could you please have a look as well? I'd like to get that in so that the sdfw can start relying on the field and then improve the actual memory map

Sorry nah I think this is good enough, I just tried pushing it forward for the needed number of aprovers to get it merged. The etr memory overlay change will come when sdfw supports it, which is dependent on this here, so this needs to be first


Install ramen as dependency

Include RamenDR bundle in Catalog Image and installed it as a required dependency.
Depends on #29

/hold
@ShyamsundarR This doesn't work due to a mismatch in our supported installmodes. We allow only signle namespace deployment and ramen allows only all namespaces deployment. How do we move ahead with this?

Since we won't be creating DRPolicy resources for now, this dependency is pointless.
We'll take this for next release when we fully integrate with Ramen.
/hold

@ShyamsundarR This doesn't work due to a mismatch in our supported installmodes. We allow only signle namespace deployment and ramen allows only all namespaces deployment. How do we move ahead with this?

The install mode for Ramen seems incorrect, what is the value we need in this case?

@ShyamsundarR Here's a doc on InstallModes : https://olm.operatorframework.io/docs/advanced-tasks/operator-scoping-with-operatorgroups/#targetnamespaces-and-their-relationship-to-installmodes
Based on this, AllNamespaces seems like a good choice. We'll update orchestrator to match that.

(heads up!) I am not totally convinced about this, I think we need to can this to a single namespace, which we will investigate in Ramen and update accordingly.

@ShyamsundarR This doesn't work due to a mismatch in our supported installmodes. We allow only signle namespace deployment and ramen allows only all namespaces deployment. How do we move ahead with this?

The install mode for Ramen seems incorrect, what is the value we need in this case?

@ShyamsundarR Here's a doc on InstallModes : https://olm.operatorframework.io/docs/advanced-tasks/operator-scoping-with-operatorgroups/#targetnamespaces-and-their-relationship-to-installmodes
Based on this, AllNamespaces seems like a good choice. We'll update orchestrator to match that.

(heads up!) I am not totally convinced about this, I think we need to can this to a single namespace, which we will investigate in Ramen and update accordingly.

Thanks for the heads up, but we already made that change in 4.10 . It shouldn't block Ramen from changing it though.
We'll use a different way of installing it as dependency.


flutterfire_ui 0.4.0 Google Sign In Error

I upgraded flutterfire_ui from 0.3.6+1 to 0.4.0 and Google Sign In button no longer works. It always says "An unknown error occurred". I can't find anything in the logs for further info. Switched back to 0.3.6+1 and it works fine.
The only thing I could find while debugging was this: "com.google.android.gms.common.api.ApiException: 10: null". Sounds like I might have something set up wrong but I've only had a problem with this version so I'm confused.

Facing the same issue. I get 400: redirect_uri_mismatch error.

yes

I have the old version
It has no problems with google sign in

I upgraded flutterfire_ui from 0.3.6+1 to 0.4.0 and Google Sign In button no longer works. It always says "An unknown error occurred". I can't find anything in the logs for further info. Switched back to 0.3.6+1 and it works fine.
The only thing I could find while debugging was this: "com.google.android.gms.common.api.ApiException: 10: null". Sounds like I might have something set up wrong but I've only had a problem with this version so I'm confused.

The solution //

Thanks for the report. Seeing the same using latest version.
/cc @lesnitsky

@Splashman777 what platform are you experiencing this issue?

Macos

في ٠٤/٠٤/٢٠٢٢ الساعة ٢:٥٧ م، كتب/كتبت Andrei Lesnitsky @.***>:

@Splashman777 what platform are you experiencing this issue?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.

I have similar issue on MacOS for both Google and Apple sign in.

Strangely I'm getting the same "an unknown error has occurred" error message and I haven't moved off 0.3.6+1 but simply added the google_sign_in package, where previously I was only using email/password logins (which still work fine).

Also getting an 'An unknown error occurred' with google_sign_in ^5.3.0 and flutterfire_ui ^0.4.0+2.
This occurs when Login with Google, pick a Google account and then on the FlutterFire UI screen returns.

I'm looking into it

I encountered the same issue on Android after upgrading flutterfire_ui from 0.3.6+1 to 0.4.0+5.
This change may be the reason. The clientId parameter is now passed to the GoogleSignIn constructor, and because my GoogleProviderConfiguration uses the androidClientId value, it doesn't work. Hardcoding the web clientId value fixes the issue (it's actually what's specified in the docs), but on the other side, the docs of GoogleSignIn.clientId states that it is "Only supported on web".

@etienn01 Specifying the clientId does not work for me.
I'm using google_sign_in ^5.3.1 and flutterfire_ui ^0.4.0+5
I always have included the hard coded web clientId with my GoogleProviderConfiguration as well, because yes as you point out it has always said to use this clientId.
But still get the "An unknown error occurred".

I have the same issue. Google SignIn button works only with version of flutterfire_ui smaller than 4.0.0. In other case 'An unknown error occured' happens. IDE: Android Studio, google_sin_in: 5.3.0

Same issue here when debugging on older Samsung SM-G900V running Android 6.0.1. Same project runs on iPhone and iPad with no problems with Sign in with Google.

Shot in the dark here, but does this line:
https://github.com/flutter/plugins/blob/5712aedbc5d1ad588056fd8ad7d947d5e39be85c/packages/google_sign_in/google_sign_in_ios/lib/google_sign_in_ios.dart#L28
Need to include "profile" in the default scopes?

Update which shows we have a clear conflicting requirements around the id.
Trying to use SignInView I currently specify in my Google Provider Configs the clientId because it is required.
I'm using the latest:
google_sign_in ^5.4.0
flutterfire_ui ^0.4.3
Result when the app runs on Android is this warning:
W/google_sing_in(13914): clientId is not supported on Android and is interpreted as serverClientId.Use serverClientId instead to suppress this warning.
So clientId is required by the const GoogleProviderConfiguration as part of passing providerConfigs to SignInView. But problem is that we don't yet have available to us serverClientId, although warning says it interprets clientId as serverClientId ? So kinda confusing.

I've just hit this and I think the warning is a red herring...
Other than the normal 100million cleans, version changes and rebuilds, I did two things that eventually go this working again .

APIs & Services > OAuth Consent Screen > Edit app... (There was a new email requirement and my scope were empty, I added  "openid",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile", and matched it in the GoogleProviderConfiguration)
Nuked my Android Firebase configuration by deleting the SHA keys and re-inputting. This required a firebase configuration re-run and updated ios and android google configs.

Hopefully one of those two things helps the rest of you (I assume it's the first one). I believe there is a decent delay after changing the OAuth Consent Sceen, so give it an hour


Where should manifest files be placed, and what branch?

Input manifests / 'what is going to be released' and the release workflow information needs to be managed somewhere, as it will be in the repository of the project what is the organization model.
Acceptance Criteria:

[ ] Determine the folder structure that the release process will have in the OpenSearch project repository
[ ] Determine what branches should be updated with the data

Does it matter if the branch that is released is independent of the release configuration?

[ ] Update the release workflow with the logistics of a release  with an updated diagram

Closing this issue since we will be going ahead with GitHub release as a mode of trigger for the release.
Thanks!


Unspecified error when running this action

I'm trying to use this action to validate the filenames in a folder against a regex. The run fails after 2 seconds with no clear error message.
Output of the action:
 ##[debug]Evaluating condition for step: 'Validate migration filenames'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Validate migration filenames
##[debug]Loading inputs
##[debug]Loading env
Run batista/lint-filenames@v1
  with:
    path: ./db-migrations/flyway/migrations
    pattern: ^[V|U|R]\d*?__[A-Za-z0-9_]*\\.sql$
====================
|  Lint Filenames  |
====================
ℹ  Path:    		'./db-migrations/flyway/migrations'
ℹ  Pattern: 		/^[V|U|R]\d*?__[A-Za-z0-9_]*\\.sql$/
Error: Error: Execution failed, see log above. ❌
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Validate migration filenames

Can you see what I'm doing wrong @batista ?

Same here, did you find a solution @DonDebonair or is the repo abandoned?

I ended up creating a bash script to check filenames and run that as an action.
Script:
#!/usr/bin/env bash

badname=""

for f in "$@"
do
  file=$(basename $f)
  if [[ ! "$file" =~ ^([V|U|R]|afterMigrate)[0-9]*__[A-Za-z0-9_]*\.sql$ ]]; then
    echo "File $file does not match"
    badname=$file
  fi
done

if [[ ! -z "$badname" ]]; then
  exit 1
fi

Workflow:

jobs:
  lint-migrations:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Validate migration filenames
        shell: bash
        run: db-migrations/flyway/scripts/check-migration-filenames.sh db-migrations/flyway/migrations/*


switch to stream mode for UDSink

We have to switch to stream mode for UDSink, like reduce. For the stream to be closed, make sure we close the stream once we have written all the elements in the batch to the stream.

I would like to contribute to this.


non-const global variable

https://github.com/serenity4/Swizzles.jl/blob/83b0e48369d3c9eee295bfde79e1c95f5fc28d61/src/Swizzles.jl#L64-L82
should these be const? Also maybe Dict should be NamedTuple for faster access?

Whoops, I forgot to make it const after prototyping, thanks.
I would say that Dict is fine, this dictionary will only be accessed during macro expansion time, so nothing runtime-critical. As a very minor advantage, I believe Dict would require less compilation.

Fixed in https://github.com/serenity4/Swizzles.jl/commit/72b79492077319ced01733bdad88d1b452c3ccc9


[Feature Request] Vuex Child Modules Functionality (Submodules)

Is there any kind of provision to have sub modules inside of a module?
Like in the original Vuex we have
const ModuleA {
    state: {...},
    mutations: {...},
    actions: {...},
    modules: {
        subA: ModuleSubA
    }
}

In vuex-class-modules, maybe something like this
class ModuleA {
    subA = createSubModule(ModuleSubA);
}

Please, specify if something like that already exists, or any workaround would also work

I fail to see what the use case for this is. Maybe you can explain what you are trying to achieve.
We register the modules through store.registerModule (https://github.com/gertqin/vuex-class-modules/blob/master/src/module-factory.ts#L178) or store.hotUpdate (https://github.com/gertqin/vuex-class-modules/blob/master/src/module-factory.ts#L169).
In the former case it would be a simple to change to allow not only string names for the registration name, but also arrays of strings, which would lead to submodule registration.
In the latter case we probably need to build a structure for the parent modules. Not sure what we need to provide for them exactly.

I agree with @bodograumann - I have also never had the need for submodules. Why can't it just be a another regular module?

I agree with @bodograumann - I have also never had the need for submodules. Why can't it just be a another regular module?

Dynamic registration becomes pretty efficient when used along with nested modules.
Consider this example hierarchy in a particular domain -
- GlobalModule
    -UserModule
    -InputModule
        -OutputModule
            -ReportsModule

So here, the bottom most module ReportsModule is depended on OutputModule which in turn is depended on InputModule.
Now, in my components, the InputModule and the whole InputComponent view tree by which it is consumed will be dynamically registered and dynamically rendered based on some condition.
In this case, registering InputModule dynamically, will in turn make its nested modules also dynamic.
But, in a non-hierarchical structure,
- GlobalModule
- UserModule
- InputModule
- OutputModule
- ReportsModule

In this case, while registering InputModule based on some condition you will have to specify those other two modules Output & ReportsModule explicitly.
What do you guys think? @bodograumann @gertqin

So basically you want to automatically load other modules when a “parent”-module is loaded into the store.
I guess that is not impossible to implement, but there doesn't seem to be any easy way of implementing it, that works with the rest of vuex-class-modules. It is probably not worth the effort.
Especially as you can quite easily implement it on your side. You will anyway have to register the module somehow.
const inputModule = new InputModule({ store, name: "user" });
So at that point you can also wrap it in a function and register the other modules.
function registerInputModule() {
    return {
        inputModule: new InputModule({ store, name: "user" }),
        outputModule: new OutputModule({ store, name: "user" }),
        reportModule: new ReportModule({ store, name: "user" }),
    }
}


DLPy Image Segmentation Data Preparation example updated.

Updated the DLPy segmentation data preparation example. Runs end-to-end with user-accessible data.

This pull request should be canceled; it is duplicated in https://github.com/sassoftware/python-dlpy/pull/344. I rebuilt my fork and messages made me think this unacknowledged request would be deleted. Regrets...


php best？

no, js best!

No, Assembly is best.

yes

no, python best!

nocode best!

we are best !!

LZSB

No, C# best!

no, python is better.

PHP is the best language in the world!!

No, c++ is the best language in the world!

no，kotlin is best

yes

No. Machine code best.

No. Dave Grohl is the best.


Stripped down RSW server image

The RSW chart is composed out of two images: server and session.
Currently rstudio/rstudio-workbench is used which is 1.72GB (compressed) in size (https://hub.docker.com/r/rstudio/rstudio-workbench/tags).
We've built an image which does the "server" job successfully and is only 544 MB in size (compressed). This speeds up pod relocation times.
https://hub.docker.com/r/cynkra/rsw-k8s-preview/tags
The image is built from ubuntu:focal and we tried to strip everything which might not be needed for the server image to do its job. It only includes one R version. Even though we see a bit more warnings and errors, we've not seen any practical issues so far during runtime.
Happy to share the Dockerfile if this is of interest to you.

Thanks for sharing this @pat-s !! If you have the Dockerfile handy somewhere (even a gist, etc.), that would definitely be a useful reference! We are definitely interested in trimming things down in the longer term 😄 (Although I will say our current focus is moving on to jammy in addition to our existing bionic images at the cost of skipping past focal 😅 )

I needed to install jupyter in addition to get the Jupyter stuff to work, so now I am at 7xx. But I think that's it!
I still need to clean up a bit and will then put everything into a gist.
We're skipping jammy in our builds and will upgrade when 24.04 is out.
While at it, I was also wondering whether an alpine-based RSW server image would make sense to slimify things even more.
Alpine might not be desired for the session images but AFAICS, the k8s server image is quite standalone and only needs to provide the "home" login interface to start the sessions (and probably a bit of connectivity in between server and sessions in the background). Have you ever discussed this internally?

Nice! Yes, we definitely would love to get to more minimal images. Our efforts are definitely more focused in the short term on cleaning up some other dependencies (i.e. RHEL stuff), our CI matrix, and solving some other long-standing pain points/improvements that we think will be more impactful than smaller image size. But it is very much on our radar!! And we definitely appreciate the contributions / discussion! It's exciting to see things making progress 😄

Aside, you needed to install jupyter on the main workbench node? That shouldn't be necessary unless you are also using local launcher? (I thought).

I can have a look again but we got some SSL issues when starting JupyterLab sessions without having jupyter installed on the server image. It worked afterwards so I thought it might be required for some kind of (SSL) communication.

And at some point, we are hopeful to be able to relax even the requirement for R so that workbench can just be a "home" login interface / proxy / orchestrator (when sessions are running elsewhere / i.e. on Kubernetes). That would trim up the size a LOT

Jup, that would be awesome! LMK if I can help somehow...
You can find the gist with the dockerfile here. It's not fully cleaned up and ofc not runnable as it references many external, non-public resources/scripts but it should be sufficient for you to understand how we got there. Size is around 6xx MB (compressed).


Session Support

Session Support
Features

All channels start in available pool
Channels move to in use when in use

Triggered by a message in an available channel

Channels marked as available after command, or after period of inactivity

Considerations:

Should inactivity only kick if all channels are in use?

Create new channels as demand requires

Considerations:

Scale to guild members?
Scale to helpers?
Maximum limit of support channels
Create new channels if all in use, within limit?

Commands

[x] done: moves channel back into the available pool

Only usable in "in use" channels

[x] call: calls for help

Only usable in "in use" channels

[ ] lock: locks a channel down to select members/roles

Remains locked until explicitly unlocked or channel times out
Only usable in "in use" channels

[ ] unlock: unlocks a channel

Only usable in "locked" channels

[ ] save: saves previously sent messages
[ ] recall: recalls a saved message

Closed by #14.


Add guidance to set NuGet source for MAUI

To complete the installation process we also need to set the Nuget source for MAUI.
While in Preview, IMHO the best practice is to add the source directly into the Visual Studio options:

So I think is better to add this to the page.

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

ID: 7607155a-9a56-d752-c5ac-c3aeb6b128bc
Version Independent ID: 9a62d421-d009-30b3-843e-a92bfc21c061
Content: .NET MAUI installation
Content Source: docs/get-started/installation.md
Product: dotnet-mobile
Technology: dotnet-maui
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @ncarandini
This isn't required anymore.


Create longest_string.cpp

Added the code in c++
closes issue number #415

Please check now @akgmage


Cloudy Lopez - Accelerate

Great start to this project. You have Wave 1 and 2 passing but Wave 3 is not. I added some comments on where to call your checkForWinner function to get wave three passing.


Minecraft freezes when run without xwayland and left in an inactive workspace

Regression?
No
System Info and Version
 System/Version info
hyprctl systeminfo -c
Hyprland, built from branch  at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259  (props: bump version to 0.42.0).
Date: Wed Aug 7 19:17:10 2024
Tag: v0.42.0, commits: 5069

flags: (if any)

System Information:
System name: Linux
Node name: kot
Release: 6.10.3-201.fsync.fc40.x86_64
Version: #1 SMP PREEMPT_DYNAMIC TKG Tue Aug  6 19:17:32 UTC 2024

GPU information:
2f:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] [1002:731f] (rev ca) (prog-if 00 [VGA controller])

os-release: NAME="Nobara Linux"
VERSION="40 (KDE Plasma)"
ID=nobara
ID_LIKE="rhel centos fedora"
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Nobara Linux 40 (KDE Plasma)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=nobara-logo-icon
CPE_NAME="cpe:/o:nobaraproject:nobara:40"
DEFAULT_HOSTNAME="nobara"
HOME_URL="https://nobaraproject.org/"
DOCUMENTATION_URL="https://www.nobaraproject.org/"
SUPPORT_URL="https://www.nobaraproject.org/"
BUG_REPORT_URL="https://gitlab.com/gloriouseggroll/nobara-images"
REDHAT_BUGZILLA_PRODUCT="Nobara"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Nobara"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
VARIANT="KDE Plasma"
VARIANT_ID=kde

plugins:

======Config-Start======

Config File: /home/szczurek/.config/hypr/hyprland.conf: Read Succeeded

# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#

autogenerated = 0 # remove this line to remove the warning

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-3,2560x1440@144,0x0,1,vrr,2
monitor=,preferred,auto,auto

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = swaync
exec-once= /usr/libexec/kf6/polkit-kde-authentication-agent-1

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Set programs that you use
$terminal = wezterm
$fileManager = dolphin
$menu = krunner

# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,kde
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = pl
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = no
    }

    sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 20
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    blur {
        enabled = true
        size = 3
        passes = 1
    }

    drop_shadow = yes
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
    animation = specialWorkspace, 1, 6, default, slidefadevert -25%
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_status = slave
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = off
}

misc {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
}

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

# Discord
windowrulev2 = workspace special:discord, class:^(discord)$

# Screenshots
windowrulev2 = stayfocused, class:^(flameshot)$
windowrulev2 = float, class:^(flameshot)$

# Krunner
layerrule = noanim, krunner

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, F, togglefloating,
bind = ALT, F12, fullscreen
bind = ALT, SPACE, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = , Print, exec, XDG_CURRENT_DESKTOP=sway flameshot gui

# Obs studio
bind = ,F8,pass,^(com\.obsproject\.Studio)$

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod ALT, S, movetoworkspace, e+0

# Special workspace for discord
bind = $mainMod, D, togglespecialworkspace, discord

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

======Config-End========

Description
By default minecraft runs through xwayland. In that case everything work fine.
However as with many other software there are ways to run minecraft on pure wayland.
When you do that, and switch to a different workspace the entire game just freezes.
This can be observed by few symptoms:

The audio stops playing (can be easily tested with a music disc)
If you start falling from high distance you will continue after switching back
If you join a multiplayer server, after around 30 seconds you will be kicked for timeout

How to reproduce

Make minecraft run without xwayland
This can be done in two ways.
By using this mod. This is the easiest one.
By overriding the version of glfw minecraft uses to use the 3.4 release.
https://www.reddit.com/r/linux_gaming/comments/1bu8jpr/psa_minecraft_can_run_natively_on_wayland_with/
Start the game
Make sure pause on lost focus is disabled by pressing F3 + P while in a world / on a server
Prepare a situation that will let you observe the problem as described above.
Switch to different workspace.
Wait some time.
Go back to the one with minecraft.
Observe symptoms described above.

Crash reports, logs, images, videos
No response

#2701

alright, sorry for a duplicate, didn't find that issue
also
Broodie told us that you are reeally active, like way to much, but a response in few minutes? that's fast 🤯

magic


Question regarding use of commented-out variables

Question
defaults/main.yml contains some variables that are commented out and must be uncommented
in order to be used. For example:
# ubtu22cis_journald_systemmaxuse: SystemMaxUse=
# ubtu22cis_journald_systemkeepfree: SystemKeepFree=
# ubtu22cis_journald_runtimemaxuse: RuntimeMaxUse=
# ubtu22cis_journald_runtimekeepfree: RuntimeKeepFree
# ubtu22cis_journald_maxfilesec: MaxFileSec=

and
ubtu22cis_sshd:
    (...)
    # WARNING: make sure you understand the precedence when working with these values!!
    allow_users: "vagrant ubuntu"
    allow_groups: "vagrant ubuntu"
    # deny_users:
    # deny_groups:

Seeeing variables that are commented out always raises the question, whether these really can be used
or are maybe remants of ongoing development. Also, they make it harder to add additional information
in comments, since then what is potentially functional code and what is documentation becomes blended.
I understand the usage of this approach for the variables concerning journald, because otherwise the
current implementation of placing a commented-out line in the file as default value does not work any more.
(Though I think this could be solved by using two stages -- one for writing the respective lines and a second
one for "mopping up" the lines with empty values, replacing, e.g. ^SystemMaxUse=\s*$ with #SystemMaxUse= --
that would also remove the need to supply the full line rather than just the desired value, the only occurrence of such
an approach in this role, I think.)
But for deny_usersand deny_groups, if I don't misunderstand the implementation, also empty default values
should work:
ubtu22cis_sshd:
    (...)
    # WARNING: make sure you understand the precedence when working with these values!!
    allow_users: "vagrant ubuntu"
    allow_groups: "vagrant ubuntu"
    deny_users:
    deny_groups:

Should I make a change/pull request regarding the uncommenting of these two variables, or am I overlooking something?
Environment (please complete the following information):

Ansible Version: [e.g. 2.10]
Host Python Version: [e.g. Python 3.7.6]
Ansible Server Python Version: [e.g. Python 3.7.6]
Additional Details:

hi @bgro
Great issue and questions, have been looking and testing this today. I have worked through the journald question and set defaults in the defaults/main.yml with a comment.
For the sshd i have tested and we are unable to add empty values to the config itself. I have rewritten this to a more standard approach and again removed the commented variables to useable.
Thank you for highlighting this and how this is interpreted by users, this really does help us to improve the content so more available and useable by all.
I have added the changes to the sept_issues branch.
many thanks again
uk-bolly

@uk-bolly Thank you for the super-fast response and the quick fix!


Unable to use BioSimulators API with tokens for "GitHub Simulators Actions" application

I'm trying to use this workflow to get tokens to POST/PUT simulators to the BioSimulators api.

Use client id/secret for "GitHub Simulators Actions" application to get an auth token
Use token with POST/PUT methods of BioSimulators api

(1) seems to work fine.
(2) Fails with 500 Server Error. Do additional permissions need to be granted to the "GitHub Simulators Actions" application?
Get token to access BioSimulators API

Endpoint: https://auth.biosimulations.org/oauth/token
Method: POST
Client id: <client id for Github Simulator Action application>
Client secret: <client secret for Github Simulator Action application>
Audience: api.biosimulations.org
Grant type: client_credentials

import requests
response = requests.post(auth-endpoint, json={
    'client_id': client_id,
    'client_secret': client_secret,
    'audience': audience,
    "grant_type": "client_credentials",
})
response.raise_for_status()
response_data = response.json()
auth_headers = {'Authorization': response_data['token_type'] + ' ' + response_data['access_token']}

POST/PUT to BioSimulators API

Endpoint: https://api.biosimulators.org/simulators/{simulator-id}/{simulator-version}
Method: PUT
Headers:

Authorization: Bearer <token>
Content-Type: application/json

data: <simulator-specifications>

import json
with open('../Biosimulators_tellurium/biosimulators.json', 'r') as file:
    specs = json.load(file)

endpoint = 'https://api.biosimulators.org/simulators/tellurium/2.1.6'
response = requests.put(endpoint, headers=auth_headers, json=specs)
response.raise_for_status()

POST/PUT works fine if I copy tokens from the BioSimulators API Swagger app.

The auth tokens still don't work. They get a 403 error (forbidden). @bilalshaikh42 is there something about the configuration below that needs to changed?
import requests
import json

response = requests.post('https://auth.biosimulations.org/oauth/token', json={
    'client_id': 'F33xsG2LydT57smqu8asfMZ410SJ0IHP',
    'client_secret': '***',
    'audience': 'api.biosimulations.org',
    "grant_type": "client_credentials",
})
response.raise_for_status()
response_data = response.json()
auth_headers = {'Authorization': response_data['token_type'] + ' ' + response_data['access_token']}

with open('biosimulators.json') as file:
    specs = json.load(file)

endpoint = 'https://api.biosimulators.org/simulators/tellurium/2.1.6'
response = requests.put(endpoint, headers=auth_headers, json=specs)
response.raise_for_status()

The above currently produces a 403 error:
HTTPError: 403 Client Error: Forbidden for url: https://api.biosimulators.org/simulators/tellurium/2.1.6

Could you email me the access token that you received? I need to decode and see what the granted permissions are for the token.

Can you paste the token that you get back into jwt.io?
It should have a payload that contains "https://biosimulations.org/permissions": [     "write:Simulators"   ],
Is the payload there?

This is payload. The permissions are there.
{
  "https://biosimulations.org/permissions": [
    "write:Simulators"
  ],
  "iss": "https://auth.biosimulations.org/",
  "sub": "F33xsG2LydT57smqu8asfMZ410SJ0IHP@clients",
  "aud": "api.biosimulations.org",
  "iat":<PHONE_NUMBER>,
  "exp":<PHONE_NUMBER>,
  "azp": "F33xsG2LydT57smqu8asfMZ410SJ0IHP",
  "scope": "read:Simulations write:Models write:Files write:Simulations read:Files read:Models read:Profile write:Profile read:Visualization write:Visualization read:Projects write:Projects",
  "gty": "client-credentials"
}

This looks reasonable to me. I'm convinced that the issue relates to authorization because the code sample I sent with when I use an auth token copied from the swagger app.
For comparison here's the payload for the token generated by the swagger app.
{
  "https://biosimulations.org/app_metadata": {
    "admin": true,
    "registered": true,
    "termsAcceptedOn":<PHONE_NUMBER>539,
    "roles": [
      "admin"
    ]
  },
  "https://biosimulations.org/user_metadata": {
    "username": "jonrkarr"
  },
  "https://biosimulations.org/permissions": [
    "write:simulators",
    "test:permissions"
  ],
  "https://biosimulations.org/roles": [
    "admin"
  ],
  "iss": "https://auth.biosimulations.org/",
  "sub": "google-oauth2|117531641976036181573",
  "aud": "api.biosimulations.org",
  "iat":<PHONE_NUMBER>,
  "exp":<PHONE_NUMBER>,
  "azp": "mfZoukkw1NCTdltQ0KhWMn9KXVNq7gfT",
  "scope": ""
}

Im rolling out a new version now. The issue was a capitalization typo. 🤦🏾

I've been there. 30 minutes isn't too bad. Could have been worse.

The currently deployed version is working as expected with the script.
#1440 contains the full fix

Works for me. Thanks!


rename to invalid name is losing its old name

docker rename to an invalid name is losing its old name, I think the backend should check new name's validity before making any changes
$ docker ps
CONTAINER ID        IMAGE           COMMAND     CREATED  STATUS   PORTS    NAMES
3df7e2d463f9        debian   "/bin/bash"  15 minutes ago  Up 15 minutes     myname
$ docker rename myname new:invalid
Error response from daemon: Error when allocating new name: Invalid container
  name (new:invalid), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed
FATA[0000] Error: failed to rename container named myname
$ docker rename myname newok
Error response from daemon: No such container: myname
FATA[0000] Error: failed to rename container named myname
$ docker ps
CONTAINER ID        IMAGE           COMMAND     CREATED  STATUS   PORTS    NAMES
3df7e2d463f9        debian   "/bin/bash"  15 minutes ago  Up 15 minutes
$ docker rename 3df7e2d463f9 newokname
$ docker ps
CONTAINER ID        IMAGE           COMMAND     CREATED  STATUS   PORTS    NAMES
3df7e2d463f9        debian   "/bin/bash"  15 minutes ago  Up 15 minutes     newokname

Thanks for testing and using master!! I have submitted a patch to fix this bug

@jfrazelle daemon.reserveName already has validation by calling validContainerNamePattern.MatchString; so your solution will call this MatchString twice in this rename path, that might be just a few extra cpu cycles, but is there any problem if we call daemon.reserveName first? then to let daemon.containerGraph.Delete old_name

I thought of that too but I think it will cause problems, I can try it out
On Tue, Jan 13, 2015 at 5:41 PM, Derek<EMAIL_ADDRESS>wrote:

@jfrazelle https://github.com/jfrazelle daemon.reserveName already has
validation by calling validContainerNamePattern.MatchString; so your
solution will call this MatchString twice in this rename path, that might
be just a few extra cpu cycles, but is there any problem if we call
daemon.reserveName first? then to let daemon.containerGraph.Delete old_name
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/10081#issuecomment-69855734.

Seems to be fine I guess since we are locking the container, I updated,
thanks!
On Tue, Jan 13, 2015 at 5:42 PM, Jessica Frazelle<EMAIL_ADDRESS>wrote:

I thought of that too but I think it will cause problems, I can try it out
On Tue, Jan 13, 2015 at 5:41 PM, Derek<EMAIL_ADDRESS>wrote:

@jfrazelle https://github.com/jfrazelle daemon.reserveName already has
validation by calling validContainerNamePattern.MatchString; so your
solution will call this MatchString twice in this rename path, that might
be just a few extra cpu cycles, but is there any problem if we call
daemon.reserveName first? then to let daemon.containerGraph.Delete old_name
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/10081#issuecomment-69855734.

@jfrazelle thanks, sorry about this.

I still think the new_name assignment need to be moved before daemon.containerGraph.Delete, if the containerGraph database has problems, it's ok to return an error, but should not affect the new_name assignment; see my commit 4ee72c7
container.Name = new_name

That would be a problem though if the name is already taken.
On Tue, Jan 13, 2015 at 5:55 PM, Derek<EMAIL_ADDRESS>wrote:

I still think the new_name assignment need to be moved before
daemon.containerGraph.Delete, if the containerGraph database has problems,
it's ok to return an error, but should not affect the new_name assignment;
see my commit 4ee72c7
https://github.com/docker/docker/commit/4ee72c7e95e1bdb2a21a62998a96458fab6baef6
container.Name = new_name
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/10081#issuecomment-69857034.

jk ignore that last comment, I didn't see you were setting it after
On Tue, Jan 13, 2015 at 5:58 PM, Jessica Frazelle<EMAIL_ADDRESS>wrote:

That would be a problem though if the name is already taken.
On Tue, Jan 13, 2015 at 5:55 PM, Derek<EMAIL_ADDRESS>wrote:

I still think the new_name assignment need to be moved before
daemon.containerGraph.Delete, if the containerGraph database has problems,
it's ok to return an error, but should not affect the new_name assignment;
see my commit 4ee72c7
https://github.com/docker/docker/commit/4ee72c7e95e1bdb2a21a62998a96458fab6baef6
container.Name = new_name
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/10081#issuecomment-69857034.

ok I updated, but if the graph fails, there is going to be a lot more
issues then this ;)
On Tue, Jan 13, 2015 at 6:02 PM, Jessica Frazelle<EMAIL_ADDRESS>wrote:

jk ignore that last comment, I didn't see you were setting it after
On Tue, Jan 13, 2015 at 5:58 PM, Jessica Frazelle<EMAIL_ADDRESS>wrote:

That would be a problem though if the name is already taken.
On Tue, Jan 13, 2015 at 5:55 PM, Derek<EMAIL_ADDRESS>wrote:

I still think the new_name assignment need to be moved before
daemon.containerGraph.Delete, if the containerGraph database has problems,
it's ok to return an error, but should not affect the new_name assignment;
see my commit 4ee72c7
https://github.com/docker/docker/commit/4ee72c7e95e1bdb2a21a62998a96458fab6baef6
container.Name = new_name
—
Reply to this email directly or view it on GitHub
https://github.com/docker/docker/issues/10081#issuecomment-69857034.


Refactor non-block analyzers into common framework

Note: this is an old, closed issue, migrating here for historical reference. No action necessary.
Many non-block analyzers (evm_tokens, evm_token_balances, evm_contract_code, the upcoming ABI-based-parser-of-txs-and-logs, possibly the sourcify ABI downloader) all have the same structure:

A timer-based loop that iterates more quickly when there's more work, and that allows the analyzer to terminate based on a outside signal
A method that grabs work objects (queries e.g. newly found tokens in the DB)
Dispatch of those work objects into multiple parallel workers
A worker method that turns work objects into DB updates

Convert them all to use a single generic ItemBasedAnalyzer with customizable getItems() and processItem() methods (probably via an injected processor interface, much like how blockBasedAnalyzer does it)

Closed by #511.


Update davmail to 4.8.5-2589

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Running script.sh...

>>> brew cask _audit_modified_casks 79cb684641f0964a2defcbfe896195a3c80904de...3bb6e1903be4e3d55821ab48cb62bed6c9b09f27
==> 1 modified cask: davmail
==> Downloading https://downloads.sourceforge.net/davmail/DavMail-MacOSX-4.8.5-2589.app.zip
curl: (22) The requested URL returned error: 404 Not Found
audit for davmail: failed
 - download not possible: Download failed on Cask 'davmail' with message: Download failed: https://downloads.sourceforge.net/davmail/DavMail-MacOSX-4.8.5-2589.app.zip
Error: audit failed for 1 cask: davmail


Obtain a mask from cudnn dropout

Fixes #7771.
Previously if the dropout function was performed in cuDNN there was no way to retrieve the mask.
Now the mask is calculated when needed for testing purposes using a property, this also allows to improve and simplify the testing logic as now the validity of cuDNN dropout can be tested.

Yes, I thought about it. However the way that cudnn dropout forward works does not allow to make succesive forward calls.
Forward always return a reserveSpace (the states in chainer code) that must  be feed to backward, calling to forward multiple times in cudnn changes the reserveSpace value. In Nvidia documentation they say the following.
 It is expected that contents of reserveSpace doe not change between cudnnDropoutForward and cudnnDropoutBackward calls.
A solution that could be possible would be to do the numerical gradient in the cpu for this layer for the cudnn case.
This way cudnn forward is never called multiple times and we get the cudnn mask to verify too.
What do you think?


"Istria" is listed in the drop-down menu

Description:
When user writes "Istria" the location appears in the drop-down menu next to the comune and the county which is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Istria"

Expected results
The location appears in the drop-down menu as "Comuna Istria, CONSTANȚA"


images not linking

images not linking on github despite working in VS code

README images fixed, face image still not loading

Fixed by using web link as img src


Discussion: Update/ci package feed

Paths to package feeds have changed. With that, README.md was updated.
Package feed and version info moved to top...

... and have been removed from Package List:

The future badge shows now result, is it still possible to differentiate the labels if we only use one feed? If not we should merge the badges i guess 😊

The future badge shows now result, is it still possible to differentiate the labels if we only use one feed? If not we should merge the badges i guess 😊

Actually, it's the badge for the dev branch, which doesn't work properly (The screenshot was taken, when there was no future package on the feed). But with that, it's hard to get the latest dev version now, since future is the most recent version now.
I'd just remove both for now, until we have a good solution for that


enable_shared_from.hpp not found

Having Boost 1.70 installed, the following include cannot be found:
#include <boost/smart_ptr/enable_shared_from.hpp>

Seems new in 1.71. Didn't guess that at first, since the project was updated months before 1.71 was released. nevertheless, have to stick to 1.70 for the moment.

Peter Dimov's improvements to Boost.SmartPtr (in 1.71) are very exciting!

Good to know. I'll revisit it once 1.71 is available via brew.


MS SQL SMO database task

We added a new DatabaseTask that use SMO objects. The unit tests are included. We needed to extend also dk.exe.config otherwise the SMO objects doesn't work correctly in 4.0 framework.
We tried to follow the style used in dropkick. If we should change something let us know.
We also add oneliner to fix LocalConsoleTask which completely ignored the ExecutableIsLocatedAt property.

DatabaseTask would need to be renamed to include MsSql or Smo in it somehow, as we will most likely support other db types.
test app.config shouldn't have an app.config (hides test data away from the test)
sql executions should not concat strings but use parameterized sql when possible
need to check for the existance of SMO tools
DatabaseTask.Name should be 'Runs SMO task Xxxxx' (use the verify to report all of that info)

sorry, otherwise looking good! this will be a welcome addition.

OK, no problem. I will try to fix that.
regarding your comments:

test app.config - in this case it is used only to hide differences between developers environments
sql executions should not concat strings - that's clear but you can not use it for creating and dropping db, that's why it's used
need to check for the existance of SMO tools - I am not sure here but looking to MSDN I would guess that, to have referenced assemblies in place is enough (http://msdn.microsoft.com/en-us/library/ms162167.aspx)

yeah, re app.config - everyones test environment is different so the test data is best left in the test itself so the dev can see it and then mark the test as 'manual' or 'explicit' :(
ok, just stay vigilant. :)
looking for a dll, an exe, anything you can do in the verify step will help people debug the problem. its also nice to tell people how to fix it.
:)


Drop support for PostgreSQL 9.2

PostgreSQL 9.2 EOL date has come on Sep, 2017.

It looks like this option is used in a single place, to choose the base Docker image for the DB.
I'm going to go one step further and ask if it actually makes sense to keep this customisation question? Given that cookiecutter-django is used to jumpstart new projects, is there a use case to start with something else than the latest DB version?

@browniebroke that's a good question, indeed, @pydanny, @jayfk, what do you think?

@browniebroke to my mind, it's better to give our users a choice. I suspect, numerous people will still be using 9.6 in the months to come.


Laravel web route resource methods like show must accepts integer I think but it accepts string

Laravel Version: 8.49.2
PHP Version: 8.0.7
Database Driver & Version:  10.5.10-MariaDB

Description:
I faced an issue while creating routes for my project, where I had to have two resource routes devices.types and devices.types.properties the second resource route had a portion of its URL similar to first resource route,
while I was trying to access the second route index method It was executing the show of the first method of first route for me
Route::resource('devices/types', App\Http\Controllers\DeviceTypesController::class);
Route::resource('devices/types/properties', App\Http\Controllers\DeviceTypesPropertiesController::class);
problem was that by accessing devices/types/properties URL it was going to devices/types URL assuming reset of the URL as parameters for first resource route causing show method of first resource route to be called;
Steps To Reproduce:

Hi there,
Thanks for reporting but it looks like this is a question which can be asked on a support channel. Please only use this issue tracker for reporting bugs with the library itself. If you have a question on how to use functionality provided by this repo you can try one of the following channels:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

However, this issue will not be locked and everyone is still free to discuss solutions to your problem!
Thanks.


Changes for API 20201101 version

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

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

front door

front door

@disreedh Please fix CI issues first. Thanks.

@disreedh Please fix CI issues first. Thanks.

@kairu-ms  Thank you for helping out with the issue.

@kairu-ms  Thank you for helping out with the issue.


Wiggly screens rendering issue.

Finally installed my board from VGP inside 250407 REV C board using a 6569R5 VIC chip.  The results are wiggly. See the video below:
https://youtu.be/WhkywaEn0hI
and a shot picture

I've tried different monitors and they all have the same problem.  I've noticed also that some of the C64 demos (like Lunatico) produce some very weird artifacts. Since the board is on 2.6, I assume that I'll need to get to 2.9 to see any improvement of Sprites rendering timing?
But that wiggly rendering on component output is weird.  Note that the 64 S-Video coming out of the board is fine.  Only the component output has this issue.
Any idea what could cause this?  Note that this is a 250407 REV C NTSC board that has been converted into PAL by changing the crystal. The machine runs fine in PAL, but the AC 9 volts from the power supply will still come into the machine at 60 HZ.  I'm wondering if this has anything to do with the issue I'm seeing?

Hmmm... This could very well be the same issue as https://github.com/c0pperdragon/C64-Video-Enhancement/issues/36

Unlikely. The screen with #36 is completely unreadable and skewed to one side. Here is just minor wiggling left and right.

@laubzega  you need to watch the video at
https://drive.google.com/file/d/1gpyFiY_BxD6BCISTT9gS2czUl1HwVugZ/view
, not the picture.  The symptoms are very similar to mine.

Then indeed. Apparently #36 is about two distinct issues.

Yes, the second problem posted into this issue was completely unrelated to the original post. I have now removed those entries to not confuse the matter any longer.
If you have tried the 47pF treatment and it did not improve, I still have a second idea. Your board revision seems to have a clock circuit made from individual chips instead of the later integrated solution. This is known to cause a lot of troubles.
Somes of the problems were fixed with later firmware revisions - especially sprite rendering.
If nothing of this helps, you can also use a special feature of the FPGA board that produces a pixel clock you could feed into the VIC-II to bypass the shaky clock generator - this is explained in more detail in https://github.com/c0pperdragon/C64-Video-Enhancement/issues/38  - but it requires a bit of rework of the C64 main board.

Yep... I fully read https://github.com/c0pperdragon/C64-Video-Enhancement/issues/38 and I'm 99.9% sure I'm hit with the same sparkly pixels issue :) It's going to be a fun project to diagnose. But first I'll move the firmware to 2.9

I moved my firmware to 2.9 and did the pixel clock mod.

The mod did the fix for me. No more sparkling pixel! I threw everything at it: Sprite Crunch, VSP. It's rock-solid!!! I'm blown away by the board!!!!


Tooling and guides: Loki (Logging)

https://github.com/grafana/loki
Recommended tools section is currently very web/Azure/App Insights focussed.
With the purpose of providing insight into tools and their purposes, best practices, starter templates/recipes (if available)
Contribute content for Loki -

Purpose and usage application scenarios
Recommended approaches
What to watch for
Recipes / Starter templates

Happy to jump on this one! Can I?

Happy to jump on this one! Can I?

Absolutely! Thank you @Guilhermeslucas !

Absolutely! Thank you @Guilhermeslucas !


Security scan

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


Add build system

Does this change affect the build output?

No, at the end of the day setuptools, poetry or filt are doing more or less the same. PEP-517 contains more details about the build systems.
There is a pyproject.toml file and this could let one assume that it's poetry-based.
For the Nix package I needed to make a decision and poetry-core was the obvious one as it's wide-spread and modern.

I believe you are asking for something different than the way it works now. I'd rather not switch from what works unless there is good reason.
https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/
Fallback Behaviour¶
If a project does not have a pyproject.toml file containing a build-system section, it will be assumed to have the following backend settings:

[build-system]
requires = ["setuptools>=40.8.0", "wheel"]
build-backend = "setuptools.build_meta:__legacy__"


N@TM

General Revisions to the Game
Enemy Movement
https://github.com/CyberLord09/CSSE1_Final/assets/142454293/50bb76a1-0a48-4e36-8f46-b1dbb3803a48
We wanted certain enemies to move back and forth. We first added new properties that handle the direction and animation of the enemy to the Enemy class.
export class Enemy extends Character {

    initEnvironmentState = {
        // Enemy
        animation: 'right',
        direction: 'right',
        isDying: false,
    };
// code hidden
}

For the collisions with the boundaries of the game environment, we created a method that checks for the boundaries of the enemy to the minPosition, which is set based on the GameEnv.innerWidth so that the direction of the enemy will change from left to right or right to left. The movement of the enemy is also set by changing the speed:
checkBoundaries(){
        // Check for boundaries
        if (this.x <= this.minPosition || (this.x + this.canvasWidth >= this.maxPosition)) {
            if (this.state.direction === "left") {
                this.state.animation = "right";
                this.state.direction = "right";
            }
            else if (this.state.direction === "right") {
                this.state.animation = "left";
                this.state.direction = "left";
            }
        };
    }

// code hidden
updateMovement(){
        if (this.state.animation === "right") {
            this.speed = Math.abs(this.speed)
        }
        else if (this.state.animation === "left") {
            this.speed = -Math.abs(this.speed);
        }
        else if (this.state.animation === "idle") {
            this.speed = 0
        }
        else if (this.state.animation === "death") {
            this.speed = 0
        }

        // Move the enemy\
        this.x += this.speed;

        this.playerBottomCollision = false;
    }
// code hidden

We also change the direction of the enemy when it collides with certain game objects:
 // Player action on collisions
    collisionAction() {
        if (this.collisionData.touchPoints.other.id === "finishline") {
            if (this.state.direction === "left" && this.collisionData.touchPoints.other.right) {
                this.state.animation = "right";
                this.state.direction = "right";
            }
            else if (this.state.direction === "right" && this.collisionData.touchPoints.other.left) {
                this.state.animation = "left";
                this.state.direction = "left";
            }

        }

        if (this.collisionData.touchPoints.other.id === "player") {
            // Collision: Top of Goomba with Bottom of Player
            //console.log(this.collisionData.touchPoints.other.bottom + 'bottom')
            //console.log(this.collisionData.touchPoints.other.top + "top")
            //console.log(this.collisionData.touchPoints.other.right + "right")
            //console.log(this.collisionData.touchPoints.other.left + "left")
            if (this.collisionData.touchPoints.other.bottom && this.immune == 0) {
                GameEnv.invincible = true;
                GameEnv.goombaBounce = true;
                this.canvas.style.transition = "transform 1.5s, opacity 1s";
                this.canvas.style.transition = "transform 2s, opacity 1s";
                this.canvas.style.transformOrigin = "bottom"; // Set the transform origin to the bottom
                this.canvas.style.transform = "scaleY(0)"; // Make the Goomba flat
                this.speed = 0;
                GameEnv.playSound("goombaDeath");

                setTimeout((function() {
                    GameEnv.invincible = false;
                    this.destroy();
                }).bind(this), 1500);

                // Set a timeout to make GameEnv.invincible false after 2000 milliseconds (2 seconds)
                setTimeout(function () {
                this.destroy();
                GameEnv.invincible = false;
                }, 2000);
            }
        }

        if (this.collisionData.touchPoints.other.id === "jumpPlatform") {
            if (this.state.direction === "left" && this.collisionData.touchPoints.other.right) {
                this.state.animation = "right";
                this.state.direction = "right";
            }
            else if (this.state.direction === "right" && this.collisionData.touchPoints.other.left) {
                this.state.animation = "left";
                this.state.direction = "left";
            }
        }
    }

Animations
We wanted the animations to be smoother for some animating game objects. We did this in the Boss.js file by adding two new attributes:
 constructor(canvas, image, data, xPercentage, yPercentage, name, minPosition) {
        super(canvas, image, data, xPercentage, yPercentage, name, minPosition);
        this.animationSpeed = data?.animationSpeed || 1; //higher "animationSpeed" means slower animation
        this.counter = data?.animationSpeed;
       // code hidden
    }

We created a new method that used the counter to control frame change based on animation speed. Then, we added animationSpeed as a property to the boss character in GameSetterBoss.js:
updateFrameX() {
        // Update animation frameX of the object
        if(!this.state.isDying || this.state.animation != "death"){
            if (this.frameX < this.maxFrame) {
                if(this.counter > 0){
                    this.frameX = this.frameX;
                    this.counter--;
                }
                else{
                    this.frameX++
                    this.counter = this.animationSpeed;
                }
            } else {
                this.frameX = this.minFrame;
            }
        }

// code hidden
}

boss: {
      src: "/images/platformer/sprites/boss.png",
      width: 64,
      height: 64,
      scaleSize: 320,
      speedRatio: 0.6,
      animationSpeed: 6,
      idleL: { row: 9, frames: 0, idleFrame: { column: 1, frames: 0 } },
      idleR: { row: 11, frames: 0, idleFrame: { column: 1, frames: 0 } },
      left: { row: 9, frames: 8, idleFrame: { column: 7, frames: 0 } },
      right: { row: 11, frames: 8, idleFrame: { column: 7, frames: 0 } },
      attackL: { row: 13, frames: 5 },
      attackR: { row: 15, frames: 5 },
      death: { row: 20, frames: 5 },
      hitbox: { widthPercentage: 0.3, heightPercentage: 0.8 }
    },

Transitions Between Levels
We refactored transitions to use level tag rather level number. This is so that if any levels get reordered around, they would look nicer with their specifically-matched transition. The way this code works is by creates a constant names index, which finds the index of the level with the tag named "Greece." It then transitions to index, which in this case, is "Greece." We implemented this for all levels:
const index = GameEnv.levels.findIndex(level => level.tag === "Greece")
GameControl.transitionToLevel(GameEnv.levels[index]);

Team Level
We created a new team level called Greece and
Mini Level
Tubes
Boss Level

Mini Level
Tubes
Boss Level

Boss Level

Same as the Base file for Enemy, we can have a new base file for FlyingEnemy to clean up the code
Before we create the Base file, we can see that the codes for the FlyingEnemy are not consistent from level to level
Some of them just copy and paste all the code from FlyingGoomba.js and some of them choose to extend the FlyingGoomba
Both ways have repeated code segments that aren't necessary and are easier to confuse others (CSSE students for next year).
How to fix?:
Create a javascript file called FlyingEnemy, this file is for FlyingEnemy that has a symmetrical sprite/image like Goomba.
Create a javascript file called FlyingEnemyOneD, this file is for FlyingEnemy that doesn't have a symmetrical sprite/image like Dragon.
Copy and paste the code from FlyingGoomba into Both FlyingEnemy.js and FlyingEnemyOneD.js, we will use this code as basic to build our Base file.
We need to take out all the code inside the update() function and apply the single responsibility principle, creating different functions and categorizing the take-out code into the functions based on their purposes.
Change the class extended for each flying enemy to either FlyingEnemy or FlyingEnemyOneD (if your sprite/image is symmetrical, then extend the FlyingEnemy, if not, extend the FlyingEnemyOneD
Lastly, remove all other code except the update function, and for the update function, it should include only super.update()
And we will have a simple code for our flying enemy which is easier to read and more pleasing our eyes.
import FlyingEnemy from './FlyingEnemy.js';

export class FlyingGoomba extends FlyingEnemy {

    // constructors sets up Character object
    constructor(canvas, image, data, xPercentage, yPercentage, name, minPosition){
        super(canvas, image, data, xPercentage, yPercentage, name, minPosition);
        this.enemySpeed();
    }
    update() {
        super.update();

    }
}

export default FlyingGoomba;

Player change

As you see, the player will change to a zombie when it hits the item block.
At first, we try to achieve that by removing the original player(Mario) and replacing it with our zombie player during the gameplay.
We tried, and we failed.
Because of the time limit, we don't want to spend more time on this hard way. So according to Mr.M's advice, we plan to make the "parallel players".
Parallel players

Instead of replacing the player, we plan to add two players to our level and make one, the zombie player, invisible in the beginning.

We create PlayerZombie.js for our zombie player and PlayerBoss.js for the Mario player(therefore we don't need to change the PlayerHills.js)

And because our zombie sprite sheet has only one direction, so we added a new Base Player file, PlayerBaseOneD.js, for sprites that only have one direction.

The only difference between PlayerBaseOneD.js and PlayerBase.js is we added a if-statement to the updateAnimation() function.
    if(this.state.direction == "left"){
          this.canvas.style.transform = 'scaleX(-1)';
    }
    else{
          this.canvas.style.transform = 'scaleX(1)';
    }

    updateAnimation() {
        switch (this.state.animation) {
            case 'idle':
                if(this.state.direction == "left"){
                    this.canvas.style.transform = 'scaleX(-1)';
                }
                else{
                    this.canvas.style.transform = 'scaleX(1)';
                }
                this.setSpriteAnimation(this.playerData.idle);
                break;
//...code hidden
        }
    }

The PlayerZombie.js extends the new base file PlayerBaseOneD.js we created instead of extending the old PlayerBase.js.

To make the player invisible, we create a new property to the constructor called "this.invisible" for both player files and we set it equal to true.

    constructor(canvas, image, data) {
        super(canvas, image, data);

        this.invisible = true;

        // Goomba variables, deprecate?
        this.timer = false;
        GameEnv.invincible = false; // Player is not invincible
    }

And then we overwrite the function draw() and add an if-statement to it so that when "this.invisible"=true, the player image won't draw/won't appear and therefore the player is invisible.
        if (!this.invisible) {
            this.ctx.fillText(this.name, 0, this.canvas.height / 4);
            this.ctx.drawImage(
                this.image,
                this.frameX * this.spriteWidth,
                this.frameY * this.spriteHeight,
                this.spriteWidth,
                this.spriteHeight,
                0,
                0,
                this.canvas.width,
                this.canvas.height
            );
        }

Last, we create a new file "BossItem.js" for our itemBlock. Everything is the same except we change "GameControl.startRandomEvent("game");" to "GameControl.startRandomEvent("zombie");"

startRandomEvent("game") is the global event includes time stop, background change, and randomly kill a Goomba in the Hill level.
startRandomEvent("zombie"); is the new event we create to change the "this.invisible"
So that when Mario player hits our itemBlock, it will run the function startRandomEvent("zombie"); and change "this.invisible" to false and let the zombie player appear and the Mario player disappear/invisible.