Extra keycodes dispatched in keyboard.c

Hi! Firstly, thanks so much for creating this project. I've been working off of the keyboard.c example and encountered a behavior I can't seem to explain and was wondering if it's a fundamental misunderstanding on my part or possibly something else.
I have a modified keyboard.c that takes an arbitrary keycode via the method stroke(uint_8 keycode). From my app I call this method with the desired keycode (in this case 0x04) followed by 0x00 which I assume acts as a "key up" event (I assume that because the original sample alternated between 0x04 and 0x00)? What I've noticed is while this sometimes works, I get into a state where an unknown keycode is firing nonstop. If TextEdit is in the foreground the character input is the number '8'. Also, the volume on my computer gets turned up all the way and cannot be turned back down until I restart the hid daemon.
I feel like I'm missing something here, but haven't been able to figure out what exactly that is through experimentation. I'm sure you're super busy, but if you could offer some feedback on what I've done wrong with my modifications or point me in the direction of documentation that would help clear up my misunderstanding I'd appreciate it.
I'm running macOS 10.12.5. I've wired up a button in my app that makes the following c calls every time it is clicked. If you'd like to see the full project I'd be happy to zip that up and include it here as well:
stroke(0x04); stroke(0x00);
Here's my modified keyboard.c. The main difference is I broke out what I think is the one-time setup logic from the keystroke logic and made the keystroke a variable.
#include <IOKit/IOKitLib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

unsigned char report_descriptor[] = {
     0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x06,                    // USAGE (Keyboard)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
    0x19, 0xe0,                    //   USAGE_MINIMUM (Keyboard LeftControl)
    0x29, 0xe7,                    //   USAGE_MAXIMUM (Keyboard Right GUI)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x75, 0x01,                    //   REPORT_SIZE (1)
    0x95, 0x08,                    //   REPORT_COUNT (8)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x81, 0x01,                    //   INPUT (Cnst,Ary,Abs)
    0x95, 0x05,                    //   REPORT_COUNT (5)
    0x75, 0x01,                    //   REPORT_SIZE (1)
    0x05, 0x08,                    //   USAGE_PAGE (LEDs)
    0x19, 0x01,                    //   USAGE_MINIMUM (Num Lock)
    0x29, 0x05,                    //   USAGE_MAXIMUM (Kana)
    0x91, 0x02,                    //   OUTPUT (Data,Var,Abs)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x75, 0x03,                    //   REPORT_SIZE (3)
    0x91, 0x01,                    //   OUTPUT (Cnst,Ary,Abs)
    0x95, 0x06,                    //   REPORT_COUNT (6)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x65,                    //   LOGICAL_MAXIMUM (101)
    0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
    0x19, 0x00,                    //   USAGE_MINIMUM (Reserved (no event indicated))
    0x29, 0x65,                    //   USAGE_MAXIMUM (Keyboard Application)
    0x81, 0x00,                    //   INPUT (Data,Ary,Abs)
    0x09, 0x00,                    //   USAGE (Reserved (no event indicated))
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x01,                    //   REPORT_COUNT (1)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x7f,                    //   LOGICAL_MAXIMUM (127)
    0xb1, 0x02,                    //   FEATURE (Data,Var,Abs)
    0xc0                           // END_COLLECTION
};

struct keyboard_report_t {
    uint8_t modifier;
    uint8_t reserved;
    uint8_t key_codes[6];
    uint8_t reserved_bis;
};

#define SERVICE_NAME "it_unbit_foohid"

#define FOOHID_CREATE 0  // create selector
#define FOOHID_SEND 2  // send selector

#define DEVICE_NAME "Foohid Virtual KB"
#define DEVICE_SN "SN 123456"

io_connect_t service_connection = 0;
uint64_t * input;

bool setupVirtualHID() {
    io_iterator_t iterator;
    io_service_t service;

    // Get a reference to the IOService
    kern_return_t ret = IOServiceGetMatchingServices(kIOMasterPortDefault, IOServiceMatching(SERVICE_NAME), &iterator);

    if (ret != KERN_SUCCESS) {
        printf("Unable to access IOService.\n");
        return false;
    }

    // Iterate till success
    int found = 0;
    while ((service = IOIteratorNext(iterator)) != IO_OBJECT_NULL) {
        ret = IOServiceOpen(service, mach_task_self(), 0, &service_connection);

        if (ret == KERN_SUCCESS) {
            found = 1;
            break;
        }

        IOObjectRelease(service);
    }
    IOObjectRelease(iterator);

    if (!found) {
        printf("Unable to open IOService.\n");
        return false;
    }

    // Fill up the input arguments.
    uint32_t input_count = 8;
    input = calloc(input_count, sizeof(uint64_t));
    input[0] = (uint64_t) strdup(DEVICE_NAME);  // device name
    input[1] = strlen((char *)input[0]);  // name length
    input[2] = (uint64_t) report_descriptor;  // report descriptor
    input[3] = sizeof(report_descriptor);  // report descriptor len
    input[4] = (uint64_t) strdup(DEVICE_SN);  // serial number
    input[5] = strlen((char *)input[4]);  // serial number len
    input[6] = (uint64_t) 2;  // vendor ID
    input[7] = (uint64_t) 3;  // device ID

    ret = IOConnectCallScalarMethod(service_connection, FOOHID_CREATE, input, input_count, NULL, 0);
    if (ret != KERN_SUCCESS) {
        printf("Unable to create HID device. May be fine if created previously.\n");
    }

    return true;

}

void stroke(uint8_t key_code) {
    // Arguments to be passed through the HID message.
    struct keyboard_report_t keyboard;
    uint32_t send_count = 4;
    uint64_t send[send_count];

    send[0] = (uint64_t)input[0];  // device name
    send[1] = strlen((char *)input[0]);  // name length
    send[2] = (uint64_t) &keyboard;  // keyboard struct
    send[3] = sizeof(struct keyboard_report_t);  // keyboard struct len

    keyboard.modifier = 0;
    keyboard.key_codes[0] = key_code;

    kern_return_t ret = IOConnectCallScalarMethod(service_connection, FOOHID_SEND, send, send_count, NULL, 0);
    if (ret != KERN_SUCCESS) {
        printf("Unable to send message to HID device.\n");
    }
}

I think I've encountered this bug before, and I remember uninstalling and reinstalling the kext fixed it. Take a look at issue #4 to see how to uninstall it.

Hey @dwang733 -- Thanks for the suggestion. I uninstalled and reinstalled the latest release from the 'releases' section and still have the issue. Would it help if I uploaded my sample project?

Hmm...did you restart your computer between uninstallation and reinstallation? If not, try doing that first. If that also doesn't work, you can try sending the project and I'll see what I can do.

Ah yeah, I restarted between uninstall and reinstall just to be sure. I've attached the project to this ticket. When you run the project a window should appear with a single button. Clicking that will trigger the keystroke sequence I mentioned above after a 2 second delay. The delay is so I had enough time to switch to TextEdit and see in the keystrokes come in (I'm sure there's a more elegant means of testing, but this was the first thing that came to mind).
Typically clicking the button 3 or 4 times quickly will reproduce the error. Once it occurs the only way I could get the keyboard back into a stable state was to kill the app and force-quit 'hidd' from Activity Monitor (it'll restart as soon as you kill it).
Oh also, I'd recommend not listening to music while testing. For some reason this issue causes the volume on my mac to turn all the way up...
foohid_swift.zip

I think I fixed it by mallocing the keyboard on the heap rather than the stack. Try using this code for the stroke method:
struct keyboard_report_t* keyboard = malloc(sizeof(struct keyboard_report_t*));

uint32_t send_count = 4;
uint64_t send[send_count];
send[0] = (uint64_t)strdup(DEVICE_NAME);  // device name
send[1] = strlen((char *)send[0]);  // name length
send[2] = (uint64_t) keyboard;  // keyboard struct
send[3] = sizeof(struct keyboard_report_t);  // keyboard struct len

keyboard->modifier = 0;
keyboard->key_codes[0] = key_code;

kern_return_t ret = IOConnectCallScalarMethod(service_connection, FOOHID_SEND, send, send_count, NULL, 0);
if (ret != KERN_SUCCESS) {
    printf("Unable to send message to HID device.\n");
}

That did it. Thanks so much! Any idea why the change was necessary?

To be honest, I'm not completely sure why it works. I know that with the old code, if you call stroke() multiple times, there's sometimes random values initialized for keyboard rather than all 0's, so I just allocated new memory for it. Also, before I forget, add this line at the end of the stroke() method:
free(keyboard);

Don't want any memory leaks :)

Oh interesting. I actually just tried changing the struct initialization to struct keyboard_report_t keyboard = {0}; and that seems to work too.
I guess if the struct was getting random values the rest of the entries in key_codes could be causing the unknown inputs. That also explains why there would be continuous keydown events since the random inputs would never be released.


Fix fortran tools to set SHFORTRAN variables to $FORTRAN

Fix fortran tools to set SHvariable to $variable (i.e. SHF77 to $F77 )
These changes address the problem noticed in issue #3740 with test CPPFLAGS.py.  This test assumed that changing the FORTRAN variable in an Environment would be inherited by SHFORTRAN.  That should be a valid assumption, but was not true for many of the fortran tools.  This PR corrects that, by setting SHFORTRAN to $FORTRAN much the way it is done in the C language tool.
Contributor Checklist:

[x] I have created a new test or updated the unit tests to cover the new/changed functionality.
[x] I have updated CHANGES.txt (and read the README.rst)
[ ] I have updated the appropriate documentation

Reviewer - is this behavior (default setting of SHFORTRAN) documented anywhere?

add the if 'SHF77' in env: to your logic as well.
The user should ALWAYS be able to override the default by specifying at the same time, or before the tool is initialized.

Appveyor seems to have timed out one of the runs:
 Build execution time has reached the maximum allowed time for your plan (60 minutes).

restarted timed out appveyor

only failure is a spurious one on appveyor.
Merging.


This is amazing!

This! everything this. I love it! We so need this as a default to the ember blueprint and ember-twiddle!!
Love this. Thank you. very box pattern 💯

Thanks—glad you’re finding it useful! (Closing this now that I’ve seen it. 😅)


Breaking Change: Change default StoreGroup

Make CQRSStoreGroup default

Rename CQRSStoreGroup to StoreGroup

Remove old StoreGroup and QueuedStoreGroup

Carve out this to module https://github.com/almin/legacy-store-group

fix #141

Before QueuedStoreGroup:

 AddItemToCartUseCase:  2~6ms

After: StoreGroup

AddItemToCartUseCase: 1ms ~ 8ms

Thnking points:
Which is default implementation of shouldStateUpdate?

===
shallowEqual

I think that this point should be resolved by checker.
I want to prefer to use shllowEqual.

Prevent Store#state = a;
use Store#setState insteadof it.
Related: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-direct-mutation-state.md


xonsh compatability issue

This might be a bit out of scope, but figured I'd bring it up anyway since I believe this is the only plugin that I have that suffers from this issue.
Or in case anyone has the same issue.
Expected Behavior
Launching vim with Syntastic should perform syntax checking
Current Behavior
Syntastic errors with: syntastic: error: checker ${checker} returned abnormal status 1
Steps to Reproduce

install xonsh
install neovim
chsh -s /usr/bin/xonsh
verify running :set shell provides the output /usr/bin/xonsh via vim/nvim
open a jinja/html file

Steps to Fix

add set shell=/bin/bash to you vim/nvim dotfiles

Mirror Issue: https://github.com/xonsh/xonsh/issues/4312

Possibly relevant: https://github.com/vim-syntastic/syntastic/issues/1131


Mismo recording info

Adding recording_info to both MISMO loan protos and HELOC proto, since that will be required to handle the security instrument in DART
Updating docs to reflect changes, add an example MISMOLoanMetadata proto, and to document the mortgage and heloc protos

@rpatel-figure I think this should supersede #16 since we already had a Registry message defined in the mortgage proto.


chore: Add Machine .spec.resources.requests

Fixes #
Description

Add resource requests to the Machine spec when creating the Machine

How was this change tested?
make presubmit
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 7 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 75.932%

Totals

Change from base Build<PHONE_NUMBER>:
0.05%

Covered Lines:
5480

Relevant Lines:
7217

💛  - Coveralls


[Fonts] Icon request: calendar_month

The icon already exists in the latest version of stable under the name calendar_month. Closing as this icon already exists.


DeveloperGuide.adoc: Add deliveryman find for AppendixH

DG: https://github.com/jinyingtan/main/blob/docs-v1.4/docs/DeveloperGuide.adoc

Pull Request Test Coverage Report for Build 423

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.678%

Totals

Change from base Build 422:
0.0%

Covered Lines:
2889

Relevant Lines:
3295

💛  - Coveralls


Shaka Player (Offline Widevine)

Hi,
Sorry for posting this into the issues, but I can't seem to find any support group related to castlabs's custom electron build where I can get the answer as soon as possible.
Is it possible to run Shaka Player to download a Widevine protected MPEG-DASH video and store persistent licenses using this build of Electron on macOS ? I need to find a solution for a simple movie player that will be capable to download a video from our server and be able to play the file completely off-line for the next 10 days (So being online is only necessary to download the video into the browser storage and obtain the persistent license).
So, in a nutshell, I need to replicate the following demo inside the electron app on macOS : https://shaka-player-demo.appspot.com/
Is it possible to run the shaka player demo "out-of-the-box" or it is required to custom develop some components? If so? what components need to be developed? I am aware of downSTREAM project, but I want to use the shaka player's internal ability to download the movie and store the license.
Thank you, and yet again I am sorry for posting a question into the issues? As I am unable to find any comprehend answer to such a  question around the internet.
Thank You.

Hi Ondrej,
Yes, it is possible to use Shaka Player with Electron for Content Security for persistent licenses. I had only used DOWNstream for it until now, but I just successfully tested the Shaka download demo as well, so it works right out of the box for non-production content. For production content you'd need to update the VMP signature, as you probably have seen if you have read through the README, but that information is somewhat outdated since there is a new solution in the works - see https://github.com/castlabs/electron-releases/issues/58#issuecomment-663002442.
If you want to try out the demo yourself you can get away with a minimal electron application that opens the URL up in a BrowserWindow, using a snippet similar to this:
function createWindow () {
  const win = new BrowserWindow({
    webPreferences: {
      nodeIntegration: false,
      plugins: true
    }
  });
  win.loadURL('https://shaka-player-demo.appspot.com/');
}
app.on('widevine-ready', createWindow)

Just make sure you are using Electron for Content Security and not stock electron, and it should work. I hope that answers your questions!
Best,
Emil

@khwaaj
Thank You Emil. Appreciate the fast response 👍
So I got the shaka player demo ready, running inside the Electron for Content Security.
The demo content works fine, but when I want to download/play our video it returns LICENSE_REQUEST_FAILED (Error 6007) probably a rejection by the widevine server. Is that the VMP signature issue you are mentioning? If so, I will get to requesting a production certificate right away.
Best regards,
Ondrej

Yeah, it is likely that your request is rejected by VMP because its is a production asset. I'm not sure, but they could be using production level licensing even for the demo content you are trying to play. The other possibility is that you lack some credentials in your license request. For some additional information about that you can look here: https://shaka-player-demo.appspot.com/docs/api/tutorial-license-server-auth.html
You can try to request your own VMP certificate from Google Widevine, but they may have stopped issuing them already, as I mentioned in the comment I referenced above. Either way, it is usually a fairly long wait before you get one, so it is likely we'll roll out the new VMP signing service before that.

Are you aware of any links for any demo content that accepts the development build of the app so I can just test out the widevine for peace of mind?
Regarding the signing service, do you have any ETA ? As this is quite a time-sensitive project.

Well, there are some demos out there that reference open dev content, such as the Shaka demo above, and you can probably use their content for testing if you look into how the content is accessed. A couple of other examples are:
https://demo.castlabs.com
https://bitmovin.com/demos/drm
Sorry, I can't give you an ETA beyond "near future", but I'm confident it will be well before you'd be able to get your own VMP certificate, if you'd get one at all. Perhaps you would be interested in being a pilot user? If so, let me know and I'll reach out to you by e-mail.

Very interested. Please reach out to me using the e-mail address on my GitHub profile.
In the meantime, I will try to request the VMP certificate.

Just to elaborate more - Widewine is working fine (so far) on some non-azure demo content (I am assuming they have development licencing on some of the sources). But media streamed from Azure media services (ours and demo content) refuses the licence request with the same error. So maybe the Azure Media Services cant be switched to development licencing mode or something?

Yes, it is possible they only support production assets. I've seen this in a few other cases, with other DRM services, but I can't say for sure if it is the case with Azure Media Services as I have no direct experience with them. Can you play the assets using the same player code in Chrome? If you can't, it might be that some custom authentication is required, e.g. some extra HTTP header or something.

Yes, the same assents can be played directly in google chrome without any issues.

Then I would say it is almost certain that the issue is the VMP signature.


Inuktitut  Resources

Inuktitut Unicode Fonts
http://www.inuktitutcomputing.ca/IO/Fonts/info.php?lang=en
http://www.pirurvik.ca/en/productions/iu-computing/font-download
iku - iu - Inuktitut - http://crubadan.org/languages/iu
Ref: https://github.com/tesseract-ocr/tesseract/issues/654#issuecomment-274269267

https://github.com/tesseract-ocr/tesseract/issues/654#issuecomment-274574951

@theraysmith commented 2 days ago
Update: after going back to the www to get fresh data, I believe that my corpus text is now good for:
chr
dzo
iku
snd
syr
tgk
tir
I have put a lot of time into cleaners/filters for languages that use 'virama' characters.
I am not convinced that they are perfect, but I will add the code to the github repo in due course, so experts/native speakers can offer suggestions/fixes to make them better.


Doesn't build against uri 2.0.0

#=== ERROR while compiling sentry.~dev ========================================#
# context     2.0.1 | linux/x86_64 | ocaml-base-compiler.4.06.1 | pinned(git+https://github.com/brendanlong/sentry-ocaml.git#v0.4.1#d866de1b)
# path        ~/.opam/4.06.1/.opam-switch/build/sentry.~dev
# command     ~/.opam/opam-init/hooks/sandbox.sh build jbuilder build -p sentry -j 3
# exit-code   1
# env-file    ~/.opam/log/sentry-19599-d2c37b.env
# output-file ~/.opam/log/sentry-19599-d2c37b.out
### output ###
#     ocamlopt src/.sentry.objs/sentry__Dsn.{cmx,o} (exit 2)
# (cd _build/default && /home/gary/.opam/4.06.1/bin/ocamlopt.opt -w -40 -g -I src/.sentry.objs -I src/.sentry.objs/.private -I /home/gary/.opam/4.06.1/lib/astring -I /home/gary/.opam/4.06.1/lib/async -I /home/gary/.opam/4.06.1/lib/async_extra -I /home/gary/.opam/4.06.1/lib/async_kernel -I /home/gary/.opam/4.06.1/lib/async_rpc_kernel -I /home/gary/.opam/4.06.1/lib/async_ssl -I /home/gary/.opam/4[...]
# File "src/dsn.ml", line 4, characters 10-15:
# Error: Unbound value Uri.sexp_of_t
#       ocamlc src/.sentry.objs/sentry__Dsn.{cmo,cmt} (exit 2)
# (cd _build/default && /home/gary/.opam/4.06.1/bin/ocamlc.opt -w -40 -g -bin-annot -I src/.sentry.objs -I src/.sentry.objs/.private -I /home/gary/.opam/4.06.1/lib/astring -I /home/gary/.opam/4.06.1/lib/async -I /home/gary/.opam/4.06.1/lib/async_extra -I /home/gary/.opam/4.06.1/lib/async_kernel -I /home/gary/.opam/4.06.1/lib/async_rpc_kernel -I /home/gary/.opam/4.06.1/lib/async_ssl -I /home/gar[...]
# File "src/dsn.ml", line 4, characters 10-15:
# Error: Unbound value Uri.sexp_of_t

Due to https://github.com/ocaml/opam-repository/pull/12808

This should be fixed in 4d485edaabdb132ed2b9d12165bc8782c75ad7c9


On prod-preview.openshift.io, home page 'create a space' options are not operational

Workaround - Spaces can be created through the logged in user's profile.
Clicking on the 'create a space' options on the home page does nothing.

Moved to:
https://github.com/openshiftio/www.openshift.io/issues/84


Device cannot be deleted. Link / Button to delete is missing.

Problem:
A single device cannot be deleted. The entire integration must be deleted to remove a device. However, the deletion of individual devices is supported by Google Case TV, for example.

Change request
Please create a delete button for the individual devices.

To recreate the problem:

Create a Dummy in Eltako Config

          #----------------------------------------------------------------------
          #Dummy
          - id: FE-00-00-50
            eep: M5-38-08
            name: DUMMY
            sender:
              id: FD-00-00-50
              eep: F6-02-01

Check HA Config and Restart
The dummy is available

Remove or Deactivate Dummy in Config and Restart HA

Go to the entity and delete it (It is possible to delete the entity for the device.)

Try to delete the device

Do you know how to change/add it?
That is the dev doc how I implemented it.
My assumption is that if you define your devices via config, you need to delete them in the config. Most probably your Google Cast was auto-detected.

I can have a look at that. Maybe I can implement the deletion. But I am a 100% beginner in Home Assistant. Since I'm just checking if I can switch from FHEM.
Yes, ELTAKO was created manually in the configuration. The Hue things come automatically.
As soon as you delete individual ELTAKO things from the configuration.
The entity and the device are initially retained. I also think that makes sense.
Not that a misconfiguration would cause all automated things and the like to disappear from the entity or the device. For this reason, you apparently have to delete things proactively in the Home Assistant. It seems that you have to take this into account in your hack so that it is displayed in the device list.

OK. I think I understood your point.
Whenever you remove a device from the configuration it remains in the list and only new ones get added. Currently I just remove the gateway and add it again, which is not nice.
Theoretically I can get the list of devices in HA and check if they are still in the configuration and if not just remove them.
Would this solve your issue?

EN
I have just tested the following.

I have written a dummy switch in the config.
I have created an automation for the dummy switch.
I have removed the dummy switch from the config. (Commented out)
I have restarted HA.
I deleted the Eltako module.
I have recreated the Eltako module.
Intermediate result: The automation is still present. The dummy was removed.
I have added the dummy switch to the config again.
I have restarted HA.

Result: The automation was reassigned to the dummy.

Conclusion:
The work (automation, scenes, script) does not seem to be deleted if you accidentally remove the dummy from the config. It would therefore be a good idea to remove the dummy automatically when it is no longer present in the configuration. If you realize that you have deleted too much in the configuration, you can add it back and the automations, scenes and scripts will work again.
I understand that your idea is a nice to have if you know that you can clean it up by deleting and adding the module. But it is devinitively more intuitive if it cleans itself. If you can implement your idea, that would be great.
DE:
Ich habe gerade folgendes getestet.

Ich habe einen Dummy Switch in die Config geschrieben.
Ich habe eine Automation für den Dummy Switch erstellt.
Ich habe den Dummy-Schalter aus der Config entfernt. (Auskommentiert)
Ich habe HA neu gestartet.
Ich habe das Eltako-Modul gelöscht.
Ich habe das Eltako-Modul neu erstellt.
Zwischenergebnis: Die Automation ist noch vorhanden. Der Dummy wurde entfernt.
Ich habe den Dummy-Schalter wieder in die Config aufgenommen.
Ich habe HA neu gestartet.

Ergebnis: Die Automation wurde wieder dem Dummy zugeordnet.

Fazit:
Die Arbeiten (Automation, Szenen, Skript) scheint nicht gelöscht zu werden, wenn man versehentlich den Dummy aus der Configuration entfernt. Daher wäre es eine gute Idee, den Dummy automatisch zu entfernen, wenn er nicht mehr in der Konfiguration vorhanden ist. Wenn man feststellt, dass man zu viel in der Konfiguration gelöscht hat, kann man es wieder einfügen und die Automatisierungen, Szenen und Scripts funktionieren wieder.
Ich verstehe dass deine Idee ein Nice To Have ist, wenn man weiß, dass man es durch löschen und hinzufügen des Moduls bereinigen kann. Aber es ist devinitiv intuitiver, wenn es sich selbst bereinigt. Wenn du deine Idee Implementieren kannst wäre das super.

Hello @LHBL2003,
actually I haven't really thought of initially. Because I was also new to HA I just took what was  obviously offered.
The last two days I tried to explore options about how to delete orphaned (not anymore supported or invalid) entries in any way. Deep in the code of HA I found cleanup methods but they had no effect. I was also not able to find the orphaned entries in any lists and also do not know where to delete them programmatically.
For this case I always had an delete button like you showed in our screenshots and I was able to delete them manually. If you want to avoid the effort of deleting all single entries, you can also just remove the whole gateway/hub and add it again. May idea was to automate this step.
Like you mentioned all automations, dashboards, ... will remain like configured beforehand or just stay untouched.
If you want to delete devices or entities which are valid and are entered in the configuration ... I only was able to remove them in the configuration and restart HA. For me the delete button was always greyed out.
How would you like to proceed?

Hello @grimmpp,
I think the simplest option is to point this out in the documentation. So that people are not afraid to delete and recreate the Eltako hub. I would prefer to see something like this in the hub. But where HA is a little reluctant is with the possibility of storing info texts where they are needed.
Pull for Handling: https://github.com/grimmpp/home-assistant-eltako/pull/70


Volume 100 too low

I have adjusted alsamixer in a way that other players on the system, like Rhasspy, Mopidy, aplay, etc. are each playing with a reasonable volume range. With Librespot however when I turn the volume in Spotify to maximum the actual volume coming out of the speakers is more like what would be 20-30% in e.g. Mopidy.

Please provide:

the full command line you are launching librespot with;
the full verbose log;
your Alsa configuration file.

Also, the Alsa mixer has been completely rewritten in dev. Is there any difference between the latest dev and currently released 0.2.0?

/usr/bin/librespot --name Kitchen --device-type speaker --backend alsa --bitrate 160 --cache /var/cache/raspotify --enable-volume-normalisation --normalisation-pregain 6 --volume-ctrl linear --initial-volume=50 --username [redacted] --password [redacted]
I added the --normalisation-pregain 6 later in order to get louder output, but it didn't really work too well.
Sep 27 16:56:40 raspberrypi systemd[1]: Starting Raspotify...
Sep 27 16:56:40 raspberrypi systemd[1]: Started Raspotify.
Sep 27 16:56:40 raspberrypi librespot[1511]: [2021-09-27T15:56:40Z INFO  librespot] librespot (raspotify v0.16.0) 0adb851 (2020-12-15). Built on 2020-12-30. Build ID: KLdkAvgt
Sep 27 16:56:40 raspberrypi librespot[1511]: [2021-09-27T15:56:40Z INFO  librespot_core::session] Connecting to AP "gew1-accesspoint-a-bsrj.ap.spotify.com:4070"
Sep 27 16:56:40 raspberrypi librespot[1511]: [2021-09-27T15:56:40Z INFO  librespot_core::session] Authenticated as "[redacted]" !
Sep 27 16:56:40 raspberrypi librespot[1511]: [2021-09-27T15:56:40Z INFO  librespot_playback::audio_backend::alsa] Using alsa sink
Sep 27 16:56:40 raspberrypi librespot[1511]: [2021-09-27T15:56:40Z INFO  librespot_core::session] Country: "DE"
Sep 27 17:07:00 raspberrypi librespot[1511]: [2021-09-27T16:07:00Z INFO  librespot_playback::player] Loading <Watashi No Uso (Your Lie in April Original Soundtrack)> with Spotify URI <spotify:track:08hlaHY7ssHzr2MvBKyKvt>
Sep 27 17:07:00 raspberrypi librespot[1511]: [2021-09-27T16:07:00Z WARN  librespot_playback::player] Reducing normalisation factor to prevent clipping. Please add negative pregain to avoid.
Sep 27 17:07:00 raspberrypi librespot[1511]: [2021-09-27T16:07:00Z INFO  librespot_playback::player] <Watashi No Uso (Your Lie in April Original Soundtrack)> (240071 ms) loaded

If you mean /etc/asound.conf, it's:
defaults.pcm.card 1
defaults.ctl.card 1
defaults.pcm.ipc_perm 0666

The first two lines set the default soundcard, the last line allows playback from Docker containers.

You don't seem to be using the hardware mixer in this example.
So the volume in the librespot (0 - 100) is mapped to the current alsa mixer volume.

Correct, none of my applications is controlling the hardware mixer, it is set to a fixed value.
But still "volume 100%" in Mopidy is blowing my eardrums and "volume 100%" in Raspotify/librespot is calm background noise.

AFAIK, if nothing is touching the mixer, then the software mixer should just map 100 to the current volume.
So if you set the mixer to 80% - then 100% in librespot is 80% of the actual mixer.
But, again I could be wrong with the new revamped implementation. You could confirm with a simple experiment with amixer, mopidy and librespot..

@ashthespy is correct, I have nothing to add to that.
Your asound.conf is plain & simple so I don't understand what you mean by "I have adjusted alsamixer in a way that other players on the system". But I am sure that you will need to either use:

--mixer alsa (if Raspotify supports that -- I just don't know) or
pump up alsamixer to 100% and then control volume using librespot softvol.

Raspotify documents this too: https://github.com/dtcooper/raspotify#troubleshooting

My volume on Spotify is 100% and it's still too quiet!

Have you tried turning the volume up using the command alsamixer?

I'm closing this for now because I'm 99% certain that this isn't a bug in librespot and either of above options will do what you want.

As a follow-up, unless you have some specific requirement I think you'll want to use a log volume control and not linear. Also see: https://github.com/librespot-org/librespot/wiki/Options#volume-control

What I meant is: I have deliberately set alsamixer to 45%. Because then, when I play with Mopidy at 100% volume, it is the absolute maximum volume that I want to put my speakers, ears and neighbors through. If I then play the same song from Spotify with Raspotify/librespot at 100% it is so quiet you can talk comfortably in the room.
Now you could say it's just that the MP3 that I'm playing with Mopidy is very very loud, but it's always the same, whether I play an MP3 or play from YouTube (with Mopidy) or play a voice announcement with Rhasspy or aplay or play from Bluetooth with bt-speaker. It's only Raspotify that is so quiet, all other sources share about the same idea of "100% volume".

Not sure what mopidy is doing, but open up alsamixer   and confirm thet they both don't touch your mixer.
Another check can be to completely turn off volume control via librespot and confirm nothing funky is going on..

Not sure what mopidy is doing, but open up alsamixer and confirm thet they both don't touch your mixer.

I can confirm that, it stays at 45 the entire time.

As a follow-up, unless you have some specific requirement I think you'll want to use a log volume control and not linear.

I tried both and I liked linear better. With linear the "good" volumes are distributed over a wider range, so if for example I give a voice command "louder", which will increase the volume by 5%, it's always a good amount. With the log volume control going from 95% to 100% has a too strong effect and but going from 45% to 50% has almost no effect.

Can you try the latest librespot by compiling from dev?
Also curious what happens if you disable normalisation altogether. I'm not sure which librespot Raspotify v0.16.0 is based
on, but from the basic logs it seems like it's on librespot 0.1.x. That only has the basic limiter and not the new dynamic limiter. If so, upping the pregain will do the opposite from what you want, because it will drop the volume of the entire track based on the highest peak +6 dB.
Finally, that full verbose log would be good.

Yeah, I'll set up a build and check again, maybe it's just the old version.
The log I posted isn't the one you were looking for?

I don't think Raspotify is at librespot 0.2.0 yet: https://github.com/dtcooper/raspotify/issues/394, maybe @JasonLG1979 can tell - he's an avid Raspotify user.
Please launch with --verbose for a full debug log.
Have you tried without normalisation?

@AndreKR I suspect that normalization is the issue. Refer to @roderickvd's comments. Without any sort of dynamic effects (limiting/compression) just lowering the volume by just a few dB is pretty noticeable as -6dB is the equivalent to 1/2 the wattage and -10dB is about half the perceived volume.

Progress report: I'm having trouble building Raspotify. Instead I'll build librespot myself. Unlike Python/pip I do actually know Rust/cargo.

Progress report: I'm having trouble building Raspotify. Instead I'll build librespot myself. Unlike Python/pip I do actually know Rust/cargo.

You can always just install raspotify and then replace the binary with a version you build yourself. That's what I do when I'm doing prolonged tests on things. You have to make sure to use the proper args though in /etc/default/raspotify. They have changed since the version that is included in raspotify.


Click on the bottom bar to pop up the current URL and the copied URL will flash.

Describe the bug
Click on the bottom bar to pop up the current URL and the copied URL will flash.
and 120 frames are not adapted.
Smartphone (please complete the following information):

Device: [e.g. OnePlus 9r le2100]
Android Version : [e.g. A11 colorOS11.2]
Android 11; LE2100 Build/RKQ1.201105.002
Kiwi Browser Version [ e.g. Kiwi Browser 101.0.4951.57 ]

Is there a video of bug?


Create some handy bash helpers

We should add some basic bash scripts for:

creating a new issue with the standard template prefilled
downloading the latest issue and pipe it to swaks
echo to STDOUT a copy & paste template for LinkedIn / Twitter

Won't do as we'll maybe switch to another tooling with the new team member.


fix(transcripts): reload conversation object after uploading CF

Description
since https://github.com/dust-tt/dust/pull/6323, when processing meeting transcripts we create a conversation and we then insert a content fragment into it.
But we don't reload the conversation, which means we hold onto a ConversationType that doesn't include the content fragment.
This fully breaks the meeting transcripts feature.


Cannot have a large number of properties

When specifying 40 properties, the query is too large. The maximum standard SQL query length is 1024.00K characters. Is there any way to work around this to allow more properties?

Congrats! You're the first to use this many properties :)
Can you be specific about which query/model is failing? Given this edge case, I would appreciate if you could take a first pass at a PR to resolve. I'm happy to review.

Closing until more details arrive.


Dragging element to cascade both up and left

Hi,
Is it possible that the tile i drag can be cascaded both ways up and left so that there is no empty space then i drag and drop

might be a cool feature yep


Download Live Stream

[REQUIRED] Use case description
The idea is to download live tv streams (HLS, MPEG-TS & DASH) and play them at the same time, allowing seek backward and forward within the cached data.
Alternatives considered
As it seems the current Download Manager does not support Live Streams download.

@andrewlewis @marcbaechinger
Could be possible that you share some high level architecture or rough ideas how this should be implemented?
I am willing to give it a try.

From the playback side I'd expect this to be a non-trivial implementation that I would estimate to be more than a month  of work to be implemented properly and to integrate this into the download components. The reason for that is that as a library we'd need support for adaptive live stream like HLS and DASH with all the bells and whistles they offer. Further reasons are that you can't just play the same playlist like in VOD and read from the cache, because manifests/playlist are dynamic in live by nature and you need to break this down to a VOD stream when recorded.
The approach of our Download components is to use  CacheDataSource that can read data from a Cache instead of an upstream data source. All requests that are required to run an adaptive live stream need to be cached in the Cache so that later the CacheDataSource reads it from there. This includes media chunks as well as manifests. At least for VOD this is clear how that works.
Here is where the difficulties comes in with live streams:
When playing a live stream the manifest is updated ever N seconds and gets a new manifest that likely has a moving live window of lets say 3 minutes. This can't be played in the same way when attempting to play the same live stream again because when stored on disk, there isn't a server that would deliver an updated manifest ever N seconds. So when downloading you'd have to re-write to a new manifest that probably is a VOD manifest that includes all segments/chunks in the manifest. This is where the current Cache approach becomes difficult, becasue it assumes to just read the same data from a different location. There isn't a need to rewrite things or turn hunderts of live manifests with a live window into a single VOD stream
This is IMO doable but it doesn't fit well in the Downloader approach that we have for VOD, because live seem fundamentally different. Also, there may be many quirks to solve when rewriting the manifest which starts with filenames and ends with metadata that may be embedded in the manifest and things like this.
So if I had an app, that has to download certain live streams I'd probably roll my own download to be honest. The reason is that Media3 as a library can't just partially support some type of live stream but need to do it properly for all eventualities, while an app can only support what the live stream does that the app is using.
So when rolling my own, I'd start downloading the manifest, playlist and download all the segement registered in there 1:1 with their file names somehwere in the filesystem. Then you'd write a new manifest/playlist that isn't a live manifest/playlist but VOD that references all the segments that are in the live stream manifest.
Then continue updating the live manifest as long as you wish to record. Make sure that each new segment that arrives in the manifest is already downloaded or in the process of being downloaded, then wait for the next live manifest update.
Finally, unlike with the Download/Cache approach of Media3, start the new VOD stream from the new local URI instead of the original one that you used for the live stream. It's a VOD stream on the users device now.
That's what falls out of my head when thinking about this.

@marcbaechinger
Thanks for shining a light.
So far I could think of following use cases:

Local DVR: Users can download or schedule the download of a live program to watch at a later time.
Local Live Stream Time-Shift Buffer: While watching live TV, the media3 download component continuously stores the played/watched content locally on the user's device. This buffer operates as a floating window, retaining a limited predefined duration until the user stops watching.

In the Local DVR use case, the workload primarily falls on the download component to:

Periodically refresh the live manifest.
Merge updates from the live manifest into a VOD-style manifest.
Download video, audio, and subtitle segments in parallel and sequentially.

Although the live stream uses adaptive streaming, ABR handling in the download component is primarily ensure that segments are fully downloaded before they are removed from the streaming server. A full ABR implementation may sound not necessary; a simplified approach focused on tracking the segment's removal timeline from the server may suffice. This is because pre-downloaded streams played on the device do not require real-time ABR handling. To optimize network bandwidth, the download component should fetch only a single bitrate that matches the device's available bandwidth at the time. When implementing the download engine's ABR handling to ensure timely segment downloads, additional steps are needed when merging updated manifests. The locally downloaded VOD manifest may require the insertion of extra discontinuity tags (for HLS) or multiple periods (for DASH) to handle bitrate switches during downloads.
Local Live Stream Time-Shift Buffer presents more challenges and impacts multiple media3 components. Below are some rough ideas:
Solution 1: Since media3 already supports playback while downloading, one approach would be to download the content first and then start playback.
Cons: This solution may result in some segments being fetched from the server twice—once by the downloader and once by the playback pipeline if the downloader is in the middle of fetching a segment while playback requests it. Full ABR handling would be required to exclude segments already downloaded by the downloader when calculating available bandwidth, among other considerations.
Solution 2: This approach would involve playing the stream while simultaneously storing all played segments on the device.
Cons: This solution would require significant changes to the existing architecture. The playback pipeline would need to manage both the media source period and timeline, while the playback engine would need to trigger the downloader service.
These are my two cents, could you shine more lights, please?


"docker-compose -f srsenb.yaml up -d && docker attach srsenb" ERROR

Hello,
After building the srsENB container following the command in the readme
docker-compose -f srsenb.yaml build --no-cache
I tried to start the container
docker-compose -f srsenb.yaml up -d && docker attach srsenb
And got the following error:
$docker-compose -f srsenb.yaml up -d && docker attach srsenb
WARNING: Found orphan containers (mme, hss, smf, rtpengine, mysql, smsc, fhoss, sgwc, amf, udm, pcrf, icscf, udr, scscf, bsf, upf, ausf, pcf, nssf, osmomsc, pcscf, osmohlr, mongo, dns, webui, sgwu, nrf) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Removing srsenb
Recreating 316f629a00da_srsenb ... error
ERROR: for 316f629a00da_srsenb  Cannot start service srsenb: Invalid address <IP_ADDRESS>: It does not belong to any of this network's subnets
ERROR: for srsenb  Cannot start service srsenb: Invalid address <IP_ADDRESS>: It does not belong to any of this network's subnets
ERROR: Encountered errors while bringing up the project.
Am I missing some configuration?
Thanks!

Hi @fj0831ec
For your reference, as follows is an example of a combination of USRP B210 and srsENB.
https://github.com/MauricioV/docker_open5gs

@fj0831ec I believe you are trying to run srsenb in another VM than the EPC. In order to do that steps are quite different

Hi @herlesupreeth
Thank you for answering.
I am trying to set up EPC and eNB on the same machine.
And SDR uses LimeSDR.
I proceeded with the procedure while looking at the README of docker_open5gs.
Why are you running srsenb on a VM other than the EPC?
Where did I make a mistake in the procedure?

@fj0831ec can you please share your .env file or rather can you run the below command in docker_open5gs folder and send me the output?
git diff

Hi @herlesupreeth
Thank you for answering.
Was self resolved. (ENB was able to start normally)
I don't know why it was resolved. This is my first time using Docker Compose.
I ran the following command from -remove-orphans, as described in the warning section.
It is described below together with the execution result of eNB and the result of git diff.
docker-compose -f srsenb.yaml up -d && docker attach srsenb
WARNING: Found orphan containers (upf, mme, sgwu, rtpengine, fhoss, nssf, pcrf, mongo, icscf, sgwc, udm, bsf, osmohlr, mysql, pcscf, smsc, amf, pcf, smf, webui, osmomsc, udr, nrf, ausf, hss, dns, scscf) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating srsenb ... done
Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 90726074D0C31, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=00090726074D0C31,
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR-USB [USB 3.0] 90726074D0C31'
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors:

clock_locked
lms7_temp
Available sensors for Rx channel 0:
lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
TIA: 9.00 dB
LNA: 30.00 dB
PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
PAD: 0.00 dB
IAMP: 0.00 dB
Rx antenna set to LNAL
Tx antenna set to BAND1

==== eNodeB started ===
Type  to view trace
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5.76 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Setting frequency: DL=2660.0 Mhz, UL=2540.0 MHz for cc_idx=0 nof_prb=25
[INFO] Tx calibration finished
[INFO] Rx calibration finished
$git diff
diff --git a/.env b/.env
index c5efbc0..8ad6395 100644
--- a/.env
+++ b/.env
@@ -5,7 +5,8 @@ MCC=001
MNC=01
TEST_NETWORK=<IP_ADDRESS>/24
-DOCKER_HOST_IP=<IP_ADDRESS>
+# DOCKER_HOST_IP=<IP_ADDRESS>
+DOCKER_HOST_IP=<IP_ADDRESS>
MONGODB
MONGO_IP=<IP_ADDRESS>
diff --git a/srslte/enb.conf b/srslte/enb.conf
index 60936f4..0899620 100644
--- a/srslte/enb.conf
+++ b/srslte/enb.conf
@@ -67,7 +67,7 @@ rx_gain = 40
#dl_earfcn = 6300
#tx_gain = 56
#rx_gain = 38
-#device_name = soapy
+device_name = soapy
#device_args = rxant=LNAW,txant=BAND2
#device_args = clock=external


Make reconciliation errors selectable by facets

Consider a reconciliation process where some cells could not reconcile properly, resulting in errors stored in cells.
As a user, I want to:

be notified that those errors happened, without manually scrolling through the dataset to find red text
be able to easily select all the rows where errors happened, to either fix them manually or re-run reconciliation on this subset only

Proposed solution
Adapt the reconciliation judgment facet to have a new category, "error", corresponding to the cells with a non-null reconciliation error.
This could be done either by changing the expression that defines the facet (such as if(isNonBlank(cell.recon.error), "error", forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), "(unreconciled)", "(blank)")))),
or by introducing a new judgment value in the backend. I think the latter would be cleaner.
Alternatives considered
Introduce another facet for that? It seems a bit overkill to me, and would take up more screen space.

Current screenshot
Currently, cells with reconciliation errors have status "none":

After this change, it would look like this instead:

@wetneb when you say

or by introducing a new judgment value in the backend. I think the latter would be cleaner.

do you mean a judgment value of "error" ?  Can you clarify by adding a bit more detail to that part of the proposal comment?

We need to add a new Judgment value here ("error") and update the code so that this state is properly set when creating reconciliation with errors:
https://github.com/OpenRefine/OpenRefine/blob/ec9c7a4fe82aed40841f925f4543cfb1ef6ee108/main/src/com/google/refine/model/Recon.java#L68-L73

So, we'll be able to facet them directly.  And since we'll have cell.recon.error object, then we can also use that to parse out the error details if we want to?
Also, just wondering if it MIGHT happen that the error object could ever be "empty" and what we will do about that on the backend to avoid giving users on the frontend cluelessness.  Because I don't see that avoidance of "empty" only "null" checking happening here:  https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/model/Cell.java


Port v1 authentication modules to v2

This ports PR 4089, which change the logic to also consider authentication policy when configure listener/cluster SSL. The actual configuration is still left open (TODO @mostrowski)
Issue: https://github.com/istio/istio/issues/4337

/lgtm


Missing symbol from special char list

Hello,
I realized that the ] symbol is not included inside this list(SecLists/Fuzzing/special_chars.txt).
Thanks

Fixed in #180


Split the http parser from Frame

The parse should be decoupled completely from Frame
It should take a ReadableBuffer and callbacks (TBD) for parsing various segments (headers, start line pieces etc).
It will also allow using the http parser in separate components.
There could be concerns around the performance when we pull it out (more indirection instead of updating state directly on frame).

/cc @pakrym


Documentation PDF

Hi,
is it possible to get the documentation as pdf? I saw some closed issues about this, but the solutions given there do not work anymore. It would be nice to have a link to a pdf version on this site: http://flask.pocoo.org/docs/1.0/

It's available on Read the Docs. You can also build it yourself with the source and Sphinx.


2024.8 Climate Min/Max Value - 4,5 Degree ist now an invalid Temperature

I agree to the following

[X] I have read the documentation right now
[X] I have read the FAQs right now
[X] I am aware of the latest release notes
[X] I am aware that an integration that was installed via HACS also needs to be updated via HACS
[X] The Backend (CCU/Homegear/...) is working as expected, devices are taught in and are controllable by its own UI.
[X] I am running the latest version of the custom_component (and Home Assistant)

The problem
As of HA 2024.8 it is not possible to Set the TRV Temperature to 4,5 Degree to switch off the TRV.
The TRV does support 5-30,5 Degrees at the moment.

I Think the right setable Range schould be 4,5 - 30,5 Degrees, so we can also switch off the TRV via Set Temeprature.
There is also an open Issue related to to this Problem
https://github.com/home-assistant/core/issues/123612
https://github.com/home-assistant/developers.home-assistant/pull/2259/files
"As of Home Assistant Core 2024.8, we have implemented validation for the temperature action call provided by the ClimateEntity.
Integrations no longer need to check this within their own set temperature methods (async_set_temperature/set_temperature).
However, it's important that integrations specify the min_temp and max_temp properties correctly, or the user might not be able to set their correct temperature if validation fails.
Likewise, integrations that handle devices which can operate on both Celsius and Fahrenheit need to convert their respective min_temp and max_temp values accordingly."
What version of HomematicIP (local) has the issue?
1.64.0
What was the last working version of HomematicIP (local)?
No response
What type of installation are you running?
Home Assistant OS
What type of installation are you running for your homematic backend?
RaspberryMatic HA-Addon
Which version of your homematic backend are you running?
No response
What hardware are you running for your system?
<IP_ADDRESS>40601
Which config details do you use

[ ] TLS
[ ] callback data (see)

Which interfaces do you use?

[ ] Homematic IP
[X] Homematic (Bidcos-RF)
[ ] Groups (Heating-Group)
[ ] BidCos-Wired (HM-Wired)

Diagnostics information (no logs here)
No response
Log file extract. Anything in the logs that might be useful for us? The log (Setting/System/Logs -> load full log) is the best source to support trouble shooting!
No response
Additional information
No response

Just turn_off (climate.turn_off) your device instead of setting the temperature to 4.5 degree and it works.

Have a look at this discussion

Thank you for the Informations.
But then, what about the 4,5 Degree within the Climate-Card when i switch off the Device?
Under this light, this is seemms absolutely wrong for me...

I don't care about (custom) cards!
And what is the problem? Homematic semantic is that 4,5degree meens off.
If you want to discuss this topic use the linked discussion.

Closing this, as this is not an issue with the integration.


Scripts used to correct the quota database

auto-fix-quota.py can be used to correct a single tenant, auto-fix-quota-all-tenants.sh walks all tenants as returned by keystone & calls auto-fix-quota.py for each.

Thanks for this!


Can’t enable sourcemaps

Using kirbyup 3.0.1 and Kirby 4.0.0-beta.2 how can i enable source maps to help with debugging?
Not a vite user so a bit lost here. I tried to force enable them by creating a kirbyup.config.js file in my plugin root.
import { defineConfig } from "kirbyup/config";

export default defineConfig({
	extendViteConfig: {
		build: {
			sourcemap: true,
		},
	}
});

Using sourcemap: true Chrome tries find a the sourcemap at /media/plugins/index.js.map which returns a 404.
Using sourcemap: "inline" Chrome tries to decode a DataURL which fails.
Am i missing any steps on how to do this?

Ahh well, found the solution to my problem.  Do not use kirbyup in watch mode kirbyup src/index.js --watch.
kirbyup serve src/index.js is enough to get working source map for local development. No extra kirbyup.config.js file required.


What's the license?

I've quickly skimmed through the repo, but I couldn't find any licensing information. What's the license for sbctl? I assume Apache2, but i think it's better to ask than to assume :slightly_smiling_face:.

Hi, thanks for asking.  There's an Apache 2 license in the repo now.


Omit default namespace when copying icon name of the _icons page

Right now when I click on the icon name and copy it to clipboard - I get default namespace also copied so the result is: icons/icon-name, which is a bit redundant since icon-name will work just fine cos it is located in the root folder anyway so it would be great if namespace was added only for internal folders

@AndrewBogdanovTSS You're right it's a bit confusing too.

@AndrewBogdanovTSS Checkout v0.4.8


add initial docs

Check it out using the Stoat docs preview!
There's definitely a ton more we can do for docs, especially around explaining the debug page and how the merging happens, but I'm hoping this is enough to get started.

The doc preview is beautiful! Imagine if people can comment on them directly.

Agreed on the Quick Start-style guides. Let's merge this now and add those separately.
I'll also add a homepage redirect separately.


correct icon in resource card

https://ibm-dotcom-library.netlify.com/patterns#resources

We need to update the icon from "arrowRight" to the "launch" icon since the link is taking adopters off our website.

Update completed and can be viewed here.


flow: fix issues when node type desc is not enabled

If node type description is not enabled the function
sol_flow_node_named_options_parse_member() is never run and its prototype
becomes broken since struct sol_flow_node_options_member_description is
never declared in that case.
Also the sol-fbp-runner and sol-fbp-generator both depend on description
if it's not present the targets check-fbp and check-fbp-bin should never
run due the lacking of the over mentioned binaries.
In the test/sol-flow.c we should also not build the description tests if
it's not enabled, otherwise the tests will fail at all.
Signed-off-by: Leandro Dorileo<EMAIL_ADDRESS>

+1

LGTM as well


UnixPB: Add Ubuntu 2104 to DockerStatic role

ref https://github.com/adoptium/infrastructure/issues/2143
Will test on a machine shortly

Closing. Resubmitting to clear ECA check


Incorrect textEntityTypeMention placement for edited message

For the message https://t.me/vlang_rus/39932 if I getMessage(chat_id=-1001302417875, message_id=41871736832) TDLib 1.6.8 returns:
{"@type":"message","id":41871736832,"sender_user_id":300345407,"chat_id":-1001302417875,"is_outgoing":false,"can_be_edited":false,"can_be_forwarded":true,"can_be_deleted_only_for_self":false,"can_be_deleted_for_all_users":false,"is_channel_post":false,"contains_unread_mention":false,"date":1600270936,"edit_date":1600271031,"reply_to_message_id":41869639680,"ttl":0,"ttl_expires_in":0.000000,"via_bot_user_id":0,"author_signature":"","views":0,"media_album_id":"0","restriction_reason":"","content":{"@type":"messageText","text":{"@type":"formattedText","text":"\u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u0422\u043e \u043d\u0435 \u0443 \u043c\u0435\u043d\u044f \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c. \u0412\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043a @alex_medvednikov","entities":[{"@type":"textEntity","offset":69,"length":17,"type":{"@type":"textEntityTypeMention"}}]}},"@extra":104}

Offset points to 69 position, but should to 79 at "@" beginning.
If I forward this message, resulting message is ok, entity points to 79 position!
I suspect sender edited the message in some weird way by adding 10 chars, and TDLib did not catch them up
Thanks

This is a known server-side issue, which is supposed to be fixed soon. Cached messages will keep incorrect entities though.


style: use GNU Make foreach instead of a shell for loop

Just for conciseness and style.
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

...and portability :-)
(in my cross-platform Makefiles I define e.g. COPY = cp on Linux, COPY = copy on Windows, etc. And I use the presence of the ProgramFiles variable to check if I'm on Windows or not - bit hacky but it works :wink: )

Where were you running make from? I've recently created a cross-platform Makefile for node-static-entry-point and I had to actually define CP = cmd.exe /c for it to work (see https://github.com/resin-io-modules/node-static-entry-point/blob/master/Makefile#L19)

Where were you running make from?

Sorry, I was referring to a project that I've worked on for another client, nothing to do with resin or Etcher ;-)
(and I actually "cheated" a bit by using small parts of https://en.wikipedia.org/wiki/UnxUtils on Windows to give more consistent command-flag handling)

...I never needed to add any mentions of cmd.exe though, but I was using a MinGW build of GNU make.exe (ah, which I see your node-static-entry-point is also using). Weird.

(and I eventually ended up needing to use Makefile features which were only in the 4.x version of GNU make, so IIRC I compiled my own mingw version)


ndk-glue: Don't return from onCreate until LOOPER is created

Android only performs additional initialization like providing an input queue through onInputQueueCreated after the main initialization function (ANativeActivity_onCreate) returns.  In some cases it is possible that the main thread spawned here hasn't attached a looper to its thread and assigned it to the accompanying LOOPER static variable yet, resulting in a None unwrap when Android provides us with an input queue.
This race condition is simply solved by not returning from fn init() (ANativeActivity_onCreate) until the thread has finished its setup, through wrapping LOOPER in a Mutex and using a condition variable to signal when it is ready.
This condition is intentionally not exposed to on_input_queue_created may we ever have a cleanup procedure that sets LOOPER back to None; any call to onInputQueueCreated in that state would be an error and should not block indefinitely.  The LOOPER should simply be ready by the time fn init() returns.
Fixes #116
CC @Gordon-F

@MarijnS95 Thank you! Tested this patch in my case. Works well.


Use string_view for syncronous unsubscribe functions

@jonesmz , thank you for sending the PR.
I merged many improvement from you. Thank you very much for your effort.Now I finished implementing the  basic MQTT v5 functionality and send #226.
All PRs conflicts are solved fine except #221. I tried to solve conflicts with the PR #221. But I didn't get the concept of the PR #221 yet.
I'd like to merge #226 first. Could you rebase the PR #221 after #226 merged?
I believe that this is a good way to avoid badly merge.

Yes, I will rebase after #226 is merged.


topgrade: 10.2.2 -> 10.2.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/topgrade/versions.
meta.description for topgrade is: "Upgrade all the things"
meta.homepage for topgrade is: "https://github.com/topgrade-rs/topgrade"
meta.changelog for topgrade is: ""
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 10.2.4 with grep in /nix/store/4dxxx3vbwim012m4wm3clrq6y80sgz5r-topgrade-10.2.4
found 10.2.4 in filename of file in /nix/store/4dxxx3vbwim012m4wm3clrq6y80sgz5r-topgrade-10.2.4

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
topgrade

Instructions to test this update (click to expand)

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

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/4dxxx3vbwim012m4wm3clrq6y80sgz5r-topgrade-10.2.4
ls -la /nix/store/4dxxx3vbwim012m4wm3clrq6y80sgz5r-topgrade-10.2.4/bin

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

1 package built:

topgrade

Maintainer pings
cc @SuperSandro2000 @XYenon for testing.

Result of nixpkgs-review pr 208062 run on x86_64-darwin 1

1 package built:

topgrade


chore(interface) relax some more from ZeebeClientImpl to ZeebeClient

Relax dependency as discussed in https://github.com/zeebe-io/spring-zeebe/issues/107

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

Codecov Report

Merging #108 (81c01c6) into master (45de6b3) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #108   +/-   ##
=========================================
  Coverage     32.67%   32.67%
  Complexity       47       47
=========================================
  Files            26       26
  Lines           303      303
  Branches         18       18
=========================================
  Hits             99       99
  Misses          195      195
  Partials          9        9

Impacted Files
Coverage Δ
Complexity Δ

.../client/config/ZeebeClientSpringConfiguration.java
0.00% <0.00%> (ø)
0.00 <0.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 45de6b3...81c01c6. Read the comment docs.

@ajeans same here.. we need the CLA to review and merge this PR :)

@salaboy  CLA signed \o/

@salaboy anything I can do to help this land?


Add KIND 1.23 support and update images for the other environments

Signed-off-by: Israel Blancas<EMAIL_ADDRESS>Which problem is this PR solving?

#1807

Short description of the changes

Add file to test on 1.23
Update the Docker images for the rest of environments

@rubenvp8510 could you take a look to this PR? I think is ready to merge


Details: When not using a DOI, no fields are available to complete

If I do not enter a DOI, on the 1. Basics step, when I reach the 5. Details step, only the Journal and Title field are displayed and though it says "provide additional information" I can't because there are no fields to fill in.  When DOI is not populated, the user should be able to fill in other fields.

When not using DOI, besides Journal and title, we should only ask for embargo information.
Other fields aren't required for submission. and no one we tested with wanted to fill them in. They all just seemed confused about those extra fields.


WEBSITE_SWAP_WARMUP_PING_* documentation unclear - only calls in http

WEBSITE_SWAP_WARMUP_PING_PATH will always call in http, not https.
Being a relative URL, I believe it is not configurable.
Therefor, if your app redirects http traffic to https, you will get a 307 instead of the expected status code, failing your swap if it is not in WEBSITE_SWAP_WARMUP_PING_STATUSES.
It is unclear if they warmup call follows the redirection or stops at the 307. I could test it but it would take a while. My first impression is no, according to my analytics. (No calls recorded to my configured endpoint)
It is unclear if the 307 it hits is the web app "HTTPS Only" feature or the ASP.NET Core's https redirection middleware. Again, my first impression is no, according to my analytics. (Not even the 307 shows up)

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

ID: f6e09089-1ae2-8943-5ce2-9d48f458c81f
Version Independent ID: ba780cba-f604-b0a4-a81a-23c7d2384762
Content: Set up staging environments - Azure App Service
Content Source: articles/app-service/deploy-staging-slots.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@Pluc15,  Thanks for the feedback! We are taking a look into this and will get back to you soon.

@Pluc15,  Thanks again for great feedback on this. By default, all response codes are valid.  Protocol settings- Https Only remains with the slot. As mentioned in the documentation section - During custom warm-up, the HTTP requests are made internally (without going through the external URL). They can fail with certain URL rewrite rules in Web.config. For example, rules for redirecting domain names or enforcing HTTPS  (as in your case) can prevent warm-up requests from reaching the app code. To work around this issue, modify your rewrite rules by adding the following two conditions:
`<conditions>
 <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
 <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
...
  </conditions>`

Kindly let us know if this still doesn't work and you believe the documentation doesn't add this clarity.

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion. Thanks again for taking time to share your valuable feedback.


Use cross-compilation

As this is simply downloading a tarball and copying some files over, cross-compiling this should be trivial. This would also allow us to use Azure for all builds.

@conda-forge-admin , please re-render


General layout/styling issues

Please record any styling/layout changes that should be made to the newly re-branded site (currently deployed on roadmap-dev and roadmap-stg)
Note any color and font changes, positioning of error/informational messages, etc.

Note: @briri @stephaniesimms @JEK-III  and I met on 6/15 and discussed that we want to wait until more of the functionality is baked in before doing another round of graphic design changes. This round was just to set a baseline and see how we feel about a cleaner all white background. We'll be experimenting with different colors for the heading as we go. Do however, feel free to add comments about wishlist items moving forward.

related to #127 which contains initial specs

Agreed and that request is tied to #175. Rails has 2 message streams, one for notices and another for errors. We're not using the appropriate ones in all cases so whoever updates the placement and styling of these messages should also make sure we're using the appropriate flash[:notice] or flash[:alert]

Had made comments about this before seeing this ticket. See #475
Also just spotted an example on homepage where we need more whitespace between error message and top banner.

I'm happy with the banner at the top, but this does have implications for our logo so we'll need to reflect on that for our styling. We should probably also suggest unis use a white version.
I wonder if we want a bottom banner to even out display. That's something I like in the Melbourne branding, see: https://dmp.research.unimelb.edu.au/en-UK/about_us
@dsisu can you take a look and chip in comments here too please as you've done most of the styling work on our end.

Re institutional branding and the top banner display I'll cross-reference related issue #156
@rhu001 is still working on wireframe options for this, but I think we all liked Weiwei's approach to replacing the Portage logo (or in this case roadmap) logo w/the institutional logo if admins upload one. Let us know what you think about it and/or if you always want to display the DMPonline logo somewhere in top banner?

@rhu001 For reference, here's what it looks like currently after the CSS rebuild. This particular logo happens to have a lot of extra white space on the right hand side. We would need to use logos with a white background like this. Logos with transparent logos get lost on the grey bar

Maybe this is a reason not to have a top banner? In general I'm for it, but if transparent logos get lost so people have to upload ones with a white background, the institutional branding is going to look a bit crummy. That was actually one of the things I had against our grey background. Logos with white surrounds looked really blocky on it.
@stephaniesimms regarding institutional logos, I think the Portage approach of replacing the DMPonline / DMPTool / DMPRoadmap logo with their own one is good. Institutions would definitely like that. Only quibble is contextualisation. On Portage they have a strapline which remains. Perhaps we need to introduce something like this so it's clear what the service does when it's been customised. How about "Create, review, and share data management plans" or something of that ilk.
@dsisu what are your views on all this? What do you feel our users would like?
For reference here are some shots from Portage - pre login

And post login, when an institutional logo has been uploaded

@briri @sjDCC We could potentially do an all white background for the top header area and that would take care of the color issue. I'd like to clarify... is the University of Edinburgh logo example with the two side by side logos be a real case or were you just plopping that in to show me what that logo looked like? If so, there is a potential dimension issue as well in that space if we need to account for two side by side logos.

@rhu it was just an example of what the logos would look like under the current method used to display institutional logos. There are others that do not have the extra white space but I don't have access to them all.

Hi @rhu001 this is an example of what it looks like in the current model. The proposal is to have the institutional logo replace the DMPTool / DMPonline / DMProadmap logo. Currently it just sits next to it. The issue is making sure institutional logo works on banner and has context. I've suggested we keep a strapline like Portage

@rhu001 to follow on comments above, if we all like the proposal to handle institutional branding by replacing the logo it's probably easier to do an all white background for the top header. this will accommodate institutional logos that tend to be color on white and save us the extra styling effort of supporting custom CSS like weiwei does.
and yes to what @sjDCC said about message styling. i assume we want to distinguish between status and error msgs somehow (e.g., color) but display them in a consistent location. am happy to follow whatever you recommend.

Updated the header so that the background is white and when the user is logged in it will display their institution's logo if one is present otherwise it displays the roadmap logo.
We will unfortunately need to re-upload the logos because our upload process resized them to fit in the old location and they are blurry when we increase the size and display them where the roadmap logo is.
Here is what it looks like with the roadmap logo on the home page. I feel like we should have a line or something that runs across the page. The explore dropdown feels like its just floating out there.

And here is what it looks like with an institutional logo. This Univ. of Edinburgh logo has a lot of white space around it, there are likely better options out there for it.

@briri Are the two logos in place bottom aligned with the global nav?

Hi all, sorry I haven't had the time to comment on the proposed new styling, I've been away. I need time to take a look at the wireframes. As discussed at our UX meeting yesterday, we should also carry out usability testing before we roll out any changes.

Just to clarify the conversation from the UX mtg on 12 Jul: usability testing is built into the MVP roadmap and planned for after the accessibility retest on 31 Jul. Styling and branding are handled independently for each of our services. This ticket pertains to generic layout and styling for the DMPRoadmap codebase, which is what others will see when they download and install the tool.

I understand this. We applied our own styling to the proposed generic tool and the end-result isn’t great. I guess this is work in progress so I’m not too concerned about the DIY look of the current generic tool. The one thing that does concern me is the introduction of new elements on the page e.g. Explore. This is not a matter of styling and will have a big impact on the way people navigate the site. I’m not convinced this is more user-friendly than what we currently have and I don’t think it’s justified by accessibility either. We should not introduce changes like these without testing first. Also, accessibility and usability are not incompatible with good looks. It is important that we produce a well finished, professional looking generic tool that will entice organisations to download it and use it. I guess I’m preaching to the converted. I have other work to do now, I’ll look at the proposed wireframes next week and get back to you by Wednesday next week. Have a good weekend! #161

Copied over from issue #491 since they deal with site-wide styling changes:

Remove boldface for field names in all plan creation (for multiple templates from same funder), writing, sharing, etc pages
Remove colon after each field name
Be consistent w/capitalization of every word for field names "Project Title" (or just first word, but we should pick one)
update css to use the text '(required)' instead of '*' when the label has class="required"
standardize the width(s) for entry boxes, ideally make them the same as wireframes which present 2 different sizes

@sjDCC pointed out that the Page title's and descriptions are not lined up with the main content of the page. We can likely fix this sitewide via CSS

We discussed how to handle institutional logos today and have a suggestion to make. We'd prefer not to lose the DMPonline one completely, but don't feel two logos work well side-by-side so in effect agree with the decision to replace this with the institutional one. What we'd propose as an addition is switching the DMPonline logo to be an icon at the start of the menu. We started to mock-up a visual of this. Will try to add a screengrab before calls.
One change layout wise would be dropping the menu beneath the primary logo rather than it running adjacent to it (bottom aligned) as this would allow for different sizes (square, landscape orientation etc) of uni logos more easily

@sjDCC mockup:

Perfect, thanks @vyruss

@sjDCC and @stephaniesimms are no longer bold and do not have a colon after them.

fixed capitalization issue on profile tabs, create plan and edit project details pages. Changes are currently in PR

Adding two wireframes agreed on UX call on 9th August as general layout for header / footer etc. This covers items we've been discussing under global nav and institutional branding.
The wireframes marry together ideas shared by @rhu001 with some alternative suggestions based on the concerns we raised about header depth and multiple menu bars.

Superseded by bootstrap work. closing out


Fatal error: Uncaught Predis\Response\ServerException: ERR syntax error

Describe the bug
Fatal error: Uncaught Predis\Response\ServerException: ERR syntax error
To Reproduce
I have read the issue related to #309, and do the same command like:
$client->set('k1', '1', 'EX', '10', 'PX', '10000', 'NX');,
then run and throw errors as title described.
Expected behavior
Expect to work properly
Versions (please complete the following information):

Predis: [v2.0.1]
PHP [7.2 | 7.4 | 8.1]
Redis Server [5.0.3]
OS [CentOS 7.9]

Code sample
<?php
require dirname(__FILE__, 2) . "/vendor/autoload.php";

$redis = new \Predis\Client();
$redis->connect();
$redis->set('k1', '1', 'EX', '10', 'PX', '10000', 'NX');

SET k1 1 EX 10 PX 10000 NX
ERR syntax error

SET k1 1 EX 10 PX 10000 NX
ERR syntax error

I feel puzzled why u closed this issue, so what's the problem for the code：
$redis->set('k1', '1', 'EX', '10', 'PX', '10000', 'NX');

and I couldn't understand the connection between the code you gave me and the code I described.  tks so much

to put it simply，I just wanna know what is the proper way to use set comand in predis with those extend options like EX、PX or NX and so on.


fix: Reuse and explicitly set the tests network directory, rather tha…

…n hard-coding and assuming the ST repo will match.

These two runs prove that this PR works with both ST develop branch, and my ST PR to update a bunch of defaults used by ST with vegacapsule:
https://jenkins.ops.vega.xyz/job/private/job/playgrounds/job/jake-playground/238/
https://jenkins.ops.vega.xyz/job/private/job/playgrounds/job/jake-playground/239/


Home Section

Issue Number
ISSUE #11

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] The title of my pull request is a short description of the requested changes.
[ ] Participating in SWOC2021.
[x] Participating in DWOC.

@07souravkunda Decreased the font and logo size.

@07souravkunda Decreased the font and logo size.


CapsuleControllerDesc/BoxControllerDesc generated with incorrect padding

Currently, the bindgen creates this struct for PxCapsuleControllerDesc
CapsuleControllerDesc :: struct {
    using _: ControllerDesc,
    radius: _c.float,
    height: _c.float,
    climbingMode: CapsuleClimbingMode,
    _pad26: [4]u8,
}

However, the C++ struct itself adds another virtual method, which doesn't seem to get picked up. Is it assuming that all virtual methods in deeper structs are overriding? The generated struct should be like this:
CapsuleControllerDesc :: struct {
    using _: ControllerDesc,
    _pad: [4]u8, // missing padding
    radius: _c.float,
    height: _c.float,
    climbingMode: CapsuleClimbingMode,
    _pad26: [4]u8,
}

Thanks for the report! Is this on Windows or Linux? Compiler version?
There is no such assumption about virtuals, but at least one of these ControllerDesc structs ended up in a weird situation of a derived class having a negative offset relative to where you would expect it with regular C rules. These are non-POD data so there are no rules on the layout.
The specific issue occurs if the base class ends up being padded with 4 bytes, virtual, and then the derived class has a 4-byte field at the start (which looks suspiciously like what you've posted). I observed this with Clang-15 on Linux. This is fine under C++ object rules since those bytes aren't addressable (through the base-class) without invoking UB. I'm guessing this is on Windows?

As an aside, this looks like a test issue as well, we have auto-generated tests for layouts. I haven't had time to set up any CI, so it's likely that I've only properly tested Linux.

Thanks!


WSGIApp not working with Serverless Deployment instructions

Using current master (v0.2) of Apistar I am unable to duplicate serverless deploy instructions in the readme.
For further context, you can reference a thread on Apistar's discuss forum here.
You can see my project files in this gist.
What I tried

apistart new . --framework wsgi
confirm the app instance is a wsgi instance by serving with gunicorn: gunicorn app:app --bind:<IP_ADDRESS>:5000
zappa init (I have an IAM user that is working for other lambda deployments using zappa that I'm using here -- permissions are confirmed to be working as expected)

Set staging: dev
Set profile/IAM user to user with appropriate permissions: zappadeploy
S3 bucket: default recommended
Where is app's function?: app.app

zappa deploy dev

Everything deploys as expected:
(.venv) gonzo:tz gonzo$ zappa deploy dev
Calling deploy for stage dev..
Downloading and installing dependencies..
Packaging project as zip.
Uploading tz-dev-1503759323.zip (7.4MiB)..
100%|██████████████████████████████████████████████████████████████████████████| 7.75M/7.75M [00:01<00:00, 4.85MB/s]
Scheduling..
Scheduled tz-dev-zappa-keep-warm-handler.keep_warm_callback with expression rate(4 minutes)!
Uploading tz-dev-template-1503759338.json (1.5KiB)..
100%|██████████████████████████████████████████████████████████████████████████| 1.58K/1.58K [00:00<00:00, 4.07KB/s]
Waiting for stack tz-dev to create (this can take a bit)..
 75%|████████████████████████████████████████████████████████████                    | 3/4 [00:09<00:05,  5.04s/res]
Deploying API Gateway..
Deployment complete!: https://79st39r9fe.execute-api.us-east-1.amazonaws.com/dev

Running locally with gunicorn all works as expected
gunicorn app:app --bind=<IP_ADDRESS>:8080
(.venv) gonzo:tz gonzo$ http :8080
HTTP/1.1 200 OK
Connection: close
Date: Sat, 26 Aug 2017 15:04:02 GMT
Server: gunicorn/19.7.1
Transfer-Encoding: chunked
content-type: application/json

{
    "message": "Welcome to API Star!"
}

Note: I'm using gunicorn to verify that a wsgi app is being used.
Resulting error: 404 not found
(.venv) gonzo:tz gonzo$ http https://79st39r9fe.execute-api.us-east-1.amazonaws.com/dev/
HTTP/1.1 404 Not Found
Connection: keep-alive
Content-Length: 24
Content-Type: application/json
Date: Sat, 26 Aug 2017 15:01:19 GMT
Via: 1.1 d03e57da6d2a774444e63ebbe2e7e9c0.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 48RqKE3t4-TbjTMoc1GBA6tr80b5LlpZgD05JDnSzBrC9PIQt9gjhA==
X-Amzn-Trace-Id: sampled=0;root=1-59a18d3f-93f2ef7ea58b60b90ae0a6f3
X-Cache: Error from cloudfront
x-amzn-RequestId: 6a901662-8a6f-11e7-97a8-9bdd7d92da16

{
    "message": "Not found"
}

The issue seems to be with:
https://github.com/encode/apistar/blob/master/apistar/frameworks/wsgi.py#L102
When environ['SCRIPT_NAME'] is removed and the path is just PATH_INFO it works fine when deployed to lambda. @tomchristie I am happy to submit a PR to fix this, but maybe I am missing why it has been done this way?

@pringlewood Good catch yup! The code is wrong exactly as you describe. PR would be ace. Release likely Tuesday.


Add clock skew feature when validaing id_tokens

done on dev

Hi,
I discovered the default 5 minute setting in oidc-manager of this recently when one of our servers was moved and had it's time adjusted by accident.  Just to help my understanding, what is the reason or what would be a use case to have the validation against the clock skew on the client?
Thanks

The iat claim is the UTC time on the server, and once it's back to the client JS then it tried to validate and the time is in the future because the browser machine's clock is off by a few seconds. That's why this is a common thing to do.

Thanks for the quick response!
That makes sense.  I guess my thought was, what would happen if a client's machine time was skewed way off - by say an hour or something ridiculous, which is outside our control.  Would this just be considered a fringe case where users should be informed about their system clock?  I suppose we could set the tolerance really high if we were that concerned.

Sure, and I think I even made it configurable as a setting.


Remove deprecated elements from Gradle plugin

Some clean up for 2.0

Warnings

:warning:
It looks like this PR contains functional changes without a corresponding test.

  Generated by :no_entry_sign: dangerJS against 4496936c76d93471b5f3e3cf5d98ad87419f8eb2


Feature/coverage

Added code coverage status to repo

Changes Unknown when pulling 87d6542c48c005d2d3252f89fac17998dea21af5 on feature/coverage into ** on master**.


RocketMQ compaction topic does not support tombstone messages

RocketMQ compaction topic needs to support clearing useless messages

could you  describle  the scenar

Actually if the value part of the message is null or empty, the message will not retain in the compaction process.
the code is here

Actually if the value part of the message is null or empty, the message will not retain in the compaction process. the code is here

It seems that DefaultMQProducer does not support sending messages with empty value

@fuyou001 Are you dealing with this problem ？


Organize the benchmark output folder

Description
For each benchmark test case, save benchmark result in same folder.
Issues
n/a
Type of change
List the type of change like below. Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would break existing design and interface)

Dependencies
List the newly introduced 3rd party dependency if exists.
Tests
Describe the tests that you ran to verify your changes.

Why do we save benchmark result in same folder For each benchmark test case, ?
How do we know which outcome belongs to which cases?
Current code, for each test case, will create multiple folders, one folder each "user_queries" item.
For example, if plan to test the chatqna for 4, 8, 16, 32 queries, it will create 4 folders.

After applied my PR, it will create one folder, and put 4 queries' results into this folder, make it easy to compare and report.

I guess may affect the CD workflow when calculating the average latency for each test case. Please help to check~ @daisy-ycguo @chensuyue

@chensuyue Can you help to confirm please? Does the CD flow depend on current folder structure or now.

@chensuyue Can you help to confirm please? Does the CD flow depend on current folder structure or now.

@chensuyue, please help to confirm.


Rule C416 broke some pandas code

This snippit:
import pandas as pd
obj = { k: v for k,v in pd.DataFrame.from_records([], columns=["foo", "bar", "baz"]).groupby("foo")}

Is rewritten to the following using the C416 rule (no unnecessary comprehensions):
import pandas pd
obj = dict(pd.DataFrame.from_records([], columns=["foo", "bar", "baz"]).groupby("foo"))

However that generates a TypeError when I run it. I filed a bug about this upstream (see pandas-dev/pandas#53287) but it makes me wonder if this rule is safe to apply. Current using ruff 0.0.262.

Huh, interesting. It's not immediately clear to me why / how those are different.

Interesting...

Thanks for reporting this issue. I looked online and apparently Python's dict() method checks for existence of the .keys() method.
https://stackoverflow.com/questions/40667093/what-is-a-mapping-object-according-to-dict-type
Unfortunately, in this case obj.keys returns a str, which is not callable.

ref https://github.com/pandas-dev/pandas/issues/53287#issuecomment-1553294794


add new RPC for explicitly previewing a channel CORE-6566

Patch does the following:
1.) Adds a new RPC PreviewConversatiobByIDLocal which will add the user into a channel in PREVIEW mode.
2.) Process the new Previewed section of the UpdateMembers Gregor message to properly add the current user in the right mode for the inbox cache.

Needs https://github.com/keybase/keybase/pull/1915

cc @buoyad


Implement Button

Let's define that "implement" means to cover all functionality in the Aurelia component and the make the sample app render something  like this:

[ ] the _initialize function is called from bind (only when there are issues, attached() may be used)
[ ] bindable properties are sorted alphabetically
[ ] there is a recreate function
[ ] there is a _initialize function
[ ] Kendo's options are pruned via the getOptions() function
[ ] Events are proxied via fireKendoEvent (such as dataBound)
[ ] Available API methods are proxied in the wrapper (such as enable)
[ ] The widget is destroyed in the detached lifecycle callback
[ ] The widget is stored in the widget property of the wrapper
[ ] Default values (found in Kendo's docs) of all bindable properties are set
[ ] All samples found on Telerik's website are recreated using our wrapper (example)
[ ] changed events of bindable properties are handle, only if there is an API method available. For example, the enable property of the button has an API function (enable()), so the enableChanged() function should call the enable() API function
[ ] if the control supports templating, the template-compiler is initialized from bind()


SysLog on windows to log to standard event log

Would it make sense for you to merge an implementation of a syslog_windows which logs the errors to the standard windows' applications and events log, visible in event viewer?

Is that expected behaviour on Windows? That sounds like a new backend to me.


Render Display with AGL

The display currently displays MSL as if it were AGL. This looks fine at competition where ground is MSL ~= 20ft, but doesn't work at all testing locations.
AIs:

Switch home pos from GpsPosition to AerialPosition in MissionConfig.
Return home position MSL to frontend.
Compute AGL, use for rendering.

Going to close this for a wider UI cleanup.


Updating user's PasswordHash to be base64 URL decoded before user import

Developers are having trouble migrating users because of the issue described here. This update looks to update the snippet used in https://firebase.google.com/docs/auth/admin/import-users#import_users_with_firebase_scrypt_hashed_passwords to help users migrate users and avoid issues surrounding double base64 encoding.

So the update for this doc snippet updating two things:
1.) Decoding the user password hash
- currently we don't so when a dev performs import the password hash is getting double encoding leading to invalid password errors when the correct password is provided for a newly imported user
2.) Updating the decoding functions so the hash.Scrypt key uses standard base64 encoding and user password hashes uses base64URL encoding
- currently the snippet doesn't decode the use password hash, but it should using a base64URL encoding


m2r haven't been updated in years

With the recent major release Mistune (2.0), leading to breakage (see https://github.com/miyakogi/m2r/issues/66), I suggest to switch to m2r2: https://github.com/CrossNox/m2r2

Or, alternatively, https://myst-parser.readthedocs.io/

Using m2r2 currently does not help either: It also pins mistune to version 0.8.4 in its setup.py, see https://github.com/CrossNox/m2r2/blob/b47d195275d39201c6bd0da4c26acbae28fcbcb9/setup.py#L24

In https://github.com/miyakogi/m2r/issues/60#issuecomment-1103246787 sphinx-mdinclude is suggested as an m2r fork which could solve the problem.

@qmonnet just saw that you fixed the issue in a branch of your fork. Any chance you would be willing to maintain that fork any further? would be highly appreciated to have a solution publicly available that does not rely on pinning the mistune version

Any chance you would be willing to maintain that fork any further?

Sorry, I don't have the expertise of the time for that (the changes I contributed are pretty minor). But I was planning to submit the changes as a PR to the current repository. It was pending some other fix which was addressed last week, now I just need to find a moment to get to it and create the PR.

Any chance you would be willing to maintain that fork any further?

Sorry, I don't have the expertise of the time for that (the changes I contributed are pretty minor). But I was planning to submit the changes as a PR to the current repository. It was pending some other fix which was addressed last week, now I just need to find a moment to get to it and create the PR.

sad to hear, but understandable. Let's see if something happens to your PR as this repo seems to be untouched for two years...

@jeriox Just for your information, the PR has been merged, and a new tag was created a few days ago, in case this issue is still relevant to you.

@qmonnet already got the notification that this issue has been closed, was happy to see it. Thanks for the PR and the ping!


TOC | JS | Add smooth scroll and scroll-spy behavior

Jira
http://vjira2:8080/browse/BDS-1975
Summary
Add smooth scroll and scroll-spy behavior to Table of Contents component.
Details

Uses an adapted version of React Waypoint for scroll-spy behavior (i.e. update active item as you scroll). For now, Waypoint-specific code lives with the component in ./waypoint. This could easily be refactored into Core and used with Nav Priority later on.
Updates component to use getUniqueId helper
Makes sure only one active item at a time and initial active item is taken into account.
Fix SSR hydration prep issues in IE11 by switching from <ssr-keep> to a new method, avoids the race conditions caused by <ssr-keep> loading late in IE11.

How to test

Review code changes
Test TOC demos, especially "Use Case Sticky" for scroll spy behavior

PR was released with v2.17.0