Map content is not shown/rendered

I just wanted to test your nice example project, however, when I am starting the demo application, I do not see any rendered OSM content (tiles) on the screen. Looks like the following:

Here is some console output,  nothing special:
22:15:21.365 DEBUG [JavaFX Application Thread] com.sothawo.mapjfx.MapView - Java Version:   1.8.0_92-b14
22:15:21.365 DEBUG [JavaFX Application Thread] com.sothawo.mapjfx.MapView - JavaFX Version: 8.0.92-b14
22:15:21.366 DEBUG [JavaFX Application Thread] com.sothawo.mapjfx.MapView - OS:             Mac OS X, 10.12.3, x86_64
22:15:21.367 DEBUG [JavaFX Application Thread] com.sothawo.mapjfx.MapView - User Agent:     Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.19 (KHTML, like Gecko) JavaFX/8.0 Safari/538.19
22:15:21.368 DEBUG [JavaFX Application Thread] com.sothawo.mapjfx.MapView - load html into WebEngine

...
22:15:22.519 DEBUG [JavaFX Application Thread] c.s.mapjfx.MapView.JavaConnector - JS: patching anchor for https://openlayers.org/
22:15:22.520 DEBUG [JavaFX Application Thread] c.s.mapjfx.MapView.JavaConnector - JS: patching anchor for https://www.openstreetmap.org/copyright
22:15:22.521 DEBUG [JavaFX Application Thread] c.s.mapjfx.MapView.JavaConnector - JS reports zoom value 2

I used the released MVN package and the demo application in the
https://github.com/sothawo/mapjfx-demo.git
repository

While testing to answer this issue I found the same behaviour, the loading of the tiles is really slow, they load after a while, but not as it should, it seems to take up to some minutes.
In the src/main/resources directory is a mapview-local.html file which I use for development and testing, when you open this file in a browser after changing line 169 to jsMapView.setMapType('OSM'); does it work?
I can see in three different browsers (Chrome, Firefox and Safari), that some tiles load quite noarmally, but some take a long time to load. Firefox status line shows Übertragen der Daten von a.tile.openstreetmap.org...
What happens if you set the map type to the World food program admin boundaries and zoom out to level 7? Can you see some map outlines then? (the GIS server seems not to be available anymore, I have to remove that sample). Just to make sure the program is working and the problem is with OSM.
Another thing I found: I normally have Disconnect Desktop running tunneling my web traffic through a VPN to remove tracking. If I switch this off, the map tiles load normally, one or two take a bit longer, but no really big delays. Do you have any tools like this active that might intercept with internet traffic?

Thanks for the quick answer. When I am changing line 169, the web shows the correct content.
The WMS mode does work in the app and shows the boundaries. The OSM mode does only work for the html file modification, not in the demo application

Ok, I did some more tests. I wrote a small JavaFX Browser application that just has a url entry field and a button to get the browser going:
`/**

Copyright (c) 2016 sothawo

http://www.sothawo.com
*/
package com.sothawo.browser;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/**

@author P.J. Meisch (pj.meisch@sothawo.com).
*/
public class Browser extends Application {
/** the embedded webview. */
private WebView webView;
/** the engine of the embbeded webview. */
private WebEngine webEngine;
/** text field for entry of url. */
private TextField urlTextField;
// button to start loading the webpage. */
private Button goButton;
@Override
public void start(Stage primaryStage) throws Exception {
 webView = new WebView();
 webEngine = webView.getEngine();

 primaryStage.setTitle("Browser");

 // create content
 BorderPane content = new BorderPane();

 // at the top url entry filed and go button
 HBox hbox = new HBox();
 hbox.setPadding(new Insets(5, 5, 5, 5));
 hbox.setSpacing(5);

 urlTextField = new TextField();
 HBox.setHgrow(urlTextField, Priority.ALWAYS);
 hbox.getChildren().add(urlTextField);

 goButton = new Button("Go");
 goButton.setOnAction(evt -> {
     webEngine.load(urlTextField.getText());
 });

 hbox.getChildren().add(goButton);

 content.setTop(hbox);

 content.setCenter(webView);

 primaryStage.setScene(new Scene(content, 1024, 800));
 primaryStage.show();

}

}
`
When displaying my local file with this browser I have the same problems. I then checked the official OpenLayers site and found that this is not working either. The first image shows an OpenLayers sample in Chrome, the second in the small browser app:

So it seems that the WebKit Browser contained in the current Java versions seems to have a problem with OSM maps. In the small browser app there is nothing customized, just the plain WebView from Java.
To be honest, at the moment I have no idea how I could fix this. Sorry I can't give you a better answer, but as WebKit is a native component, I can't even debug into the code or check what the browser is doing.

Thanks for your investigations. This is really a pity :-(


Rectify the location of the \include files

The files included do not have the full path. Change the \include
to reflect the full path.

LGTM


Always produce OCI images and indexes

Followup from #354
Before this change, if the base image was a Docker manifest list, it could not be annotated with base image information. With this change, ko always produces OCI images and indexes, which can be annotated.
Verified manually as well:
$ crane manifest $(go run ./ publish ./test --platform=all) | jq '.annotations'
...
{
  "org.opencontainers.image.base.digest": "sha256:7cb5539ebb7b99352d736ed97668060cee123285f01705b910891acdf7d945e3",
  "org.opencontainers.image.base.name": "gcr.io/distroless/static:nonroot"
}

My only reluctance here is breaking folks that push to old registries that won't support OCI. I guess they could just use an old version of ko... wdyt?

My only reluctance here is breaking folks that push to old registries that won't support OCI. I guess they could just use an old version of ko... wdyt?

Yeah... we could have an --oci flag that defaults true?

Yeah... we could have an --oci flag that defaults true?

I'd be ok with deferring this until someone complains.

Codecov Report

Merging #449 (8c089af) into main (2adcadd) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #449   +/-   ##
=======================================
  Coverage   53.25%   53.26%
=======================================
  Files          36       36
  Lines        1842     1838    -4
=======================================
- Hits          981      979    -2
+ Misses        710      709    -1
+ Partials      151      150    -1

Impacted Files
Coverage Δ

pkg/build/gobuild.go
58.51% <100.00%> (+0.07%)
:arrow_up:

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 2adcadd...8c089af. Read the comment docs.


[AP] Next Build reverse proxy dev bucket testing for dev

Description
The goal of this ticket is to properly test changes to the reverse proxy via our test plan in the dev environment dev.va.gov.
This ticket specifically test dev.va.gov pointing to the next build next-content.dev.va.gov s3 bucket.
When testing a thread should be started in the #accelerated-publishing slack channel to keep the team updated with passing or failing test. All findings should be recorded with this ticket.
Acceptance Criteria

[ ] Results of each test added to this ticket
[ ] Team informed of passing or failing test

Passed
Passed
Passed
Passed
Passed
Passed
Passed
N/A
N/A


amazon_reviews_multi no longer available on HuggingFace

The amazon_reviews_multi is no longer available on HuggingFace (https://huggingface.co/datasets/amazon_reviews_multi/discussions/4#64c3898db63057f1fd3ce1a0). So, we'll need to use a different dataset for this training example:
training/trn1-bert-fine-tuning-on-sagemaker/bert-base-uncased-amazon-reviews.ipynb

Fixed.

Fixed


Add nominee: Tangawizi

Automatic addition of a new nominee submitted through the online form available at https://digitalpublicgoods.net/submission

This PR was opened for testing purposes by the Design team working on streamlining the UI/ UX journey. Closing it for the above reason.


Changed H5PYDataset to enable sharing file handles and fix serialization

This is a tentative implementation to fix the issues reported in #65. The "state" for an out-of-memory H5PYDataset is now just the HDF5 file name, and the class will share a handle to that file as long as there is someone accessing it (ref_counts for that handle >  1).

@jfsantos Would you mind rebasing your code on top of master? I'll have a look at it afterwards.

My fix was a bit messy, so maybe it's better to think on another way of solving this. The big thing is that DataStream can't use anything coming from h5py (neither the handle nor the file id) as a state, since the DataStream instance is going to be serialized with the main loop and it keeps the state as an instance attribute. Maybe one way would be simply keeping the handle in a dictionary in H5PYDataset (as a class attribute) and pass the filepath or a hash of the handle object as a state.

I doubt the hash would be preserved across interpreter sessions, if that is
the desired behaviour.

You are right. Maybe the filename would be the safest bet?
On Thu, Apr 16, 2015, 7:38 PM David Warde-Farley<EMAIL_ADDRESS>wrote:

I doubt the hash would be preserved across interpreter sessions, if that is
the desired behaviour.
—
Reply to this email directly or view it on GitHub
https://github.com/bartvm/fuel/pull/67#issuecomment-93862717.

I think you found the right solution, I'd just polish it a little more. How about this:

The state passed around is a file path (using the full path for uniqueness).
We maintain a private _ref_counts class attribute which is a dict mapping file paths to reference counts.
We also maintain a private _file_handles class attribute which is a dict mapping file paths to HDF5 file handles.
We implement get_file_handle and release_file_handle class methods which are responsible for maintaining the state of _ref_counts and _file_handles.

Also, if you're able to come up with a minimal bug-reproducing example we should make a unit test out of that.

I'll go ahead and close this since the issue was fixed by #100

Good, thanks again for pointing out the issue!


Schema from different CH database

I have a table that replicates well. But when I create table with the same name in different database in CH I'm getting an error
6363 2023-06-07 11:04:46.582 [pool-1-thread-3] ERROR com.altinity.clickhouse.sink.connector.db.DbWriter  - ******* ERROR inserting Batch *****************
java.sql.BatchUpdateException: Code: 16. DB::Exception: No such column test_generated_column in table test_cdc.ingesting (cff45383-6e6b-4824-b554-da931053c8bf). (NO_SUCH_COLUMN_IN_TABLE) (version <IP_ADDRESS> (official build))
, server ClickHouseNode [uri=http://<IP_ADDRESS>:8123/test_cdc, options={custom_settings=allow_experimental_object_type=1,client_name=Agent_1}]@-266091542

where test_generated_column is the column in the ingesting table, but in different database (not test_cdc) inside the same cluster.
while lightweight connector is running I can create table/view with the same ingesting name in different database, but right after restart of the connector I'm getting errors like above.

@subkanthi any updates on this?

@faridco testing the fix, will update you here tomorrow , thanks

Hi @faridco , #265 fixes the bug.
If you are using docker.
you can use this tag.
export SINK_LIGHTWEIGHT_VERSION=2023-06-17
clickhouse_debezium_embedded:2023-06-17

@subkanthi thank you


circular dependency for function _FutureListener.then

Unexpected exception in service tests: ServerRpcException(Error in extension ext..delay: 'dart:async/future_impl.dart': error: line 82: circular dependency for function _FutureListener.then
Pending Functions:
0: _FutureListener.then
_FutureListener.then(this.result,
^
) #0      tests..<_async_body> (file:///mnt/data/b/build/slave/vm-linux-release-x64-be/build/sdk/runtime/observatory/tests/service/developer_extension_test.dart)
#1      _asyncErrorWrapperHelper. (dart:async-patch/async_patch.dart:34)
#2      _rootRunBinary (dart:async/zone.dart:914)
#3      _CustomZone.runBinary (dart:async/zone.dart:806)
#4      _Future._propagateToListeners.handleError (dart:async/future_impl.dart:579)
#5      _Future._propagateToListeners (dart:async/future_impl.dart:641)
#6      _Future._completeError (dart:async/future_impl.dart:432)
#7      _Future._asyncCompleteError. (dart:async/future_impl.dart:488)
#8      _rootRun (dart:async/zone.dart:895)
#9      _CustomZone.run (dart:async/zone.dart:790)
#10     _CustomZone.runGuarded (dart:async/zone.dart:696)
#11     _CustomZone.bindCallback. (dart:async/zone.dart:721)
#12     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#13     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#14     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)

@turnidge @mhausner

From Matthias:
I see that _FutureListener.then() uses the constant STATE_THEN_ONERROR which is initialized with an expression that is computed at compile-time, possibly when then() is compiled if it hasn't been referenced before. If the error is happening frequently, you could patch your tree and replace the initializer for  STATE_THEN_ONERROR like this:
static const int STATE_THEN_ONERROR = 3;
That should avoid the synthetic initializer function for the constant. The then() function can then be compiled without recursively compiling something else.

I'm attempting this here https://codereview.chromium.org/1811103002/

@mhausner What I would like to understand is why it is an issue if the compilation of _FutureListener.then() causes a recursive compilation of a compile-time constant.

@mhausner The work around did not work.
https://build.chromium.org/p/client.dart/builders/vm-mac-release-x64-be/builds/12370/steps/checked vm tests/logs/stdio

I haven't seen this since adding many NoOOBScopes


Export not working if target name is not valid

Godot Master
Exporting with command line leads to separate file placement when target file is wrong.
Reproduce

Switch to project folder run this
godot --export "Linux/X11" ./../exports/test

Result
./../exports/test
./..pck
Expected
./../exports/test
./../exports/test.pck
The correct command is
X11
godot --export "Linux/X11" ./../exports/test.x86_64
Windows
godot --export "Linux/X11" ./../exports/test.exe

Found the bug: String::get_basename and String::get_extension are having trouble with files not having an extension.
Going to make a PR.

Fixed by #18520.


Make it Multiplayer.

It could be cool if several people can "play" on same session.
I really like the idea of trystero library, which is secure and simple "serverless" multiplayer data transfer.
For demo look at this homepage.
For more complex example there is chitchatter, which is a chat website.
I tried to implement this in the nogan folder, but I've not succeeded as there is no standard way to transfer and apply changes to the tree.
I Imagine a "connect" button, where you type your username, you have the option to type the user you want to connect to, and the other user have to approve.
What do you think?

this will never happen. If you wanna chat use discord.


Add darien assignment form

These sets up the scaffold for a working create and edit assignment form for WD:

Updates grommet dependency to 1.8.3
Adds the AssignmentFormDialog, AssignmentFormContainer and AssignmentForm components
Adds some scaffolding for the delete action for assignments
I deleted a copy of AstroClassroomsTableContainer that had a typo in its file name, so there were basically two copies of the same component.
I fixed a slight typo variation in the i2A program metadata, where I'm storing how to create the 3 standard assignments they use.

Note that assignment creation still does not work yet. It's known it will 422. I don't have the data structured correctly yet. However, I wanted to get this reviewed before this branch got too much bigger!
Still left to do in a follow up PRs:

A working POST for assignment create
A working list of students to add
A working subject viewer
A working delete assignment action

Side Note: Analysing the "Create Assignment" 422 Error
With this PR, when I choose to Create an Assignment via the WildCam Darien page, I'm sending data that looks like this:
{
  "data":{
    "attributes":{
      "name":"Test 1",
      "metadata":{
        "description":"test",
        "duedate":"11/13/2017 3:00 pm"
      }
    },
    "relationships":{
      "classroom":{
        "data":{
          "id":"321",
          "type":"classrooms"
        }
      }
    }
  }
}

Now if I compare it to a Create Assignment action in WildCam Gorongosa Lab, I'll see...
{
  "data":{
    "attributes":{
      "name":"TEST",
      "metadata":{
        "classifications_target":"10",
        "description":"Simone is a member.",
        "duedate":"2017-01-01",
        "filters":{
          "species":[
            "civet"
          ]
        },
        "subjects":[...a bunch of string IDs...]
      }
    },
    "relationships":{
      "classroom":{
        "data":{
          "id":"361",
          "type":"classrooms"
        }
      },
      "student_users":{
        "data":[...a bunch of id-type objects...]
      },
      "subjects":{
        "data":[...a bunch of id-type objects...]
      }
    }
  }
}

While it's worth double-checking that it's possible (IIRC, it should be ) to create an Assignment with 0 assigned Students and 0 assigned Subjects, let's ignore relationships for now and focus on the differences in attributes. We notice that...

metadata.classifications_target is missing from the Darien Create Assignment call; this may be related to the classifications_target confusion issue above. IIRC, classifications_target is a required parameter, so missing this may be causing the 422.
metadata.duedate uses a complete different time-date format; for one, the WildCam Darien call actually includes a time.

Side note: the YYYY-MM-DD format is probably the best format to use to avoid confusion between UK and US date formats.

I'm not sure if metadata.filters is a required parameter; I know I can submit a call with no filters, but that may be sent as an empty object {} . Again, I need to double check this.

I'm working on the 422. To follow up on your comments:

I've corrected all of singular v. plural mistakes with classifications_target
I've standardized the datetime format using a format prop Grommet offers. They default to M/D/YYYY h:mm a, however, YYYY-MM-DD can be used.
I doubt the filters are required, but I'm not sure either. This form will have to be able to submit filters regardless.

However, the API response gives us a clue. Nested in the error object we get this detail: "has an invalid nested value ("workflow_id" => nil)" I think this was one of the changes necessary for I2A, so we'll need to get the docs updated for this. I think sending a workflow_id is required now. For Wildcam, this may be the workflow id that is going to be cloned? I'll confirm with @zwolf .

PR Review Update
Nice! Thanks @srallen , the recent changes address the pertinent issues for getting this PR merged. 👍
Status
LGTM, this PR is now getting merged.


With this sample we can see that afer some calls we start getting garbage on some of the session member variabls (peer):
Execute this server and browse to "http://<IP_ADDRESS>:8086/login" after that browse "http://<IP_ADDRESS>:8086/" and we will see on console (check_auth : / : <IP_ADDRESS> : <IP_ADDRESS> : 1 : DAD)
then run the "ab" command and again browse "http://<IP_ADDRESS>:8086/" and probably we will get this(check_auth : / : ��������� : <IP_ADDRESS> : 1 : DAD)
import vibe.appmain;
import vibe.http.server;
import vibe.core.log;
import std.datetime;

struct UserSession {
    bool loggedIn = false;
    bool isAdmin = false;
    string userName;
    string host;
    ushort port;
    string peer;
    bool viewOnly;
    string authorization_code;
    string access_token;
    DateTime dtime;
}

void handleRequest(HTTPServerRequest req, HTTPServerResponse res)
{
    if (req.path == "/")
    {
        if (!req.session) req.session = res.startSession();
        UserSession usession = req.session.get!UserSession("login");
        logInfo("check_auth : %s : %s : %s : %d : %s", req.path, usession.peer, req.peer, usession.loggedIn, usession.userName);
        res.writeBody("Hello, World!", "text/plain");
    } else if(req.path == "/login") {
        UserSession usession;
        usession.loggedIn = true;
        usession.userName = "DAD";
        usession.peer = req.peer;
        if (!req.session) req.session = res.startSession();
        req.session.set("login", usession);
        res.writeBody("Hello, World! Loged In !", "text/plain");
    }
}

shared static this()
{
    auto settings = new HTTPServerSettings;
    //settings.options |= HTTPServerOption.distribute;
    settings.port = 8086;
    settings.bindAddresses = ["::1", "<IP_ADDRESS>"];
    settings.sessionStore = new MemorySessionStore;
    listenHTTP(settings, &handleRequest);
}

ab command:
ab -n 5000 -c 1000 -k http://<IP_ADDRESS>:8086/

The original issue is fixed when using vibe-core. The req.peer property is allocated on-demand there. Alternatively, req.clientAddress.toAddressString() can be used with a sink callback, to enable getting the address string without allocations.

The HTTP improvements/optimizations will be part of the upcoming HTTP package rework.


Suggestion - macro for running commands

In the spirit of with-current-buffer, it seems the commonalities of calling compilation and the async shell stuff could be abstracted in a pair of macros with-compilation-command and with-async-shell-command. Or a single macro that takes the execution function as parameter.
Common portions:

Logging the command
Buffer name, for async command
Setting default-directory
Running the command

Consider adding a macro for format-spec too.

Revisited the code, this doesn't seem worth it.
But does seems worth it is to stop using async-shell-command and instead use start-process but not the biggest priority now.


Add Markdown support?

Might it be possible to add support for rendering a Flutter markdown element?

Hey. Could you please give an example how would it improve SEO?

@krokyze hey there. I'm working on a project where we're hoping to write a ton of content using markdown.
https://www.seepdeep.com/
https://www.seepdeep.com/sql

I get a bunch of warnings about missing headings and dead links when there shouldn't be any.

There's a link here for example.

Thanks for your work already and hope that helps.
https://freetools.seobility.net/en/seocheck/check?url=https%3A%2F%2Fwww.seepdeep.com%2Fsql&crawltype=1

The issue is that I would guess 99% of SEO validators don't execute JavaScript on the webpage. However, for a Flutter app to function properly, including SEO functionality, JavaScript execution is required. To see what Googlebot actually sees, you can use the URL Inspection Tool.


LAB_06

English:
https://azure.microsoft.com/en-us/regions/offers/
Current Translation:
https://azure.microsoft.com/en-us/regions/offers/
Suggested Translation:
https://azure.microsoft.com/fr-fr/regions/offers/
Description:
Please use the docs.microsoft.com localized links when available. Please run a global search, double-check if a French version is available (human translation) and fix all the occurrences in this batch.

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

can't fix.


Error in importing the package

when I use:
import pyclesperanto_prototype as cle
I get this error:

TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_9974/4056458295.py in
1 from skimage.io import imread
----> 2 from pyclesperanto_prototype import imshow
3 import pyclesperanto_prototype as cle
4 import matplotlib.pyplot as plt
~/.local/lib/python3.8/site-packages/pyclesperanto_prototype/init.py in
----> 1 from ._tier0 import *
2 from ._tier1 import *
3 from ._tier2 import *
4 from ._tier3 import *
5 from ._tier4 import *
~/.local/lib/python3.8/site-packages/pyclesperanto_prototype/_tier0/init.py in
34 from ._push import push
35 from ._push import push as asarray
---> 36 from ._plugin_function import plugin_function
37 from ._types import Image
38 from ._cl_info import cl_info
~/.local/lib/python3.8/site-packages/pyclesperanto_prototype/_tier0/_plugin_function.py in
6
7 from ._create import create_like
----> 8 from ._types import Image, is_image
9 from ._push import push
10
~/.local/lib/python3.8/site-packages/pyclesperanto_prototype/_tier0/_types.py in
1 import numpy as np
----> 2 from ._pycl import OCLArray, _OCLImage
3 import pyopencl as cl
4 from typing import Union
5
~/.local/lib/python3.8/site-packages/pyclesperanto_prototype/_tier0/_pycl.py in
4
5 import numpy as np
----> 6 import pyopencl as cl
7 from pyopencl import characterize
8 from pyopencl import array
~/.local/lib/python3.8/site-packages/pyopencl/init.py in
28
29 # must import, otherwise dtype registry will not be fully populated
---> 30 import pyopencl.cltypes  # noqa: F401
31
32 import logging
~/.local/lib/python3.8/site-packages/pyopencl/cltypes.py in
20
21 import numpy as np
---> 22 from pyopencl.tools import get_or_register_dtype
23 import warnings
24
~/.local/lib/python3.8/site-packages/pyopencl/tools.py in
134
135 import numpy as np
--> 136 from pytools import memoize, memoize_method
137 from pyopencl._cl import bitlog2, get_cl_header_version  # noqa: F401
138 from pytools.persistent_dict import KeyBuilder as KeyBuilderBase
~/.local/lib/python3.8/site-packages/pytools/init.py in
811
812
--> 813 class keyed_memoize_on_first_arg(Generic[T, P, R]):  # noqa: N801
814     """Like :func:memoize_method, but for functions that take the object
815     in which memoization information is stored as first argument.
/usr/local/lib/python3.8/typing.py in inner(*args, **kwds)
259         except TypeError:
260             pass  # All real errors (not unhashable args) are raised below.
--> 261         return func(*args, **kwds)
262     return inner
263
/usr/local/lib/python3.8/typing.py in class_getitem(cls, params)
888             # Generic and Protocol can only be subscripted with unique type variables.
889             if not all(isinstance(p, TypeVar) for p in params):
--> 890                 raise TypeError(
891                     f"Parameters to {cls.name}[...] must all be type variables")
892             if len(set(params)) != len(params):
TypeError: Parameters to Generic[...] must all be type variables

If I interpret the information here correctly, this means the version of pyopencl you have installed is only compatible with Python 3.9. Can you try to follow the installation instructions here and try again?

I presume this was solved. If not, please create another issue.


POWER_BI_PRO_CE

Can you please document a description of the POWER_BI_PRO_CE license that is available?

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

ID: 7c245452-161d-89a1-c026-99a0721cf071
Version Independent ID: 16dec59a-eb83-1837-4efd-4645e7aeaed2
Content: Product names and service plan identifiers for licensing - Azure AD
Content Source: articles/active-directory/enterprise-users/licensing-service-plan-reference.md
Service: active-directory
Sub-service: enterprise-users
GitHub Login: @daveba
Microsoft Alias: daveba

@itsnotaboutthecell
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

#reassign Nicholak-MS

Hi @itsnotaboutthecell I have included the details for Power_BI_Pro_CE in the documentation. It will be published later today.
@Please-Close

Hey @Nicholak-MS - I was hoping to see the "Power BI Premium Per User" license though it appears the Power_BI_Pro_CE is just a duplication of the existing Pro License with perhaps a few different GUIDS. Is there an easy way to put in a request to have the Power BI Premium Per User license documented since unfortunately I do not have the code for this item - https://docs.microsoft.com/en-us/power-bi/admin/service-admin-licensing-organization#license-types-and-capabilities

thanks Alex, for the information above. I located the SKU you are referencing and I added it to the doc, it will publish later today.


Rails backtrace lines are relative but start with absolute /

This makes option + clicking the path in vscode terminal not open the file in vscode.

Only seems to happen in rails project. Plain ruby project does the right thing.

Can you double check you're running 1.0.0? This was an issue in a previous version for sure, but I'm unable to reproduce it in 1.0.0 in either a plain Ruby or a Rails app.

I just checked. Definitely on 1.0 but now I can't recreate. I wonder if it used an old version at first because of spring or something but now is using new. Let's close this out. I'll re-open if I hit it again.


Feature: React native wrapper

This is an awesome pod.
I am so sure, developers working with react native will love it.
example way to have a bridge for react native: https://facebook.github.io/react-native/docs/native-modules-ios.html#content

Do you any example with this folding cell in react native?@ahmed1490

We do not plan to support react native yet. Feel free to contribute!


Add support for Meross lights (like the MSL120B)

I have a Meross light bulb model MSL120B.
It is not automatically detected by your component.
This is the message it publishes when powered on:
{
	"header": {
		"messageId": "78d740c90859d05fc18036e7fb9e6c75",
		"namespace": "Appliance.Control.Light",
		"method": "PUSH",
		"payloadVersion": 1,
		"from": "/appliance/1912126573785090806548e1e9131505/publish",
		"timestamp":<PHONE_NUMBER>,
		"timestampMs": 450,
		"sign": "71d77e14018753b9de7a1e055d626e2f"
	},
	"payload": {
		"light": {
			"onoff": 1,
			"capacity": 6,
			"channel": 0,
			"rgb": 16753920,
			"temperature": 100,
			"luminance": 100,
			"transform": 0
		}
	}
}

Hello @almico, I've asked for help in device characterization.
Is it possible for you to try query your device and post the responses as stated in #13?
That would boost me a lot!
Thank you

Response to Appliance.System.All:
{
  "header": {
    "messageId": "",
    "namespace": "Appliance.System.All",
    "method": "GETACK",
    "payloadVersion": 1,
    "from": "/appliance/1912916573785097176548e1e9131505/publish",
    "timestamp":<PHONE_NUMBER>,
    "timestampMs": 824,
    "sign": "63afda35be000d072467231693a295e5"
  },
  "payload": {
    "all": {
      "system": {
        "hardware": {
          "type": "msl120b",
          "subType": "us",
          "version": "2.0.0",
          "chipType": "mt7682",
          "uuid": "1912916573785097176548e1e9131505",
          "macAddress": "xx:yy:zz:zz:yy:xx"
        },
        "firmware": {
          "version": "2.1.16",
          "compileTime": "2019/11/04 19:13:46 GMT +08:00",
          "wifiMac": "xx:yy:zz:zz:yy:xy",
          "innerIp": "<IP_ADDRESS>",
          "server": "<IP_ADDRESS>",
          "port": 8883,
          "userId": 0
        },
        "time": {
          "timestamp":<PHONE_NUMBER>,
          "timezone": "",
          "timeRule": []
        },
        "online": {
          "status": 1
        }
      },
      "digest": {
        "togglex": [
          {
            "channel": 0,
            "onoff": 1,
            "lmTime": 0
          }
        ],
        "triggerx": [],
        "timerx": [],
        "light": {
          "onoff": 1,
          "capacity": 6,
          "channel": 0,
          "rgb": 16753920,
          "temperature": 100,
          "luminance": 100,
          "transform": 0
        }
      }
    }
  }
}

Response to Appliance.System.Ability:
{
  "header": {
    "messageId": "",
    "namespace": "Appliance.System.Ability",
    "method": "GETACK",
    "payloadVersion": 1,
    "from": "/appliance/1912916573785097176548e1e9131505/publish",
    "timestamp":<PHONE_NUMBER>,
    "timestampMs": 957,
    "sign": "c0ff6d00cba5ce6746a967887f50c078"
  },
  "payload": {
    "payloadVersion": 1,
    "ability": {
      "Appliance.Config.Key": {},
      "Appliance.Config.WifiList": {},
      "Appliance.Config.Wifi": {},
      "Appliance.Config.Trace": {},
      "Appliance.System.All": {},
      "Appliance.System.Hardware": {},
      "Appliance.System.Firmware": {},
      "Appliance.System.Debug": {},
      "Appliance.System.Online": {},
      "Appliance.System.Time": {},
      "Appliance.System.Ability": {},
      "Appliance.System.Runtime": {},
      "Appliance.System.Report": {},
      "Appliance.System.Position": {},
      "Appliance.System.Factory": {},
      "Appliance.Control.Multiple": {
        "maxCmdNum": 5
      },
      "Appliance.Control.ToggleX": {},
      "Appliance.Control.TimerX": {
        "sunOffsetSupport": 1
      },
      "Appliance.Control.TriggerX": {},
      "Appliance.Control.Bind": {},
      "Appliance.Control.Unbind": {},
      "Appliance.Control.Upgrade": {},
      "Appliance.Control.Light": {
        "capacity": 7
      },
      "Appliance.Control.Effect": {
        "capacity": 1
      },
      "Appliance.Digest.TriggerX": {},
      "Appliance.Digest.TimerX": {}
    }
  }
}

Hello @almico,
I hope you could help me a bit with testing:
did you try the latest release of meross_lan? I've added support for lights and I would really appreciate if you could post some feedback i.e. if it's working or whatever issue you are experiencing.
Thank you

I don't know about the light but I switched to meross_lan from my own implementation and it rocks!
Thanks!

Here I am 😃
I've been struggling setting up a test environment with users, passwords, certificates and everything else.
I thought I had everything set up properly in place, but I am facing bulb disconnections from MQTT Broker if Meross LAN integration is enabled.
First question: when I install Meross LAN integration, it asks for a device key. What should I enter there?
Just to tell you a bit more on my setup:

I configured the bulb with meross setup --gateway <IP_ADDRESS> --wifi-ssid MYSSID --wifi-pass "MYPASS" --user "msl120b-01" --key "MYKEY" --mqtt mqtts://<IP_ADDRESS>:8883
I created a Home Assistant user with the MAC ADDRESS of the bulb and the properly computed password
I can see the bulb connecting to the MQTT Broker and sending messages

Now I have disabled Meross LAN, otherwise, the bulb would endlessly try to reconnect to MQTT.
This is an example message sequence in MQTT log when Meross LAN is enabled:
1618405683: New connection from <IP_ADDRESS> on port 8883.
1618405684: New client connected from <IP_ADDRESS> as fmware:1912126573785090806548e1e9131505_sHUo1G2Z9MIdhgY6 (p1, c1, k30, u'48:e1:e9:11:5f:9b').
1618405697: Socket error on client fmware:1912126573785090806548e1e9131505_sHUo1G2Z9MIdhgY6, disconnecting.

I configured the bulb with ...

You may want to consider using --mqtt twice (identical ones), this may have been fixed but without that your device would not reconnect to the MQTT broker if it is off for a moment

Now I have disabled Meross LAN, otherwise, the bulb would endlessly try to reconnect to MQTT.

Have you tried running tcpdump/wireshark to see which traffic goes through?
One thing I do not understand: MEross LAN is a HA integration, to make the devices visible to HA. How is the bulb trying to reconnect to MQTT related to that?

How is the bulb trying to reconnect to MQTT related to that?

The first thing that comes to my mind is that either I didn't guess what to enter in the "device key" field of Meross LAN or that I am using a setup that Meross LAN is not expecting and that the result is Meross LAN sending messages to the bulb that the bulb doesn't understand... the hard way and disconnects.

You may want to consider using --mqtt twice (identical ones), this may have been fixed but without that your device would not reconnect to the MQTT broker if it is off for a moment

I've never used that option twice and everything always reconnected.

I've never used that option twice and everything always reconnected.

I had a look at the issue I opened regarding this and, yes, that has been fixed (I forgot it has been fixed :))

the result is Meross LAN sending messages to the bulb that the bulb doesn't understand... the hard way and disconnects.

Ah, that would be interesting - a DoS by MQTT :)
I think one of the ways to find out would be to dump the traffic and have a look.

I think the best / easiest option is to know from @krahabb if I guessed the meaning of "device key" and if my setup is supported 😄

Hello!
Sorry for the delay.
@almico, you are using a very 'strict' configuration for your bulb meaning you need to check/setup the authentication part of your mqtt configuration is working. Looking at the log it seems to me (but I'm not really sure because the disconnect reason is not stated in the log) the MQTT broker is killing the connection because of this.
Meross devices use a custom user authentication setup by combining the mac address and the user name: this is tricky for mosquitto since it doesnt work well with how the username is built and, if you want authentication, you have to use https://github.com/bytespider/mosquitto-auth-plug to ensure mosquitto is working properly with meross authentication (see https://github.com/bytespider/Meross/issues/12)
In order to make it work without the plugin, you have to disable authentication completely for your mosquitto listener by removing the password file in mosquitto conf and allowing anonymous users. If you need authentication in your mosquitto for other devices you can setup a new 'listener' in mosquitto conf, bind it to whatever port and use it in your meross configuration too so to bypass the authentication issues (I see this is getting very complicated but it is definitely better than using the custom authentication plugin!). This way, by adding mosquitto 'listeners', you can isolate and configure different options for different kinds of mqtt clients.
If you are using the 'mosquitto add-on' built into HASSIO it might be even trickier (or simpler I don't know). Again, https://github.com/bytespider/Meross/issues/12 gives some clues about configuring authentication for mosquitto/homeassistant. I really think the problem is all about authentication:
bear in mind the meross device doesnt use the 'username' ("msl120b-01") for authenticating to mqtt but uses its own mac address (see https://github.com/bytespider/Meross/wiki/MQTT for a good explanation on how Meross works on MQTT)
Also, if the bulb doesn't reconnect, it is probably related to what @wsw70 said: you have to configure both of the mqtt server options when you use the @bytespider utility or be sure you are using the last version of the utility since it was fixed recently.
As for the 'device key' this works like this: when you setup meross_lan in your HA integrations you can now enter the same device key you used when configuring the physical device so you have to enter "MYKEY" in the 'options' pane of the integration.
As you can see you can configure it at the 'hub' level (i.e. on the 'MQTT Hub' pane) or at the 'device' level.
This way you can have a different key for each different device but I dont recommend this because it adds complication(s).
It is better and simpler to use the same key for all of the devices and set it at the 'hub' level (leave it empty for the device pane since it will default to the hub one). Best of all: configure your devices with no key and leave it empty in meross_lan integration: the security added by the key is negligible overall as far as your wifi traffic is protected enough (once an hacker can get into your wifi it would be really easy to 'hack' your meross devices whatever authentication and key you set up).
A clarification for how the keys are used in meross_lan:
the 'MQTT hub' works only for device discovery and initial recognition so, in order to correctly detect your devices, it must be configured with the same key as the device being discovered.
Once a device gets discovered and configured in HA all the traffic for that device will use the key configured for the device itself and the 'MQTT hub' device key will not be used anymore for that device.
I hope you can fix the issues with connection so we can see if the bulb actually works in meross_lan or not. I'm definitely eager to know that ;)

I will have to destroy my current test environment and start from scratch 😃
Connection worked properly, but I will try to create a simpler setup.

Assuming that I have "Home Assistant Add-on: Mosquitto broker" already installed for other tasks, what is an example configuration you suggest that would work with Meross LAN?

what is an example configuration you suggest that would work with Meross LAN?

Here is mine, for what it is worth:
persistence true
persistence_location /mosquitto/data/

log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S

# log_type all

autosave_interval 30
autosave_on_changes false

listener 1883
socket_domain ipv4
allow_anonymous true

listener 1884
protocol websockets
socket_domain ipv4
allow_anonymous true

listener 8883
socket_domain ipv4
tls_version tlsv1.1
allow_anonymous true
cafile /mosquitto/config/cert/ca/ca.crt
# Path to the PEM encoded server certificate.
certfile /mosquitto/config/cert/broker/broker.crt
# Path to the PEM encoded keyfile.
keyfile /mosquitto/config/cert/broker/broker.key
require_certificate false

Assuming that I have "Home Assistant Add-on: Mosquitto broker" already installed for other tasks, what is an example configuration you suggest that would work with Meross LAN?

Well, I'm trying to guess here since I have never seen any HASSIO setup before ;)
first:
since the meross bulb is using authentication anyway you have to configure HASSIO mqtt addon with the correct user/password for the bulb:
remember meross is using '{mac-address}' as username and '{user}_ + md5({device_mac_address}{key})' as password so you have to read/calculate these values according to your bulb:
if the bulb mac-address is '48:e1:e9:11:5f:9b' (I've spied your log :) and you set both the user and key as '' (empty string) when using the @bytespider utility (MerossSetup) you would have to configure hassio/mqtt like this:
logins:

username: "48:e1:e9:11:5f:9b"
password: "_7e487ca93af0f768778ec8c4c6c0ffde"

(add any other login you might using for other devices and keep the rest of the configuration since it seems your bulb is connecting correctly)
If you want to keep your 'user' and 'key' values different from empty when configuring the bulb you have to calculate the md5 hash yourself and build the password for hassio/mqtt like explained by @bytespider here :https://github.com/bytespider/Meross/issues/12#issuecomment-708444689
try this and see if it works: we could be lucky enough

@almico I've managed to set up (and write a rough guide to) Home Assistant with the Mosquitto Addon with a MSS310
It's rough so feel free to open an issue on my repo if you need help and refer to it here for others using Meross LAN

@almico I'm using the add-on Mosquitto broker (version: 5.1.1) on hass.io with MSS110 and MSS710. And I have a Meross device configured with "user" and "key".
I've added the logins option to the default settings for the number of Meross devices and it works fine.
logins:
  - username: '48:e1:e9:xx:xx:xx'
    password: user_eb61de8166d394ecba0bc84cab7axxxx
  - username: '48:e1:e9:xx:xx:xx'
    password: user_2c139e2f820aaac3af43d47305a8xxxx
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

@bytespider @nao-pon
I'm not an MQTT authentication expert. My main concern is the visibility of things published by different users defined in different places. A quick test I did (with "anonymous: false"), suggested that things published using a username were not available to other usernames. I fear an ACL is needed.
Can you help me with this?

Ok. I didn't change my setup. I just restarted both HA and the bulb. Then I used MQTT Explorer using the main "mqtt" user and this is what I see at the moment:

This should mean that the MSL120B is properly connecting, authenticating and publishing to Mosquitto Broker.
I don't know why, but the circled entry appears to be empty. I thought there I should have seen the "device key" I entered with meross setup, but I might be wrong.
Now I've enabled Meross LAN integration and I'm restarting HA Core and this is what I see in Mosquitto Broker's logs:
1618650553: New connection from <IP_ADDRESS> on port 1883.
[11:09:14] INFO: [INFO] found mqtt on Home Assistant
1618650554: New client connected from <IP_ADDRESS> as mqttjs_f3528c10 (p2, c1, k60, u'mqtt').
1618650555: New connection from <IP_ADDRESS> on port 1883.
[11:09:15] INFO: [INFO] found homeassistant on local database
1618650555: New client connected from <IP_ADDRESS> as 48TjxZkGC6fYFWgKoD4qUk (p2, c1, k60, u'homeassistant').
1618650775: New connection from <IP_ADDRESS> on port 8883.
1618650775: New client connected from <IP_ADDRESS> as mqtt-explorer-9ce4bbe7 (p2, c1, k60, u'mqtt').
1618650808: New connection from <IP_ADDRESS> on port 8883.
[11:13:28] INFO: [INFO] found 48:e1:e9:13:15:05 on Home Assistant
1618650808: New client connected from <IP_ADDRESS> as fmware:1912126573785090806548e1e9131505_sHUo1G2Z9MIdhgY6 (p1, c1, k30, u'48:e1:e9:11:5f:9b').
1618651203: Socket error on client 48TjxZkGC6fYFWgKoD4qUk, disconnecting.
1618651211: New connection from <IP_ADDRESS> on port 1883.
[11:20:11] INFO: [INFO] found homeassistant on local database
1618651211: New client connected from <IP_ADDRESS> as 13gNKxVUf4Rt0ovYJ0CdJt (p2, c1, k60, u'homeassistant').

This time it looks like it is not the bulb that disconnects, but Home Assistant. The good thing is that I no longer see an endless list of disconnect / reconnect (whoever it was 😄).
Anyway: the bulb was not found. I suppose, since I enabled auto-discovery, it should have appeared automagically. Or am I missing something?

@bytespider If this can be useful to debug, this is the kind of command I used to setup the bulb:
meross setup --gateway <IP_ADDRESS> --wifi-ssid MYSSID --wifi-pass "xyz" --user "msl120b-01" --key "abcd" --mqtt mqtts://<IP_ADDRESS>:8883

I just rebooted HA and this is the log from Mosquitto Broker:
1618650553: New connection from <IP_ADDRESS> on port 1883.
[11:09:14] INFO: [INFO] found mqtt on Home Assistant
1618650554: New client connected from <IP_ADDRESS> as mqttjs_f3528c10 (p2, c1, k60, u'mqtt').
1618650555: New connection from <IP_ADDRESS> on port 1883.
[11:09:15] INFO: [INFO] found homeassistant on local database
1618650555: New client connected from <IP_ADDRESS> as 48TjxZkGC6fYFWgKoD4qUk (p2, c1, k60, u'homeassistant').
1618650775: New connection from <IP_ADDRESS> on port 8883.
1618650775: New client connected from <IP_ADDRESS> as mqtt-explorer-9ce4bbe7 (p2, c1, k60, u'mqtt').
1618650808: New connection from <IP_ADDRESS> on port 8883.
[11:13:28] INFO: [INFO] found 48:e1:e9:13:15:05 on Home Assistant
1618650808: New client connected from <IP_ADDRESS> as fmware:1912126573785090806548e1e9131505_sHUo1G2Z9MIdhgY6 (p1, c1, k30, u'48:e1:e9:11:5f:9b').
1618651203: Socket error on client 48TjxZkGC6fYFWgKoD4qUk, disconnecting.
1618651211: New connection from <IP_ADDRESS> on port 1883.
[11:20:11] INFO: [INFO] found homeassistant on local database
1618651211: New client connected from <IP_ADDRESS> as 13gNKxVUf4Rt0ovYJ0CdJt (p2, c1, k60, u'homeassistant').
1618651794: Socket error on client 13gNKxVUf4Rt0ovYJ0CdJt, disconnecting.
1618651838: New connection from <IP_ADDRESS> on port 1883.
[11:30:38] INFO: [INFO] found homeassistant on local database
1618651838: New client connected from <IP_ADDRESS> as 1q1iK5S2xEsAeB4lUCQMMm (p2, c1, k60, u'homeassistant').

@krahabb as you can see, this time the "homeassistant" client disconnected twice and reconnected.
My best guess is that Meross LAN integration is causing something fail, hence the disconnection.

Ok. I forgot that I had to turn off and on the bulb to make the discovery process of Meross LAN start.
Now I see the endless bulb disconnections I experienced the last time and nothing else.

I tried with a mss310h configured like the bulb and I can confirm that it connects properly only if Meross LAN is disabled, otherwise I see this:
1618653286: New connection from <IP_ADDRESS> on port 8883.
1618653286: Socket error on client <unknown>, disconnecting.

when the power plug tries to connect to Mosquitto and the plug, having encountered a problem connecting, resets itself to "setup" mode and I have to use meross setup again.

I don't know why, but the circled entry appears to be empty.

This is normal, the firmware sends a topic that starts with an empty node (/). This is a correct payload but it is not recommended

Thank you @almico this is something I 'm going to check asap...
expect a follow up in the next hours 🤓

In the meantime, I disabled this:

re-enabled Meross LAN, restarted ha core and I don't see any power plug, but, at least, I do not see it disconnecting from Mosquitto Broker 😄

@krahabb
For your reference, this is my current MQTT Broker configuration in HA:
logins: []
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchainmqtt.pem
keyfile: privkeymqtt.pem
require_certificate: false

Of course, I added the 2 users to HA, and the command I used to configure the power plug is this:
"c:\Program Files\nodejs\node.exe" meross setup --gateway <IP_ADDRESS> --wifi-ssid MYSSID --wifi-pass "mypass" --user "mss310h-01" --key "abcdefgh" --mqtt mqtts://<IP_ADDRESS>:8883

This way, I think you can reproduce my exact setup (for example, in a virtual machine using Hyper-V) and verify yourself what's going on.

Hello @almico,
It will take some time (and will;) to me to setup an hassio environment to test this out so I'm not sure I can afford it at the moment.
I have some thoughts though:

Since the @nao-pon implementation is based on hassio/mqtt too and 'it works' there is something to look for in the configuration part of the addon.
Looking at the logs and seeing like you said the 'homeassistant' user get disconnected too I think the problem might reside in acl(s) but I don't really have a clue about how they are managed in hassio/mqtt. For sure, they are implemented in the addon so you will have to take care of this part based on your configuration.
Related to this: I would guess the 'homeassistant' user has full topics read/write rights but that might not be true. Bear in mind my integration (so I guess the 'homeassistant' user since my code relies on the core HA component for MQTT) need to subscribe/read to '/application/+/publish' and publish/write to '/application/+/subscribe' while your meross devices will need to be enabled for the reverse (i.e. read '/application/+/subscribe' and write '/application/+/publish' topics)
Related to this: seeing you get your meross topics published correctly by the device it looks like your device is able to send messages (at least). Also, seeing the 'homeassistant' user gets disconnected right after your meross comes online it could be like this: when my integration receives the first topic (during discovery) it tries to talk to the device by publishing a couple of topics: this is when it gets disconnected so the problem might be the 'homeassistant' user cannot write to these topics because of acls

In the meantime I've also found this: https://community.home-assistant.io/t/issues-with-mqtt/131453/4 but you probably already set it up

I've had a few mins to also play with this.
I think the bug is in my code not correctly setting the UserId and Key. I've updated (1.0.9) and it seems to be okay.
but...
If I set the wrong device key in Meross Lan, it causes my device to do something weird and disconnect as @almico says.
@almico try either version 1.0.9 of my software to pair or use a blank device key with Meross Lan and see what happens.

@bytespider
Should I use this one?
https://github.com/bytespider/Meross/tree/develop

Because I'm struggling to find anything referencing 1.0.9 😭

That's the one. I should create a release really.

That's the one

Ok, I got that zip and set up again the power plug, but now the password is no longer correct. It was previously. Did the way it should be computed change?

@bytespider
Ah! Now the code states the user must be an integer!
Sorry, I didn't understand that.
An error message would have been nice, though 😄

Beta software done in the few minutes I get free ;)

I cannot make it authenticate anymore 😭

@bytespider Great news! I managed to authenticate. I think there was some kind of cache in the users' list somewhere. Some user deletion and a good old reboot made things work much better 😆
@krahabb Now I have the mss310h auto-discovered by Meross LAN. Unfortunately, the first thing I did was rename it this way:

And now that entity appears as unavailable. Did I make any mistake or might it be your component doesn't support that kind of renaming yet?

@krahabb
I tried (and succeeded) to delete the plug. I had to confirm this dialog:

I think "device" would be easier to understand than "integration", but may be it's internally seen as an "integration". I'm reporting this just in case you have the power to change that word.
I mean... I'm just testing, but if I had, say, 30 Meross devices connected and was told that I was going to "delete this integration", I don't know if I would have confirmed 😄

Great thread, reads like a Tom Clancy book. A few comments:

And now that entity appears as unavailable. Did I make any mistake or might it be your component doesn't support that kind of renaming yet?

I noticed that with Meross devices, it seems that the information is not updated reliably in that case. If you switch the plug on and off (with the button), does it become available? (it works in my case)

I'm just testing, but if I had, say, 30 Meross devices connected and was told that I was going to "delete this integration", I don't know if I would have confirmed

I had the same comment to the creator of the Shelly integration :)

@krahabb
Update! I managed to connect both the mss310h and the msl120b.
While the mss310h was properly auto-discovered and I could switch it on and off using Lovelace, the msl120b wasn't auto-discovered and started to generate the endless list of
1618677994: New connection from <IP_ADDRESS> on port 8883.
1618677994: New client connected from <IP_ADDRESS> as fmware:1912126573785090806548e1e9131505_zaGyD8Tt1Rcb7xeQ (p1, c1, k30, u'48:e1:e9:13:15:05').
1618678009: Socket error on client fmware:1912126573785090806548e1e9131505_zaGyD8Tt1Rcb7xeQ, disconnecting.

Thus, I fear the issue on @bytespider end is now fixed (as the mss310h demonstrates), but there is some issue on your end that still hits bulbs.

@krahabb
I was going to shut down my test server and noticed this:

I think there should have been the "MQTT Hub" too. Maybe it died or entered some odd state, disappearing from there?

@almico if you go up to the left top corner of that panel there should be a back button. Its a weird implementation. Like you say the devices should be devices and not integrations but it is what it is and it works

Lot of stuff going on here!
Good news overall so the situation is becaming more stable now..

@krahabb
I tried (and succeeded) to delete the plug. I had to confirm this dialog:

I think "device" would be easier to understand than "integration", but may be it's internally seen as an "integration". I'm reporting this just in case you have the power to change that word.
I mean... I'm just testing, but if I had, say, 30 Meross devices connected and was told that I was going to "delete this integration", I don't know if I would have confirmed 😄

This is to be asked to the hass team but yeah..in the overall picture it's an integration configuration entry which is going to be deleted and that could really represent anything in HA terms...'Configuration Entry' would be the correct term since you have (or could have) more than one all belonging to the same 'Integration'

@krahabb
I was going to shut down my test server and noticed this:

I think there should have been the "MQTT Hub" too. Maybe it died or entered some odd state, disappearing from there?

Yes, somehow you probably deleted it or maybe it is 'disabled' since there's a new feature in HA which allows you to 'disable' 'Config Entries' in order to remove them without actually deleting. Check the UI if you're seeing all of the integrations (i.e. they're not filtered out).
At any rate keep in mind, like I explained before, the 'MQTT Hub' config entry is used to configure the key for the discovery mechanism so, if it's either missing or disabled, it's built anyway in my code !!BUT!! with default settings that means you're discovering things with an empty key

@bytespider Great news! I managed to authenticate. I think there was some kind of cache in the users' list somewhere. Some user deletion and a good old reboot made things work much better 😆
@krahabb Now I have the mss310h auto-discovered by Meross LAN. Unfortunately, the first thing I did was rename it this way:

And now that entity appears as unavailable. Did I make any mistake or might it be your component doesn't support that kind of renaming yet?

Renaming an entity ID is not something I would expect the homeassistant UI should allow since it normally relates to hardware or other internal integration features...
To be honest I've never tried to rename any ID and if asked I was sure it would be impossible. I expect my component would recreate a new entity on reload since it cannot rebind to the same old one in the HA entity database. The entity ID's in my code are generated at runtime and not configurable so the 'disappearing behaviour' is expected. Renaming the 'Name' instead should work correctly!
Keep in Touch!!
P.S. I guess I'm going to buy one of these MSLXXX...they're intriguing to say the least..and some color could be nice in my home too (even tho my wife rejects having these 'chinese rubbish' - with all due respect to China and all their cheaply priced appliances)
I hope my last comment doesnt get banned or signaled for 'irrespective language about nationality'
;)
P.P.S. Nevertheless Meross should not even be a Company from China from what I remember even tho the bulbs are built there...for sure

This is to be asked to the hass team

I feared that. I will consider pointing that out on their website 😃

Renaming an entity ID is not something I would expect the homeassistant UI should allow

I think it is the very first thing I do for every device I add. Like this:

even tho my wife rejects having these 'chinese rubbish'

I wonder if your wife is really aware of the boundaries of her statement 😆

@krahabb I tried again and, unfortunately, if I turn on the light bulb, see it properly connecting to MQTT Broker, and then enable MQTT Hub, the bulb soon disconnects, then reconnects in an endless loop 😢

I've ordered a couple MSL100 and MSL120 to do some real testing..I hope to be able to return them to Amazon ;)
If it works I could then jump on to humidifier and the 'most wanted' valves...abusing it a bit
Let's see

I have 4 valves behind the MSH300. It would be a bit more difficult to decide to remove a perfectly working setup for beta testing, though 😄

I've received the two bulbs and checked them working and ...the MSL100 works great and is now supported (at least mine) but the MSL120 was probably bugged since after several tries I wasn't able to even pair it with the meross app so I think I was unlucky with this one. The strange thing is that the bulb, when paired with my local mqtt, was pushing just two messages (at least a light payload ...) but was not responding to any interrogation.
I tried over http and I was able to get some replies but overall the bulb looked a bit slugghish and also the timestamps where not correct so maybe it was unable to get the correct time on startup from ntp and the firmware was impaired by that.
I'm sending back the bulbs now as per my original plan, at least one of them would have been returned anyway.

FYI: my MSL120 was originally connected to the Meross app and it happened flawlessly.

Thank you so much~~
I finally can work with Meross Lan
I setup the MQTT server very smooth and device connected to the MQTT server
however I can't add devices to HA, I have no idea about this , after that I try to use pyscript "provided by wsw70"
the MQTT showing the devices from HA , but unable to control
"I use MQTT Explorer to confirm the devices has been connected to MQTT and appliance showed"
When I want to give up, I press the MSS310 power switch to off, then the MQTT receive msg.
and the device turn to available
Oh... I finally know that, I need to press the Meross to make the devices communicated with the MQTT server
then I try this Meross Lan "Thanks krahabb"
but no luck, haven't devices can be detected, even I press the Meross switch
after some try..... Finally, when I del the Device key from the Meross Lan
magically, the devices can be detected
I want to say Thanks with the following person
@albertogeniola
He make the Meross IOT library and make me easier to join the Meross to HA
"until the Meross always banned me, so I have a long time can't use meross from HA and seeking the local MQTT"
@bytespider
He make the utility for Meross connect to local MQTT , and setup guide
@wsw70
He make the pyscript, and let's me confirm my config is work
@krahabb
Meross Lan is amazing
Thank you all~~~

Thank you..it is very nice helping each other🙂

Too bad your msl120b wasn't cooperating, got one of my mss310 switches working perfectly, but I have those msl120b's all over my house and whish they too could have the same response time to switching on/off. The current delay from the cloud version is truly annoying.

Hello @markuskorbel !
To be honest I would expect the MSL120 are working with the current iteration since they shouldnt be that different from the msl100 which I tested and were working nicely. My implementation supports the color handling feature from HA so it could just be there.
Sadly @almico couldnt confirm they were working but I don't know if that was an issue with the mqtt environment or other.
If you want to give it a try and pair one of yours with a local mqtt we could have a final answer on the topic :)

I did, the light connected to the Wifi correctly, I could see it's identifier showing up in the mqtt log but it never showed up in HA. And it kept "resetting/disconnecting" every half minute or so, quickly dimming down and back up. I currently moved the light back to the cloud solution but managed to find the conversation in the docker logs of mosquitto which I will attach.
msl120b.txt

Thank you for your effort,
It seems the light and the integration (through HA) start a conversation. That should be the part of the discovery procedure managed by meross_lan.
Then, somehow, the light disconnects...I guess I'll reorder one to finally resolve this
Keep in touch!

Is there a more detailed log I can capture that might help you without ordering one?

You could try enabling debug logging for meross_lan in HA:
Add this entry to configuration.yaml
logger:
  default: info
  logs:
    custom_components.meross_lan: debug

and then cut/copy the relevant section from HA log. It should dump the (almost) detailed handshake
I suggest you to temporarily disable the other meross_lan config entries else it will overflow a bit...

Ok performed those changes but there isn't mutch more detail in there:
2021-05-22 14:39:00 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT RECV device_id:(1912125898290790806548e1e9130e44) method:(PUSH) namespace:(Appliance.System.Report)
2021-05-22 14:39:00 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT SEND device_id:(1912125898290790806548e1e9130e44) method:(GET) namespace:(Appliance.System.All)
2021-05-22 14:39:00 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT RECV device_id:(1912125898290790806548e1e9130e44) method:(PUSH) namespace:(Appliance.Control.Bind)
Those three log messages then repeat every 20 seconds

Well, it looks more or less the same behaviour as mine (the one I sent back since I thought it was bugged).
At the time there was no way to get the bulb reply to 'Appliance.System.All' which is the first message needed to setup the configuration. Here, meross_lan sends the 'GET' for 'Appliance.System.All' but only receives unsolicited 'PUSH' for '..Report' and other misc messages. The strange part was that I was instead able to get correct responses by querying the bulb http interface from the command line
I'm developing on the msh300 (Meross Hub) right now and it was behaving the same initially. I paired it to my mqtt right out of the box without testing on meross cloud and the behaviour was like that. Then I've paired it with the Meross app to its own cloud services and now it works flawlessly (as a mock of course since I still have to implement part of the integration).
To be honest I am now implementing also the HTTP interface for the devices so there's a big upgrade coming to the integration:
The idea is to have a kind of hybrid approach to communication in order to support different scenarios where you can have a private MQTT environment with devices unpaired and isolated from the cloud and a 'wild' one where you can talk HTTP to the devices without having to pair them to any private or meross mqtt service.
In the end, if the need arise, users could let the devices work as 'per factory' with their own app and infrastructure but still being able to integrate them in HA through a local link talking directly HTTP to the devices. Of course this would result in a 'polling' behaviour but I think there's enough room to make it useful for someone.
Also, and that's the important part, if you're in the mood to clone the 'dev' branch, we could try talk directly HTTP to the bulb and see if there's an improvement (like I said the code is there, just ...the bulb doesn't answer my requests over mqtt)
Tell me if you're up to try it so I cleanup a bit and commit the current working set to github 'dev'

I did, the light connected to the Wifi correctly, I could see it's identifier showing up in the mqtt log but it never showed up in HA. And it kept "resetting/disconnecting" every half minute or so, quickly dimming down and back up. I currently moved the light back to the cloud solution but managed to find the conversation in the docker logs of mosquitto which I will attach.
msl120b.txt

Same issue here, instead ms310 connects flawlessly.
Both devices appears correctly in MQTT broker:

Yeah,
I guess I've finally figured out what the issue is, at least the hidden reason behind:
I have some new devices which I'm currently working on and they experience the same behaviour when I send them a 'malformed' packet (like incorrect spell or missing keys and so on). When this happens the device firmware behave like it's crashing in software and so it reboots the device. So this is probably happening with the MSL120B. The unexpected behaviour is that the MSL120B crashes right on discovery where other devices with the same supposedly malformed packets are working right.
I will try to investigate online if there's a better description of meross packets syntax but in the end I've already programmed a purchase of the MSL120B so to have real testing and not guesses and hopefully fix this.
Like I said, while I'm currently working on the code, there's a lot of development going on so I can't say this will be a 'quick' fix (unless it is really quick when I'll receive the new bulbs)
Thank you for reporting this. I hope you'll enjoy the functioning part at least :)

Thank you!
The functioning part is perfect :)

Hello @almico,
The new release (Rebirth) with working MSL120 is 'online' so I'm closing this down (hopefully and finally!)
I can confirm the MSL120 wa rebooting after receiving my packets due to a missing header field (which instead was not an issue for other appliances).
For the techies out there the field was the 'from' one which in turn is used from the device as the topic needed to publish mqtt responses (other devices instead use a default one when this field is missing)
Thank you

Hi @krahabb, I can confirm that the msl120b in my office is connecting to my mqtt broker successfully now, but the control from ha is still not working 100%. After powering the lightbulb it will grab an IP and report in. I can then turn it off and on again fine. But if I want to turn it off again, it sends the requests but nothing happens and 2 seconds later the toggle button in ha just jumps back to on. I can adjust the brigthness or rgb color as often as I want and it works perfect but on/off seems bugged.
I can see these entries in the log when trying to turn the light off:
2021-06-27 20:58:16 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT SEND device_id:(1912125898290790806548e1e9130e44) method:(SET) namespace:(Appliance.Control.Light)
2021-06-27 20:58:16 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT RECV device_id:(1912125898290790806548e1e9130e44) method:(SETACK) namespace:(Appliance.Control.Light)
2021-06-27 20:58:18 DEBUG (MainThread) [custom_components.meross_lan] MerossApi: MQTT RECV device_id:(1912125898290790806548e1e9130e44) method:(PUSH) namespace:(Appliance.Control.Light)

Hello @markuskorbel ,
I noticed the same behaviour when I was testing it and thought it was my mouse 'double clicking' and just discarded that as a glitch.
I've retested and it happens sometimes but it looks a bit 'subtle' and I still haven't figured out the problem. I'm guessing the status gets sometimes updated too soon and the UI reacts a bit inconsistently.
Working on it anyway

Awesome thank you for digging back into this. The not turning off is actually pretty consistently not happening for me, doesn't matter if I click on the UI or the light switch triggers the automation doing the toggle.

Thank your @markuskorbel for replying,
To be honest, my fix is just a guess about how HA behaves in-between status updates. Further testing showed me that sometimes the device (or the http protocol stack in somewhere) doesnt complete the command transaction reporting a timeout error in the communication and the HA status is not updated correctly. I'll keep an eye on this since, even though this happens quite rarely it happens and could be annoying.

I see no control. I tried to remove and add again, but same result:

If I need to reset something to start "from scratch", please point me at some document, or tell me what to do, and I will do.
I put up a test NUC for this, thus I can do virtually any test with little harm 😄

After upgrading to "core-2021.6.6", things looked much better:

Might there be some minimum "core" requirement?
By the way: I can confirm I am unable to turn it off.
A huge leap forward, anyway, compared to a few weeks ago. Well done!

Hey @almico,
yeah, the last couple of versions, beside requiring HA 2020.0.0 and on (which doesnt even exist!) were not really 'past-proof' so they were just working only on a recent code base (probably around april-may). I've now reverted a bit of code to be more 'compliant' but also updated the HACS manifest to require 2021.4.0 so..to be sure...
Regarding the 'glitches' when you set brightness, temp or color they are known to me but there is nothing coming to my mind in order to easily solve them at the moment:
they are probably due to the UI refreshing while some state updates are occurring and so it might happen you see the UI jumping back and forth. It happens also when just switching the light: I see the toggle moving 'on' then 'off' and finally 'on' again. This might either depend on the protocol HTTP or MQTT (MQTT should be more graceful) because your UI actions are overlapping with state polling messages in the background (this is for HTTP mode for sure)
I've started putting some 'software guards' here and there but things were really getting too complicated and I know complication is a big enemy of good and reliable code so I've reverted that back until I find a clearer explanation of things.
I hope the software is usable 'as is' without too many tweaks.
If something arises or comes to mind let me know so I can try improve
Thank You ;)

@krahabb Is the inability to switch off something you are currently investigating or did I miss anything.
In my setup, I am unable to turn off the bulb 😢

That's bad :( !
I'm sorry for that but at the moment I don't find anything preventing the switching and color/temp settings from working.
It is just a bit glitchy here and there and, like I said, I'll see if I can find a more robust message management in order to reduce or even defeat this behaviour.
I don't think I can really solve it very soon.
If any, and you are using 2.0.2, try to collect a trace of your bulb interactions by activating the 'debug trace' feature in the bulb integration configuration.
It will dump all of the message exchange for like 10 minutes (or maximum 64Kb of data). After that it will stop collecting data and you'll find the trace under 'custom_components/meross_lan/traces'.
After activating the tracing try to use the bulb: on, off, set color/temp/brightness
Then send me the trace and I'll see what's happening.

Tried switching a couple of times, didn't work on it's own. Then changed brightness, switched off fine, switching on always works. Then also tried color temperature, that also worked for turning it off. But when just turning it on, doing no other changes then it simply doesn't turn off. Not sure if a brightness/color temp change first sets/resets something in the bulb that then allows the switch off to work.
msl120b-1912125898290790806548e1e9130e44.zip

Thank you @markuskorbel ,
Your trace point me to a surprising discovery. Somehow my msl120j is 'a bit' different in payload structure so I couldn't find out some inconsistencies. I've now identified the issue in (not) turning off and will fix this soon.
I don't know if this is related to the fw version (mine is msl120j fw 3.1.4) or the specific different 'flavour' between msl120b and msl120j but that's it
I guess this is the same as @almico issue and hope to (finally) solve this

Awesome news, thank you so much for all your work. Can't wait to finally fully move all those meross devices over to your integration and finally clean up my home assistant instance :)

@krahabb it really seems to work now! I can deterministically and reliably turn on and off the light.
Well done! ❤

By the way: is there a way to change the speed with which the light turns off? Is it something that is / can be in the message you send to the bulb, or something in HA?

@almico
There's an undocumented  field I could try and use to see if any light transition works but that would be total-guess-reverse-engineering and I don't see having the time at the moment (unless somehow it works at the first try one of these nights).
I anyone out there (!) has some clues that would be much appreciated! (and speed up things a lot)

Anyway: history says my msl120j to test is slightly different from your(s) msl120b so I could end up in something working for me and not in the field (as usual)
We'll see ;)

Hi @krahabb, finally had some spare time this morning and reprogrammed all my light bulbs and switches to your plugin and I'm happy to report that everything is working perfect. Thanks again so much for your work, deleting meross cloud integration as I'm writing this :)
Also looking forward to test the MSS420F multi power strip I just ordered for the fishtank when it comes in to check if there is any differences to the model you already list as supported.
But if @almico doesn't object, I think you can finally close this issue for good 👍

Thank you @markuskorbel ,
I'll keep this open as a 'superstitious' way to keep the lights 'on' for the coming days but yeah


Add progress bar when saving curated cells

Fixes https://github.com/brainglobe/cellfinder-napari/issues/99. I'm going to wait on tests for curation to go in before taking this out of draft.

Woops, I got confused, please ignore this request for review!


Update download link and instructions for Firefox Nightly to 64-bit

On https://webvr.rocks/firefox, the link to Firefox Nightly downloads the 32-bit version, which no longer has WebVR enabled by default.
WebVR will also be enabled in release builds of Firefox starting in 55, so perhaps the directions on this page should be updated to provide links to both the 64-bit Release version and 64-bit Nightly.

fixed a while back in PR #258


if forward link (package info and github link) opens in new tab, it's a better experiance.

will be added in next release


Build Validator Object

Hi @Clivern, I'll love to take this one. But I'll need to understand what this project is all about. A Readme file would be useful.

Hi @Ikhiloya, the project is about http://json-schema.org/ validator. in general it allows you to validate a payload of data by providing a json file to validate against. it makes building api services handy especially for statically typed language like java. There is already implementation on all programming languages.
I did some stuff on this branch https://github.com/Clivern/Kangaroo/tree/feature/schema. But i can confirm that stuff still a bit vague since i am still building the architecture.
If you need something a bit clear and java for hacktoberfest, please check this https://github.com/Clivern/wit-java/issues


lowestElement does not resize from larger to smaller height in VUE2

Describe the bug
I have taken into consideration other issues posted here and found a suitable way to implement the resizer. In my example I create the iframe once and then it remains mounted, but I change up the content dynamically on routing. The frame does resize, using this directive:
 Vue.directive('resize', {
    bind: function (el, {
      options = {
        heightCalculationMethod: 'lowestElement',
        maxHeight: 1000,
        scrolling: true
      }
    }) {
      el.addEventListener('load', () => iframeResize(options, el))
    }
  });

However, neither lowestElement nor any other heightCalculationMethod, resizes from larger to smaller height in VUE2 (regardless of Browser, I've tested in Chrome and Firefox).
(Scrolling doesn't do anything to the iframe either).
I expected the Resizer to work both ways, especially because from the options descriptions on the heightCalculationMethod function, it sounded like this was the purpose of most of them. Might I have missed something?

Yeah it should work in both directions. When it doesn't it down to CSS issues and the different sizing methods are their to try and work around those problems.
My suggestion would be to check your CSS to see if you have an element that doesn't shrink. If you can not fix it that way then your options are to use taggedElement and place a tag at a point on the page that does reduce in height, or write your own custom sizing method in the iframe

@Programina just curious what your solution was to this.
Regards,

My suggestion would be to check your CSS to see if you have an element that doesn't shrink.

@Programina try including the following CSS in the page that you're loading into the iframe:
html, body {
  height: auto;
}

Chances are that something is setting height: 100% which causes the issue.


Can't compile on Catalina with Xcode 12b5

Hi,
I'm trying to run a compile of Catalina with Xcode 12 beta 5.  When I execute the first line of compilePython.sh, I get this:
% xcodebuild -project Python3_ios/Python3_ios.xcodeproj -alltargets -sdk iphoneos -arch arm64 -configuration Release -quiet

... Lots of noise from simulator / device stuff ...

xcodebuild: error: Could not resolve package dependencies:
  multiple targets named 'openssl' in: Python-aux, openssl

It looks like Python3_ios project references an OpenSSL packages and Python-aux, but Python-aux references its own, different OpenSSL module and Xcode is confused.  Any pointers on how to proceed?

Hi,
I'm working on the updated version, a direct fork of the Python tree here: https://github.com/holzschu/cpython
The compilation system for the new repository should be:

git clone the repository
change to branch "3.9"
type "sh ./downloadAndCompile.sh"
go take a coffee as the script downloads the auxiliary libraries, then compiles Python and packages for 3 architectures (OSX, iOS and Simulator).

Compared to this repository, the benefits are:

Python 3.9 (instead of 3.7.1)
up-to-date version of the packages
Xcframeworks, which lets you have a single project for iOS and simulator.

This being said, you could probably fix your issue in this repository by removing the OpenSSL Swift Package Dependency.

That sounds great!  Thanks for the pointer to the new project.  I'm just getting started integrating python into our iOS app, so it seems like using the more up-to-date package is a no-brainer.  Where does this stand with the fork/exec patches for iOS?  We'll need to run jupyter kernels, so that's kind of essential.  As for dev environments, should the Xcode 12 GM be ok?

The new project is patched to use the fork()/exec() versions from iOS_system (it even forced me to update iOS_system, to work with the changes in the pip package). It uses XcFrameworks a lot, so you'll need Xcode 12. I am still in the process of porting to the latest Jupyter version and debugging, so there are going to be several updates in the next weeks.

Fantastic.  Thanks so much for your work on this.


Elections: Could not add a new candidate and enter votes afterwards

Describe the bug
If a user removes or adds a candidate in an election, the users in the existing poll-options get lost. So, in the assignment-poll there are no users and clicking on the "Enter votes"-button will lead to an error.
How to Reproduce
Steps to reproduce the behavior: preferably on nighty

Go to 'Elections'
Click on 'New candidate' or remove an existing one
Click on 'Enter votes'
See error in the console and a white dialog.

Expected behavior
The users still exist and votes can be entered.
System information

OpenSlides-Version: latest
Python Version: 3.7
Device: Notebook
OS: Arch/Manjaro
Browser: firefox, chrome
Browser-Version: [e.g. 22]

Additional context
Add any other information to comprehend your problem
Screenshots

Can't reproduce it anymore.


fix(selectfield): Issue #26 not displaying select icon

A potential solution to Issue #26
Leveraged code by @shaneog as well as a few other select implementations to arrive at a version that has been tested to work in IE11, Edge, Chrome, Firefox, Opera, & Safari
pointer-events: none was key to getting the clicking behavior to work correctly for the control
ms-expand: was key to getting IE 11 to render without it's native drop down

Looks like you branch is not up to date with the master branch, otherwise would only see 1 commit difference. Could you update it?
Also, there are too many different things in your PR. Please create one for the icon only, and you can create another one that fixes some other issues that would need to be tested more. Thanks

I believe i got everything but updating the top padding for the icon div, which could be added in as a fix/enhancement. @mebibou Do you still want me to split this into multiple PRs? Also should I target your master or dev branch?

Well I can't test the -ms pseudo elements cos I am on mac, so not sure about pushing this to new release without anyone validating first. And yes always PR from master branch ;)

Replaced this PR with #30 to clean up the commits and reduce the amount of change


Run by line in Notebook took a long time to get started

Version: 1.61.0-insider (Universal)
Commit: ec40cbe164c59f3d13b6eff5fc7b0231ec0ab7aa
Date: 2021-09-13T05:13:59.036Z
Electron: 13.1.8
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Darwin x64 20.6.0
It took approximately 20 seconds to start Run By Line for this Notebook: https://github.com/claudiaregio/data-science
14:15 of video log

@tanhakabir does it (delays) make a difference if you are not recording?

That delay is just starting the kernel and checking the ipykernel version, and in theory you would see basically the same delay when running a cell for the first time. Second time should be fast.

Closing because it was mainly slow due to screensharing


app:tl_textBold="SELECT"

Hello,excuse me,I find that the attribute of app:tl_textBold="SELECT" is not take any effect! I find that the source code have some logic errors,please correct ,thank you very much.
If you have any questions,please call me tel:17600908294,thank you for your cooperation.

Same here.

Same here.

In my case, when set the same color to selected and unselected tab text, app:tl_textBold="SELECT" is not work. otherwise init state (selected index == 0), text on tab 0 not bold. when click it, bold worked.

I have the same question.


split apart get api function

closes #140
blocked by #139 (only affects Provider and Capacity components)

Provider and Capacity blocks show "Not Connected"
Screen.Recording.2024-02-06.at.9.05.45.AM.mov

In the top comment I say "blocked by https://github.com/LibertyDSNP/provider-dashboard/pull/139 (only affects Provider and Capacity components)".  #139 will be merged in first and this will not happen.


clarification

Hi Charles,
Thank you for your interest and implementing Mask R-CNN!
I would like to clarify some descriptions in your Readme (which may suggest misunderstanding of our work):
"The original work involves two stages, a pyramid Faster-RCNN for object detection and another network (with the same structure) for instance level segmentation."
This is not true. In our original work, object detection and instance segmentation are in one stage. They are in parallel, and they are two tasks of a multi-task learning network.
I hope this will ease your effort of a correct reproduction.

@KaimingHe. Great work for both FPN and Mask R-CNN. I am just wondering when you will release  these official codes.
bests!

@CharlesShang I cannot find any issues with in particular over the repo. If in case you require any help in a particular direction, let know.

I must misunderstand some details in your paper.

For convenient ablation, RPN is trained separately and does not share features with Mask-RCNN, ...
In 3.1 Implementation Details

@parhartanvir
Great!!!!
I have some questions.

FPN:

In a FPN, rois are extracted from multiple layers. In training stage, we choose some rois according to some criterions, like IoU, fractions of foreground, total number, etc.. I'm not sure about these parameters. I guess they are the same as the work 'Feature Pyramid Networks for Object Detection' FPN
There are several RPN in the pyramid, when building the losses, should I merge all the ROIs before sampling, or sample ROIs for each RPN then compute the losses..

Mask

In the original paper, Figure 3. (page 4), There are only 80 channels in the mask, but I think it should be 81 because there's another background class.

Loss

per-pixel sigmoid with  binary cross-entropy loss, I guess it is
loss_mask = cross_enctropy(sigmoid(x), y)
where x and y are of shape (28, 28, 81, 2) # using the last axis to denote fg and bg
Am I right?

Training mini-batch >= 2

Since the input images may have different shapes, I guess training on a mini-batch of 2 should be like, FP several images seperately in parallel, compute average gradients, then update the network.
Is it right?

Sorry for the delayed replay, just back from a vacation

@CharlesShang: Thanks for your effort to implement this very nice work!

In the original paper, Figure 3. (page 4), There are only 80 channels in the mask, but I think it should be 81 because there's another background class.

As far as I understood, the branch predicts binary segmentation masks for each object class - so there is no need for a background mask.

@CharlesShang , I believe for the mask there should not be a background class. That is because there are K binary masks for each of the K classes. Having a background class for the Faster-RCNN / Region proposal part makes sense. But since they are not computing mask loss in between classes, a background mask is not needed.
As far as training goes, I think what you are saying is right. i.e. forward pass the images, add/average gradients then backward pass.
I apologize, I haven't gone through the FPN paper yet. I'll go through and see, if I can help.

@parhartanvir
@xqms
Thank you for your Explaination
I think there's little difference. Consider an example -- segment a roi of a horse
In the refined stage, we just know it's a horse, so we just check the horse-channel in the masks, pixel with prob greater than 0.5 are considered as horse, otherwise bg.
For consistance, I'll adopt K+1 classes, so we dont need to  - 1 when we extract masks

@CharlesShang

There are several RPN in the pyramid, when building the losses, should I merge all the ROIs before sampling, or sample ROIs for each RPN then compute the losses..

I have gone over the FPN paper.  I think just one RPN is OK.  Four ancher_targer_layer with input of P2 through P5 for each, then merge with one proposal_layer by nms, and normal proposal_target_layer follows.
For backforward, assign each RoI of width w and height h (on the input image to the network) to the level Pk of our feature pyramid by eqn(1).


Updated and Improved LICENSE

Update and Improved LICENSE from (C) to ©

yes, you Find that it is absolutely done for hactoberfest, but I haven't
done any irrelevant change and I doesn't making any spamming.
On Fri, 2 Oct 2020 at 10:09, Nitin Chandran Nair<EMAIL_ADDRESS>wrote:

@NitinNair89 commented on this pull request.
This looks like it is done solely for Hacktoberfest 2020.
@3x https://github.com/3x, Please close this PR and add "invalid" label
🙂
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/xz/new.css/pull/49#pullrequestreview-500857002, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ARGRHAVVCVBUPMIWHJP6EF3SIVKRPANCNFSM4R77NTDA
.

@Sumit1777 I'm not a maintainer of this repo. But, as a contributor myself I don't think adding the copyright symbol improves the LICENSE document. And that's why I commented.
Check with the maintainer about how you can actually make some valuable contributions for this repo.
Peace. :slightly_smiling_face:


[Audio Device]: Quicklink / Deeplink support

Description
Inspired by this slack comment asking for the ability to set an output device directly from keyboard shortcut.
Now the user is able to create a quicklink from an audio-device and then set a keyboard shortcut to it via raycast.
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Awesome, thanks!


Opening Chrome causes Toggl button settings to open on every load

Windows 10:
Chrome awaiting more information from user:
Windows v7.4.1112

🐛 Describe the bug
The case Here is the second case I've seen where a user reports that the Toggl button settings menu opens each time they open Chrome.
Expected behaviour
Opening Chrome shouldn't open the Toggl button settings menu
Steps to reproduce
I cannot reproduce, but the users involved open Chrome, the Toggl button settings open immediately each time.

Case reference
Resetting all settings, uninstalling and reinstalling.
This user is on Windows 7
Happens an estimated 25% of the time when opening a new Chrome window with no other windows open.
Button version 1.59.1

Case reference

I've seen other cases of this as well I think, let's make it one of the 3 priority cases for next week.

Case reference

users notified, thanks 👍


Allow setting skip_* settings for k8s metadata filter using ENV vars

I like that the k8s metadata filter plugin is included by default however I'd also like to be able to tweak the settings without having to overwrite the complete kubernetes.conf.
Especially the skip_labels, skip_container_metadata, skip_master_url and skip_namespace_metadata settings are of interest.
This PR enables users to set these settings with ENV vars.

Sorry for the delay. Just merged.


Make it possible to get request method from error object

Describe the feature
try {
  const res = await ofetch("https://url/that/returns/an/error");
} catch(e) {
  // typeof(e.request) === "string" -> true
  // I want to access request.method from the catch block
}

Is there a workaround ?
Am I doing this the wrong way around ?

The issue here is that FetchRequest's type boils down to string | Request, and a string is being returned, which is rather unhelpful when you also need to access other properties from the request object.
declare class FetchError<T = any> extends Error {
    name: string;
    request?: FetchRequest;
    response?: FetchResponse<T>;
    data?: T;
    status?: number;
    statusText?: string;
    statusCode?: number;
    statusMessage?: string;
}

Additional information

[X] Would you be willing to help implement this feature?

Hello, as you use URL string to make request, context will contain request as string.
Workaround is to use Request object instead of URL string, I think this is how original fetch was envisioned to work.
$fetch(new Request('http://api.com/post', {
    method: 'post',
    body: JSON.stringify({})
}), {
    // those will be overridden by Request object, even if not specified in Request object
    method: 'post',
    body: {

     }
})

example codesandbox

@KaKi87
I don't understand why would you need to have Request and FetchOptions objects in FetchError object, if you control the request and options that you send to server.
Can you specify examples where this feature is needed?

Actually, I was only making this suggestion to solve OP's request.
Personally, I don't have such a use case.
But, since Axios provides this as well, I suppose it can be useful.
Thanks

as you use URL string to make request, context will contain request as string. Workaround is to use Request object instead of URL string

oh yeah that totally makes sense now

I think this is how original fetch was envisioned to work.

they don't advertise it much to be honest

for the record, I need this feature for logging purposes, I am migrating some library from snekfetch to ofetch and when there's an error there's logging that contains the request method and I wanted to keep this behavior since I think it's valuable.
logging the endpoint and returned body might not be enough given that the same endpoint will not do the same thing when requested with GET, PUT or POST.
thank you for your answer, I am marking this as resolved.

I think this issue should remain open because the Request workaround removes all the automation that we use ofetch for. Thanks

I do agree.

I took a quick glance at th ecode and I think context.options should be passed to createFetchError.
https://github.com/unjs/ofetch/blob/19b79fa5cbf24cda0a81bf768c636e01eef82541/src/fetch.ts#L121C19-L121C35

Another (better) solution would be to simply use context.request instead of context.options whenever writing the new parameters.
what I mean is that whenever a string is passed as the first argument, it gets turned into a Request automatically and ofetch adds the parameters to that Request object instead of context.options

I am still willing to PR this if you feel like this is a valuable thing like I do, it's also pretty easy.

I don't understand why would you need to have Request and FetchOptions objects in FetchError object, if you control the request and options that you send to server. Can you specify examples where this feature is needed?

simply put, the codebase is built in such a way that when the promise is resolved, there is no access to the request options.

looking for that too

Should be supported via error.options after #270 being released 👍🏼

thanks!


Slave lag throttler for upstream

This is the same as #1 but against upstream.

An LHM throttler which tries to query any directly connected DB slaves, verifies their replication lag and adjusts the sleep period in between strides based on the amount of lag present. The sleep period will double each time the lag detected is greater than the desired threshold (up to a maximum).

@arthurnn , @jasonhl

hmrr I'll check on CI

this fixes https://github.com/soundcloud/lhm/issues/47

@arthurnn I fixed CI it remains broken for AR 3.2, but I think we don't support that anymore right?

Theoretically we didnt drop support to 3.2 on master yet. But I think we should.. I will do that in a separated commit.

yah I was just testing with my commit removing support it is broken for 4.0 as well, will fix.
Can you give it a final review besides that point @arthurnn ?

@singerwang @sroysen

Oh actually it passes on non 3.2!

this fixes #47

Not necessarily #47 is about I/O on the machine you are running the LHM not repl lag, chances are both are related but not 100% the case every time. You can have replication lag for instance because the link is not the greatest.

@arthurnn @camilo -- thanks for taking this/fixing up while I was away.
Is this ready for merge now? Tests look good.

@SingerWang, @sroysen: Can you review this PR please?

merged via https://github.com/soundcloud/lhm/commit/43271f4b375b231b76e03eb30953f5f6ef3d686f
thanks guys, this is great! :heart:

Beauty... thanks @arthurnn!