[Feature] Add tag preview  (WIP)

show a floating picture like thingy for tags when their icons on dwmbar is hovered, something like this
https://cdn.discordapp.com/attachments/635625917623828520/829478089469329438/gif_2021-04-07032620.gif
(awesomewm)

so far I was able to preview an image with rofi and align it properly.
https://user-images.githubusercontent.com/59060246/127742653-501087b4-9ff9-4c5c-b3a9-c1c29e87138d.mp4

`
#!/bin/sh
preview_dir="$HOME/.dwm/tag_previews/"
current_tag=$(wmctrl -d | grep '*' | cut -d ' ' -f1)
file="${preview_dir}${current_tag}.png"
maim "${file}"
`

The above script should be before the user switches to another workspace. (this is for saving the screenshots )
maim will update the screenshots itself too.

Basic Concept for this!

Run the above script before switching tags
Hovering on a tag icon execute this : , suppose there are 5 workspaces ( 0 to 4 according to wmctrl ) and If
I hover  on tag 1 then  this will be executed :

screenshot=".dwm/tag_previews/1.png"
sed -i "s:/home/sid/.*.png:/home/sid/$screenshot:" ~/.config/rofi/tag.rasi
rofi -show -drun -theme tag

https://user-images.githubusercontent.com/59060246/127776548-f5c22a36-8801-46a2-bbea-b687e8a86eef.mp4
works kinda ( but switching tags adds 100ms ~ delay ) :(

https://user-images.githubusercontent.com/59060246/127789831-81e0a856-8032-4241-b180-29c3a5aacba5.mp4
after using jpeg for image format , it feels faster than before!

using feh instead of rofi is much faster!
https://user-images.githubusercontent.com/59060246/127867063-ba7572fd-bdb6-413e-98c1-ce348395f5b0.mp4

So we dont need some hooks stuff , since the tag preview is accurate (but not for current tag). the rest of the tags already have accurate previews ,since we're taking screenshot before switching the tag.

look
https://user-images.githubusercontent.com/59060246/127945072-45f1bd3b-9b34-4d86-8a49-4bb4d9fb29e7.mp4

Issue 2 :
If there's an inactive tag , do not show its tag preview.
behaviour :
https://user-images.githubusercontent.com/59060246/127945471-32eb62d6-6935-4cde-8620-ebea330f759c.mp4
Solution :
just delete its image from the ~/.dwm/tag_previews dir soo in our case 3 was the inactive tag , so remove 3.jpeg :)
if we hover an empty tag

finally my friend made a patch for this! so no external scripts xD
https://github.com/siduck76/chadwm/commit/0372264f1de4aa3487a0c1643051dd5746e0e581

stuff needs to be fixed :  tag preview doesnt update the current workspace screenshot
https://user-images.githubusercontent.com/59060246/128020338-268f591e-5004-44a1-811b-425acd8af8b1.mp4
solution : whenever we hover current tag icon , take screenshot + do tag preview

https://user-images.githubusercontent.com/59060246/128049070-338f3cec-ac21-4a4a-ae42-ca23ef035839.mp4

https://github.com/siduck76/chadwm/commit/75168cc5d5efe9d34b00318259244ff60ccafd20

dwm ram usage keeps increasing if I switch to a different tag
https://user-images.githubusercontent.com/59060246/128053620-632f043b-b037-4a3b-a5c1-f2cb9241d620.mp4

dwm ram usage keeps increasing if I switch to a different tag
simplescreenrecorder-2021-08-03_21.49.19.mp4

temp fix https://pastebin.com/raw/rThCDTZ6

dwm ram usage keeps increasing if I switch to a different tag
simplescreenrecorder-2021-08-03_21.49.19.mp4

fixed here https://github.com/siduck76/chadwm/commit/a10d00f9e0329e787b490e54182f15394e41b583

dwm will know take around 11mb to 32~ mb , since its storing the images in ram rather than disk . I'll test it the other way around  ( saving images on disk).

FINALLY DONE https://github.com/siduck76/chadwm/commit/f397a51a8e9b093994bc663be4d98cc7150bdb81
thanks a lot to /u/eProTaLT83 for helping with this feature!!

Hi, made a patch for this, which of course I can maintain.
Let me suggest to put it on the patches section since I know some are too comfy on their builds to switch.

Hi, made a patch for this, which of course I can maintain.
Let me suggest to put it on the patches section since I know some are too comfy on their builds to switch.

Thanks for this! if you don't mind then you could add the tabbed with colored buttons patch too.

Thanks for this! if you don't mind then you could add the tabbed with colored buttons patch too.

You mean this ?

Thanks for this! if you don't mind then you could add the tabbed with colored buttons patch too.

You mean this ?

yes

Sorry for the late response but the patch finally got pushed.
Also by

Let me suggest to put it on the patches section since I know some are too comfy on their builds to switch.
I meant to the readme of your repo lol. Anyway it's now pushed on the link above.

As for

if you don't mind then you could add the tabbed with colored buttons patch too.
I could but I wouln't be able to keep it up to date.

@explosion-mental The author of the patch is  /u/eProTaLT83  on reddit . I came up with this idea and he made a patch for it!


Horvitz-Thompson & Hajek IPW estimators

Implemented possibility to choose Horvitz-Thompson or Hajek IPW estimator.

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


Address issue with binding for numpy 1.23.0 by updating pybind11

Thanks Tom! Will 1.0.9 automatically get pushed to pypi?

We're working on it :)


feat(typescript): convert plugin to unplugin for rspack support

Description
Convert the federated types plugin to unplugin to support rspack and webpack.
Related Issue
N/A
Types of changes

[x] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Checklist
Tested via symlink (pnpm link) in both a webpack and rspack project. Bumped version to 3.2.0.

[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] I have updated the documentation.

According that native-federation-typescript is already implemented with unplugin, and does exactly the same thing, do we still need this plugin?
Additionally, this plugin does not come with any test so it's easy to introduce regressions in the future.
P. S. converting it to unplugin introduce a breaking change due to the way you import it. This must be released as a new major.

According that native-federation-typescript is already implemented with unplugin, and does exactly the same thing, do we still need this plugin?
Additionally, this plugin does not come with any test so it's easy to introduce regressions in the future.
P. S. converting it to unplugin introduce a breaking change due to the way you import it. This must be released as a new major.

Yeah it’s a good question, I debated this before I submitted the PR, where this may have a slight use is supporting monorepos, where if you have:
project A -> project B
project B -> project A
they would deadlock the compiler, the plugin can push these out of webpack dev server so you can run circular types. If the native plugin does this in a way that is fault tolerant with things like retry so they can compile all the types at different paces, probably no need to pull it forward

Yes, the native plugin doesn't block the compilation if something goes wrong: it prints the error and retries at the next compilation phase.
Additionally, as the plugin is divided for remote and host, it would not deadlock.
If we do have some examples about it, I could give it a look and try to fix that case

Yes, the native plugin doesn't block the compilation if something goes wrong: it prints the error and retries at the next compilation phase. Additionally, as the plugin is divided for remote and host, it would not deadlock.
If we do have some examples about it, I could give it a look and try to fix that case

Well it’s not so much if things go wrong, it’s more a case of the types aren’t ready yet but they’re both expecting each other to deliver and consume types. Let me try it in my monorepo

Yes, the native plugin doesn't block the compilation if something goes wrong: it prints the error and retries at the next compilation phase. Additionally, as the plugin is divided for remote and host, it would not deadlock.
If we do have some examples about it, I could give it a look and try to fix that case

Yep this seems to work fine in my monorepo, so I will close this PR :) We should recommend this going forward for rspack.


[python-package] clarify max_depth warning and limit when it is emitted

fixes #2898
fixes #5734
Modifies a warning that has historically been confusing for some LightGBM users. @shiyu1994 explained it very well in https://github.com/microsoft/LightGBM/issues/2898#issuecomment-1002860601:

The warning message is actually saying: "you forget to set num_leaves, but you've set max_depth"...because LightGBM has a default num_leaves=31, the warning message reminds the user to set num_leaves accordingly when setting max_depth.

This PR proposes an implementation of @shiyu1994 's proposal from further down in that comment.

keep the document unchanged. But in config.cpp... detect whether num_leaves is set by user (instead of simply checking whether it is ==31, since user can also set it to 31). And if num_leaves is not set but max_depth is set, we may produce a warning...

As a side effect of this change, that also means the warning in question will never be raised from the  scikit-learn estimators. They always pass num_leaves in params, from this keyword argument:
https://github.com/microsoft/LightGBM/blob/28536a0a5d0c46598fbc930a63cec72399a969e4/python-package/lightgbm/sklearn.py#L463
I think that's ok.  We have the docs in https://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html#tune-parameters-for-the-leaf-wise-best-first-tree. I'd rather have the scikit-learn estimators not emit this warning than take on the added complexity that'd be required to detect whether or not num_leaves was explicitly provided in the constructor keyword args.
Notes for Reviewers
I would really like a review from @shiyu1994, to be sure I've interpreted https://github.com/microsoft/LightGBM/issues/2898#issuecomment-1002860601 correctly.
Would also appreciate feedback from any of the people involved in the previous discussions about this one whether this new warning is clearer.
[Warning] Provided parameters constrain tree depth (max_depth=8) without explicitly setting 'num_leaves'.
This can lead to underfitting. To resolve this warning, pass 'num_leaves' (<=256) in params.
Alternatively, pass (max_depth=-1) and just use 'num_leaves' to constrain model complexity.

cc @bfrobin446 @AlbertoEAF @dxyzx0 @aEgoist @memeplex @Wang-Yu-Qing @Cat2Li

I'll review this tomorrow. Thanks.

@shiyu1994 could you please review this this week?


Refs #25466 -- Removed unused DeprecationInstanceCheck.

Trac ticket number
N/A
Branch description
Unused since ff419de263138e905dff44c5cb806310c70f32aa.
Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[x] I have checked the "Has patch" ticket flag in the Trac system.
[x] I have added or updated relevant tests.
[x] I have added or updated relevant docs, including release notes if applicable.
[x] I have attached screenshots in both light and dark modes for any UI changes.

https://github.com/django/django/pull/13156#issuecomment-659321997

I agree with @jdufresne ’s comment there, and now it’s been another four years without usage. Let’s apply YAGNI and clean up...

I agree with @jdufresne ’s comment there, and now it’s been another four years without usage. Let’s apply YAGNI and clean up...

Fine, but you will reintroduce it if needed :wink:

Fine, but you will reintroduce it if needed 😉

I will code it from scratch when called.


"Redirect URI" missing in the step-by-step instructions, error AADSTS50011 after sign in

Step 3 under Register the application says:

On the application registration page, select Add Platform. Select the Native App tile and save your change.

However, there is also a Redirect URI required to register the application. The promt says:

The URI to which Microsoft Azure AD will redirect in response to an OAuth 2.0 request. The value does not need to be a physical endpoint, but must be a valid URI.

The only info I found on this was here:

For Native Applications provide a Redirect URI, which Azure AD will use to return token responses. Enter a value specific to your application, .e.g http://MyFirstAADApp

After doing so, when I run the code, enter my credentials and grant the permissions, the following error occurs:
AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application: '<client id>'.
First of all, it would be nice to include what to use as Redirect URI in the instructions.
Second, is this error related to the URI? Any ideas how to resolve it?

I'm having the same issue, tried both native app and web / api app.  I receive the same error message as yourself.

Ok - I got this working by registering the app via: https://apps.dev.microsoft.com/ rather than directly through the Azure AD Portal.  Be sure to select Native app.

@AtDH01 https://apps.dev.microsoft.com/ is the page linked in the description, so I already tried it. However, I found out this site looks different depending on your account. With my company user account I get this:

Whereas a test account sees this:

Adding an app now worked with the latter as it automatically creates a reply URL, though it does not work with the former if you don't know how such a reply URL needs to look.

The Application Registration Portal link now redirects to this:

No hints about which option to choose, so I chose the first and completed the app registration. Back in Visual Studio, running the application gives this:

I don't want it to be multi-tenant, but I'll set it that way since it's an example. Doing that and retrying gives this:

So this example is useless at the time of writing.

Hi,
since, the apps.dev.microsoft.com is no longer supported by this time. I took a look at what the new registration portal under Azure portal does. And for console apps, it looks like it does not include one needed redirect URI : urn:ietf:wg:oauth:2.0:oob
Simply add it to the redirect URIs will solve the issue :)
Regards,
Yannick

I added the URI manually in the portal and the authentication is now resolved for me.

Thanks for your interest in Microsoft Graph! We are archiving this sample, so I'm closing this issue. For a replacement C# console app sample, please see https://github.com/microsoftgraph/msgraph-training-dotnet-core. We apologize for any inconvenience.


Implement thread limiter logic

Turns out this might be rougher than I thought it'd be. Seems like .NET doesn't really like you being able to limit threads. What I can do, however, is limit the number of tasks that run in parallel. Or I could just attach a semaphore to MwClient since my profiling shows that GetArticle is what takes the longest amount of time to run.

honestly, i dont even know if this is still needed. since i moved to using parallel.foreach, the thread limiter is effectively the number of cpu cores available.
that, and when #95 is implemented, i honestly dont think this is really necessary.
it'd probably be better to invest in caching over this

appears to have been already added
https://github.com/Galaxypedia-Wiki/ketchupbot-updater/blame/aac669d0980f801c906ed51664b755568f39fecd/ketchupbot-updater/ShipUpdater.cs#L46


Added angular distance option to triplet loss

Added an option to base pairwise distances on cosine similarity in addition to euclidean distance as suggested by several papers.
Formula for distance taken from  Metric Learning for Adversarial Robustness

@lc0
You are owner of some files modified in this pull request.
Would you kindly review the changes whenever you have the time to?
Thank you very much.

@googlebot I signed it!

@WindQAQ If you are asking me to add automated tests, I am afraid I am not sure how to do that. I have manually tested the results produced by the angular_distances function against a few matrices I generated with sklearn.metrics.pairwise.cosine_similarity

@WindQAQ If you are asking me to add automated tests, I am afraid I am not sure how to do that. I have manually tested the results produced by the angular_distances function against a few matrices I generated with sklearn.metrics.pairwise.cosine_similarity. Once that matrix is computed, performance of the triplet_loss function should be unchanged aside from the different distance values.

So you can put the testing function, say test_semihard_tripled_loss_angular, test_hard_tripled_loss_angular or somthing like that and  into this file. You might also want to verify the results from numpy/scipy implementation so feel free to modify the functions in the file.

@WindQAQ I added the tests you suggested as well as one for the angular distance matrix. I also added the angular argument to the loss wrappers which I initially forgot to do.

@shun-lin  I have relatively little experience with contributing to large projects such as this one, and I am hoping you can help me with something. This PR passed all of the checks initially, but after making a minor revision, it is now failing on a single test (Build release for ubuntu 18.04) even though it passes all of the other builds. How would I go about figuring out the source of the issue?

@shun-lin I have relatively little experience with contributing to large projects such as this one, and I am hoping you can point me in the right direction. An earlier version of PR passed all of the checks, but after making a minor revision, it is now failing on a single test (Build release for ubuntu 18.04) even though it passes all of the other builds. How would I go about figuring out the source of the issue?

@henry-eigen thanks for letting us know the issue, sometimes a test failed (especially when only 1 failed for a specific env) may not due to your PR. (maybe other maintainer can explain better than I do).

@shun-lin I fixed the issue of the missing squared argument in the triplet loss. What do you think of my response to your other comment about the custom distance metrics?

I have added comments on that thread :)

@shun-lin Whoops, didn't see that. I removed the angular argument and added a "dist_metric" parameter which behaves as indicated above. Tests on my side show that it performs the same now if, for example, you were to set dist_metric="L_2" or dist_metric=metric_learning.pairwise_distance

@shun-lin I added the option for L-1 distance and removed the squared argument. I changed dist_metric to distance_metric, because even though I wasn't able to find that exact name anywhere else in the repo, the long version seemed more in line with the rest of tensorflow's code. I have also completely overhauled the tests to work with the restructured function.

@henry-eigen thanks so much, will wait for @WindQAQ to take another look :)

@shun-lin @WindQAQ I made the suggested changes to notation and documentation. Unless there are any other major issue, I think this should be good to go.

@WindQAQ Any thoughts?


Eliminate ECMA_TRY_CATCH macros part I.

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik<EMAIL_ADDRESS>

Note: the patch reduces the binary size by 592B on ARM without performance loss.


Add Favicon in frontend of the project

@Tushar98644 pls assign this issue to me

@Tushar98644 pls assign this issue to me

you can drop the favicon suggestions here so that we can choose the best one

I dont quite like them , maybe add something like the logo ?

Okay

the last one would be good

okay

Could you assign it to me if it is not completed


Fixed linux path conversion bug

A small one this time:

Added a function called "normalizeUTF8Path" to OSCompatibilityLayer.h to replace the calls to convertUTF8ToASCII in HoI4Country.cpp. This function converts to ASCII in Windows but is a no-op in Linux because the POSIX C-API looks at paths as a series of bytes and not an encoded string, so it should understand UTF-8 path names. This fixes the "invalid sequence in conversion from UTF-8 to ASCII" that the conversion functions print in the logs due to iconv trying a strict conversion.

Added a line in CMakeLists.txt to get rid of the "Permission denied on ./CopyFiles" errors by setting user execution permissions beforehand. This is not the best possible solution (installing the script using cmake's install directive at cmake time ?) but it works.

Made the parser a little less verbose when reading files

Added a istream check on the parser to make it not attempt to parse if the istream is bad or eof

The mod is now created correctly.
The only remaining errors I have left in my logs are:
Could not initially create VP for state 9, but state is not split (a few times)
unable to get all files in folder: ./blankMod/output/history/countries/ (a few times)
unable to open directory
it seems to try and open the same directory a lot of times. If you want, I can cache this call (already did this once to cut back on logging but lost it in a revert to master).
No female names for aborigine
Could not find source flag: NZL_monarchy.tga
I'll start working on the Windows codecvt facet to test the parser on Wndows.
I've also noticed that my coding style is a bit all over the place. I'm not sure what the desired style is but I'm willing to refactor the code I've contributed if possible.

"Could not initially create VP for state , but state is not split" is a known issue when a capital couldn't be determined for a state that hasn't been split (and therefore should have an identifiable capital). I need to look into it more at some point because I honestly expected never to see that message when I put it in.
We should probably find the higher-level reasons it's trying to open the directory multiple times (I suspect it's trying to search for country files for ones we've included, but as you suggested, that should be cached, maybe even removed entirely).
"No female names for aborigine". If you check female_names.txt, you'll find none are specified for the cultures listed. It'll work fine without them, but none will provided for countries of that culture in the resulting mod.
"Could not find source flag". Likewise, the flag just isn't present. For copyright reasons we can't use the Vic2 ones, so we need to provide our own. We're still missing some, is all.

I'm not terribly strict on coding style. I definitely have my own style (tabs, set to three spaces, for instance), but I'm not inclined to force contributors to match anything. Just make it readable is all I ask. :-)

I've finished the Windows version of the codecvt facet using To/FromMultiByte and it seems to be working as expected. If all goes well I'll be able to test the parser for all encodings in Windows to see if it is actually portable (it better be).
One quick question though: should I build the version in Windows using the visual studio project files or should I generate build scripts for my Windows system using CMake (this may be a stupid question but I'm not really familiar with Visual Studio)?

That's good news!
I always use the Visual Studio project files. You'll need to set the environment variable $BOOST_INCLUDE so that VS can find boost.
Incidentally, feel free to replace copy_files.sh with a better system. I hadn't been able to figure out how to make CMake do that operation at build time, is all.


Create sub-dependencies.md

User description
Description
This PR fixes #
Notes for Reviewers
Signed commits

[*] Yes, I signed my commits.

PR Type
Documentation

Description

Added a new tutorial file sub-dependencies.md in Portuguese.
The tutorial explains how to create dependencies with sub-dependencies.
Included code examples for Python 3.8+, 3.9+, and 3.10+ with and without Annotated.
Provided detailed explanations and tips for using dependencies.
Added a mermaid diagram to visualize the dependency resolution process.

Changes walkthrough 📝
Relevant filesDocumentation

sub-dependencies.mdAdd Portuguese tutorial for sub-dependencies with examples

docs/pt/docs/tutorial/dependencies/sub-dependencies.md
Created a new tutorial file for sub-dependencies in Portuguese.  Included code examples for different Python versions.  Explained the concept of injectable dependencies and sub-dependencies.  Provided a mermaid diagram to illustrate dependency resolution.

+194/-0

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

📝 Docs preview for commit 14fae860e2522b71c498486f6a7fd228c61c17d1 at: https://khulnasoft.github.io/khulnasoft/readyapi


Lzhan55/feature ase tests rebase

git rebase from master from feature/ase_tests branch

Will close this pull request and create a new feature/ase_tests2 branch to do cherry picking from master in order to avoid conflicts of commits.


Storage: Ceate admin cephobject radosgw-admin user if missing in CreateBucket

This way if the lxd-admin user is removed after the pool is created, it is automatically re-created on next bucket create.
Signed-off-by: Thomas Parrott<EMAIL_ADDRESS>

Typo in commit and PR type s/Ceate/Create/

Fixed


EBUCore namespace URI

Currently omSipCreator uses this:
urn:ebu:metadata-schema:ebuCore_2017
but official schema states the following is the "preferred" namespace:
http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#

Closing issue, link is not actually xsd!


Unable to run Firebird SQL with DBeaver

System information:

Operating system (distribution) and version
Windows 10 Pro Build1909
DBeaver version
7.1.3

Connection specification:

Database name and version
Firebird SQL v 3.0.5

Describe your question:
I want to connect my database with DBeaver, but every time i get the following Error message. I has looked up the DBeaver Documentation, but that didn't help me out. Maybe some  of you guys could help me out with this problem?

Please tell the type of connection to the database you use.

I use the following settings, just the standard settings of DBeaver. No special parameters and other connection settings. I have installed Firebird SQL as a service and it seems to be running.

Please send me screenshot of Main tab of connection settings (and also SSH/Proxy tabs if smth is filled there).

The ssh/proxy tabs are not filled or used.

Some interesting fact! I tried to create and connect to a database with Firebird 2.5 and it worked. I don't know why version 3.0 does not working for me.

Some interesting fact! I tried to create and connect to a database with Firebird 2.5 and it worked. I don't know why version 3.0 does not working for me.

Check if firebird 3.0 is running and if you are using the right port

I'm not having any issues with firebird 3.0

@cnc13 Have you tried the advice above?

there is no update on issue for a long time.
if issue is still actual for you - feel free to reopen it

there is no update on issue for a long time.
if issue is still actual for you - feel free to reopen it


Add standup-logs for March 8th, 2023

Feature - 'handle invalid API KEY'
Tested, great!
After inputting the invalid API KEY, the info in 'config.json' would be cleared up.


迁移到NeoForge/Migrate Forge to NeoForge

?

This isn't necessary and will infact crash at runtime, NeoGradle 6 still uses the MCF artifact for srgutils.
Librarian works out of the box with FG5, FG6 and NG6.


Try installing ImageMagick in npm post-install hook

Perhaps we can make a script which checks the OS we're running on and then installs ImageMagick using instructions from here.
Of course the script would have to check for dependencies and install them if missing (rpm for Unix, MacPorts for Mac OS X).
Also, I don't know if/how this would work on Windows.
It's also important that npm install doesn't fail even if installing ImageMagick fails. Printing a warning is sufficient.
As a bonus, print the location of ImageMagick's convert executable on successful install. This is then passed to scripts that need to use ImageMagick as a way of finding the executable. Another option is to use the environment variables which the ImageMagick website proposes to set after installation.

Maybe it's easier to just tell the user to figure it out in a post-install warning, but I think even that is weird because postinstall logs don't appear last so most users wont see it...


[RESOLVED] Unavailable by ICMP ping

Problem started at 22:06:29 on 2023.06.26
Problem name: Unavailable by ICMP ping
Host: HP_iLO
Severity: High
Operational data: Down (0)
Original problem ID: 29923
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23266&eventid=29923

Problem has been resolved in 8h 56m 0s at 07:02:29 on 2023.06.27
Problem name: Unavailable by ICMP ping
Host: HP_iLO
Severity: High
Original problem ID: 29923


Event-Driven Architecture Update

This task is to explore moving to an event-driven architecture, deprecating all TTL's

Campus mobile app architecture has been refactored and is now entirely event-driven
Changelog
    - Deprecated all TTL's
    - All card views now reside in app/views/home/cards/
    - All saga and reducer initialization is handled in app/AppReducers and app/AppSagas
    - All navigation is now handled by app/AppNavigation
    - All existing fetch timeouts have been converted to TIMEOUT_DEFAULT (15s) or TIMEOUT_LONG (30s)
    - All app state change logic is handled by app/containers/AppStateContainer
    - Activating a card in User Profile -> Cards triggers that card to update itself
        a. Classes and finals schedule data is currently shared between the Classes and Finals card. Activating either card will fire off one UPDATE_SCHEDULE request which will update both cards
    - Updated most reducers
    - Updated most sagas
    - Cards are no longer updated if they are not active
        a. This includes fetching new data, processing new and existing data, or both.
        b. This will result in significantly less data consumption and processing on both the client and server side
    - All cards have been refactored
        a. Card creation, modification, and how to apply custom logic is now easier to setup and develop.
        b. Updated documentation is in progress.
    - Refactored sagas:
        - scheduleSaga
        - shuttleSaga
        - userSaga
    - Refactored adding a shuttle stop
    - Refactored manage shuttle stops
    - Commonized Last Updated component
    - Add Last Updated time to all cards (sans Special Events)
    - App state in profiler is now sorted A->Z for easier debugging
    - Surf now has it's own saga and serviceMoved surf to it's own service, saga, and reducer away from weather
What's New
1. Card Updating
    The update mechanism for all cards on the Home view are activated by one of three mechanisms:
        a. App State Change: Foreground
            An app's state can be either active, background, or inactive. For our needs, I have consolidated background and inactive, leaving these two definitive methods to handle all app state changes.
// Executes when the app renders in the foreground
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {

// Executes when the app is minimized or closed
if (this.state.appState === 'active' && nextAppState.match(/inactive|background/)) {

        b. Home View: Pull-to-refresh
            Pull-to-refresh is available for all cards on the Home view. When the user performs this action, any card that is displayed on the Home view will request new data.
        c. User Profile: Enable a card
            Enabling an inactive card on the User Profile
        c. Navigation: Navigate to Home
            Navigating to the Home view triggers
2. Location Handling
    a. When the app starts for the first time, we request location permissions from the user

    b. When the app state changes to active, a location watcher is activated. When the app state changes to inactive or background, the location watcher is deactivated.
    c. If the user has allowed location permissions, their location will be stored:
coords: {
    latitude: position.coords.latitude,
    longitude: position.coords.longitude
}

    d. If the user has disallowed location permissions, their latitude and longitude will be removed:
coords: {
    latitude: null,
    longitude: null
}

    e. The location watcher has a number of configuration settings. I ran a series of tests on a handful of devices to come up with a baseline. More testing is required.
    f. With coords.latitude and coords.longitude now persistent and consistent, any other component in the app can access the user's location instantaneously. All permissions requests and checks, beyond that of the one-time location permission request outlined in 3a, have been removed.
    g. 3f has other interesting side effects with location now being updated and available in real-time. For example, when a user enables location settings and then returns to the app:
        a. The Closest Stop shuttle stop will auto-activate and render instantly (no more loading spinner or delays)
        b. Distance to dining locations, and your current position on the Maps tab, and Shuttle Stop view are kept up to date in real-time
3. Updating Custom Views
    a. Custom views can now more easily request data on render, or pull-to-refresh. These methods should be used to update views that do not have continuous-real-time data requirement needs like Surf Report.
    b. A sample implementation of 4a has been completed on the Surf Report view. Previously, surf data was being fetched on a timer, regardless of if the user was using that view or not.
    With the event-driven update, the surf report view only fetches data when the user navigates to this view

    c. If the concept for 4b passes team review, we should consider rolling that out to other areas of the app. Some of those areas include:
        1. List Views
            - Class list
            - Special events session list
            - Dining list
            - Links list
            - News list
            - Events list
        2. Detail views
            - News
            - Events
            - Dining
            - Shuttle stop
4. Last Updated
    a. All cards on the Home view now display a last updated time, with one exception
        i. The Special Events card typically consists of just a banner image, thus the last updated time will be omitted. The Special Events card is tied into the event-driven update triggers outlined in section 1.
    b. Last Updated time has been incorporated on the Surf Report view as a test for how this would work on custom views.
Development workflow changes

Development workflow will need to be adjusted to accommodate the new event-driven architecture
    a. One example of this is when developing for the app in debug mode. 'Refreshing' the app is not considered an app state change, and thus will not fire off any updates like update all the cards or restart your location listener. Rather, now, the way to do this is to perform one of the event-driven actions listed under section 1 above. Pulling to refresh, for example, or minimizing/closing and maximizing/opening the app.

Changelog (full)
https://github.com/UCSD/campus-mobile/commit/f304a112b92ea3c964aff0db937ee3dbedfbe947
Branch
https://github.com/UCSD/campus-mobile/tree/feature/event-driven
Remaining
    Primary:
        1. Resolve a race condition on initial start involving redux
        1. Request push permission once on initial load
        2. Request location permission once on initial load
        3. Re-order parking lots is having issues, investigate
    Secondary:
        Several TODO's have been added to the event-driven update, which will be converted into github issues
        Explore adding a loading character or animation to cards that are actively fetching new data
        Add a retry mechanism when a card has failed to load data after a certain time
Beyond Events
There are clear limitations to a purely app-event-based approach. The future vision for this platform is to receive data, not fetch it. The next step in working towards that goal (event-driven v1.5?) is to identify which services/features would benefit the most from data streaming capabilities.
The features identified so far are:

Shuttle
Parking
Classes / Finals

When data streaming capabilities are available for a service, let's say Parking, the existing data fetch trigger mechanism in place will be repurposed to instead initiate a WebSocket connection, if an existing connection not present. Once the connection is established, parking data changes on the server will be sent to and displayed on the mobile app in real-time.

Moving this back to in progress to tackle the remaining issues outlined in section Remaining Issues: Primary

This issue is being closed due to platform migration and may be revisited at a later date.


Invalid generated SQL for Where class when using goqu.C().IsNull() with sqlserver dialect

Describe the bug
The SQL generated for an IsNull() expression in the Where clause is incorrect when using the SQL Dialect.
To Reproduce
CREATE TABLE Test(
  id int NOT NULL,
  val varchar(255)
);

INSERT INTO Test VALUES (1, NULL);

d := goqu.Dialect("sqlserver")

qry, _, _ := d.Select(goqu.Count("*")).From(goqu.T("Test")).Where(goqu.C("val").IsNull()).Prepared(false).ToSQL()

var count int
db.QueryRow(qry).Scan(&count)
log.Println(count)

I expect the log to print 1 but it will print 0 and if you print the query you will see:

SELECT COUNT(*) FROM "Test" WHERE ("val" = NULL)

Expected behavior
Query should be:

SELECT COUNT(*) FROM "Test" WHERE ("val" IS NULL)

Dialect:

[ ] postgres
[ ] mysql
[ ] sqlite3
[x] sqlserver

This is also the same when using goqu.Ex{"val": nil} or goqu.Ex{"val": goqu.Op{"is":nil}}

The problem is because sqlserver dialect implementation is as follows:
...
exp.IsOp:             []byte("="),
...

As I remember this was done to mimic lack of support for boolean data type in SQL Server, but as I see now, this was initially incorrect. Probably we should use IS and just fail when IsTrue is used - because it's natural for SQL Server


TypeError with exactOptionalPropertyTypes

Hi, when I enable exactOptionalPropertyTypes in my tsconfig, I get the following type error:
node_modules/rollup-plugin-webpack-stats/dist/plugin.d.ts:3:11 - error TS2430: Interface 'WebpackStatsOptions' incorrectly extends interface 'BundleTransformOptions'.
  Types of property 'excludeAssets' are incompatible.
    Type 'ExcludeFilepathOption | undefined' is not assignable to type 'ExcludeFilepathOption'.
      Type 'undefined' is not assignable to type 'ExcludeFilepathOption'.

3 interface WebpackStatsOptions extends BundleTransformOptions {
            ~~~~~~~~~~~~~~~~~~~

@marekdedic  Thank you for reporting the issue!
The plugin options type was wrongly extending internal types and the error surfaced once you set exactOptionalPropertyTypes: true.
I published  a fix on v1.0.5-beta.0. Can you please give it a try when you have the chance and let us know how it goes?

Hi, thanks for the fix, I can confirm that the beta works for me :)

Thank you for checking! The fix is available on v1.0.5 now ;)


feat: assign channels to servers

title: "Assign channels to servers through labels"
Add labels field to server items, so that servers can be assigned 0 to many string labels.
Add serverLabels field to channel itmes, so that channels can be assigned to a sub-set of servers using the lables of those servers.
Solves the issues discussed in the related issues:

Related issue(s):
#244
#255
#475

I like the approach of using labels here. In fact, It made me think about Kubernetes labels and selectors.
Perhaps, we could move one step further and add the same metadata concept for servers so labels can be a map of string => string as well. In this way we could also tag servers with labels such as env: production or similar.

@smoya I think going the same path as k8s is a bit of a premature optimization for now IMHO. AFAIK, nobody has asked for a more sophisticated mechanism, and adding it will introduce potentially unnecessary complexity to the spec.

@GeraldLoeffler could you clarify more about why it is Server and Channel relation and not Server and Message relation? There is a use case that one channel can have multiple messages on a given operation (messages.oneOf). You can have 2 servers with the same channel, but some messages are available only on 1 server. What would be the possible problem if we have serverLabel on the message and not the channel?
Another suggestion from my side would be a bit more modification on the example. Now labels kind of duplicate information like server key and protocol. This may cause confusion.
Another thinking exercise is: at first sight labels seem to be nifty solution but is it really necessary here, do we have a use case for so many servers that they need some kind of label? wouldn't it be better -> the channel/message just have a server object that is a list of servers? we would leverage $ref usage here of course? I think it would be more aligned with the spec 🤔 like that users could reuse existing solutions like $ref and traits to optimize AsyncAPI document and keep it DRY, instead of the label system.
Sorry for all these challenges 😅
Huge additional request, please explicitly mention this PR as a comment in all the linked issues so people that are interested the most are notified.

@GeraldLoeffler could you clarify more about why it is Server and Channel relation and not Server and Message relation? There is a use case that one channel can have multiple messages on a given operation (messages.oneOf). You can have 2 servers with the same channel, but some messages are available only on 1 server. What would be the possible problem if we have serverLabel on the message and not the channel?

it was simply a question of modelling the most obvious association, the one between server and channel:

a queue/topic (= channel) is inherently (often statically) bound to a message broker (= server)
a URL path (= channel) is inherently (typically statically) bound to a HTTP server (= server)
So far in the spec it was assumed that in the scope of a given AsyncAPI document, all channels are available on all servers. I'm trying to relax that requirement.

You are saying that the same channel may exist on several servers, but some messages may only be sent/received via that channel to/from a subset of those servers. True, that can happen too, but i didn't have the need to model that and so it's not in my proposal. If we wanted to include it we would need an optional serverLabels field on the message (in addition to the one on the channel).

Another suggestion from my side would be a bit more modification on the example. Now labels kind of duplicate information like server key and protocol. This may cause confusion.

agreed, the examples could be better: happy to refine them once we have agreement on the approach.

Another thinking exercise is: at first sight labels seem to be nifty solution but is it really necessary here, do we have a use case for so many servers that they need some kind of label? wouldn't it be better -> the channel/message just have a server object that is a list of servers? we would leverage $ref usage here of course? I think it would be more aligned with the spec 🤔 like that users could reuse existing solutions like $ref and traits to optimize AsyncAPI document and keep it DRY, instead of the label system.

your proposal is to bind channels to servers by explicitly listing all servers to which a channel applies. This is certainly possible, but cumbersome in the typical case of having many environments. For example, for a protocol translator from mqtt to jms:
servers:
 mqtt-dev:
    url: ...
  mqtt-test:
    url: ...
  mqtt-prod:
    url: ...
  jms-dev:
    url: ...
  jms-test:
    url: ...
  jms-prod:
    url: ...

from-channel-1:
  servers:
    - $ref "...mqtt-dev"
    - $ref "...mqtt-test"
    - $ref "...mqtt-prod"
  ...
from-channel-2:
  servers:
    - $ref "...mqtt-dev"
    - $ref "...mqtt-test"
    - $ref "...mqtt-prod"
  ...
to-channel-1:
  servers:
    - $ref "...jms-dev"
    - $ref "...jms-test"
    - $ref "...jms-prod"
  ...
to-channel-2:
  servers:
    - $ref "...jms-dev"
    - $ref "...jms-test"
    - $ref "...jms-prod"
  ...

versus
servers:
 mqtt-dev:
    url: ...
    label: ["from"]
  mqtt-test:
    url: ...
    label: ["from"]
  mqtt-prod:
    url: ...
    label: ["from"]
  jms-dev:
    url: ...
    label: ["to"]
  jms-test:
    url: ...
    label: ["to"]
  jms-prod:
    url: ...
    label: ["to"]

from-channel-1:
  serverLabels: ["from"]
  ...
from-channel-2:
  serverLabels: ["from"]
  ...
to-channel-1:
  serverLabels: ["to"]
  ...
to-channel-2:
  serverLabels: ["to"]
  ...

I think this example shows the tradeoff between the two approaches.

@GeraldLoeffler could you clarify more about why it is Server and Channel relation and not Server and Message relation? There is a use case that one channel can have multiple messages on a given operation (messages.oneOf). You can have 2 servers with the same channel, but some messages are available only on 1 server. What would be the possible problem if we have serverLabel on the message and not the channel?

Would it make sense to add, instead, an extra link between Servers and Operations? This is something we have considered when designing the new Intent-driven API for the Parser(s). See https://github.com/asyncapi/parser-api/blob/master/docs/v1.md#operation.
However, having several resources linking to servers can introduce issues such as mutual exclusion. What if a channel specifies its relation to some servers but their operations are linked to others?

Calling all interested parties to please support one of the following proposals on this topic:

associate channels to servers via simple string labels on servers (original proposal by @GeraldLoeffler, also shown in the 2nd part here)
ditto, but extend the labelling scheme to be name-value pairs exactly as in Kubernetes (proposal by @smoya)
associate channels to servers by referring to the servers directly, without any labels (proposal by @derberg, shown in the 1st part here)

In addition, there were proposal to go beyond the association of channels to servers:

also associate operations to servers (proposal by @smoya)
also associate messages to servers (proposal by @derberg)

Proposals 4. and 5. are additional associations. So the mechanism (string labels, key-value-pair labels, or direct reference) to link to servers in 4. and 5. should match whatever is chosen to link channels to servers. I therefore propose to cover 4.-5. by a separate PR and focus here on 1.-3. .
Please vote on 1., 2., or 3., and also state your support for 4. and/or 5. (@smoya, @derberg, @fmvilas).

@GeraldLoeffler could you clarify more about why it is Server and Channel relation and not Server and Message relation? There is a use case that one channel can have multiple messages on a given operation (messages.oneOf). You can have 2 servers with the same channel, but some messages are available only on 1 server. What would be the possible problem if we have serverLabel on the message and not the channel?

Would it make sense to add, instead, an extra link between Servers and Operations? This is something we have considered when designing the new Intent-driven API for the Parser(s). See https://github.com/asyncapi/parser-api/blob/master/docs/v1.md#operation.
However, having several resources linking to servers can introduce issues such as mutual exclusion. What if a channel specifies its relation to some servers but their operations are linked to others?

Rather consider the association of an operation with a server as optional because it is not the general case. Indeed, an operation should (and it is) be associated with a message which can be exchanged with one or several servers... in my opinion.

See also a similar request for OpenAPI to define reusable sets of parameters (or parameter sets). There may be some ideas presented there that you can use to refine this feature proposal.  I.e. labels are juts one way to define a set of servers (all servers sharing a label constitute a server set), and you want to be able to apply or associate a channel to one or more server sets.

@GeraldLoeffler I think it is hard to perform any voting if there are still some unknowns.

agreed, the examples could be better: happy to refine them once we have agreement on the approach.

I think good example is necessary for others to follow proposal

your proposal is to bind channels to servers by explicitly listing all servers to which a channel applies. This is certainly possible, but cumbersome in the typical case of having many environments.

The advantage is that you have validation out of the box, parsing fails if you want to parse outdated reference. With labeling, one can change a label on a channel to a name that is not on the server list. Of course this could also be validated but therefore needs to be specified in the spec so parser know it is mandatory to implement.

Can you provide a full example of AsyncAPI file with thes new properties. I'd like to have a closer look on a real use case and see how it works for websocket. We have over representation of people supporting concepts with broker in the middle and I just want to explore how this would work for websocket, if this is of any use actually.

also associate messages to servers (proposal by @derberg)

Let's drop it. I see this in websockets only and for the server code generation where in fact in my opinion this should be really solved by having 2 separate spec documents, with external common parts

@derberg @smoya , @fmvilas : going the path of least resistence here and adopting @derberg's proposal, i.e., associating channels to servers by referring to the servers directly, without any labels. This works and is the simplest possible solution.
Have also added a (i think) convincing example:
servers:
  webSocketsDev:
    $ref: "#/components/servers/wsDev"
  webSocketsProd:
    $ref: "#/components/servers/wsProd"
  amqpProd:
    $ref: "#/components/servers/rabbitmqBrokerInProd"
  amqpStage:
    $ref: "#/components/servers/rabbitmqBrokerInStaging"

webUICommandsQueue:
  description: This application publishes WebUICommand messages to this AMQP queue which it had received via WebSockets on another channel
  servers:
    - $ref: "#/components/servers/rabbitmqBrokerInProd"
    - $ref: "#/components/servers/rabbitmqBrokerInStaging"
  subscribe:
    message:
      $ref: "#/components/messages/WebUICommand"
  bindings:
    amqp:
      is: queue
...

components:
  servers:
    rabbitmqBrokerInProd:
      url: staging.gigantic-server.com
      description: Staging server
      protocol: amqp
      protocolVersion: 0.9.1
   rabbitmqBrokerInStaging
      url: api.gigantic-server.com
      description: Production server
      protocol: amqp
      protocolVersion: 0.9.1
    wsDev:
      ...
    wsProd:
      ...

Please review https://github.com/asyncapi/spec/pull/531/files and approve.

Also, related to your comment in #513, I think it's too early for this proposal to get into the next release. It's still a Strawman (RFC 0) proposal and I don't think we're giving enough time for people to review and implement support in the parsers.

Also, related to your comment in #513, I think it's too early for this proposal to get into the next release. It's still a Strawman (RFC 0) proposal and I don't think we're giving enough time for people to review and implement support in the parsers.

that's very unfortunate, but there's nothing i can do about it other than try to shepherd this through the required process...

i've now implemented the further simplification suggested by @fmvilas , which looks like this:
servers:
  rabbitmqBrokerInProd:
    url: staging.gigantic-server.com
    description: Staging server
    protocol: amqp
    protocolVersion: 0.9.1
 rabbitmqBrokerInStaging
    url: api.gigantic-server.com
    description: Production server
    protocol: amqp
    protocolVersion: 0.9.1
  wsDev:
    ...
  wsProd:
    ...

webUICommandsQueue:
  description: This application publishes to this AMQP queue WebUICommand messages which it had received via WebSockets on another channel
  servers:
    - $ref: "#/servers/rabbitmqBrokerInProd"
    - $ref: "#/servers/rabbitmqBrokerInStaging"
  subscribe:
    message:
      $ref: "#/components/messages/WebUICommand"
  bindings:
    amqp:
      is: queue
...

I think this is now the simplest possible design that still allows AsyncAPI document authors to assign channels to a sub-set of the defined servers.
@derberg , @fmvilas : please review and merge

please dear gods of GitHub, unstale this PR! - I still think this can/should be merged ASAP, because it is fully backwards-compatible: i'm hoping for the September release of AsyncAPI...

I think this proposal can reach Stage 1: Proposal

it is already opened for 3 months
there was a good discussion
we shared it with the community on all possible channels, including https://www.asyncapi.com/blog/may-2021-at-asyncapi#assigning-channels-to-servers
I assume @GeraldLoeffler is obviously a champion here that will drive it further, including changes in the JS Parser and JSON Schema
all are clearly explained, and the use case is pretty obvious. In slack we heard many people asking for such support on channel level

From the definition of Stage 1 all requirements are met imho. Opinions @fmvilas ?
I still have some concerns (non-bloking promotion to Stage 1) with approach that we use refs to Servers Object here @fmvilas. Spec says that components are there for reuse purposes, so this can cause confusion that servers are reused without components. Unless, unless this way we want to make sure the user provides Servers Object. We set a kind of requirement on the user that to use a specific server on a channel level, all servers need to be listed under Servers Object. I don't see why it is needed though. Isn't it an unnecessary restriction? 🤔 Somehow I have a feeling that in case we add Servers on Components, usage of ref definitely makes sense, but using ref on Servers directly sounds weird 🤷🏼 I kinda immediately think it should be just a list of names (or label like in case of initial request)

I wasn't involved with this proposal from the beginning, but as I read the discussion two things wonder me:

what in the case if someone add reference to the server, but from the other AsyncAPI doc, like $ref: ./asyncapi-two.yaml/servers/production. In the current proposal it's possible, but there should be only possibility to reference to the servers from current AsyncAPI document, so as @derberg you wrote:

The advantage is that you have validation out of the box, parsing fails if you want to parse outdated reference...

We must also implement custom parsing for this case - check if references server is included in the servers section.

why not using the normal server names, without any labels/references, similar like in https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#security-requirement-object?
servers:
  rabbitmqBrokerInProd:
    url: staging.gigantic-server.com
    description: Staging server
    protocol: amqp
    protocolVersion: 0.9.1
 rabbitmqBrokerInStaging
    url: api.gigantic-server.com
    description: Production server
    protocol: amqp
    protocolVersion: 0.9.1
  wsDev:
    ...
  wsProd:
    ...

webUICommandsQueue:
  description: This application publishes to this AMQP queue WebUICommand messages which it had received via WebSockets on another channel
  servers: ['rabbitmqBrokerInProd', 'rabbitmqBrokerInStaging']
  subscribe:
    message:
      $ref: "#/components/messages/WebUICommand"
  bindings:
    amqp:
      is: queue

Maybe there are answers to these questions in the attached issues or in this discussion, but I have not found them.

Yeah, I think this can be considered a Stage 1 Proposal.
I was actually thinking that it may be better to use server names instead of $ref. The problem with $ref is that we lose the name of the server when it's dereferenced.
For instance:
asyncapi: 2.1.0
servers:
  serverA:
    url: ws://server-a.com
  serverB:
    url: ws://server-b.com

channels:
  mychannel:
    servers:
      - $ref: '#/servers/serverA'

becomes
asyncapi: 2.1.0
servers:
  serverA:
    url: ws://server-a.com
  serverB:
    url: ws://server-b.com

channels:
  mychannel:
    servers:
      - url: ws://server-a.com

As you can see, in the second example, we lose the serverA identifier of the server.
I realized about this while working on Glee. In Glee, you can use a x-servers extension (not documented yet) to define which servers you want to associate with the channel. It's user-configurable too so having the serverA identifier is necessary.
So, should we instead use plain strings to refer to the servers? Example:
asyncapi: 2.1.0
servers:
  serverA:
    url: ws://server-a.com
  serverB:
    url: ws://server-b.com

channels:
  mychannel:
    servers:
      - serverA

@fmvilas Great minds think the same 😄

So, should we instead use plain strings to refer to the servers?

string-references would not be validated at design-time by a YAML editor like $refs would, correct?

string-references would not be validated at design-time by a YAML editor like $refs would, correct?

$ref is not part of YAML specification so I guess a YAML editor would behave the same either with $ref and plain string references.

@GeraldLoeffler won't be, but with using $ref there are problems described by me and Fran in previous comments:

how to check if given server is in current AsyncAPI doc?
what in case when someone define plain server in the channel/servers field, without ref?

So at the end we still need custom validation.

I'm confused. How is a YAML editor helping you with $refs? I'm assuming you're referring to specific OpenAPI/AsyncAPI/JSON Schema editors, right? If that's the case, these editors would have to implement support for validation at design time. Just the same way they implemented support for $ref.

I'm confused. How is a YAML editor helping you with $refs? I'm assuming you're referring to specific OpenAPI/AsyncAPI/JSON Schema editors, right? If that's the case, these editors would have to implement support for validation at design time. Just the same way they implemented support for $ref.

VSCode, for example, with the Red Hat YAML extension, understands YAML and JSON Reference and JSON Pointer, so it knows if a $ref is correct, and if it is it shows it as a hyperlink that you can command-click to follow:

+1 for server names instead of $refs because of dereferencing. I don't really get why how to check if given server is in current AsyncAPI doc? would be a problem.
and yes, there will have to be a custom validation added to the parser to check if the name added in the channel server matches the server from servers. We already perform such custom validation for server security, if it matches security from components.
the lack of support in YAML editor would be solved once we invest more time in https://github.com/asyncapi/vs-asyncapi-preview. Anyway, not related to this proposal imho.

I don't really get why how to check if given server is in current AsyncAPI doc? would be a problem.

If we will use the name of server, it won't be a problem, but it will be with references. After dereferencing you will end with object of the server (without name) and additionally as Fran wrote, you will be able  write the plain server in the servers field of channel, so there is only one possibility to check that given server is defined in current doc... by deeply checking the entire server shape (or checking the url). In the string case, you only check the array of server names.

changed this proposal to refer to servers by name rather than by ref (`$ref$).

@fmvilas : made change requested by you and newly fetched from upstream (asyncapi:master)

@fmvilas : this PR was still in state "changes requested" (by you), but i have already addressed all requested changes: i've therefore re-requested your review. In other words: i'm done with this and i think it addresses all requests and comments by you and @derberg and @magicmatatjahu .

Minor thing. Otherwise 👍

requested fix accepted!

@GeraldLoeffler all good from my side here but PR is against master, so please change base branch to release branch and rebase

as for the other PRs, JSON Schema merged and RC produced. We are missing full implementation in parser -> https://github.com/asyncapi/parser-js/pull/364. So far we are at Stage 1 here

@derberg : rebased to release branch - done

@GeraldLoeffler fyi we cannot make fixes on our own as you did PR from some kind of org-level fork and we do not have rights as maintainer to push to this PR.

@GeraldLoeffler fyi we cannot make fixes on our own as you did PR from some kind of org-level fork and we do not have rights as maintainer to push to this PR.

i accepted your suggestion and gave you write access to my repo.

@GeraldLoeffler perfect, the only part that is missing is updated description that reflects what is actually implemented

@GeraldLoeffler perfect, the only part that is missing is updated description that reflects what is actually implemented

done

Super happy to see thins merged 👏


OLS-446: Token counter fix

Description
Token counter fix
Re Jira @bparees "I think we do not need the "on_llm_start" callback at all. ". I think that we need to "remember" input prompt or token length from it, as it is not available when on_llm_end is called. I keep counting tokens there, but we can just store input prompt instead and defer token counting only when needed at the end of on_llm_end. So it's a bit mem/cpu tradeoff (+ tiktoken counter is fast, so probably it is not too limiting. Actual tokenization speed on my i7:
Tokens: 1000000
Time: 0.7104394719935954 seconds
1407579 tokens per second

Type of change

[ ] Refactor
[ ] New feature
[x] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #OLS-446

/retest

Codecov Report
Attention: Patch coverage is 55.55556% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 96.19%. Comparing base (e4bbae2) to head (4993493).
Report is 26 commits behind head on main.

Additional details and impacted files

@@             Coverage Diff             @@
##             main     #686       +/-   ##
===========================================
+ Coverage   73.73%   96.19%   +22.45%
===========================================
  Files          53       53
  Lines        1824     1864       +40
===========================================
+ Hits         1345     1793      +448
+ Misses        479       71      -408

Files
Coverage Δ

ols/app/metrics/token_counter.py
92.59% <55.55%> (+30.09%)
:arrow_up:

... and 25 files with indirect coverage changes

/approve
/lgtm


fix(icons): changed shovel icon

What is the purpose of this pull request?

[x] Other: Icon update

Description
Changed size and arcified corners.
Before Submitting

[x] I've read the Contribution Guidelines.
[ ] I've checked if there was an existing PR that solves the same issue.

Looks a bit off-grid to me, especially that left edge, but also some of the arcs.

We should come to an agreement and maybe even update the guidelines about this.

45° lines are always a pain, because you have to decide whether you want the lines themselves to follow the pixel grid, or have the arcs sit on pixel boundaries, but you can't have both.

We should come to an agreement and maybe even update the guidelines about this.

It's the diagonal lines that should be pixel perfect without the shadow of a doubt, arcs will be somewhat blurry anyway.
E.g. perfectly grid-aligned lines vs. perfectly grid-aligned corners:

I rest my case :)

45° lines are always a pain, because you have to decide whether you want the lines themselves to follow the pixel grid, or have the arcs sit on pixel boundaries, but you can't have both.

We should come to an agreement and maybe even update the guidelines about this.

It's the diagonal lines that should be pixel perfect without the shadow of a doubt, arcs will be somewhat blurry anyway.
E.g. perfectly grid-aligned lines vs. perfectly grid-aligned corners:

I rest my case :)

Hard to argue 👍

As a corollary of that, I've found when connective two 45° lines with an arc, a radius of a 2.414 (right) looks better to me than exactly 2 (left).

As a corollary of that, I've found when connective two 45° lines with an arc, a radius of a 2.414 (right) looks better to me than exactly 2 (left).

We also talked about this but kinda gave up on it, it would be a huge change, the 2px rule is also kinda what lucide is.


must-gather: collect logs for RegionalDR

This PR adds the following changes.

separate mirroring info from snapshot info
adds mirror snapshot schedule list
checks if mirroring is enabled in CBP
collect logs for VR in all namespaces.

Signed-off-by: yati1998<EMAIL_ADDRESS>

/ok-to-test

/retest


Support macOS arm64 architecture for releases

Feature Description
For newer Apple Silicon macs, currently there are no release binaries available. We need to use amd64 builds using Rossetta when trying to run binaries directly.
Describe the solution you'd like
Support darwin-arm64 binaries with releases.
Describe alternatives you've considered
Running amd64 builds using Rossetta.
Additional context
N/A

Releasing as part of 1.1.66


govim: fix viewport code

In https://github.com/myitcv/govim/pull/133 we added a change to always build the viewport using Vim as a source of truth, instead of relying on github.com/myitcv/govim.Govim having been updated based on the autocmd and timer-based callbacks.
This is probably what we should have done in the first place as a defensive measure.
Well, we've now done it.
At some point we should work out how to properly do the viewport stuff, including being able to rely on github.com/myitcv/govim.Govim as the source of truth.
This issue tracks that.

Closing this because for now we have deleted the viewport code #260


Ionic 1 - swiping up and down cause page to move on IOS

When swiping up and down with the finger cause page to move, showing white background..only on IOS

Hi there! This repo is not the place for Ionic 1 related issue.
https://github.com/ionic-team/ionic-v1
I will add, that Ionic 1 is no longer receiving any bug fixes or updates.
I would post on the forum to see if anyone seen anything similar
http://forum.ionicframework.com


622 area code is not supported

I noticed that the 622 area code that went into service on March 23rd, 2015 is not supported by libphonenumber at the current time.  Will there be support for this area code in the near future?  I noticed that this number is for machine-to-machine communication but it looks like libphonenumber does support similar area codes with this kind of function (for example, the 600 area code which 622 was placed into service as a relief.)

Hi,
Which country are you referring to?
We don't actively support M2M numbers, but you're welcome to create a pull request if you want it added, if we already have some prefixes of that type for the country.

the area codes 600 and 622 are from Canada.

Can you provide any documentation that the area code went into effect?
Wikipedia currently says 622 is reserved to relieve 600, but not has never been used:
http://en.wikipedia.org/wiki/Area_code_600

If you do a query on the NANPA website, it shows that the area code has gone into service on March 23rd of this year.
http://www.nanpa.com/enas/area_code_query.do

This should be fixed in the library now.


Team photos and personal information

Need to review whether any personal content should be removed from a public resource. CW21 should be ok by CC-BY licensing but prior workshops may not. Regardless, people may still not want their personal information made public.

Issue transferred to: https://github.com/softwaresaved/CW-ideas/issues/3


Upgrade to Symfony 5.4

you should regenerate the phpstan baseline as you upgraded it to 1.0 and messages have changed.

@stof thanks for your nice and detailed review! I've done all the requested changes.
I'm only missing the "regenerate the phpstan baseline". I don't use PhpStan so could anyone please tell me the exact command to run for this case? Thanks a lot!

@javiereguiluz vendor/bin/phpstan analyse --generate-baseline

After properly upgrading dependencies, I'm seeing these indirect deprecations:
Testing
...................................................               51 / 51 (100%)
OK (51 tests, 116 assertions)

Remaining indirect deprecation notices (5)

  1x: Since symfony/doctrine-bridge 5.4: The "Symfony\Bridge\Doctrine\SchemaListener\PdoCacheAdapterDoctrineSchemaSubscriber" class is deprecated, use "Symfony\Bridge\Doctrine\SchemaListener\DoctrineDbalCacheAdapterSchemaSubscriber" instead.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command

  1x: Method "Symfony\Component\Config\Definition\ConfigurationInterface::getConfigTreeBuilder()" might add "TreeBuilder" as a native return type declaration in the future. Do the same in implementation "Twig\Extra\TwigExtraBundle\DependencyInjection\Configuration" now to avoid errors or add an explicit @return annotation to suppress this message.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command

  1x: Method "Symfony\Component\Config\Definition\ConfigurationInterface::getConfigTreeBuilder()" might add "TreeBuilder" as a native return type declaration in the future. Do the same in implementation "HtmlSanitizer\Bundle\DependencyInjection\Configuration" now to avoid errors or add an explicit @return annotation to suppress this message.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command

  1x: Method "Symfony\Component\Console\Command\Command::execute()" might add "int" as a native return type declaration in the future. Do the same in child class "Doctrine\DBAL\Tools\Console\Command\RunSqlCommand" now to avoid errors or add an explicit @return annotation to suppress this message.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command

  1x: Method "Doctrine\DBAL\Driver\Connection::quote()" might add "mixed" as a native return type declaration in the future. Do the same in implementation "DAMA\DoctrineTestBundle\Doctrine\DBAL\AbstractStaticConnection" now to avoid errors or add an explicit @return annotation to suppress this message.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command

You can upgrade to 5.4-rc1, all deprecation notices have been solved.

We're running deprecation-free. I had to set tgalopin/html-sanitizer-bundle to dev-master, but we'll have a new stable version soon, so this is temporary.


Teams Premium Takeback Preview Features

From my perspective all the tookback features of Teams Premium as stated here:
https://learn.microsoft.com/en-us/microsoftteams/teams-add-on-licensing/licensing-enhance-teams#are-there-current-teams-features-that-will-move-to-teams-premium
were in preview when Teams Premium was announced or we already announced that these features will be premium in the future.
There is a gap of a few days at life translation captions between GA and the announcement that it is going to Teams Premium.
Why don't we make it clear in the documentation? Customers are now complaining, that we are not allowed to takeback feature during a running contract.

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

ID: c100aa6e-f8a3-053f-f5c6-d3e543dea5a0
Version Independent ID: c100aa6e-f8a3-053f-f5c6-d3e543dea5a0
Content: Microsoft Teams Premium licensing - Microsoft Teams
Content Source: Teams/teams-add-on-licensing/licensing-enhance-teams.md
Service: msteams
GitHub Login: @DaniEASmith
Microsoft Alias: danismith

@mwe-microsoft The decision to not include that information was intentional from the marketing team to not "open a can of worms" so to speak. As the doc stands, the take-back features listed and the language used is approved by Microsoft marketing, Business Planning, and CELA.

OK and do you know if we have some kind of a written customer-ready statement?
From my perspective the current statement on the documentation open Pandora's box, with the preview state, we would be totally fine.
!!! I live in Teams and don't check email in time!  @.>
If this needs my attention right away hit this link to chat with me in Teams @.>
Mit freundlichen Grüßen / Best Regards
Marcel Weißkirchen
Teams Technical Specialist
Specialist Team Unit
Office:   +49 221 8010 2078
Mobile:  +49 151 44 01 27 35
Email<EMAIL_ADDRESS>IM<EMAIL_ADDRESS>@.https://twitter.com/microsoft @. https://www.facebook.com/Microsoft @.*** https://www.linkedin.com/company/microsoft @.*** https://www.youtube.com/user/Microsoft @.*** https://www.yammer.com/
[MSFT_logo_Gray DE sized SIG1.png]
Microsoft Deutschland GmbH
Walter-Gropius-Straße 5, 80807 München
Microsoft - Official Home Pagehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.microsoft.com%2Fde-de%3Fql%3D2&data=04|01|marcel.weisskirchen%40microsoft.com|1e891cd528d240528e4f08d8e4711765|72f988bf86f141af91ab2d7cd011db47|1|0|637510522654089654|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=cd3ZyzPCjncO8HPOJqRcoSIImhsdklPdAe4W34zXZC8%3D&reserved=0
Home | News Center Microsofthttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnews.microsoft.com%2Fde-de%2F&data=04|01|marcel.weisskirchen%40microsoft.com|1e891cd528d240528e4f08d8e4711765|72f988bf86f141af91ab2d7cd011db47|1|0|637510522654089654|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=W7hI%2B%2BYrG8i5kqQXcRItPLwgBpxdzuJyswKPRRYe2GY%3D&reserved=0
Datenschutzerklärung von Microsoft - Microsoft-Datenschutzhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fprivacy.microsoft.com%2Fde-DE%2Fprivacystatement&data=04|01|marcel.weisskirchen%40microsoft.com|1e891cd528d240528e4f08d8e4711765|72f988bf86f141af91ab2d7cd011db47|1|0|637510522654099605|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=3h7DVI5FjQ1w1%2FsOLSfsCVktNn3ML%2FKcxMMFZ7PWEWg%3D&reserved=0
Geschäftsführer*in: Dr. Marianne Janik (Vorsitzende), Florian Deter, Benjamin O. Orndorff, Keith Dolliver | Amtsgericht München, HRB 70438
Von: Dani Smith @.>
Gesendet: Mittwoch, 15. März 2023 16:01
An: MicrosoftDocs/OfficeDocs-SkypeForBusiness @.>
Cc: Marcel Weisskirchen @.>; Mention @.>
Betreff: Re: [MicrosoftDocs/OfficeDocs-SkypeForBusiness] Teams Premium Takeback Preview Features (Issue #9820)
@mwe-microsofthttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmwe-microsoft&data=05|01|marcel.weisskirchen%40microsoft.com|b3125c15298242f3963708db25661685|72f988bf86f141af91ab2d7cd011db47|1|0|638144892631624009|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=HksBvzAvGror3cjz8HT97HM3JeNz2l8n7uM6bJa4JPs%3D&reserved=0 The decision to not include that information was intentional from the marketing team to not "open a can of worms" so to speak. As the doc stands, the take-back features listed and the language used is approved by Microsoft marketing, Business Planning, and CELA.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-SkypeForBusiness%2Fissues%2F9820%23issuecomment-1470166058&data=05|01|marcel.weisskirchen%40microsoft.com|b3125c15298242f3963708db25661685|72f988bf86f141af91ab2d7cd011db47|1|0|638144892631624009|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=UsnoauHGk0PYTFzMUtTEblmsFTRIc3V6D%2FQYQSIz03A%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FANKIJW4KEPITBRHOUGUF5Q3W4HKSXANCNFSM6AAAAAAV36HC2U&data=05|01|marcel.weisskirchen%40microsoft.com|b3125c15298242f3963708db25661685|72f988bf86f141af91ab2d7cd011db47|1|0|638144892631624009|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=lV4qlQuEoQJwiJL5EnhJ%2FmcuK%2F42HFv3yJwVFMCPY3c%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Closing as internal submitter is discussing with marketing now.


Sync Settlements

PR Checklist
Please check if your PR fulfills the following requirements:

[x] All new classes have class-level documentation comments, if there are any at all
[x] Tests for the changes have been added (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation update
[ ] Other... Please describe:

What is the current behaviour?
Synced
NumberOfEnemiesSpottedAround => Server side only (DONE)
NumberOfAlliesSpottedAround => Server side only (DONE)
BribePaid => Server side sync (DONE)
SettlementHitPoints => Server side sync (DONE)
GarrisonWagePaymentLimit => Server side sync, client side sync allow for (OnUnlimitedWageToggled and OnCurrentWageLimitUpdated methods) (DONE)
LastAttackerParty => Server side sync  (DONE)
LastThreatTime => Server side sync  (DONE)
CurrentSiegeState => Server side sync  (DONE)
Militia => Server side sync  (DONE)
CollectNotablesToCache() => Server side sync (DONE)
AddHeroWithoutParty() => Server side sync -> DONE DOES  NOT REQUIRE SYNC?
RemoveHeroWithoutParty() => Server side sync -> DONE DOES  NOT REQUIRE SYNC?
AddMobileParty() => Server side sync (DONE)
RemoveMobileParty() => Server side sync (DONE)
SetWallSectionHitPointsRatioAtIndex() => Server side sync (DONE)
LastVisitTimeOfOwner => Server side sync using transpiler in EnterSettlementAction.ApplyInternal (DONE)
ClaimedBy => Client side sync using transpiler in conversation_player_ask_to_claim_land_answer_on_consequence() (DONE)
ClaimValue => Client side sync using transpiler in conversation_player_ask_to_claim_land_answer_on_consequence() (DONE)
CanBeClaimed => Server side sync using transpiler in SettlementClaimantCampaignBehavior.OnSettlementOwnerChanged() (DONE)
What is the new behaviour?
Resolves #737

@garrettluskey is done please give a review le tme know if you have questions. All tests ran fine locally.


RFC: JavaScript Code Style

 Issue by jirikuncar
Thursday May 22, 2014 at 11:54 GMT
Originally opened as https://github.com/jirikuncar/invenio/issues/262

Revision
Date
Author

Initial
2014-05-22
@jirikuncar

Idea
It'd be nice to use the standard way for JavaScript.
Proposals

@lnielsen-cern: See previous discussion as well http://invenio-software.org/wiki/Talk/JSFrameworks
@giokokos https://github.com/airbnb/javascript

Testing

@greut The first point to enforce regarding JS is no inline JavaScript, no onclick, no href=javascript:. The second would be tests, QUnit is super simple and nice.
Extra pain points: jslint, jsfmt

Related

Require.js #1794, #1830, #1833

It appears that this RFC didn't reach consensus, so no decision was made. Let me try to rekindle the discussion with some organization and some proposals.
The discussion started from code style, then touched code quality, the use of frameworks, testing, and documentation. I think these are very different problems, which require different discussions.

JavaScript code style: IMHO, not as important as the others, but still nice to have. Let me mention JSCS, a configurable tool to enforce code style conventions. Once we decide on a style guide (or perhaps we can lean on the defaults of some project we like), it should make the job much easier.
JavaScript code quality: I think there are two parts to this. First we have the style of JavaScript files: a tool that was already mentioned is JSHint, which will require a discussion on the settings. Then there's the problem of the obtrusiveness of the JavaScript in A LOT of the templates. Judging from the output of ag onclick this will require A LOT of work.
Use of JavaScript frameworks: consensus in #2110 is that this shouldn't be pursued.
Testing JavaScript libraries: RFC #2221 is still open, but, from what I've seen, Jasmine is the de-facto standard.
Documenting JavaScript: RFC #2845 is still open, and this is where it should be discussed.

Related to these, and in particular to the first two, is the question of having some kind of task runner for JavaScript tasks, like Grunt or Gulp. Should I open an RFC for this?
In summary I propose to:

Use this RFC to discuss JSCS's settings
Start a new RFC about JSHint's settings
Start an effort to refactor the templates
Use the existing RFCs to discuss testing libraries and documentation solutions
Start a new RFC about a JavaScript task runner

To follow up on yesterday's question, no, JSCS has no "autoformatting" functionality, but it's been actively worked on, so it should be here soon™: https://github.com/jscs-dev/node-jscs/issues/516.

JSCS just added the --autofix option as of 1.12 (on most of the whitespace rules).
You guys can start with using a preset (I see airbnb was mentioned in the OP) and then nulling out any rules you don't think or adding more that you want. Also feel free to create issues/PRs for new rules/options that could be added in!

Awesome. Thanks for correcting me @hzoo!

So, let's get back to our discussion. I'll take the following code in Invenio (from https://github.com/inveniosoftware/invenio/blob/ad39db02238330f419bb73d40d708df059d05cf8/invenio/base/static/js/invenio.js#L43-L59) and rewrite it using 3 different presets: AirBnB, Crockford, jQuery.
$('[data-menu="click"]').each(function (index) {
  var that = this,
    $menu = $(this).parent(),
    $li = $menu.parent(),
    message_update = function(obj) {
      $(that).unbind('click');
      $.ajax({
        url: $(that).attr('data-menu-source')
      }).done(function (data) {
        $menu.parent().append(data);
      });
    };
  $(that).on('click', message_update);
  $li.addClass('dropdown');
  $menu.attr('data-toggle', "dropdown");
  $menu.dropdown();
});

1. AirBnB
$('[data-menu="click"]').each(function(index) {
  var _this = this;
  var $menu = $(this).parent();
  var $li = $menu.parent();
  var messageUpdate = function(obj) {
    $(_this).unbind('click');
    $.ajax({
      url: $(_this).attr('data-menu-source')
    }).done(function(data) {
      $menu.parent().append(data);
    });
  };

  $(_this).on('click', messageUpdate);
  $li.addClass('dropdown');
  $menu.attr('data-toggle', 'dropdown');
  $menu.dropdown();
});

2. Crockford
$('[data-menu="click"]').each(function (index) {
    var that = this,
        $menu = $(this).parent(),
        $li = $menu.parent(),
        message_update = function (obj) {
            $(that).unbind('click');
            $.ajax({
                url: $(that).attr('data-menu-source')
            }).done(function (data) {
                $menu.parent().append(data);
            });
        };
    $(that).on('click', message_update);
    $li.addClass('dropdown');
    $menu.attr('data-toggle', "dropdown");
    $menu.dropdown();
});

3. jQuery
$( '[data-menu="click"]' ).each( function( index ) {
  var that = this,
    $menu = $( this ).parent(),
    $li = $menu.parent(),
    messageUpdate = function( obj ) {
      $( that ).unbind( "click" );
      $.ajax( {
        url: $( that ).attr( "data-menu-source" )
      } ).done( function( data ) {
        $menu.parent().append( data );
      } );
    };
  $( that ).on( "click", messageUpdate );
  $li.addClass( "dropdown" );
  $menu.attr( "data-toggle", "dropdown" );
  $menu.dropdown();
} );

Personally, I'd go with number 1.
Here's also an estimate of the effort needed (obtained running jscs -p PRESET invenio/modules/*/static):

AirBnB: 20231 code style errors found.
Crockford: 22815 code style errors found.
jQuery: 33699 code style errors found.

I would like 2. Crockford with 2 space indentation but I'm also fine with 1. AirBnB with possibility to join var definitions.
var foo = 1,
    bar = 'baz',
    fb = function() {
      return 1;
    };

1 seems good to me. Agree with Jiri that I would allow join var definitions (as long as they are properly aligned with each other)

I give my vote to 1. AriBnB and as mentioned above - with the possibility to have var definitions joined.
BTW, in regards to proposal 5:

Start a new RFC about a JavaScript task runner

What use cases do you see @jacquerie for js task runner in Invenio in this moment ?

As a wrapper for the tooling we introduce in this and several other RFCs, for programmer convenience. For example, grunt jscs might check the code style in all Invenio, using the right paths and excluding files which we don't need to check, without having to remember a long jscs command line.

It's highly preferable (in my opinion a must) that any linting is integrated with inveniosoftware/kwalitee so that there's only one tool for checking Invenio source code. 1) It's easier for developers (just one tool to run on your commits) 2) Kwalitee is integrated with GitHub so PR's can be checked automatically.
Grunt could potentially be integrated with Kwalitee, so just wanted to emphasise that integration with kwalitee has to be thought of when taking a decision.

I would propose to extend inveniomanage and kwalitee to provide necessary aliases/pipelining/quality checks and avoid adding new tools (grunt).

You could also use npm to hold scripts if not grunt/gulp. So in package.json (example from jscs itself)
"scripts": {
    "lint": "jshint . && node bin/jscs lib test bin publish"
}

:+1: Ok, I think the consensus is against having a task runner, so I'll drop that proposal.

@jacquerie We could add it as a suggestion to the invenio kwalitee tool as @lnielsen suggested. Sounds like a nice compromise.


[TIPS] validation fails return code

Consider use 422 (UNPROCESSABLE_ENTITY) for validade errors, rather than 500.

Improved at https://github.com/talesluna/base-nodejs-api-es6/commit/1a5ac5b134d91a414c3d1672a33c8c7d50347229#diff-f1ae5ebfdbb86d8cab5b67ce45403263R18


[Feature Request] Add a self-enchant checkbox to pre-populate the enchant chat message with the activity's parent item

There are items such as Dagger of Venom in the DMG '24 module and Lightbringer in the PBSO module that come with "self"-enchanting activities. It would be a nice feature to save a few drag and drops with the mouse from the inventory tab to the chat messages if a checkbox could be checked on the Enchant activity and have the "drag and drop" happen at chat message creation automatically.

Might be good to have some shared functionality between granted effects and enchantments in general - there are also buff-style effects that only apply to the caster.
Sometimes these effects are optional though.

For those optional use cases, it might make sense to have it be a checkbox in the usage config. Then the checkbox in the enchant activity could be "Allow self-enchantment" which would just enable that checkbox.


Support for smart array

Since hardware observer right now (edge, revision 15) looks at lshw to get raid information, this does not work with smart arrays like on HPE ProLiant DL380 Gen10 which do not show in lshw but they do show in ilorest
$ ilorest ilorest storagecontroller
iLOrest : RESTful Interface Tool version <IP_ADDRESS>
Copyright (c) 2014-2023 Hewlett Packard Enterprise Development LP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Controllers:
[0]: Slot 0 - HPE Smart Array P816i-a SR Gen10

Interesting... does the array at least show up in lspci?

@nishant-dash I would like to keep the hardware detection routine independent of external resources. Is there really no other way to detect the presence of a smart array? Maybe via the /sys filesystem, dmidecode, lspci, or even IPMI commands

Hi @aieri
I looked into dmidecode, and I can find it under dmidecode -t 203 since it shows up with type 203 which means its OEM specific.
I also found it under /sys/devices/pci.../.../.. or perhaps the easiest and quickest to get format would be from
hwinfo --storage

Thank you, we can work with that. Does hwinfo --storage-ctrl also report its presence?

it does, although I see the exact same output with hwinfo --storage-ctrl as I do with --storage

also I see almost the same output (but  less info) with lshw -storage


Add a sponsors page

Bugsnag would like us to list them somewhere on our website as thanks for granting us their open source plan. Do we have a spot to do this?

It has been on my event horizon. I guess that time is now.

We could also add each of these: https://github.com/citizenlabsgr/homepage-legacy/issues?utf8=✓&q=is%3Aissue+sponsor+logo

Do you have an estimate for the annual value of their sponsorship?

Based on their cheapest team plan, I'd say $324/year.


Fix rand_lib.c for no-engine configuration

When configured no-engine, we still refered to rand_engine_lock.
Rework the lock init code to avoid that.

@levitte @mattcaswell what will it take to get similar fixes approved, as in #2244 ???

Merged.
master: 2f881d2d9065342454fe352eac9e835cefa0ba90
1.1.0: 8d8cae7d3028de123a081196897b0ccedf921c6f

All that work and the thread-safety hasn't changed :)


Features: Channels, Server groups and Clients list

What's the story behind this pull request?
This pull request has got many new features going to be added to this library. While I was waiting for you to merge the pull request #7. I was working on it because why not I hope you like it, :)
What's new?

Add Image function to the Message Builder
Channels manager from bot object
Server groups manager from bot object
Add/Remove Server group from the user object

Usage of the new features
Image Function [ Message Builder ]
// draw image to be in text format to set it to the channel description
let description = new Alfred.Builder().empty().image("https://avatars0.githubusercontent.com/u/20463031?s=88&v=4");

Channels Manager [ New ]
bot.channel().list() // list of the channel
             .info(cid) // info of the channel
             .move(id, parentid, order) // move the channel
             .create(name, channel) // create the channel
             .delete(cid, force) // delete the channel
             .edit(cid, channel); // edit the channel

// Edit a description in a channel
bot.channel().edit(cid, {
    description: description, // object that we put image on it in the last example
}).then(() => {
    // Successfully edited the channel
}).catch(console.error);

Server groups Manager
// Server Groups Manager
bot.serverGroup().add(name) // create a server group
                 .addClient(sgid, cldbid) // add server group to the client
                 .addPermission(sgid, permname, permvalue, permnegated, permskip) // add premission to the server group
                 .clientList(sgid) // get all clients of the server group
                 .copy(sgid, tsgid, name, type) // copy the server group
                 .deleteClient(sgid, cldbid) // delete server group from the client
                 .delete(sgid, force) // delete server group
                 .deletePermissions(sgid, perms) // delete/reset permission of a server group
                 .list() // list of all server groups
                 .permissionsList(sgid) // list of permissions of a server group
                 .rename(sgid, name); // rename the server group

Add/Remove Server group from user object
user.server().addGroup(sgid).then(() => { // add server group to the user
}).catch(console.error);
user.server().deleteGroup(sgid).then(() => { // delete server group from the user
}).catch(console.error);

I'm really sorry for not responding earlier, but I am very busy at the moment. I promise you that I will get back to this when I have the time. Thank you very much for your effort, though :)

Let's relive this pull request.

Bump. Hello, This PR has been opened for a long time. Can you take a look at it please?

Hey @iHDeveloper,
sorry for having you wait for so long.
However, I haven't worked on this project for quite a while and have no time or energy to do so right now.
As such, I want to propose that you create a fork of this repository. I would then mark the npm package and GitHub repository as deprecated and will refer to your fork.
What do you think?
– schroffl

Sorry for replying late 😅
Honestly, I don't know what's going to happen to TeamSpeak 3. Since they are working on a newer version called Team Speak 5 BETA. It appears that it doesn't use the ts3 server query protocol. I don't think they are going to use it at all.
What do you think? 🤔

Huh, I didn't know about that. Thanks for the information.
The screenshots remind me of discord. I could imagine that they built a new API to support chat bots and such.
I sadly have to focus on university for the next three weeks, so I can't take a closer look.
My offer still stands: If you want to continue working on this project I think you are going to have an easier time if your changes don't have to be merged by me first.
Greetings
schroffl :)

So I just found this in the FAQs:

I guess this means that the server query can still be used like before :)

That's fantastic! That's a backbone that's been removed. 😅

My offer still stands: If you want to continue working on this project I think you are going to have an easier time if your changes don't have to be merged by me first.

I would love to 😄
I will improve the project (e.g. migrate to typescript, implement more functionality, optimize, etc...)

Alright then. I will take the steps to deprecate my package today or tomorrow. Meanwhile you can push your fork to npm and update package.json et al. accordingly.
Does that sound good to you?

Sounds good! 😄
I will start updating the fork and push it to NPM

It's the same situation for me. Just let me know when you are ready to go :)


How does the 'max_pages' parameter work?

It is mentioned in the example but I could not find any usage of it in the class.

Hi @theFilipko - I realize there is no usage example in the main documentation page, but we do have an example of using it within the ResultStream object  here that you can see. I'll add it here as well:
>>> rs = ResultStream(**search_args, rule_payload=rule, max_pages=1)
>>> results = list(rs.stream())

You can also use it the flag --max-pages  from the command line program.

Hello @binaryaaron - Yes, I know that but if you go to the source code of ResultStream class, there is no parameter in the __init__:
def __init__(self, endpoint, rule_payload, username=None, password=None,                  bearer_token=None, max_results=1000,                  tweetify=True, max_requests=None, **kwargs):
I am a bit new in python so please correct me if I'm missing something

@theFilipko - I am sorry for my hasty (and incorrect) response, you're absolutely correct here. It looks like we made a mistake in our documentation and git logs - this parameter was removed as it was somewhat redundant in nature to the max_results parameter. We never updated the docs or the command-line arguments to reflect its removal.
The main ways to limit your API usage are to use max_requests which limits the total number of API calls to make from any search query and max_results which limits the total volume of Tweets returned from any search query.
@twitterdev/des-science - let's make a note to

clean out this parameter from the command-line program
update the docstring for the ResultStream class
review docs to ensure usage of both usage-limiting parameters are clear and updated
rebuild the Sphinx API docs and other docs to reflect the above changes

@theFilipko, thank you very much for pointing this out.

FWIW, I just committed a code update that addressed an issue with making --max-pages requests. A separate issue was posted that an extra request was always made (e.g. if --max-pages=1 then two requests were made.)
While testing that fix, it seems all is well with the --max-pages command-line parameter.


Create HOWTO on setting up a REST API development environment on Windows.

Is your feature request related to a problem? Please describe.
Currently there are no Window-specific instructions for using docker images to create a development environment.

Pull requests:

https://github.com/Senzing/knowledge-base/pull/31


#645 Fix all in paginator

Reset paginator after remove 'all' from items

@romanmatyus Can you provided further description? What is the problem that PR fixes?

@paveljanda It's fix for #645

Could you @romanmatyus please rebase it?

@f3l1x Yes, but, please, how? I have fork from old repository. It's possible synchronize it, or I need create new fork, commit and PR?

I think fork points to right repo. So just rebase it on current 5.x branch.


Use enums in OpenCL kernels

Summary
This PR addresses the use of enums in OpenCL kernels in order to simplify the kernel code and make the type signature communicate a bit better.
It also addresses the change of the enum names and values to snake_case and the merge of copy_triangular in the copy kernel. There was no need to make them separate.
Lastly it cleans up some erroneous kernel comments.
Tests
The copy_triangular tests were merged to the copy tests.
Side Effects
/
Checklist

[x] Math issue #1157

[x] Copyright holder: Rok Češnovar, Univ. of Ljubljana

[x] the basic tests are passing

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

I am going to reopen this PR once the memory cache and triangular multiply gets merged to develop.


[ISSUE #185]Supporting server addresses without a port, defaulting to 8848

close #185

Supporting server addresses without a port, defaulting to 8848

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.48% :tada:

Comparison is base (62275e3) 15.16% compared to head (efcbdac) 15.65%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #194      +/-   ##
==========================================
+ Coverage   15.16%   15.65%   +0.48%
==========================================
  Files          49       49
  Lines        2802     2805       +3
==========================================
+ Hits          425      439      +14
+ Misses       2377     2366      -11

Files Changed
Coverage Δ

src/api/props.rs
45.16% <100.00%> (+45.16%)
:arrow_up:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.