Default status colour and refresh rate of the device

Hello
It's an awesome project. It is grown a lot since last time i have checked it. Good work. I appreciate it and a lot other people will agree
I got the system up and running. It is now on my spare netbook at home but i will get an VPS in the future.
But i have some basic questions.
What is the default colour of the device?
I understand that orange in unknown, red disconnected, and green connected and sending data.
I got an Teltonika fm220 with send period on 30sec and GPS min period on 18sec(for the test) and its most of the time red, and its green for few sec while updating status and then its red again. So i assume that opening and closing of the connection works. But i suspect that while the vehicle is not moving it sends data every 5 minutes, i don't know why yet, i assume its some kind of sleep mode, ill get to that.
When the device is switched off should be orange or red?
After few minutes of using your android app, the status was green. But when i switched it off (the whole phone) and the status went to orange.
What refresh rate do you suggest for best results?
What data transfer do i need for my sim card (roughly). It is just sending text so it should be much isn't it?
In one of the previous issues you wrote that it shouldn't take around 50MB per month(with 1min refresh rate)
Best regards
Michal

Hello
I can answer your questions.
There are three statuses of device:
green - it is connected ( network connection is up )
red - network connection was closed (by server or by device)
orange - connection was marked as "Unknown" because of special timeout (it was not closed)
Your device seems send data and closes connection, because of that it is red most of time. There can be some device settings not to close connection after every sending.
Android app uses HTTP protocol and do the same, but there is exclusion for such protocols in code and It becomes orange by timeout.
Refresh rate is depends of your precision requirements.
I think device will need about 1 Mb  a day with 1 min refresh rate.
Do not forget about traffic rounding of your provider. If your device sends data 150-200 bites  and closes connection session will be rounded to 1 Kb or even 10 Kb (depends on provider)
Best regards
Andrey

Great thank you for the answers.
It is clear now. And what colour should i have in default? How should it be done properly. Should i have all active devices green, isn't it?

Essentially, if you get information it does not matter which connection status most of time.
If it is really active and do not sleep it should be green, but not necessarily.

Essentially you want your devices to be green (connected and active). They can turn yellow/orange if there were no message from device for selected interval of time (by default 10 minutes). Red color means that device is disconnected (this status only applies to TCP-based protocols).

Like i thought.
Any suggestions how to make it green all the time?

You need to configure your device to not disconnect from the server. Not sure if it's actually possible for your device, but hopefully there is an option.

Thank you. I reckon its not possible so it will stay as it is right now. At least for now

Hi,
Thanks for creating this excellent software!
Like @Michaal4 I'm also using Teltonika hardware, Traccar handles it quite well, but I also have problems with the device status.

TCP connections from my clients are closed immediately, and keeping them open is not supported.. (unfortunately)
Updates from clients are shown briefly in the web UI (a device is marked online, and then immediately offline again)
The orange/UNKNOWN state is not reached, I assume because all devices receive the status "offline" after an update.

This is sufficient for tracking client locations, but notifications regarding device status are useless (i.e. each update from a client triggers a "device online" and a "device offline" this will drive users crazy)
Would it be possible to make the logic regarding the device state configurable?
I read about a config parameter [protocol].timeout for connection timeout, could we use something like that to mark devices a offline (due to lack of updates and not to loss of connection)?
Many thanks

I have added an exception for Teltonika protocol. It won't set status to "offline" now.

Thank you, I have tested this with a new build, and it works like a charm

Thank you. I will ad this as soon as possible

I'd say making an exception and closing is not a solution, since Teltonika devices do support persistent connection to server (at least some of them - if you enable FMI).

Implemented configuration option to specify which protocols use non-persistent connections:
<entry key='status.ignoreOffline'>teltonika,ruptela</entry>

Works for me... although this is more of a device setting than protocol, since it depends on actual device configuration.

Let's see if anybody requests it per device. It's possible to implement, but it would be a bit more complicated.


~/.config/zsh/.zcompdump is always created

Hi!
I am in the process of switching my Zsh setup from zinnit to antidote and want to use ez-compinit to manage my completions. I am not sure if this is a antidote or ez-compinit issue. Please let me know if this issue belongs somewhere else.
Here are my configuration files which is still a work in progress.
~/.config/zsh/.zshenv
# Make Zsh respect XDG directories.
export ZDOTDIR=${ZDOTDIR:-$HOME/.config/zsh}

# Set XDG base directories.
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
export XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
export XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
export XDG_STATE_HOME=${XDG_STATE_HOME:-$HOME/.local/state}
# XDG base directories not in specification.
export XDG_BIN_HOME=${XDG_BIN_HOME:-$HOME/.local/bin}

# Fish-like directories.
: ${__zsh_config_dir:=${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}}
: ${__zsh_user_data_dir:=${XDG_DATA_HOME:-$HOME/.local/share}/zsh}
: ${__zsh_cache_dir:=${XDG_CACHE_HOME:-$HOME/.cache}/zsh}

# Ensure XDG/Zsh directories exist.
() {
    local dir
    for dir in "$@"; do
        [[ -d "${(P)dir}" ]] || mkdir -p -- "${(P)dir}"
    done
} __zsh_{config,user_data,cache}_dir XDG_{CONFIG,CACHE,DATA,STATE,BIN}_HOME

~/.config/zsh/.zshrc
#
# Antidote: Zsh plugin manager.
#

export ANTIDOTE_REPO=${XDG_DATA_HOME:-$HOME/.local/share}/antidote
[[ -d $ANTIDOTE_REPO ]] \
    || git clone --depth 1 https://github.com/mattmc3/antidote $ANTIDOTE_REPO

bundle_file=${ZDOTDIR:-$HOME/.config/zsh}/zsh_plugins
static_file=${XDG_DATA_HOME:-$HOME/.local/share}/zsh/zsh_plugins.zsh
[[ -f $bundle_file ]] || touch $bundle_file

# Source Antidote.
source $ANTIDOTE_REPO/antidote.zsh

# Use friendly names with the bundle directory in $ANTIDOTE_HOME.
zstyle ':antidote:bundle' use-friendly-names    on
# Set custom bundle file. Default: ${ZDOTDIR:-$HOME}/.zsh_plugins
zstyle ':antidote:bundle' file                  $bundle_file
# Set custom static file. Default: ${ZDOTDIR:-$HOME}/.zsh_plugins.zsh
zstyle ':antidote:static' file                  $static_file
# Zsh compile everything, static file and all bundles.
zstyle ':antidote:*'      zcompile              yes

#
# Completions: Set completion options.
#

zstyle ':plugin:ez-compinit' 'compstyle' 'zshzoo'

#
# Plugin settings: Set options for various plugins.
#

export FZF_PATH=${XDG_DATA_HOME:-$HOME/.local/share}/fzf

#
# Wrap-up
#

# Initialize plugins statically with ${ZDOTDIR:-$HOME/.config/zsh}/zsh_plugins file.
# Note: Must be loaded after setting zstyles.
antidote load

~/.config/zsh/zsh_plugins
#
# Completions
#
mattmc3/ez-compinit
zsh-users/zsh-completions kind:fpath path:src

#
# Utilities
#
mattmc3/zephyr path:plugins/color
mattmc3/zephyr path:plugins/directory
mattmc3/zephyr path:plugins/history
ohmyzsh/ohmyzsh path:plugins/command-not-found
ohmyzsh/ohmyzsh path:plugins/extract

#
# FZF
#
unixorn/fzf-zsh-plugin
Aloxaf/fzf-tab

#
# Fish-like plugins
#
mattmc3/zephyr path:plugins/zfunctions
mattmc3/zephyr path:plugins/confd
zdharma-continuum/fast-syntax-highlighting
zsh-users/zsh-autosuggestions
zsh-users/zsh-history-substring-search

The issue is that no matter what I do the ~/.config/zsh/.zcompdump file is always created and before ez-compinit creates ~/.cache/zsh/zcompdump. Basically I end up with two zcompdump files in different locations and which one is Zsh actually using?
Isn't ez-compinit supposed to manage my zcompdump file and set it to a static location? Any suggestions what I am doing wrong would be very appreciated. Or am I using  ez-compinit incorrectly?
Many thanks and keep up the good work! :smile:

@pwyde - I put the config you shared in a demo repo to see if I could reproduce your issue, but cannot. The only thing I can think of is you have something in $ZDOTDIR/.conf.d that you haven't shared (since you use the mattmc3/zephyr path:plugins/confd plugin). Is there any part of your config you haven't shared?

$ZDOTDIR/.conf.d is empty. The only thing I forgot to mention is that I have the following in /etc/zsh/zshenv:
export ZDOTDIR="${HOME}/.config/zsh"
This is so I can actually have all my Zsh configuration files in ~/.config/zsh directory. Otherwise my Ubuntu 24.04 system assumes .zshrc and .zshenv should exist directly in my $HOME directory.
Here is a more or less empty $HOME with the Zsh configuration files specified in the original post:
ubuntu-server% tree -a -I '.vscodium-server' $HOME
/home/patrik
├── .cache
│   └── Microsoft
│       └── DeveloperTools
│           └── deviceid
├── .config
│   └── zsh
│        ├── conf.d
│        ├── .zshenv
│        ├── zsh_plugins
│        └── .zshrc
├── .local
│   ├── bin
│   ├── share
│   └── state
└── .ssh
    └── authorized_keys

And now I start a new Zsh shell and check what has been created:
ubuntu-server% zsh
Cloning into '/home/patrik/.local/share/antidote'...
remote: Enumerating objects: 207, done.
remote: Counting objects: 100% (207/207), done.
remote: Compressing objects: 100% (171/171), done.
remote: Total 207 (delta 14), reused 123 (delta 4), pack-reused 0 (from 0)
Receiving objects: 100% (207/207), 71.40 KiB | 1.52 MiB/s, done.
Resolving deltas: 100% (14/14), done.
# antidote cloning mattmc3/ez-compinit...
# antidote cloning ohmyzsh/ohmyzsh...
# antidote cloning mattmc3/zephyr...
# antidote cloning zsh-users/zsh-history-substring-search...
# antidote cloning zdharma-continuum/fast-syntax-highlighting...
# antidote cloning Aloxaf/fzf-tab...
# antidote cloning unixorn/fzf-zsh-plugin...
# antidote cloning zsh-users/zsh-completions...
# antidote cloning zsh-users/zsh-autosuggestions...
Cloning into '/home/patrik/.local/share/fzf'...
remote: Enumerating objects: 131, done.
remote: Counting objects: 100% (131/131), done.
remote: Compressing objects: 100% (122/122), done.
remote: Total 131 (delta 5), reused 38 (delta 3), pack-reused 0 (from 0)
Receiving objects: 100% (131/131), 315.83 KiB | 1.90 MiB/s, done.
Resolving deltas: 100% (5/5), done.
Downloading bin/fzf ...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1523k  100 1523k    0     0  1441k      0  0:00:01  0:00:01 --:--:-- 1441k
- Checking fzf executable ... 0.56.3
Can't find a fzf configuration file at /home/patrik/.local/share/fzf/fzf.zsh, creating a default one
ubuntu-server% tree -a .config/zsh
.config/zsh
├── conf.d
├── .zcompdump
├── .zshenv
├── zsh_plugins
└── .zshrc

2 directories, 4 files
ubuntu-server% tree -a .cache/zsh
.cache/zsh
├── zcompdump
└── zcompdump.zwc

1 directory, 2 files
ubuntu-server% rm .config/zsh/.zcompdump
ubuntu-server% zsh
ubuntu-server% tree -a .config/zsh
.config/zsh
├── conf.d
├── .zcompdump
├── .zshenv
├── zsh_plugins
└── .zshrc

2 directories, 4 files

As you can see, the ~/.config/zsh/.zcompdump is constantly re-created. Could this behaviour be a Ubuntu specific thing?


attr.filters.exclude or include not simultaneously usable with validators.in_ set.

When using one of the mentioned filter functions in attrs.as_dict or as_tuple on frozen nodes that have attributes with attrs.validators.in_  set as their validator, the following TypeError is thrown:
  File "<>/venv/lib/python3.11/site-packages/attr/filters.py", line 63, in exclude_
    or attribute in attrs
       ^^^^^^^^^^^^^^^^^^
  File "<>/venv/lib/python3.11/site-packages/attr/_funcs.py", line 57, in asdict
    if filter is not None and not filter(a, v):
                                  ^^^^^^^^^^^^
  File "<>/venv/lib/python3.11/site-packages/attr/_next_gen.py", line 211, in asdict
    return _asdict(
           ^^^^^^^^
  [...]
TypeError: unhashable type: 'set'

Trying to execute line 63, in exclude_ (top of traceback) resulted in the following error:
Traceback (most recent call last):
 [...]
  File "<attrs generated hash attr._make.Attribute>", line 2, in __hash__
    return hash((
           ^^^^^^
  File "<attrs generated hash attr.validators._InValidator>", line 2, in __hash__
    return hash((
           ^^^^^^
TypeError: unhashable type: 'set'

Therefore I suspect, that the issue lies in hashing of attrs.validators.in_.

Looking further into it, I noticed that this issue occurs if the options passed to to the in_ function are not of a hashable type (in my case list objects), what made the corresponding attribute unhashable.
Casting the options into a hashable type such as tuple or frozenset might resolve this issue.

For posterity, this is what breaks:
import attrs

@attrs.define
class C:
    x: int = attrs.field(validator=attrs.validators.in_({1, 2}))

i = C(2)

attrs.asdict(i, filter=attrs.filters.exclude(lambda val: True))

I believe this is fixed in https://github.com/python-attrs/attrs/pull/1320


fix: using returntype due to node/deno timeout difference in types

This code does not compile. Try running npm i on your branch. I can't explain why. Perhaps @wojpawlik knows the answer.

Now it will, forgot to bump node types

In node.js setTimeout returns an exact type NodeJS.Timeout after some major lts version (14.x +). That's why it doesn't expect a number anymore, since it has to be not any number, but exactly received from a timeout.

But shouldn't it still work to use ReturnType<typeof setTimeout> no matter what the return type actually is?

I supposed it should, but it didn't=)

Alright cool, I guess we both don't know 😅


[BUG] Unable to inject content script into MAIN world

What happened?
the code
import type { PlasmoCSConfig } from "plasmo"
export const config: PlasmoCSConfig = {
matches: ["<all_urls>"],
world: "MAIN"
}
the chrome console error is read filter of underfined.
it is in the @plasmohq/parcel-runtime. the version is 0.21.1. the files names are page-runtime and script-runtime.
the relative line is var _ = typeof globalThis.process < "u" ? globalThis.process.argv : [];
the "globalThis.process.argv" is undefined.
i find the globalThis.process initialize after using.
Version
Latest
What OS are you seeing the problem on?
Windows
What browsers are you seeing the problem on?
Chrome
Relevant log output
Uncaught TypeError: Cannot read properties of undefined (reading 'filter')
    at qwJpg.e1e41845a07d89d7 (runtime-bd083dfe451f711b.js:7:33)

(OPTIONAL) Contribution

[ ] I would like to fix this BUG via a PR

Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

I have the same problem

After I tried setting the run_at:  run_at: "document_start" option, the problem was resolved. I suspect the reason may be that some web pages do not allow second modifications to the native object, so the modification request is rejected, if you modify before the page initialization, you can avoid this problem.


 But this ensures they're only getting fired when the appropriate modifier keys (shift in some cases, none in others) are pressed.
Microsoft Reviewers: Open in CodeFlow

This goes into p4 right?

This goes into p4 right?

@davidfowl Pending discussion mentioned here: https://github.com/dotnet/aspire/pull/2465#pullrequestreview-1902570887

Merging, combining the three separate PR commits and cherry picking back into p4


Supermium fails to install on older systems lacking presumably SSE3, with the browser itself not getting far enough to create a window.

On systems without SSE3 (very early Athlon 64s, Northwood and Willamette Pentium 4s, etc), attempting to install the browser through the mini installer only creates a tmp folder, without a shortcut or Supermium folder being created. Trying to workaround this by extracting the installer through 7-zip (in which the browser does still open on capable hardware even if it's been extracted this way) causes the actual Supermium executable to only create around 3 processes before closing without any prompt or "stopped working" message. A debug.log is created, however, and the lines added to it are always consistent with each launch attempt. I did try to log everything I could out of it, but unless I'm doing something wrong (following this) , it doesn't log anymore than running it normally does. I have attached said log below, however, it doesn't look very useful in my eyes.
debug.log
I'll also attach an msinfo32 export of my hardware, with some useless data removed. I'll summarize it here as well:
Dell Dimension 4500
Windows 7 SP1 with all updates until EOL (not hardware but here for clarity)
ATI All-In-Wonder 9200 (Radeon 9200 with some TV features)
Sound Blaster Live! with the open source kX drivers
Northwood Pentium 4 2.0GHz
and 2GB of DDR1 RAM

report.txt
I'll also attach an HTML report of my hardware as reported by CPU-Z. GitHub doesn't allow me to attach HTML files, so I'll throw it into a standard ZIP file.
CPUZ REPORT.zip
Lastly, even if it's been already uploaded by me, I'll show a video of what exactly happens once Supermium is executed. Yes I know there's a watermark that makes this sound like a joke, it's the only program I could think of in an instant to record my screen on this single core CPU.
clip0001.webm
I greatly appreciate the work that has gone into this project, and I hope I'm able to help by posting this issue. I'm willing to post any additional information if needed.
Side note, the reason I have Edge installed is because it oddly supports SSE2 systems, even with 109.

I also tried to install on a PC with SSE2, x32 - unsuccessfully.
Edge 109 works well, but only for Windows 7. Windows XP even with OCAPI does not support it.

I also tried to install on a PC with SSE2, x32 - unsuccessfully.
Edge 109 works well, but only for Windows 7. Windows XP even with OCAPI does not support it.

I have removed the SSE3 flag from the build configuration. Does this work? https://github.com/win32ss/supermium/releases/tag/v117-hf

Does this work?

If you unpack this installer, then it works for me on windows 7.
On Windows XP + OCAPI does not work. Debug.log
[0718/194907.171:ERROR:registration_protocol_win.cc(107)] CreateFile: The system cannot find the file specified. (0x2) [0718/194930.437:ERROR:crashpad_client_win.cc(142)] crash server failed to launch, self-terminating

I have removed the SSE3 flag from the build configuration. Does this work? https://github.com/win32ss/supermium/releases/tag/v117-hf
Unless there is some asm or third party component that went its own way.

Mini installer still exhibits the same behavior, but that doesn't mean there's not any good news to bring (after extracting the installer manually).

Don't know what's up with the graphical weirdness on the window sides, maybe the redesign doesn't play nice with no compositing (using XPDM drivers that also can't accelerate DirectX 9, so SwiftShader is in use by Chrome), or it's some upstream bug. But that doesn't really matter right now, it works!

As with the "graphical weirdness", Chrome only draws the titlebar, not the side bars. You can set #native-xp-theme in chrome://flags to bridge the gap somewhat.
I'll see if I can fix the installer. All Chromium components should build without the SSE3 flag, including the mini_installer, and in fact that would be one of the last places I'd expect problems to occur. In fact I will hunt for SSE3 instructions in the installer!
XP (without One-Core-API) is still a little far out. But I do have my custom DLL ready to expedite the porting process and I will test it on some smaller applications soon.

While there could very well be instructions snuck in, another possible case is the installer is intentionally stopping itself when it detects SSE3 is not present. Quoting this document .
"On x86 processors without SSE3 support,
running Chrome will result in a crash. The Chrome installer will attempt to exit early, but
might also crash."
But not sure if they're referring to the Chromium mini installer, Chrome's proprietary installer, or both.

Yes, that would be it. mini_installer spawns setup.exe. Thanks. In fact this is the very first thing called in wWinMain.
As a side note this exposes another issue of the mini_installer: the fact that it is completely silent. It's wWinMain, as in "probably a Windows GUI application", but it doesn't take advantage of this status. So I will be adding some MessageBoxes and other windows to indicate errors to the user, as well as the option to select the installation folder, while restoring the ability to install shortcuts on Vista and below.
I will probably drop the block altogether, in the event that the user installs an SSE2 emulator on their system. That's a very difficult undertaking because not all SSE2 instructions on MMX-SSE systems result in a #UD but I could see this being attempted in the future.

Yes, that would be it. mini_installer spawns setup.exe. Thanks. In fact this is the very first thing called in wWinMain.
As a side note this exposes another issue of the mini_installer: the fact that it is completely silent. It's wWinMain, as in "probably a Windows GUI application", but it doesn't take advantage of this status. So I will be adding some MessageBoxes and other windows to indicate errors to the user, as well as the option to select the installation folder, while restoring the ability to install shortcuts on Vista and below.
I will probably drop the block altogether, in the event that the user installs an SSE2 emulator on their system. That's a very difficult undertaking because not all SSE2 instructions on MMX-SSE systems result in a #UD but I could see this being attempted in the future.

You're welcome, I found it through GitHub's code search feature. If the installer is indeed tested to work on SSE2, then I'll close this issue and we cross this goal off. Some error messages would be nice too yes.
Unless it's a simple fix, there's probably no reason to try and support MMX-SSE besides disabling the arbitrary blockade. They've been dropped since 2014 and in that timeframe there's probably code for SSE2 sprinkled everywhere.

Just tried 118, installer still doesn't work, but extracting the installer works as before. If this build removed that code block, I guess there might be more to it that prevents the installer from working.

I had neglected the installer as I was stuck dealing with other things.

I had neglected the installer as I was stuck dealing with other things. I plan on making more substantive improvements to the installer as some other users complained about a lack of a GUI element.

Oh alright.

Although it doesn't matter, 119 still has a su

permium_119_32_32_setup.exe installer error.
error119.txt

Although it doesn't matter, 119 still has a supermium_119_32_32_setup.exe installer error.

The problem is that I was not running the installer correctly. I have UAC disabled and I tried normal startup and startup with Administrator rights - that's from the context menu. These methods didn't work, but I should have opened the compatibility tab and checked the "Run as Administrator" checkbox there.
The installation has been tested on SSE2 CPUs. It's all working.

I'll assume it works, since my SSE2 system is currently unplugged. At least it runs now.


TODO: Choose software license

There are a lot of software licenses out there. I prefer the GNU GPLv3 since it means that people who adjust the code also have to make the code available.
More information: https://choosealicense.com/

I know too little about the different licenses to be able to compare them, but i think this is a very good initiative. This one sems good at first glance, what do all of you others think about GNU GPLv3?

I agree about using GNU GPLv3.

As open as possible would be my choice. GNU GPLv3 would be a good way to go but if the decision is made to use existing code libraries their licenses may influence the choice.

I'm in favor of MIT or Apache. GPL is what's known as "copyleft" - it forces anyone who makes changes to the code and distributes it to also release it as GPL. While this sounds nice in theory, in practice it means it's harder to make commercial use of the code (if someone decides to start laser cutting music box sheets as a business, this could make it irritating for them to use the code without violating the license).
MIT (extremely short and simple) and Apache (long and thorough) both allow anyone to do almost anything they want with the code and have become much more popular than GPL over the last decade.

@emosenkis what's your preference? MIT or Apache?

MIT, I guess, but I'd be happy with either.

MIT was chosen and added to the repo, closing.

We currently have an MIT licence applied to the project. Some contributers on Gitter have mentioned that we cannot use the midi-parser.js library as it is GPL. There are issues with the midi-parser.js library. It does not parse all midi files. For this reason we may have to change it and this license issue becomes irrelevant.
As the project progresses we may need to make use of other libraries for things like playback. Until we know what all the constituent parts of the project are and we have a definitive list of libraries used we cannot decide on a final license. I don't know much about licensing and I am not making any suggestions here. I'm merely pointing out that our choice of license is currently problematic and the issue is not closed.

You can be MIT and using GPL code. The projet in its globality will need to respect the GPL, but if midi-parser.js became usable, you can then change the library and be fully MIT.
Thus, I think this issue can just be closed.

My understanding is that if GPL code is used in the project then the whole project needs to be GPL. We currently have an MIT project license.  MIT code can be used in a GPL project but not the other way round. As we haven't finalised all the constituent parts of the application and have not finalised on the libraries and code we are going to use we can't make a definitive decision yet. At the moment however we are in breach of the GPL license by using the midi-parser.js library with a project license of MIT. The issue isn't closed and can only be if we change the project license to GPL or remove the use of the midi-parser.js library immediately (which means taking down the index page) And we may need to re-visit the issue when we have finalised on the libraries used in the final application.

I'm also 👍 for MIT, it's the most flexible & permissive license that would allow using almost any library with GPL licenses

@Yuleblinker the code in this repo can be MIT, and you depend on GPL. But the project in its globality is GPL. If you change later the GPL lib to a MIT one, the project is then MIT.

@TeXitoi Yes, but the problem is that, at the moment, the project in its globality is MIT not GPL. Which I believe means we are currently violating the GPL license for the midi-parser.js library that is currently being used. The final license can only really be decided when we know exactly what the final set of third-party libraries will be and what licenses they use.  I re-openend this issue because we curently have an MIT license and we have a public facing app that uses a GPL component thus breaching the GPL license for that component.

I am not a lawyer but:
It's not a violation of the GPL unless the GPL'ed is copied and pasted into the MIT'ed code. We should be careful not to minify the GPL library together with non-GPL code. Without having all contributors explicitly agree to either assign their copyright or relicense their contributions, you can't just change the license on the repository so you might want to consider adding a contributors agreement that allows relicensing under any Open Source Initiative approved license. That could work for new contributions but existing contributors would also have to agree.
https://softwareengineering.stackexchange.com/questions/107883/agpl-what-you-can-do-and-what-you-cant

Or, what you can do, is add a small dependency flow (npm/yarn) and dump licenses of all installed packages in something like a yarn.lock file. It means anyone installing this project will also install sources of the GPL packages, therefore not violate them, even if you need for example to concatenate & minify lots of JS files, you can still keep the original license for these files (which is something common most of the time) in your project, as it's open-source, so the lock-file or dependency list + your frontend workflow will be the guarantee that you don't modify the original behavior.
Additionnally, you can also add a smal "About" page and add all details about dependencies licenses there, it works too.

Since there are issues with the current midi parser library as well, I suggest to migrate to the ToneJS MidiConvert library. Its license is MIT and is tested to work with multiple tracks. https://github.com/Tonejs/MidiConvert

New library does not have this issue. (MIT license)


Component not always a valid JSX component depending on a generic type

Bug Report
🔎 Search Terms
jsx react generic valid JSX
🕗 Version & Regression Information

This changed between versions 5.0.4 and 5.1.3

⏯ Playground Link
Playground Link
💻 Code
import * as React from "react";

const A = <T extends unknown>({ a }: { a: T }) => (typeof a === "string" ? null : new Error("a must be a string")) as T extends string ? null : Error;

const jsxWithError = <A<string> a="a" />;

const B = A<string>;

const jsxWithoutError = <B a="a" />;

🙁 Actual behavior
Error on A in jsxWithError:
'A' cannot be used as a JSX component.
  Its type '<T extends unknown>({ a }: { a: T; }) => T extends string ? null : Error' is not a valid JSX element type.
    Type '<T extends unknown>({ a }: { a: T; }) => T extends string ? null : Error' is not assignable to type '(props: any, deprecatedLegacyContext?: any) => ReactNode'.
      Type 'Error' is not assignable to type 'ReactNode'.(2786)

🙂 Expected behavior
No error with the generic type provided (as is the case for jsxWithoutError), since we are sure we are using a valid JSX component.

Hmm, this is interesting. The current check when you use a JSX element is to see if the function referred to has a valid return type. In this case, it doesn't, because the return type is this conditional type, which might return error. The implied proposal here is that we should actually look at the resolved return type based on the particular instantiation here, which seems reasonable and probably not difficult. It's worth experimenting.


objects are written to the final_entities table not to entities table

We used new codes but our objects are written to the final_entities table not to entities table. This means we can't see our Components or Resources on our UI.
Our plugins versions are the following
"@backstage/backend-common": "^0.9.9"
"@backstage/plugin-catalog-backend": "^0.17.3"

Here are our configs.
app-config.yaml
catalog:
  rules:
    - allow: [Component, API, Group, User, Template, Location, System, Domain, Resource]
  locations:
    - type: url
      target: https://file-url-which-contains-component

catalog.js (which tries to run processors)
import {CatalogBuilder, UrlReaderProcessor,} from '@backstage/plugin-catalog-backend';
import {PluginEnvironment} from './types';

export async function createReader(
    env: PluginEnvironment,
): Promise<any> {
    const builder = await CatalogBuilder.create(env);

    const urlReader = new UrlReaderProcessor({reader: env.reader, logger: env.logger})
    builder.addProcessor(urlReader)

    const {processingEngine, router} = await builder.build();

    await processingEngine.start();

    return router
}

types.ts
import { Logger } from 'winston';
import { Config } from '@backstage/config';
import {
    PluginDatabaseManager,
    UrlReader,
} from '@backstage/backend-common';

export type PluginEnvironment = {
    logger: Logger;
    database: PluginDatabaseManager;
    config: Config;
    reader: UrlReader;
};

cc: @yilmazo @previousdeveloper
Originally posted by @erkanzileli in https://github.com/backstage/backstage/issues/7984#issuecomment-967121816

Could explain a bit about what you are expecting to be seeing compared to what you're seeing instead? From my understanding you are not seeing components in the UI, but do you know why that is?
Have you made any customizations to the catalog backend or are you otherwise running it in a non-standard way? If it's a standard setup, could you provide some steps to reproduce the issue?

Sure. When we run this code, we see nothing on logs and some tables like refresh_state or final_entities table are being filled with data we use but the entities table is not filled. We don't see any logs. We expect entities table to be filled up with our resources.
Also yarn backstage-cli versions:bump command does nothing which means our versions are fine I guess. Node version is v14.17.1.
There aren't any customizations I know so it is the standard way. If you want we try this code with the backstage initial startup repo @Rugvip.
PTAL @yilmazo @previousdeveloper

@erkanzileli Ah alright, that's all intended. The entities table is only used by the older processing implementation, final_entities is one of the new tables that replaces it. If possible it's best to integrate via the REST or TS APIs as those are the public and stable APIs.

You're right. We'll upgrade our backend service. Thanks a lot.


[sdl2] update to 2.26.1

Describe the pull request

What does your PR fix?
Updates sdl2 to 2.26.1

Which triplets are supported/not supported?

Yes

Feature vulkan is tested successfully in the following triplet:
x86-windows
x64-windows
x64-windows-static

Thank you!


auto mtls for VMs

Bug description
We're experimenting with mesh expansion with VMs in our DC.
We noticed that the auto mtls feature does not seem to work for VMs.
We see unencrypted traffic coming in from an istio enabled pod to a service (with istio sidecar) running on a VM.
With a DestinationRule setting the tls trafficpolicy to ISTIO_MUTUAL mtls is working between the pod and the VM.
Is auto mtls supported on VMs and does this require some additional configuration ?
[ ] Configuration Infrastructure
[ x] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[x ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
Auto mtls also work on VMs.
Steps to reproduce the bug
We use the hipstershop to test mesh expansion, currently we have the currencysvc running on a VM in our DC.

Create a VM with the istio-proxy (we have specified ISTIO_NAMESPACE=currencysvc and ISTIO_INBOUND_PORTS=7000 in the /var/lib/istio/envoy/cluster.env)
Create a kubernetes service for the currencyservice
Create a workloadentry for the VM
Configure the other hipstershop components to use this new service for the currencyservice

Version (include the output of istioctl version --remote and kubectl version and helm version if you used Helm)
1.6.3
How was Istio installed?
With istioctl
Environment where bug was observed (cloud vendor, OS, etc)
GKE and a VM on vmware running rhel7

/cc @incfly

You need to specify the ServiceAccount field in workload entry actually, not the label. Or the label works as well actually, https://github.com/istio/istio/blob/7124d7d2e90c4f35b09e3f4912e2d5e7f12626bc/pilot/pkg/serviceregistry/serviceentry/conversion.go#L328

After adding the label security.istio.io/tlsMode: istio to the workload entry mtls does indeed work.
But the source pod did not automatically pick up this change, it had to be restarted (Istio 1.6.5).

@btoonk do you intend to switch the label at runtime, or was it just because it was initially not setup? This label doesn't change at runtime in k8s so I am not too surprised if we don't have the logic to handle this dynamic update

No, currently we don't need to switch this at runtime.

@incfly can I assign to you as you have context on the auto mTLS feature? Feel free to reassign. Are there any changes to the code to support auto mTLS without restarting pods?


Fix meaning of C in code conventions docs

I was a bit confused when reading the documentation regarding the meaning of C in type classes names such as Functor2C or Applicative2C.
If I understood it correctly, the C doesn't mean curried, but rather constrained, e.g. the "left" parameter of the Writer monad must be an instance of Monoid.
Unless I misunderstood it? 🤔

Thanks @ruizb


Fix pipeline: update test deployment to use pr number image

DEV deployments have completed successfully!
Backend: https://nrog-74-backend.apps.silver.devops.gov.bc.ca/
Frontend: https://nrog-74-frontend.apps.silver.devops.gov.bc.ca/

Your Pull Request code is being promoted!  Please follow the link below.
Main Merge Workflow


⚠ Bofrost.nl has degraded performance

In 1a52d93, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 921 ms

Resolved: Bofrost.nl performance has improved in 8bff3e2 after 6 minutes.


Support for removing Dead containers?

Thank you for docker-gc, it is working nicely for us.
What I did notice is that it doesn't currently remove Dead containers (or it tries and is unsuccessful).
It looks like docker-gc wants to keep them:
$ docker ps -a | grep Dead
45c3be6ad58e        myimage              "myproc"   4 days ago          Dead
66feab2765bd        myimage              "myproc"   4 days ago          Dead
2a45be87379e        myimage              "myproc"   4 days ago          Dead
b8d073da4fac        myimage              "myproc"   4 days ago          Dead
c0dba5cc5f20        myimage              "myproc"   4 days ago          Dead

$ grep 45c3b /var/lib/docker-gc/*
/var/lib/docker-gc/containers.all:45c3be6ad58e726f792bd740376551cae7072815e0ae5cfd80a663d7809dc173
/var/lib/docker-gc/containers.exited:45c3be6ad58e726f792bd740376551cae7072815e0ae5cfd80a663d7809dc173
/var/lib/docker-gc/containers.keep:45c3be6ad58e726f792bd740376551cae7072815e0ae5cfd80a663d7809dc173
/var/lib/docker-gc/containers.reap.tmp:45c3be6ad58e726f792bd740376551cae7072815e0ae5cfd80a663d7809dc173
/var/lib/docker-gc/exclude_container_ids:45c3be6ad58e

$ grep 66fea /var/lib/docker-gc/*
/var/lib/docker-gc/containers.all:66feab2765bd8527628436ae8b81980348de74855b0289407be3d4e4fec58bee
/var/lib/docker-gc/containers.exited:66feab2765bd8527628436ae8b81980348de74855b0289407be3d4e4fec58bee
/var/lib/docker-gc/containers.keep:66feab2765bd8527628436ae8b81980348de74855b0289407be3d4e4fec58bee
/var/lib/docker-gc/containers.reap.tmp:66feab2765bd8527628436ae8b81980348de74855b0289407be3d4e4fec58bee
/var/lib/docker-gc/exclude_container_ids:66feab2765bd

Although not necessarily common, it would be good to cover these or at least output them to a .dead file which can be monitored and addressed a person or another tool.

Hi @flaccid, do you have a repeatable way to create dead containers?

Have the container exit with a non-zero exit status, that usually does the trick. After a time, docker will mark the container as dead.

Thanks @withinboredom but either the container exists with the error code or ends up in a Created state.

Hmm, here's how we're getting them:
We have data-container, and a build-container. build-container has --volumes-from data-container and data-container has volumes from the filesystem.
We always see them go to Dead when the container exits with code 137, unexpectedly (someone usually stops the build). If something tries to delete them, they get marked as Dead instead of removed. My theory is that file handles were left open to the underlying FS that was shared via volumes when the container gets killed, thereby preventing it from being deleted without an rm -f.

Yeah, the Dead state usually shows up here when a file system is busy and the containers exits with a non-zero, but I can't reproduce it consistently.
Just betting on that {{.State.Dead}} works correctly.

give me a branch and I can run it here locally, we get them pretty regularly.

@konstruktoid sorry I don't have a basic way to create them :(

ping don't we usually have dead containers in kubernetes all the time?


Warning MSB3270 caused by Microsoft.Skype.Bots.Media reference

Describe the issue
When building my solution based on the ComplainceRecordingBot i receive the warning:-
Warning MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "Microsoft.Skype.Bots.Media, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=AMD64", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

Call ID
N/A
Logs
See issue description
Additional context
N/A

The Microsoft.Skype.Bots.Media library is x64-only, so please try changing your project build target to x64.

Thank you....that sorted it


Observatory picks wrong geometry when augmenting LGAs in Australia

Context
Trying to get population numbers for Australia by LGA (local government area).
Steps to Reproduce

Obtain LGA boundaries:

INSERT INTO <my_table> (the_geom, name)
SELECT * FROM obs_getboundariesbygeometry(
  ST_Makeenvelope(-179, 89, 179, -89, 4326), 'au.geo.LGA')

Augment by DO
Pick Australia, Age & Gender, and Total (Female)

Current Result/Expected Result

.carto file
Too large to import.  Public map is here.
Additional info
Correct numbers will be somewhat less than in Expected Result, since those are estimates from 2014 instead of census numbers from 2011.

Two possible solutions:

Adjust obs_getmeta call in the Observatory UI to request higher number of geometries
Adjust weighting in obs_getmeta call in the Observatory API to work better there

Fix is being done here: https://github.com/CartoDB/bigmetadata/issues/141

Underling condition fixed.  Now testing and rebuilding data, hope to have a deployment done EoD here.

Deployment started. This takes a few hours.

Deployed.  Problem should be resolved.  We should now return correct 2011 LGA numbers in Australia.


[8.x] Adds attempt method to Rate Limiter

What?
You can use the attempt() from the Rate Limiter to execute a callback if available.
use Illuminate\Support\Facades\RateLimiter;

RateLimiter::attempt('something', 5, function () {
    // ...
});

Fourth argument, decaySeconds, is default to 60.

How?
It just simply wraps the tooManyAttempts() and hit() in one call. Syntactic sugar for this:
use Illuminate\Support\Facades\RateLimiter;

if (RateLimiter::tooManyAttempts('something', 5)) {
    return false
}

// Do something...

RateLimiter::hit('something', 60);

return true;

If the shortcut fails, false is returned. Otherwise, it returns result of the callback, or true if the result is null. THis allows the developer to programmatically proceed if the call wasn't executed.
use Illuminate\Support\Facades\RateLimiter;

$executed = RateLimiter::attempt('something', 5, fn() => 'foo', 60 * 60);

if ($executed) {
    return "It returned $executed";
}

Why?

Simplifies effective Rate Limiter usage into one method easy to understand. (Should be documented too!)

Success!


fix(Linux): Fix libwebkit2gtk-4.0 not available issue

Hi guys!
So, in this PR, I am embedding libwebkit2gtk-4.0 shared objects along in the deb package.
This change will increase the deb file size by roughly 40 MB, but it seems to be best option right now.

closes https://github.com/tauri-apps/tauri/issues/9662

It still requires more testing, so I am making it a draft PR right now.
Thanks for your patience.

This size increase is not desired and is a breaking change, instead it should be an opt-in. We should also document how users can add a PPA to their system so they can install required packages.

Agreed because this change would break support for building .deb bundles on non debian/ubuntu distros.
Also, make sure to test the installation on systems that don't have webkitgtk installed (via the 2204 repo workaround). I mean, running the app after the app, not just the installation.

instead it should be an opt-in

Well, deb packages are supposed to be working on Debian, and there is no point in building one, if it can't work with latest Debian distros, imho.

We should also document how users can add a PPA to their system so they can install required packages.

Well, I thought about this, and tried this as well. But the issue is : It can break dependency tree, and may even lead to breaking entire desktop environment for some users. So, it is quite risky.

Agreed because this change would break support for building .deb bundles on non debian/ubuntu distros.

No, it won't. I tested it on Arch Linux, Manjaro, Ubuntu 22. I am gonna test it on Fedora as well.

Also, make sure to test the installation on systems that don't have webkitgtk installed (via the 2204 repo workaround). I mean, running the app after the app, not just the installation.

It is not possible to run Tauri itself without webkit2gtk. Also, yeah, we can not build deb without libwebkit2gtk, which is expected, since you can't bundle libraries that you don't have in first place.

instead it should be an opt-in

Well, deb packages are supposed to be working on Debian, and there is no point in building one, if it can't work with latest Debian distros, imho.

That still doesn't justify making this breaking changes. Also deb are supposed to be small and use dependencies from PPAs, so it is counter intuitive to embed dependencies and at this point, they might as well just use the AppImage.

We should also document how users can add a PPA to their system so they can install required packages.

Well, I thought about this, and tried this as well. But the issue is : It can break dependency tree, and may even lead to breaking entire desktop environment for some users. So, it is quite risky.

Then we just make a PPA that we maintain ourselves that contains only libwebkit2gtk-4.0 to avoid breaking other dependencies and document how users can use this PPA (and tauri users will document the same for their users).

That still doesn't justify making this breaking changes
All we need is that libwebkit2gtk must be installed on the building system, which is already a dependency for Tauri

Also deb are supposed to be small and use dependencies from PPAs, so it is counter intuitive to embed dependencies and at this point, they might as well just use the AppImage.

Yeah, I understand the concerns. That's why it took me so much time in search of other alternatives.

Then we just make a PPA that we maintain ourselves that contains only libwebkit2gtk-4.0

We have a couple of more libraries, and not only libwebkit2gtk-4.0. Maintaining a PPA and asking users to add it manually would be an overkill for this I guess, and would be last resort, imho.
I have another cool idea, can we just create another deb package, that will just contain required libraries. It can be installed separately by user.  With this

Size of deb package will be same as before.
Easy to maintain ( basically no extra efforts at all )
Easy for user to just install that package
No extra PPA or anything will be required.
Original development workflow will not be disturbed.

That still doesn't justify making this breaking changes

All we need is that libwebkit2gtk must be installed on the building system, which is already a dependency for Tauri

It is not only for development, end-users need to be able to install it as well.

Also deb are supposed to be small and use dependencies from PPAs, so it is counter intuitive to embed dependencies and at this point, they might as well just use the AppImage.

Yeah, I understand the concerns. That's why it took me so much time in search of other alternatives.

I know, thanks for your help but I honestly can't approve this solution unless it is an opt-in.

Then we just make a PPA that we maintain ourselves that contains only libwebkit2gtk-4.0

We have a couple of more libraries, and not only libwebkit2gtk-4.0. Maintaining a PPA and asking users to add it manually would be an overkill for this I guess, and would be last resort, imho.

How many more dependencies? and excuse my ignorance but what does maintaining a PPA entails? what would I need to do on a daily basis to maintain it?

I have another cool idea, can we just create another deb package, that will just contain required libraries. It can be installed separately by user. With this

Size of deb package will be same as before.
Easy to maintain ( basically no extra efforts at all )
Easy for user to just install that package
No extra PPA or anything will be required.
Original development workflow will not be disturbed.

That could work but I am not keen on it either, it means each application will distribute a different version of libwebkit2gtk and could potentially endup with an outdated version or conflict with other versions installed from another apps.

It is not only for development, end-users need to be able to install it as well.

Yeah, this PR basically copies the webkit2gtk library available on building system, to the deb file, so that, end users don't have to do anything on Latest Ubuntu versions.

How many more dependencies?

libjxl and icu are the main cause of possible dependency conflict. icu is used by a lot of packages, and might cause dependency issue.

and excuse my ignorance but what does maintaining a PPA entails?

We would need a server, that can fetch and build the package. I am really not sure, if Github actions can be used, because I have never seen anyone using it. Not much stuff. But it is more troublesome on the users' end, since they have to add PPA manually. We can create a script for that as well ( it can be done pretty easily with sed )
But I don't think maintaining a server solely for this is a good idea at all.

That could work but I am not keen on it either, it means each application will distribute a different version of libwebkit2gtk

Well, we can ship it via Tauri Website maybe.

could potentially endup with an outdated version

Outdated version is required in this case :sweat_smile:

conflict with other versions installed from another apps

No, it won't conflict with other apps, as we are shipping it as a 3rd party app.

We would need a server, that can fetch and build the package.

Can't we just fetch from the old ubuntu PPA? or even just add a pre-built packages?

But I don't think maintaining a server solely for this is a good idea at all.

Why not?

Outdated version is required in this case 😅

I meant outdated version of this new deb (that encapsulates libwebkit2gtk)  (if we release a new version for some reason).

No, it won't conflict with other apps, as we are shipping it as a 3rd party app.

I meant conflict with other tauri apps, not other non-tauri apps.

Can't we just fetch from the old ubuntu PPA? or even just add a pre-built packages?

Yeah, we can do that.

I meant conflict with other tauri apps, not other non-tauri apps.

Yeah, it won't conflict with any Tauri App as well, since user have to install it just once, and forget about it.

I guess that could work, but I'd still like to see that as opt-in, so tauri users can know what is required on their part.

I think we should try solving this by addressing all of these points:

Build another deb that has these required packages to be used by any v1 tauri app.
Document how users can use an old PPA
Add an option to embed required libs inside the deb

I think we should try solving this by addressing all of these points:

Build another deb that has these required packages to be used by any v1 tauri app.
Document how users can use an old PPA
Add an option to embed required libs inside the deb

Yeah, sounds good

How about putting this in pacstall and updating prerequisites with installation instructions via pacstall.


Transfer repo kaleido-io/zeto

Please include:

GitHub repo to transfer: https://github.com/kaleido-io/zeto
Lab to be added to: zeto
Teams with which access: (examples on GitHub team list)

Team name: zeto-committers, Role: Write, Members: awrichar, EnriqueL8, jimthematrix, peterbroadhurst
Team name: zeto-admins, Role: Admin, Members: jimthematrix

@ryjones I have requested the transfer of the zeto repo to you. Please let me know if you have any questions. Thanks!


Clean architecture experiment [DO NOT MERGE]

What have I done and why?
Following on from this discussion, I have refactored the codebase to use clean architecture. Specifically I have moved the :core:data repository interfaces into the :core:domain module.
I am not advocating for this approach. This is just an experiment to see how difficult it is to refactor the codebase. Took about an hour.

Hey @dturner , thanks for this.  I have recently updated from main 85129e; am I able to/would it be ok to push that here?  Or would that be a fork first?


[error] Shader log: Fragment info on start

Contour Terminal version
Contour Terminal Emulator 0.3.2-unreleased
Installer source
Github: source code cloned
Operating System
NixOS
Architecture
x86-64
Other Software
No response
Steps to reproduce
I’m not sure if this is reproducible, so I’ll dump some additional information here.
I use nvidia with proprietary drivers (version 515.48.07) and contour built from commit 6d706d066534514e9af050d9bc31d88850bfdd24. My WM is i3 without a compositor. Settings that seem render-relevant are set to default values.
The issue happens on terminal start.
Expected Behavior
contour starts with no errors.
Actual Behavior
contour shows the following error on start:
[error] Shader log: Fragment info
        -------------
        0(30) : warning C7012: not unrolling loop that executes 16384 times since maximum loop unroll count is 4096
        0(30) : warning C7012: not unrolling loop that executes 16384 times since maximum loop unroll count is 4096

Full log up to error message (with debug gui.display,gui.input,gui.session,error )
[2022-06-05 00:34:53.204408] [gui.session] Configuring terminal.
[2022-06-05 00:34:53.204448] [gui.session] Setting terminal ID to VT525.
[2022-06-05 00:34:53.204454] [gui.session] maxImageSize=3840x2160, sixelScrolling=true
[2022-06-05 00:34:53.204490] [gui.display] contentScale: 1
[2022-06-05 00:34:53.204499] [gui.display] contentScale: 1
[2022-06-05 00:34:53.232039] [gui.display] contentScale: 1
[2022-06-05 00:34:53.232059] [gui.session] Assigning display.
[2022-06-05 00:34:53.232093] [gui.display] contentScale: 1
[2022-06-05 00:34:53.232099] [gui.display] sizeHint: 1920x1500 (1920x1500)
[2022-06-05 00:34:53.232246] [gui.session] Starting main loop with thread id<PHONE_NUMBER>94432
[2022-06-05 00:34:53.243269] [gui.display] contentScale: 1
[2022-06-05 00:34:53.243283] [gui.display] sizeHint: 1920x1500 (1920x1500)
[2022-06-05 00:34:53.243344] [gui.display] TerminalWindow.resizeEvent: size 1962x1500 (1962x1500)
[2022-06-05 00:34:53.243353] [gui.display] called with 1962x1500 in Primary
[2022-06-05 00:34:53.243357] [gui.display] Scrollbar Pos: Hidden
[2022-06-05 00:34:53.243361] [gui.display] TW 0x0+1962x1500, SB invisible, 0x0+42x1500, value: 0/0
[2022-06-05 00:34:53.299641] [gui.display] contentScale: 1
[2022-06-05 00:34:53.299660] [gui.display] initializeGL: size=1962x1500, scale=1
[2022-06-05 00:34:53.299679] [gui.display] contentScale: 1
[2022-06-05 00:34:53.299682] [gui.display] sizeHint: 1920x1500 (1920x1500)
[2022-06-05 00:34:53.299687] [gui.display] contentScale: 1
[2022-06-05 00:34:53.299758] [gui.display] Loading vertex shader: :/contour/opengl/shaders/text.vert
[2022-06-05 00:34:53.301213] [gui.display] Loading fragment shader: :/contour/opengl/shaders/text.frag
[2022-06-05 00:34:53.301440] [gui.display] Loading vertex shader: :/contour/opengl/shaders/background_image.vert
[2022-06-05 00:34:53.301461] [gui.display] Loading fragment shader: :/contour/opengl/shaders/background_image.frag
[error] Shader log: Fragment info
        -------------
        0(30) : warning C7012: not unrolling loop that executes 16384 times since maximum loop unroll count is 4096
        0(30) : warning C7012: not unrolling loop that executes 16384 times since maximum loop unroll count is 4096

Additional notes
I’m not sure if this even a bug, since contour seems to work correctly after that, but I thought that behaviour is worth reporting.

Hey @GoldsteinE.
Thanks for the report. This is gladly not really an error but merely a warning from the graphics driver that cannot unroll a loop due to its high iteration count (16384), which may affect performance.
But you are right, it should not contain the text "error" if it is not considered one. I'd like to keep this information in some way to the log, but the severity should change and only be printed when requested as such.

After https://github.com/contour-terminal/contour/pull/1071
log for shaders can be asked via --debug shader or will be included in --debug all


Add Flask 2.x compatibility or change dependencies.

I tried to run the demo with Flask 3.0.2 but after changing
from flask.ext import Images to from flask_image_resizer import Images, the project ran but the resizing didn't work, only broken images links could be seen.

Hi! Sorry for the late reply.
I've been trying today the demo page, and while it has some issues, it does work for me when I import Flask-Image-Resizer, same as you:
from flask_image_resizer import Images

Also I installed some requirements:
gunicorn==21.2.0
flask==3.0.2

If I go into the demo folder, and run the demo with flask --app main run I can go to http://<IP_ADDRESS>:5000/

This is the source URL I'm using https://repository-images.githubusercontent.com/596892/cc2c69ec-9251-4b33-8283-b86a8659c9cb
Could you share some more details? What URL were you using with the demo maybe, or what options. I noticed that enlarge is broken for example. We haven't worked with the demo a lot as you can see.


Add patient photo to patient details page?

Users wanted a place to add a photo of the patient to make sure they have the right person--some patients use multiple names, or occasionally there are multiple patients with the same name and DOB.

Below is an example of a patient image, with key details added as a new column. The form is therefore pushed into a new column of slightly smaller width to make those big 100% width inputs a bit less insane.

apparently LICEcap isn't the best with motion screens ... but hopefully that conveys the point :stuck_out_tongue:

:+1:

Also important to note the image stays between tabs ... what are your thoughts on that?

I think it's fine for now. Whether or not it should be displayed in the print version seems like the biggest question. I do think it adds some valuable context while moving between actions, so a user might be less likely to forget whose profile they're viewing the edit history for or who they're about to send to a service.

Agreed! I think the print view is likely to change significantly with #145 potentially replacing this need.


Add LASTWITHTIME to FunctionRegistry

LASTWITHTIME queries from a Trino connector fail with
Unexpected aggregate expression: 'lastwithtime(id,timestamp,'string')'
When further inspected the logs show:
org.apache.pinot.common.function.FunctionRegistry	Initialized FunctionRegistry with 131 functions: [fromepochminutesbucket, arrayunionint, codepoint, mod, sha256, year, yearofweek, upper, ago, arraycontainsstring, arraydistinctstring, bytestohex, tojsonmapstr, trim, timezoneminute, sqrt, togeometry, normalize, fromepochdays, arraydistinctint, geotoh3, exp, stgeogfromwkb, stgeogfromtext, stgeomfromwkb, jsonpathlong, yow, toepochhoursrounded, lower, toutf8, concat, ceil, todatetime, jsonpathstring, substr, dayofyear, contains, jsonpatharray, arrayindexofint, fromepochhoursbucket, totimestamp, arrayindexofstring, minus, arrayunionstring, toepochhours, toepochdaysrounded, millisecond, fromepochhours, arrayreversestring, dow, doy, min, toepochsecondsrounded, strpos, jsonpath, tosphericalgeography, fromepochsecondsbucket, max, reverse, regexpextract, hammingdistance, stpoint, abs, timezonehour, stgeomfromtext, toepochseconds, arrayconcatint, quarter, md5, ln, toepochminutes, arraysortstring, replace, strrpos, jsonpathdouble, stastext, second, arraysortint, split, fromepochdaysbucket, lpad, day, toepochminutesrounded, strcmp, fromdatetime, fromepochseconds, arrayconcatstring, fromtimestamp, base64encode, ltrim, arraysliceint, chr, sha, plus, base64decode, month, arraycontainsint, toepochminutesbucket, startswith, week, jsonformat, sha512, arrayslicestring, fromepochminutes, remove, dayofmonth, times, hour, rpad, arrayremovestring, now, divide, bigdecimaltobytes, floor, toepochsecondsbucket, stasbinary, toepochdaysbucket, hextobytes, rtrim, length, toepochhoursbucket, bytestobigdecimal, toepochdays, arrayreverseint, datetrunc, minute, round, jsonpatharraydefaultempty, dayofweek, arrayremoveint, weekofyear]
LASTWITHTIME is not included in the above list and therefore cannot be used in the queries

Hi @syusuf-r7 ! Can you provide an example query that uses this function? There is a possibility it works in a newer version of the connector (there are some open pull requests).

Hi @elonazoulay 👋🏼 this is the query we're running:
SELECT * FROM catalog.default."SELECT LASTWITHTIME(id, timestamp, 'STRING') FROM tableName WHERE someFiled = 'someValue' LIMIT 10";
We forked Trino 371 and made a couple of small adjustments to the connector


Handle custom_call in --stablehlo-refine-shapes

What happened?
Custom call is not currently handled in MLIR shape refinement.
Steps to reproduce your issue
The following appears in the result of shape refinement. Note that the output of the custom call is not updated.
%457 = stablehlo.custom_call @Sharding(%456) {mhlo.sharding = "{replicated}"} : (tensor<1x4x4xbf16>) -> ten     sor<1x?x4xbf16>
...
%491 = stablehlo.add %457, %490 : (tensor<1x?x4xbf16>, tensor<1x4x4xbf16>) -> tensor<1x4x4xbf16>

Version information
No response

Custom calls are actually supported by shape refinement: #1169. Would that mechanism work for your use case?

Yes, https://github.com/openxla/stablehlo/pull/1169 is what is needed. I didn't realize this feature existed. Thanks!


Time controlled events

What is your question?
Hello, i wanted to ask if you can some how do events that run every beat wiht different values.

i chart  so if u go to event, add camera zoom and give its  value
value1 is camera on beat
value is the hud on beat
is asking for intensity

If you're talking about Custom Events, you need to either:

Create an Event on every beat with specified values,
or
Add an onBeatHit() function that runs whatever values are currently set up on your Custom Event.

Function onBeatHit()
if curBeat == 'starting beat' then
triggerEvent('Event name', 'value1', 'value2')
elseif curBeat == 'other beat' then
triggerEvent('Event name', 'value1', 'value2')

Function onBeatHit() if curBeat == 'starting beat' then triggerEvent('Event name', 'value1', 'value2') elseif curBeat == 'other beat' then triggerEvent('Event name', 'value1', 'value2')

what about the custom events that are required for value 1 or 2 to be leave in blink


Update README.md

:star: PR built and available in a preview environment surajr-spring-boot-microservices-pr-1 here


feat: deprecate manager provider APIs v1

Issue or need
After introducing new APIs for providing metadata managers in #926 and using them around in #927, old APIs are ready to be deprecated.

Proposed changes
Deprecate old APIs to provide metadata managers to favour new ones.

Quick reminders

🤝 I will follow Code of Conduct
✅ No existing pull request already does almost same changes
👁 Contributing docs are something I've taken a look at
📝 Commit messages convention has been followed
💬 TSDoc comments have been added or updated indicating API visibility if API surface has changed.
🧪 Tests have been added if needed. For instance, if adding new features or fixing a bug. Or removed if removing features.
⚙ API Report has been updated if API surface is altered.

#956  👈
main

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

Join @davidlj95 and the rest of your teammates on  Graphite


Simplify Action

I stumbled over this when uploading and updated conda package. You can make your github action a lot easier using a matrix (and using the powershell (which luckily looks exactly as other shells for short commands)). Have a look here:

https://github.com/potassco/python-clingox/blob/master/.github/workflows/test.yml

Awesome! Thanks.


[BUG] Can't get the main window active after the last 1.2.20 update

Dunno what have happened, just some magic is going on around.
So, I was working on a new build in 1.2.19, then pressed 'Update" button, everything went smooth. After I was done - pressed 'Save' and exited the program.
In a result of this chain: my build (that I was working on) not saved, the main window of PoB now stays on the background and I just can't set it active.
Any suggestions?
Also, have you implemented any kind of debug mode?

Hmm. That's a new one. I haven't been able to reproduce it, so I have no idea what's going wrong. If you forcibly close the program and reopen it, does it work properly?

Nope, ain't working properly in any way.

Okay, managed to make it work after complete reinstall. But still...

Interesting. I wonder if you're experiencing the problem described in #30? The fact that it persisted until reinstall suggests that you might be.

Yep, same thing. Figured out, that something strange happened to Launch.cfg. Coords so far out of range..
set vid_last "1280,720,-32000,-32000,0"

I'll try to get some steps a bit later, gtg now.

Ahh I see. Well, if you can come up with a way of reliably reproducing the problem, it'd be a great help, as I had no luck diagnosing the cause when the issue was first reported.

I am experiencing the same issue and have the same extreme values in my launch.cfg:
set vid_last "0,0,-32000,-32000,0"

Well, I finally figured out the cause. The program's stored window position is only ever updated in response to a WM_MOVE message from Windows. It turns out that when a window is minimised, Windows sends a WM_MOVE message with the coordinates -32000, -32000; so if you minimise the program's window, then close it without restoring it, the saved position gets borked (and the size too, but that's less important). I'll add a check to prevent that from happening; the fix will be in the next update.

Yep, I came up with the same conclusion.
Was just playing around with minimize and VMware Workstation (btw, PoB conflicts with it if app was launched before the virtual machine and machine launches in fullscreen - PoB just crash) to figure out the exact case.
Also, if two copies of PoB were opened and one of them was minimized (other stays in a normal state) problem occurs. Order of closing doesn't matter here (minimized first, normal first, close all at the same time).


Resources not loaded because of the security violation

No js, css or image are loaded. Getting errors in browser:
Refused to load the image 'http://drupal7.dev/misc/favicon.ico' because it violates the following Content Security Policy directive: "default-src https: data: 'unsafe-inline' 'unsafe-eval'". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
Because I remove the ssl part of roles in vagrant.yml:
#   - { role: letsencrypt, tags: [ 'letsencrypt' ] }
#   - { role: sslterminator, tags: [ 'sslterminator' ] }

I would expect the nginx.conf be adjusted accordingly.
Grepping the code gives:
grep -rni default-src .
./ansible/playbook/roles/nginx/templates/nginx.conf.j2:68:  add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;
./ansible/playbook/roles/sslterminator/templates/nginx.conf.j2:68:  add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'" always;

So I understand that it would be safe to remove it from /ansible/playbook/roles/nginx/templates/nginx.conf.j2 as it's exists in /ansible/playbook/roles/sslterminator/templates/nginx.conf.j2 ?

IMO there are two things here:

We could split and re-arrange those nginx related roles a bit to reduce duplicate stuff
We should use https on local dev too to have it as close as possible to prod

@tharna do you agree with these?

I totally agree with you on your 2'nd statement but  shouldn't the Ansible roles work separately from each other? So for example I didn't need Varnish and I disabled that from the conf/vagrant.yml. So I would assume that there are no Varnish configurations in the other roles and the provision would not break.

@hkirsman that's why I mentioned the first point :)

@hkirsman and these changes are actually something that needs to be done here https://github.com/wunderkraut/WunderMachina/tree/centos7

my bad :)

@hkirsman This seems to be fixed in the latest commits to the master branch, maybe this issue can now be closed?


Cannot run 'make test' successfully when setting up Brick development environment

Following the CONTRIBUTING.md guidelines.
Running 'make test' throws AttributeError: 'OWLRLAllegroInferenceSession' object has no attribute '_client' error. Full console output is below. I have made a pull request in the BrickSchema/py-brickschema with a change which will fix this (I think). See request BrickSchema/py-brickschema#48.
Thought I would open an issue here too incase anyone else was experiencing this problem.
I have tested the fix and it appears to work, however upon testing I get a '15 classes over-inferred' test failure on the current master; probably worth a second ticket (?):
FAILED tests/test_measures_inference.py::test_measures_infers - AssertionError: There are 15 classes that are over-inferred.
Full console output for 'make test' error:
(Brick-CGBt5J5p) wcrd@SA1035:~/programming/forked/Brick$ make test
mkdir -p extensions
python generate_brick.py
2021-04-06:14:01:43,302 ERROR   [inference.py:93] Could not connect to docker (Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))); defaulting to naive evaluation
Traceback (most recent call last):
  File "generate_brick.py", line 41, in <module>
    from bricksrc.quantities import quantity_definitions, get_units
  File "/home/wcrd/programming/forked/Brick/bricksrc/quantities.py", line 11, in <module>
    g.expand(profile="brick")
  File "/home/wcrd/.local/share/virtualenvs/Brick-CGBt5J5p/lib/python3.8/site-packages/brickschema/graph.py", line 226, in expand
    return self.expand("owlrl+shacl+owlrl", backend=backend)
  File "/home/wcrd/.local/share/virtualenvs/Brick-CGBt5J5p/lib/python3.8/site-packages/brickschema/graph.py", line 222, in expand
    self.expand(prf, backend=backend)
  File "/home/wcrd/.local/share/virtualenvs/Brick-CGBt5J5p/lib/python3.8/site-packages/brickschema/graph.py", line 244, in expand
    self._inferbackend = OWLRLAllegroInferenceSession()
  File "/home/wcrd/.local/share/virtualenvs/Brick-CGBt5J5p/lib/python3.8/site-packages/brickschema/inference.py", line 96, in __init__
    containers = self._client.containers.list(all=True)
AttributeError: 'OWLRLAllegroInferenceSession' object has no attribute '_client'
make: *** [Makefile:5: Brick.ttl] Error 1

Should be fixed in https://github.com/BrickSchema/py-brickschema/pull/48, available in brickschema==0.3.2


MI - Configuring the Task Scheduling component

Complete the doc with instructions on how to configure the task scheduling component [1].
[1] https://github.com/wso2/docs-ei/blob/master/en/micro-integrator/docs/setup/configuring_task_scheduling_comp.md

Placing this on hold until the TOML configs are defined.

Done with toml configs.
@nandika  - However is this valid for the MI?
[1] https://github.com/wso2/docs-ei/blob/7.0.0/en/micro-integrator/docs/setup/configuring_task_scheduling_comp.md

Removed from docs as this is no longer applicable to MI.


Call to a member function compileInsertGetId() on a non-object

$dbInsert = new TickTack_Email();
$dbInsert->email = $request->input('newEmail');
$dbInsert->save();

Call to a member function compileInsertGetId() on a non-object

Would you please provide TickTack_Email implementation ?

What do you mean ?

I mean Source Code of TickTack_Email.php File :)

Edited :)

Looks strange, would you please also provide error's stack trace? (i mean full error output from browser) or this file : storage/logs/app.log

storage/logs/ is empty

Solved.
Change
use Illuminate\Database\Eloquent\Model;
to
use Jenssegers\Mongodb\Eloquent\Model;


fix issue #9432(uses reference to loop iterator variable )

fix issue#9432

Thanks! Do you mind adding a test for this? Something like two rules in a group, each with their syntax issue, and then check to make sure each error has unique information.
groups:
- name: example
  rules:
  - alert: InstanceDown
    expr: up ===== 0
    for: 5m
    labels:
      severity: "page"
    annotations:
      summary: "Instance {{ $labels.instance }} down"
  - alert: InstanceUp
    expr: up == 1
    for: 5mmmmm
    labels:
      severity: "page"
    annotations:
      summary: "Instance {{ $labels.instance }} up"

You'll also need to sign your commits.

And also please make sure to sign your commits.


Importing goodbye-graffiti-agent fails with bad JSON content in file /generativeSettings/en.json

I am trying to import https://github.com/GoogleCloudPlatform/contact-center-ai-samples/tree/main/goodbye-graffiti-agent.
I have set up my Google Cloud project and enabled the necessary APIs.
When I attempt to restore the agent using the zip from this repository I receive an error: "Bad JSON content in file: '/generativeSettings/en.json'"

Thanks for letting us know about the error! I've uploaded a new agent.zip that contains the corrected schema used by the current version of Dialogflow CX, and I've tested the import which seems to work as expected.


Multiple Issues with JSON Schema Validation IN APIM 4.0.0

Describe your problem(s)

Json-schema validation is not happening when lower case content-type header is used.
When json schema validation is enabled for wildcard resource ( POST /* ) Publisher Try-out console validates the schema properly. But in devportal tryout tool it is not.

Closing the issue with above PRs.


Node not Working

Hey there, thank you for creating this awesome node for our use. It does look like the node is currently not working? Please take a look. TY

Just released version 0.8.0.

Yes i used it right now and it threw an error message
Said node operation error
[image: My signature]
https://link.zenrecruitz.ai/widget/bookings/call-with-zenify-group-yasmine
On Sat, Oct 26, 2024 at 5:30 AM Franz Haberfellner @.***>
wrote:

Just released version 0.8.0.
—
Reply to this email directly, view it on GitHub
https://github.com/hapheus/n8n-nodes-youtube-transcript/issues/3#issuecomment-2439447392,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BISH4TOZV7CIKAEK2LC6TQDZ5NOLRAVCNFSM6AAAAABQUSLLT2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZGQ2DOMZZGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

I just tested the new version 0.8.0, and it’s working fine on all my instances. Without more details about the error message or what exactly went wrong, it’s hard to pinpoint the issue. Could you please provide more information?

My workflow is to submit a dorm through n8n trigger and map form output to
your youtube module.
This is the kind of links i map
https://youtu.be/aWNKGOhzW8k?si=3nq8L6irnlcF3kmD
Isnthis the correct format needed?
[image: My signature]
https://link.zenrecruitz.ai/widget/bookings/call-with-zenify-group-yasmine
On Sat, Oct 26, 2024 at 7:07 AM Franz Haberfellner @.***>
wrote:

I just tested the new version 0.8.0, and it’s working fine on all my
instances. Without more details about the error message or what exactly
went wrong, it’s hard to pinpoint the issue. Could you please provide more
information?
—
Reply to this email directly, view it on GitHub
https://github.com/hapheus/n8n-nodes-youtube-transcript/issues/3#issuecomment-2439492646,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BISH4TMSHOOSYEYWHUR23XLZ5NZYNAVCNFSM6AAAAABQUSLLT2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZGQ4TENRUGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

At the moment, youtu.be URLs are not supported by the application. Adding support for these shorter URLs would be relatively simple. However, the current error message users encounter is:

"The provided URL doesn't contain a valid YouTube video identifier."

Here is an example of the error message:

If users provide a full YouTube URL instead, the transcript is fetched successfully, as shown here:

Have you checked the updated README.md? In the latest version, it is now required that both Puppeteer and Chromium are running on the n8n instance.
Please note that installing Chromium can sometimes cause issues. However, the Puppeteer community is quite large and generally provides helpful support for resolving these installation problems.
These packages are necessary for nodes that, for example, capture screenshots of web pages.

ahhhhh i see. thats the reason then. i am new to n8n so not sure howbto run
pupeteer and chromium. i will
look it up. thank you for taking the time to answer all my questions.
really appreciate your assistance
[image: My signature]
https://link.zenrecruitz.ai/widget/bookings/call-with-zenify-group-yasmine
On Sat, Oct 26, 2024 at 7:25 AM Franz Haberfellner @.***>
wrote:

Have you checked the updated README.md? In the latest version, it is now
required that both Puppeteer and Chromium are running on the n8n
instance.
Please note that installing Chromium can sometimes cause issues.
However, the Puppeteer community is quite large and generally provides
helpful support for resolving these installation problems.
These packages are necessary for nodes that, for example, capture
screenshots of web pages.
—
Reply to this email directly, view it on GitHub
https://github.com/hapheus/n8n-nodes-youtube-transcript/issues/3#issuecomment-2439526015,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BISH4TK3JHGXXE4CBE7BCYTZ5N3ZLAVCNFSM6AAAAABQUSLLT2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZGUZDMMBRGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Please note that a new version v0.8.2 node is available. This update includes more descriptive error messages, which might help in diagnosing the issue further.

Thanks, I'll check it out.
On Sun, Oct 27, 2024 at 3:29 AM Franz Haberfellner @.***>
wrote:

Please note that a new version v0.8.2 node is available. This update
includes more descriptive error messages, which might help in diagnosing
the issue further.
—
Reply to this email directly, view it on GitHub
https://github.com/hapheus/n8n-nodes-youtube-transcript/issues/3#issuecomment-2439888531,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BISH4TNFLUJKLBFOP7CBEQTZ5SB5JAVCNFSM6AAAAABQUSLLT2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZZHA4DQNJTGE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Improper node labels for execution on newer clusters

k8s-fortified jobs run on Kubernetes control plane nodes, formerly Kubernetes master nodes.
Relabel job.yml.j2 nodeselector for newer clusters and provide troubleshooting documentation for older versions of Kubernetes.

complete with branch issue-61 merged.


Drop *-pre tags from the repository

I don't think they'll be missed, but maybe someone is using them for something, so it'd be nice to have some warning or place to discuss this change. We've had *-pre tags used for semantic-versioned prereleases with versions automatically derived from git describe (standard git describe is not semver-compliant). But they're confusing and not trivial to properly manage. Starting with v0.99.3 with now use an updated version generation script that can work without *-pre tags. This allows us to drop old ones.
If there are any objections, please post them here in comments.

They're gone. The only one left is v0.78.5-pre for the master-2.x branch (it doesn't have appropriate Makefile changes, let it be as is).


don't start a new self scheduling config handler on each config reload

(cherry picked from commit ce6caf95ccf4abcff1d67c21488e55fee30f83e3)

We don't need this fortunately, since we found a backup of the git repo.

We don't need this fortunately, since we found a backup of the git repo.

just so it gets logged, this got mixed up in a batch of other backports that were no longer needed. This one is still needed since it was not part of the initial group of backports that were in the back up


Remove legacy global configuration

Summary
Fixes #12343
Fixes #12364
Occurred changes and/or fixed issues
This PR removes the legacy menu item from the app bar and the associated pages/code.
This removed 3 pages (embedded from Ember):

Global Catalogs
Global DNS Entries
Global DNS Providers

These are currently only accessed when the legacy feature flag is enabled:
Areas or cases that should be tested
Enable the legacy feature flag and the legacy icon should no longer show in the side bar.
Check that the legacy menu item still appears correctly when you browse to a downstream cluster.
Checklist

[x] The PR is linked to an issue and the linked issue has a Milestone, or no issue is needed
[x] The PR has a Milestone
[x] The PR template has been filled out
[x] The PR has been self reviewed
[x] The PR has a reviewer assigned
[x] The PR has automated tests or clear instructions for manual tests and the linked issue has appropriate QA labels, or tests are not needed
[x] The PR has reviewed with UX and tested in light and dark mode, or there are no UX changes

@richard-cox Yeah, I left it in for now. Shall I create another ticket for that and we remove it in 2.10.1 or 2.11?

@nwmac i'd vote 2.11. looking at the code it's about stopping multi-cluster app functionality rather than supporting it, so safe to leave in for a bit

Created https://github.com/rancher/dashboard/issues/12365


HtModal

🚀 Feature Request
Many of the components in ManifestForm use a modal to bring up a sub-form. It would be great to eliminate some of the boilerplate and refactor these into a new component HtModal which will just wrap around react-bootstrap's Modal components and apply some default styling behavior.
as an example, see HtCard, which does a similar things with react-bootstrap's card component. It should pass react-bootstraps ModalProps (i think that's what it's called, would need to double check). Any props passed should override the Haztrak's default style/behavior.

Hi @dpgraham4401 , can you please assign me this task?

let me know if you need anything

sure thanks

@dpgraham4401 can please let me know how I can access the existing ManifestForm view. The following screenshot contains the dashboard view when I am logged in as testuser1. I just want to understand the current functionality.

My Site page view for testuser1
There too the list of sites is empty. Could it be that it gets called from here?

I will be grateful for your help and guidance!

@Badrri-Narayanan
TLDR as a workaround, navigate to
http://localhost:3000/manifest/draft/edit
I need to address #281
Since, in the current phase, we don't have a deployed version of haztrak, there's only two ways to get data in there.

Add a fixture (like testuser1) that's added on startup
Pull the data from RCRAInfo, the EPA web application this project is building against.
manually supply it via http://localhost:8000/admin

Since there are no dummy data in there, this is leaving you with nothing to click on to go to.
We had some, but recently removed it because I anticipated having better quality starter data in there soon.


feature/gitworkflow-meta-files-check

Some missing or dangling .meta found. Fix commits are needed.

Status
File

Not removed
Assets/Animations.meta

Not removed
Assets/Art/Models.meta

Not removed
Assets/Audio/Music.meta

Not removed
Assets/Audio/Sound Effects.meta

Not removed
Assets/Prefabs/Art/Chracters.meta

Not removed
Assets/Prefabs/Art/Environment.meta

Not removed
Assets/Prefabs/Art/Props.meta

Not removed
Assets/Prefabs/Funcinal/UI/Canvas.meta

Not removed
Assets/Prefabs/Funcinal/UI/World.meta

Not removed
Assets/Scenes/Art.meta

Not removed
Assets/ScriptableObjects.meta

Not removed
Assets/Scripts/Framework/Enums.meta

Not removed
Assets/Scripts/Framework/ScriptableObjects.meta

Not removed
Assets/Scripts/NPC.meta

Not removed
Assets/Scripts/UI/World.meta

Not removed
Assets/Textures.meta

Ik die nu comment ipv bot dat mijn indemniteit steelt. Alle EmptyFolder.txt mogen later weg als er ook iets in de folder zit.


Replace the HydroDyn module with in-house code

Hi @jjonkman
I want to replace the HydroDyn module in OpenFAST with a in-house hydrodynamic calculation code, which means that I need to iterate other OpenFAST modules and my in-house code at each time step. Do you have any suggestions to achieve this? I would like to know if OpenFAST provides such an python API? Or do I need to modify the source code?
Best regards,

Thank you! I will try it.


Add experimental features settings section and fullscreen markdown render preview button

The fullscreen markdown render preview button is an experimental feature because it has an issue with it disappearing when rotating the device.

It was merged... Why did it get closed? Weird.


⚠ Accela has degraded performance

In 5762549, Accela (https://aca-prod.accela.com/santaclara) experienced degraded performance:

HTTP code: 200
Response time: 21979 ms

Resolved: Accela performance has improved in 5d7a220 after 6 minutes.


2024 refactor

This is a meta issue to capture the changes we want to make with our 2024 refactor, such as:

[ ] #55
[ ] remove dead code and modules
[ ] remove nested linker code in sim to use config crate.
[ ] create a new diag module to manage diagnostics processing and configuration

Changes will be committed to the refactor-2024 branch

[ ] build trait - this maybe should be re-named?
[ ] a lot of traits in core maybe should be re-named to make things clearer


Jobs not running

I'm using bottleneck (with clustering enabled) on Typescript inside an AWS Lamba function. The library works fine for some time until at some point I start that jobs stop running. I see that at that point the await requestLimiter.schedule() call is blocking until the lambda times out. From then on continues to happen for incoming jobs (they get queued and don't run) for hours until I manually flush the AWS Redis instance.
Here is how I create the bottleneck instance:
this.requestLimiter = new Bottleneck({
        id: `request-limiter`,
        datastore: "redis",
        clearDatastore: false,
        maxConcurrent: 1,
        minTime: 133,
        clientOptions: {
          host: REDIS_HOST
          port: REDIS_PORT
        },
        trackDoneStatus: true
      });

This is what I see in the logs for jobs that get queued but don't execute:
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Event triggered: received",
  "job": [
    {
      "args": [],
      "options": {
        "priority": 5,
        "weight": 1,
        "expiration": null,
        "id": "job1"
      }
    }
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.566Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Calling Redis script: init.lua",
  "job": [
<PHONE_NUMBER>598,
    "qbrslv11ujd",
    0,
    "2.19.5",
    "maxConcurrent",
    "1",
    "minTime",
    "113",
    "highWater",
    "",
    "strategy",
    "1",
    "penalty",
    "",
    "reservoir",
    "",
    "reservoirRefreshInterval",
    "",
    "reservoirRefreshAmount",
    "",
    "reservoirIncreaseInterval",
    "",
    "reservoirIncreaseAmount",
    "",
    "reservoirIncreaseMaximum",
    "",
    "id",
    "request-limiter",
    "version",
    "2.19.5",
    "groupTimeout",
    "",
    "clientTimeout",
    "10000"
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.598Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Calling Redis script: register_client.lua",
  "job": [
<PHONE_NUMBER>601,
    "qbrslv11ujd",
    0
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.601Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Calling Redis script: submit.lua",
  "job": [
<PHONE_NUMBER>602,
    "qbrslv11ujd",
    "0",
    "1"
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.602Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Event triggered: queued",
  "job": [
    {
      "args": [],
      "options": {
        "priority": 5,
        "weight": 1,
        "expiration": null,
        "id": "job1"
      },
      "reachedHWM": false,
      "blocked": false
    }
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.603Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Draining job1",
  "job": {
    "args": [],
    "options": {
      "priority": 5,
      "weight": 1,
      "expiration": null,
      "id": "job1"
    }
  },
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.604Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Calling Redis script: register.lua",
  "job": [
<PHONE_NUMBER>604,
    "qbrslv11ujd",
    "8998iaiwo2j",
    "1",
    ""
  ],
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.604Z",
  "v": 0,
  "_level": "info"
}
28 Jul 2021 07:09:04.909{
  "pid": 9,
  "level": 30,
  "message": "Drained job1",
  "job": {
    "success": false,
    "args": [],
    "options": {
      "priority": 5,
      "weight": 1,
      "expiration": null,
      "id": "job1"
    }
  },
  "msg": "bottleneck debug event",
  "time": "2021-07-28T07:09:04.605Z",
  "v": 0,
  "_level": "info"
}

No other logs for job1 afterward.
What can be the issue here? Any pointers and suggestions would be appreciated. Please let me know if you need any more info. Thanks!

Hi @arashmortazavi2 I face a very similar issue with bottleneck, I had implemented rate limiter for third part calls, I face this issue when ever the TPS is reached its threshold, the queue is getting blocked and not processing any other jobs until I do a manual restart to my instance, Did you fixed this issue..! Below are my configuration.  And I haven't set any expiration in the scheduler options.
{
maxConcurrent: 225,
minTime: 4,
highWater: 450,
strategy: 2,
clearDatastore: true,
datastore: 'redis',
clientOptions: { host: '127.0.x.x', port: '6379' },
id: 'my-vendor'
}
Thanks.

I have encountered a similar bottleneck problem and figured out the root cause. In my case, I was using the bottleneck to rate limit API calls to a third-party API. My implementation has two problems. First, my nodejs application runs on the same device in multiple instances with each having its own bottleneck instance. Because of this, each instance can make calls simultaneously and exceeds the rate limit ( This can be fixed by making the bottleneck distributed using redis ). When I get a rate limit error, I retry using the same wrapped function with await. So,  a job is created in a currently running job and pushed to the queue. The queued job can't execute because it is waiting for the retry job to complete. The retry job can't complete because the current job is still running. This creates a circular dependency and a DEADLOCK. I resolve the deadlock by calling the function directly instead of the wrapped function ( this time it is not queued ).

Hi all,
We are also facing the same issue with our bottleneck instance with redis as well.
It starts processing the tasks for some time, and then randomly after a while it stops processing any tasks and gets stuck there. We have to manually flush the redis keys for bottleneck in order to bring the processing back up.
Does anyone has any idea on how to fix this issue?
Response from @vikram741 doesn't help as that is not the case in our implementation. We are doing all the things by the documentation and still this is happening. We are using Redis to have a distributed limiter, and we are not even retrying a failed task.


Host conversion files with Flask

This PR allows us to access stub and final .nwb files using the Flask server. This will be useful for #185.
It was tested locally using WebNWB to ensure that these files can, in fact, be downloaded or streamed using the URL returned from the conversion.

Note: The true base of this PR is [simplify-final-conversion-workflow](https://github.com/NeurodataWithoutBorders/nwb-guide/tree/simplify-final-conversion-workflow). However, I accidentally pushed these changes to that branch and had to revert them manually—and they continue to register as too similar to compare against.

Note: The true base of this PR is simplify-final-conversion-workflow. However, I accidentally pushed these changes to that branch and had to revert them manually—and they continue to register as too similar to compare against.

OK, should we just proceed with this as the complete base then? and close the other one? Or is there a better way

The changes seem to have hit now—so I've handled them in a merge commit for the new base.


Add fitness points to ttbin decoding

@derickr Please add support for TomTom Fitness points to the ttbin decoding.
The new TomTom Fitnesspoints seem to be present in the ttbin record with tag 0x4A (The 0x4B record is the new variable length record.):
Format of the record:

Tag 0x4A (1 byte)
Timestamp (epoch seconds UTC) (4 bytes)
Fitness point counter (2 bytes)
Fitness point counter (2 bytes)

It is unclear to me what the difference is between the two fitness point values. They seem to have the same value. Both are counters are reset to 0 at 00:00 hours local time and increase with each workout.
The fitness points are also tracked in the 0x00B1nnnn files (activity tracking). I'll add a new protobuf definition later reflecting this extension.

The question is however, what to do with the fitness point information? The TCX and GPX formats don't really do anything with this of course.

Preliminary implementation in #136 .

Does the official TomTom software do anything with this data? If so, what?

For sure! Fitness points registered in the logged activities (ttbin files, 0x0091nnnn files) and in the tracked actitivity (0x00b100nn files). The former are displayed with each activity, the latter is displayed in a fancy new screen showing current weeks' fitnesspoints with stars (and new graphs with fitness age (yeah! this 50 year old nerd reached 20 years fitness age)).

I see. It looks pretty, but I'm not sure how we should implement this. ttwatch doesn't have a GUI, and none of the current output formats support adding this data to it. TCX could potentially be extended, since it's simply XML, but it might break other software that reads the files. A separate file could be created, but that could lead to issues with keeping the data together. Any ideas?

As I said in #136 — I'll likely want to add a JSON output that has all the records in it.

Hi guys, just to to let you know. The last change in TCX file format broke an integration with Endomondo, basically importing training file now throws an error about not being able to process  the file.

@jkopacze That seems curious, as my changes did not modify the TCX output format. Can you share the ttbin and tcx files, and if you have, a better error message?


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

zsfas


Folding

First attempt to get some syntax folding.  Kind of messy and not fully complete (missing if/then blocks and likely others) but covers top level definitions and case statements which was the biggest need for me.
To test, use my fork of elm-vim, e.g. with plug:
Plug 'dustinfarris/elm-vim', { 'branch': 'folding' }

and enable folding
autocmd FileType elm setlocal foldmethod=syntax

Here's a preview:

I want to experiment with it for a while before considering for merge.  Any other feedback would be greatly appreciated — I am not a vim script expert.

I've been using this for a while now, as have others, and really enjoying it.  I think we can merge this now, and possibly improve it later as usage becomes more widespread.


Thoughts on adding a bin?

Describe the problem you'd like to have solved
I'd like to be able to run npx jwt-decode 'STRING' and get an output similar to:
var decoded = jwt_decode(token);
console.log(decoded);

Describe the ideal solution
Add a bin entry to package.json and a small cli command to this library.
Eg:
//in package.json
{ "bin" : { "jwt-decode" : "./cli.js" } }

//cli.js
import jwt_decode from "../build/jwt-decode";
var decoded = jwt_decode(process.argv[2]);

console.log(decoded);

Alternatives and current work-arounds
I could create and publish my own jwt-decode-cli to do this work.
A more full featured CLI could be added to parse args with nice error messaging and respond to npx jwt-decode --help using something like meow, but this would add dependencies that may be difficult to audit.
Additional context
Happy to do a PR to add this if it's something you'd be up for merging.

I see the mention of browser now, though I think calling this a library for reading tokens would be as accurate since it seems to run just fine in any node environment whereas the node-jsonwebtoken library does way more.  I'll go ahead and do my own npm package to accomplish this task.
Thanks,

just in case this helps:
alias jwt-decode="jq -R 'split(\".\") | .[1] | @base64d | fromjson'"


SpatialUnderstanding truncates pointers in x64

I get these warnings which scare me when building for x64:
1>PlaySpace\PlaySpaceInfos_W.cpp(3682): warning C4311: 'type cast': pointer truncation from 'U8 *' to 'U32'
1>PlaySpace\PlaySpaceInfos_W.cpp(3682): warning C4302: 'type cast': truncation from 'U8 *' to 'U32'

@jevertt Seem dangerous to you?

Perhaps we can drop the other platforms from the solution so that it's clear what platforms SpatialUnderstanding supports?

Sure - that sounds reasonable.