Impossible Login

Checklist

[X] I have installed the latest release (or BETA) version of the integration and home assistant.
[X] I have prepared DEBUG log output (for technical issues) | In most of the cases of a technical error/issue I would have the need to ask for DEBUG log output of the integration. There is a short tutorial/guide 'How to provide DEBUG log' here
[X] I confirm it's really an issue | In the case that you want to understand the functionality of a certain feature/sensor Please be so kind and make use if the discussion feature of this repo (and do not create an issue) - TIA

Add a description
When I try to start the integration, upon entering the IP where I access the EasyCon web (<IP_ADDRESS>), I instantly get the error “Host/IP or the Password is wrong - could not reach system”. I have waited a day without accessing the Waterkotte web or app to close the active sessions. My username and password are Waterkotte. As information, my heatpump has a remotebox at IP <IP_ADDRESS> which cannot be accessed via browser.
Add your DEBUG log output
No response

Can you provide/create also a debug log output - and are you sure that you must use the EasyCon and not the EcoTouch variant? (or vise versa)

Hello! I have tried with both options, easycon y ecotouch and it´s the same error. I attach the log
home-assistant_2024-05-26T08-47-47.471Z.log

I attach a new log with a correct Host.
home-assistant_2024-05-26T09-03-10.008Z.log

a) ok - when you use a regular browser and make this request:
http://<IP_ADDRESS>/cgi/readTags?n=7&t1=I110&t2=I115&t3=I105&t4=I114&t5=I2&t6=I3&t7=I1&_=1716713241599
what is the response you receive?
b) would you mind sharing where your waterkotte is aprox. located - the reason why I am asking is, this might will take a while to remote debug - and I am (depending on the distance) considering to "debug local"...

Thanks for your report - what a BUMMER! - please update to new new release 2024.5.2 and close this issue, when the new version solves this bug - TIA

just to explain a bit more the issue - your Waterkotte SystemID '369' -> 5009.5(1x230V) was simply not known in the code - this was a terrible bug (that the code crash just when the system id is not known by the integration... So beside adding a couple of new system ids I have also adjusted the code so that the code continue, even if the parsing of some system variables going to fail...

Matthias!
Thank you so so much! Its working!! Im very very happy.
El 26 may 2024, 12:33 +0200, Matthias Marquardt @.***>, escribió:

just to explain a bit more the issue - your Waterkotte SystemID '369' -> 5009.5(1x230V) was simply not known in the code - this was a terrible bug (that the code crash just when the system id is not known by the integration... So beside adding a couple of new system ids I have also adjusted the code so that the code continue, even if the parsing of some system variables going to fail...
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


ci: Skip non working test.

Package generation test is taking more than 20 minutes to build a dockerfile. Skip until find a way to fix the issue.
Fixes: #68
Signed-off-by: Jose Carlos Venegas Munoz<EMAIL_ADDRESS>

Although that's a long time, I don't really understand why we are disabling the test - is it causing a timeout?

... aaaaand I've just read the issue so I see it is a timeout ;)
Can you recreate the timeout locally? Could we just extend the timeout temporarily rather than disabling?

@jodh-intel I can not reproduce it locally, in my dev machine takes about a minute. Actually, I tried to increase the timeout from 11 minutes to 20 minutes in the CI.
I want to disable by now for two reasons:

Most of the PR now are not related the OBS, so I dont want to confuse people that they has something wrong in their PR.
I need to figure out what is the current issue with the PR and rework to only test obs packaging only when that is modified ( it takes a long time ). Today this repository provides the packaging tooling, release tools, kata deploy and kernel configuration (we need to add more tests for this other bits).

@grahamwhaley yes, that is the main idea, I just created #72. I will continue debugging in the CI.

ok, thanks for explaining @jcvenegas.
lgtm


Refactor DuckRadio

DuckRadio was modified to have all its methods be private and converted to a namespace rather than a singleton class.
The reason for this was so that DuckRadio could only be accessed through a Duck.
When a chat message is being sent in the mesh, it then calls into Duck to send the data, instead of lateral call to DuckRadio send method.
This change violates encapsulation principles as now we have 5 classes being friends of DuckRadio only so they can access the now private methods.
Additionally we can't build unit tests for DuckRadio as all methods are private. To test those methods would require us to wrap the private: section with a macro to make them publicly available when unit testing. Again a hack to fix a problem cause by a design issue.
The solution here is to revert back to DuckRadio being a singleton..update all code inside CDP that would need to send data into the mesh. Additionally add unit tests for all public methods of DuckRadio

Resolved in #415


some advices for Badges

As we all know, we can easily add badges for showing an unread message count or new items / whatever you like. But if the amount of the unread message  above 99 ,we'd better show “99+” instead of showing the real amount , because  there is no enough room to show that  . So the question is now  we can only set a int value rather than a String by setBadgeCount.

This is loosely related to #98. There's going to be changes for Badges that allow customization soon.


Decode correctly PlatformID 3 name

What does this PR does:
This PR use the same logic has GDI to obtain the character encoding for an NameRecord.
It only concern the NameRecord from the Microsoft Platform.
The logic is from this comment: https://github.com/MicrosoftDocs/typography-issues/issues/956.
Related issue:

https://github.com/fonttools/fonttools/issues/2579
https://github.com/fonttools/fonttools/issues/236

Note sure
I don't understand how I can get the nameID in the parser. I need it to call getEncoding.

https://github.com/fonttools/fonttools/blob/68b0509711cee20d0b1ccadea627ec0292cbd8f1/Lib/fontTools/feaLib/parser.py#L1214
https://github.com/fonttools/fonttools/blob/68b0509711cee20d0b1ccadea627ec0292cbd8f1/Lib/fontTools/feaLib/parser.py#L1243

With this PR, here is the xml I get with the font in the issue #2579
  <name>
    <namerecord nameID="0" platformID="1" platEncID="0" langID="0xb" unicode="True">
      Copyright Fujitsu 1998
    </namerecord>
    <namerecord nameID="1" platformID="1" platEncID="0" langID="0xb" unicode="True">
      FjÉCÅ[É}310
    </namerecord>
    <namerecord nameID="2" platformID="1" platEncID="0" langID="0xb" unicode="True">
      Regular
    </namerecord>
    <namerecord nameID="3" platformID="1" platEncID="0" langID="0xb" unicode="True">
      Fujitsu:FjÉCÅ[É}310:1998
    </namerecord>
    <namerecord nameID="4" platformID="1" platEncID="0" langID="0xb" unicode="True">
      FjÉCÅ[É}310
    </namerecord>
    <namerecord nameID="5" platformID="1" platEncID="0" langID="0xb" unicode="True">
      Version 001.20
    </namerecord>
    <namerecord nameID="6" platformID="1" platEncID="0" langID="0xb" unicode="True">
      Fj-Ima310
    </namerecord>
    <namerecord nameID="0" platformID="3" platEncID="2" langID="0x411">
      Copyright Fujitsu 1998
    </namerecord>
    <namerecord nameID="1" platformID="3" platEncID="2" langID="0x411">
      Fjイーマ310
    </namerecord>
    <namerecord nameID="2" platformID="3" platEncID="2" langID="0x411">
      Regular
    </namerecord>
    <namerecord nameID="3" platformID="3" platEncID="2" langID="0x411">
      Fujitsu:Fjイーマ310:1998
    </namerecord>
    <namerecord nameID="4" platformID="3" platEncID="2" langID="0x411">
      Fjイーマ310
    </namerecord>
    <namerecord nameID="5" platformID="3" platEncID="2" langID="0x411">
      Version 001.20
    </namerecord>
    <namerecord nameID="6" platformID="3" platEncID="2" langID="0x411">
      Fj-Ima310
    </namerecord>
  </name>

@behdad What do you think about that?

If I look at the font you posted in https://github.com/fonttools/fonttools/issues/2579, there are name table strings that are correctly identified as "shift_jis", but the actual data fails to be decompiled as such (this may be a problem with the font?).
I have still no idea why it fails to decompiled the name.
I just saw that fontconfig can consider the language_id (11) to get the good encoding, so I reproduce something similar.

I updated the code.
I was wrong on the method. Now, I relied on the microsoft documentation. See my comment about that.
I still don't have any proof that we should use x_mac_japanese_ttx when the plaformID = 1, platEncID = 0 and langID = 11, but since it work, I highly doubt that this is not the right method.

I installed a mac VM on my windows computer and I remove all the platformID=3 name from the font to be 100% sure that MACOS will show me the name this namerecord:
<namerecord nameID="1" platformID="1" platEncID="0" langID="0xb" unicode="True">
  FjÉCÅ[É}310
</namerecord>

I opened the font with Font Book (the default mac os font manager)

We can clearly see that it won't decode the font with x_mac_japanese_ttx.
Also, it is not wrote that it use kTextEncodingMacJapanese when the platEncID=0: https://developer.apple.com/documentation/coreservices/1399980-afp_text_encodings
I will remove the code I added

@justvanrossum What do you think about the new change in the PR?

If "All string data for platform 3 must be encoded in UTF-16BE", then perhaps this section in encodingTools.py is wrong?
https://github.com/fonttools/fonttools/blob/21d22ae30f88b76fab5575f5f2e882b142ee1c08/Lib/fontTools/misc/encodingTools.py#L51-L60
But then again, the spec seems to contradict itself: for encodingID 4 it says "Big5", yet it should be encoded as UTF-16BE? I can't make sense of that. @PeterConstable, can you help out here what might be meant?

I am not 100% sure. I also think that the documentation lacks a bit of precision.
Here are the possibilities:

Everything from the platform 3 should always be decoded with utf_16_be (which won't make any sense because why would there be encoding_id except for the cmap).
If the decode fail and the name is from the platform 3, try to decode it with utf_16_be. (In my opinion, it would make more sense. This spec is probably only for pretty old font.)

If "All string data for platform 3 must be encoded in UTF-16BE"...

That's a clear statement in the spec and means what it says.

But then again, the spec seems to contradict itself: for encodingID 4 it says "Big5", yet it should be encoded as UTF-16BE? I can't make sense of that. @PeterConstable, can you help out here what might be meant?

The spec isn't contradicting itself, though perhaps there's a detail that isn't clear. At least, this is how I understand what historically has been intended:
The 'cmap' table can have subtables for different encodings for the same platform ID. For example,  the 'cmap' could have both 3/1 and 3/4 subtables. Whatever 'cmap' subtables for platform 3 are present, there should be name records in the 'name' table for the same set of platform 3 encodings. So, if the 'cmap' has 3/1 and 3/4 subtables, it should also have name records for both 3/1 and 3/4.
But whatever platform 3 encoding ID is specified in name records, the string data it references must be encoded in UTF-16BE.
The spec does not that some legacy CJK fonts were non-conformant in that they had 3/4 name records referencing string data encoded in code page 950. But it's explicitly stating that that is non-conformant.
If any aspect of that isn't clear enough in the spec, please open an issue against the relevant page that needs clarification.

Thank you Peter, that clears things up.
I do find it hard to understand why this is the case:

So, if the 'cmap' has 3/1 and 3/4 subtables, it should also have name records for both 3/1 and 3/4.

Why would you need 3/1 and 3/4 subtables, if they're both going to to be UTF-16BE?
To move forward, it seems indeed all values in this dict should be 'utf_16_be':
https://github.com/fonttools/fonttools/blob/21d22ae30f88b76fab5575f5f2e882b142ee1c08/Lib/fontTools/misc/encodingTools.py#L51-L60
So that's what this PR should do.

To move forward, it seems indeed all values in this dict should be 'utf_16_be'

It should have an ellepsis for utf_16_be. And if the decode fail, it would use cp950.

The Ellipsis thing is for language code.
I'm not sure if falling back to anything is a wise thing here. We currently don't use cp950, and I don't see why we should do so now.

Why would you need 3/1 and 3/4 subtables, if they're both going to be UTF-16BE?

Well, in 1990, that's what people thought should be done. In 2022, why does any font need a 3/4 'cmap' subtable?
Of course, some old fonts can have a 3/4 'cmap' subtable. If the 'name' table doesn't have corresponding 3/4 name records, I think the font should still be usable, though there may be some implementations that reject the font.
If there are 3/4 name records (or 3/2, etc.), I'd try interpreting strings using UTF-16BE, but if any of the strings come out as gibberish or invalid (unpaired surrogate code points) then I might try interpreting that string using Big5 (or Shift-JIS for 3/2, etc.).

To be sure what we exactly need, I want to have the "famous" MingLi font included in the Traditional Chinese edition of Windows 95 to test correctly.
I can't find it online, so I ask if it was possible to have it: https://github.com/MicrosoftDocs/typography-issues/issues/956

Addendum... It turns out that what I stated earlier wasn't quite correct. What I described was what was relayed to me from a source that worked on the original GDI implementation back in the 90s. But since @moi15moi asked (in the typography-issues repo) for more info, I investigated and discovered that what GDI does is slightly different from what I described. I'll provide details in that other issue (https://github.com/MicrosoftDocs/typography-issues/issues/956). One part that still isn't clear to me is whether GDI (or DWrite) expect or give priority to name records with platform/encoding that correspond to 'cmap' subtables.
But I'm curious: have you actually encountered fonts that have 3/4 (or 3/3 or 3/5) name records?

But I'm curious: have you actually encountered fonts that have 3/4 (or 3/3 or 3/5) name records?

The only font I have who match these characteristic is MINGLI.TTF
If you want to see if you have installed any font with those characteristic, you can try to run this:
import shutil
import sys
from fontTools import ttLib
from matplotlib import font_manager

def main():
  fontsPath = font_manager.findSystemFonts()
  for fontPath in fontsPath:
    with open(fontPath, 'rb') as fontFile:
      fontType = fontFile.read(4)

    # We don't want collection font.
    if fontType != b'ttcf':
      font = ttLib.TTFont(fontPath)

      for name in font["name"].names:
        if name.platformID == 3 and name.platEncID in [3, 4, 5]:
          shutil.copy(fontPath, r"C:\Users\solmatech\Desktop\font_encoding_id_3_or_4_or_5")
          break

sys.exit(main())

@justvanrossum I have pushed the change 1 week ago.
Is there still something you don't like or are not sure?

I was thinking perhaps the special cases should be handled by the caller of getEncoding(), instead of passing the nameID into it.
But I would really like to hear opinions from other maintainers.

Since no maintainers share their opinion, do you still want everything done in getEncoding from _n_a_m_e or not?

@justvanrossum Have you any news about from other maintainers?

LGTM.

Although, maybe we should implement the DWrite logic instead, which wouldn't need to pass down the nameID. I'm not sure.

@behdad I don't really know either. I choose GDI, but we can also use DWrite. The important is to pick one of them ^^'

But I'm curious: have you actually encountered fonts that have 3/4 (or 3/3 or 3/5) name records?

@PeterCon Yes, here is one: Font with PlatformID 3 and PlatEncID 3.zip

@justvanrossum I just rebased with main and use DWrite logic.

@justvanrossum Could I know what is blocking this PR from being merged?

I'm not comfortable with this change, but mostly because I don't fully understand the problem nor the solution, and because I think encodingTools.getEncoding() should be patched instead. I defer to other maintainers to make this call.


Make the screen tablet variable less ambiguous, or remove it entirely (plus new tablet settings for the h610prov2)

After a long while of debugging trying to get my h610prov2 to work on only one screen i found out that the 'screen' variable turns /on/ the xinput mapping i wanted instead of what i assumed meant turns /off/
I assumed this because i would imagine a cintiq would have its own screen mappings instead of needing the ones that linux provided. Screen = true meaning that a tablet has a screen of its own.
I only found out that it turns /on/ xinput mapping after going through the code and finding out that the log saying that it started doesnt actually show up, im glad for the extensive debugging that happens too else i doubt i would ever have found this, but i wish for 'screen' to either be removed or made a bit less ambiguous so others might have a better time adding their tablets.
Either way here are the settings i use for my tablet to add to the config file:
model_name = H610 PRO
screen = true
pen_max_x = 50800
pen_max_y = 31750
pen_max_z = 8191
resolution = 5080
buttons = 8

Thank you for the info! I'll rethink the screen part


feat(build): Change nanobundle minify option (false -> default:true)

looks like the bundle size can be reduced by about 30%, compared to the current.

build with minify=false
build with minify=true (default)

ESM entry ./lib/index.mjs
    size      : 572 B
    size (gz) : 331 B
    size (br) : 284 B

CommonJS entry ./lib/index.cjs for Node.js
    size      : 1.89 kB
    size (gz) : 819 B
    size (br) : 722 B

ESM entry ./lib/index.mjs
    size      : 399 B
    size (gz) : 268 B
    size (br) : 219 B

CommonJS entry ./lib/index.cjs for Node.js
    size      : 972 B
    size (gz) : 568 B
    size (br) : 496 B

I don't know why there is no conflict. Closed as this has already been fixed.


Removing the dependency on spec.bootstrap to fix the master ip for sf-broker

Issue:
Depending on the spec.bootstrap creates a situation in which <IP_ADDRESS> could be master initially (this ip being bootstrap) and sometimes, <IP_ADDRESS> could be the master initially (this ip being bootstrap). Thus, this brings in an indeterministic state in which we don't the master node/ip of the broker from outside the VM.
Here, initially refers to a fresh deployment (create) or update deployment of the broker. Here, by default, a node should be master and the other should be slave. Later on, the failover may change the setup.
Fix:
We expect the properties, master_ip and slave_ip to be passed from the sf-manifest. We should then rely on the values of these ips to decide if the VM should be master or slave initially.

@pritishmishra : Is this required as a test cycle fix ? If yes , pls raise PR on rel branch too.

Still testing the new changes. Will remove the label when the PR is ready to be merged.

Tested the changes. Working as expected. Ready to be merged.


Problems in Chrome

I can't get any of your examples or any of mine to open in Chrome. Any thoughts on how to fix this?

The maps load but not the polygons. I'm on a Mac OSX 10.6.8. Version of Chrome: 15.0.874.106
Here's the error:
XMLHttpRequest cannot load https://raw.github.com/albertsun/gmap-features/master/sampledata/data2.kml. Origin null is not allowed by Access-Control-Allow-Origin.
I get the same message for the json and kmls. I've tried loading the KML from my desktop as well but get the same error…And I think I was having the same problem in Chrome on my work computer earlier today but don't quote me on that (I didn't check out the error message). It's a PC.


Can this package support Enable/Disable widget Draggable?

I need to disable items from being draggable.
For Example:- last 3 items are not draggable

Hi @ahmedmehanna
Please check flutter_draggable_gridview: ^0.0.3 version.


Removes redundant code

Removed redundant code in ApiClient class
Refactored package structure

We will re-write this to use KOIN during the re-write actually. To make the API more streamlined


[UI] the position of a chart title should be adjusted

Description
To make it center:

PS: the issue is introduced by recent commits so the published version is not affected.

Maybe I can have a try~

:thumb_up: Great!
andyhuang18 @.***>于2022年10月14日 周五18:52写道：

Maybe I can have a try~
—
Reply to this email directly, view it on GitHub
https://github.com/hypertrons/hypertrons-crx/issues/480#issuecomment-1278844000,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHXOSWE2YTTWDHEM4CBQZ6DWDE3NJANCNFSM6AAAAAARE72BUU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Downgrade sqlite3 to 3.35.5 to fix spatialite regression

Alright, for QField 1.10, we have two choices: upgrade GDAL from 3.3.2 to 3.4.0, or downgrade sqlite3 from 3.36.0 to 3.35.5 -- I guess the latter is safer, so going ahead with that.
Long story short, sqlite has change the way it handles views and ROWID, which caused a regression in GDAL (a fix was pushed into 3.4.0 https://github.com/OSGeo/gdal/pull/4017).

@m-kuhn , I thought https://github.com/opengisch/OSGeo4A/pull/126 would work, but unless the latest rounds of APKs tell otherwise, we have to move to this plan B :)
For the record, vcpkg also has sqlite 3.36.0 so there we'll need to make sure we run on gdal >= 3.4.


Is it possible not generated /de/MahApps.Metro.resources.dll?

hello. Thanks you to develop nice library!
But ... I'm really sorry that I would like to know how to do not generate /de/MahApps.Metro.resources.dll when solution building.
This folder and file were generated automatically in bin/debug folder when build my solution.
I use ".NET Framework 4.8" and Visual Studio 2022.
I get MahApps is version 2.4.10 using Nuget package.
I'm beginner about Web development.
Sorry...Please help me...

@sleepCat-sleep These are the german color names which are used at the ColorPicker.


Should UpdateCheckRunOptions.Name be a pointer to a string?

Just working on some changes and I wasn't sure if the Name field should be a string or pointer to a string:
https://github.com/google/go-github/blob/b93adc1c7febaf7dad1bed965e5310a86bc2623e/github/checks.go#L168-L170

When I try to figure out the answer to this question, I first look at the GitHub Developer API docs and see if it is a required field.
In this case, although the docs don't say that name is required, it doesn't say 'optional' either and it seems like all calls should have the name field.
If the parameter is always passed and there are no circumstances where we don't want it to be passed, we don't need to make it a pointer.
The problem comes if we don't want to set a parameter when talking to the server (in a request) or the server sometimes doesn't populate the field (in a response). In those cases, we make the field a pointer and add the json tag omitempty so that when sending the request, that field will not even show up in the json request.
This situation is particularly glaring and (easier to understand) for bools. When sending a bool field in a request, if we didn't make it a pointer and didn't use omitempty, then the bool would be sent with the value false, whereas if we make it a pointer and use omitempty, the field will not be sent at all.
So in this case, I think it is fine to leave as a non-pointer string.
I hope that makes sense. Please let me know if you have any other questions.

Totally makes sense, I just wanted to make sure. I had a hunch that it was because it was required, but still new to the lib and hadn't seen it anywhere else.
Thanks for the helpful response.


scenario.utils.capture_events

This seems like a common-enough use case that we should offer it in this lib, instead of forcing users to install a separate extension or copy-paste code around.
see: https://discourse.charmhub.io/t/harness-recipe-capture-events/6581
for the Harness equivalent.

For scenario, this would really only be useful for custom events, right?
Custom events, yes, but also 'regular' events that the charm emits of its own accord. Some charms implement the common exit hook pattern by emitting, say, update-status from start, install, etc... The captured events then would include [event being dispatched, update-status].

Also don't just think 'charm', but also 'charm lib'. If you're writing unittests for a charm lib (e.g. a DatabaseProvider), you typically want to check that the right 'custom event' is emitted by the charm lib as a response of a combination of 'the right state' and a relation-changed or some other event. The events being emitted by the charm are as you say not part of the output state, so this is white box testing, indeed. However it seems to be very useful to charmers, it's a highly desired assertion, so much that there was that extension lib for harness as well.

Also don't just think 'charm', but also 'charm lib'. If you're writing unittests for a charm lib (e.g. a DatabaseProvider), you typically want to check that the right 'custom event' is emitted by the charm lib as a response of a combination of 'the right state' and a relation-changed or some other event. The events being emitted by the charm are as you say not part of the output state, so this is white box testing, indeed. However it seems to be very useful to charmers, it's a highly desired assertion, so much that there was that extension lib for harness as well.

I dunno, I prefer to have tests explicitly observe the event, so it's more like how you'd actually do it in a charm. This is straight-forward to do, as shown in the data-platform-libs tests of exactly that case. They set up the charm like this:
class DatabaseCharm(CharmBase):
    """Mock database charm to use in units tests."""

    def __init__(self, *args):
        super().__init__(*args)
        self.database = DatabaseProvides(self, RELATION_NAME)
        self.framework.observe(self.database.on.database_requested, self._on_database_requested)

    def _on_database_requested(self, _) -> None:
        pass

And then use patch() in a test to ensure it's called:
    @patch.object(DatabaseCharm, "_on_database_requested")
    def test_on_database_requested(self, _on_database_requested):
        """Asserts that the correct hook is called when a new database is requested."""
        # Simulate the request of a new database plus extra user roles.
        self.harness.update_relation_data(
            self.rel_id,
            "application",
            {"database": DATABASE, "extra-user-roles": EXTRA_USER_ROLES},
        )

        # Assert the correct hook is called.
        _on_database_requested.assert_called_once()

        # Assert the database name and the extra user roles
        # are accessible in the providers charm library event.
        event = _on_database_requested.call_args[0][0]
        assert event.database == DATABASE
        assert event.extra_user_roles == EXTRA_USER_ROLES

It's maybe 2 more lines of code, but it uses builtin stdlib constructs, and exercises the actual observe + emit logic normally.
Or you could even avoid the patch altogether, and just have the mock charm append events to a list. I personally quite like this approach as I find it less magical than patch (I kind of find patch and call_args and all that stuff basically a custom DSL that you have to learn instead of just appending to a normal Python list :-). Like so:
class DatabaseCharm(CharmBase):
    """Mock database charm to use in units tests."""

    def __init__(self, *args):
        super().__init__(*args)
        self.database = DatabaseProvides(self, RELATION_NAME)
        self.events = []
        self.framework.observe(self.database.on.database_requested, self._on_database_requested)

    def _on_database_requested(self, event) -> None:
        assert isinstance(event, DatabaseRequestedEvent)
        self.events.append(event)

# ...

    def test_database_requested_event_manual(self):
        # Test custom event creation

        # Test the event being emitted by the application.
        self.harness.update_relation_data(self.rel_id, "application", {"database": DATABASE})
        assert len(self.harness.charm.events) == 1
        event = self.harness.charm.events[0]
        assert event.app.name == "application"

        # Reset the diff data to trigger the event again later.
        self.harness.update_relation_data(self.rel_id, "database", {"data": "{}"})
        self.harness.charm.events = []

        # Test the event being emitted by the unit.
        self.harness.update_relation_data(self.rel_id, "application/0", {"database": DATABASE})
        assert len(self.harness.charm.events) == 1
        event = self.harness.charm.events[0]
        assert event.unit.name == "application/0"

Incidentally, that file also uses capture_events.capture -- I'm guessing tests added be two different people at different times.

Also don't just think 'charm', but also 'charm lib'. If you're writing unittests for a charm lib (e.g. a DatabaseProvider), you typically want to check that the right 'custom event' is emitted by the charm lib as a response of a combination of 'the right state' and a relation-changed or some other event. The events being emitted by the charm are as you say not part of the output state, so this is white box testing, indeed. However it seems to be very useful to charmers, it's a highly desired assertion, so much that there was that extension lib for harness as well.

I dunno, I prefer to have tests explicitly observe the event, so it's more like how you'd actually do it in a charm. This is straight-forward to do, as shown in the data-platform-libs tests of exactly that case. They set up the charm like this:
class DatabaseCharm(CharmBase):
    """Mock database charm to use in units tests."""

    def __init__(self, *args):
        super().__init__(*args)
        self.database = DatabaseProvides(self, RELATION_NAME)
        self.framework.observe(self.database.on.database_requested, self._on_database_requested)

    def _on_database_requested(self, _) -> None:
        pass

And then use patch() in a test to ensure it's called:
    @patch.object(DatabaseCharm, "_on_database_requested")
    def test_on_database_requested(self, _on_database_requested):
        """Asserts that the correct hook is called when a new database is requested."""
        # Simulate the request of a new database plus extra user roles.
        self.harness.update_relation_data(
            self.rel_id,
            "application",
            {"database": DATABASE, "extra-user-roles": EXTRA_USER_ROLES},
        )

        # Assert the correct hook is called.
        _on_database_requested.assert_called_once()

        # Assert the database name and the extra user roles
        # are accessible in the providers charm library event.
        event = _on_database_requested.call_args[0][0]
        assert event.database == DATABASE
        assert event.extra_user_roles == EXTRA_USER_ROLES

It's maybe 2 more lines of code, but it uses builtin stdlib constructs, and exercises the actual observe + emit logic normally.
Or you could even avoid the patch altogether, and just have the mock charm append events to a list. I personally quite like this approach as I find it less magical than patch (I kind of find patch and call_args and all that stuff basically a custom DSL that you have to learn instead of just appending to a normal Python list :-). Like so:
class DatabaseCharm(CharmBase):
    """Mock database charm to use in units tests."""

    def __init__(self, *args):
        super().__init__(*args)
        self.database = DatabaseProvides(self, RELATION_NAME)
        self.events = []
        self.framework.observe(self.database.on.database_requested, self._on_database_requested)

    def _on_database_requested(self, event) -> None:
        assert isinstance(event, DatabaseRequestedEvent)
        self.events.append(event)

# ...

    def test_database_requested_event_manual(self):
        # Test custom event creation

        # Test the event being emitted by the application.
        self.harness.update_relation_data(self.rel_id, "application", {"database": DATABASE})
        assert len(self.harness.charm.events) == 1
        event = self.harness.charm.events[0]
        assert event.app.name == "application"

        # Reset the diff data to trigger the event again later.
        self.harness.update_relation_data(self.rel_id, "database", {"data": "{}"})
        self.harness.charm.events = []

        # Test the event being emitted by the unit.
        self.harness.update_relation_data(self.rel_id, "application/0", {"database": DATABASE})
        assert len(self.harness.charm.events) == 1
        event = self.harness.charm.events[0]
        assert event.unit.name == "application/0"

Incidentally, that file also uses capture_events.capture -- I'm guessing tests added be two different people at different times.

To be fair, this PR will be redundant as soon as OF 2.0.1 releases with my 'log custom events' changes, because at that point we can tail the logs to find out what events have been fired.

TLDR I personally quite like the proposal and I believe it would be useful for charmers (at least for me :D) . Indeed, in data platform as Pietro mentioned, we fire some custom events as part of the charmlib. Beside, depending on the pre-conditions, we might emit different events (e.g. here) and the framework would provide a natural way to catch and assert logic around these important events (together with the type, metadata, etc)
Of course, we could do this in other ways, but the proposal put a nice framework around it. With this it should be more natural to also double check not only that the event was called (as in the first example), but also the metadata attached to it. I'd also prefer this over producing and parsing logs (as Pietro mentioned), as this would need people to serialize/deserialize information via strings that could naturally be available in a data structure.
Personally, I'm not too much in favor of the second option that uses an internal, mutable self.events attribute. I'm not sure (apologies here for my ignorance on how harness/scenario works, so bear with me) whether that state is reset from test to test, but I can see (in general) that these state mutations can make it a bit harder to create confined envs to be tested (if not properly handled by contexts and resets), which is something a like about scenario framework in general

I'd also prefer this over producing and parsing logs (as Pietro mentioned), as this would need people to serialize/deserialize information via strings that could naturally be available in a data structure.

for clarity, what I meant is that Scenario could provide a scenario.utils.get_emitted_events(state)
which would parse for you state.juju_log. So the user-facing story is not much different in terms of 'effort'.

archiving this one for now. There are other ways to assert event emission and they're not particularly cumbersome. We can reevaluate when there's logging for custom events, and after some usage has shown that the need for sugar is real.


USB variable attenuator - Minicircuits RUDAT-13G-90

For blue force fridges

https://www.minicircuits.com/WebStore/dashboard.html?model=RUDAT-13G-90

working on RCDAT-6000-60


Using the dumpio setting throws an error in v1.1.0

Steps to reproduce
Tell us about your environment:

Puppeteer version: 1.1.0
Platform / OS version: Ubuntu 16.04
Node.js version: 6.13.0

What steps will reproduce the problem?
Running this code:
const puppeteer = require('puppeteer');

puppeteer.launch({
  dumpio: true
}).then(function (browser) {
  // irrelevant code here
});

What is the expected result?
This should not cause an error.
What happens instead?
There is a thrown error:
(node: 23455) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: input.on is not a function

And the program exits.
More notes
Version 1.0.0 seems not to have this issue.

Confirmed. Thanks for reporting.

What about changing:
const stdio = options.dumpio ? ['inherit', 'inherit', 'inherit'] : ['pipe', 'pipe', 'pipe'];
to be:
if (options.dumpio) {
  chromeProcess.stderr.pipe(process.stderr);
  chromeProcess.stdin.pipe(process.stdin);
}

I would happily add a PR for that...

@yanivefraim that'd be great. can you also include a test?

Sure, I'm on it


In iox SQL example, should  time >= INTERVAL '1 day' be time > now

In the example for iox.sql() at the bottom of the page, seems like the query is wrong:
query = "SELECT * FROM \"example-measurement\" WHERE time >= INTERVAL '1 day'"
Maybe this should be something like:
query = "SELECT * FROM \"example-measurement\" WHERE time >= now() - INTERVAL '1 day'"
Am I missing something here?  Is there some kind of magic happening with INTERVAL?
Relevant URLs

https://docs.influxdata.com/influxdb/cloud-iox/reference/flux/

Thanks @johndunderhill! You are correct. I've just pushed the fix.


Extract NixOS options documentation generation to a function

Motivation is to support other repositories containing nixos
modules that would like to generate options documentation:

nix-darwin
private repos
arion
??

Refs https://github.com/hercules-ci/arion/issues/10

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/documentation-improvements/3111/42

Very nice to have some cleanups! I have very slowly been working on something similar for use in Home Manager. Basically I've been wanting to extract the whole documentation generation framework into a project of its own, I uploaded the latest code I have here: nmd.
It contains some cleaned up code for option documentation although I can't recall whether it actually works or not. But it is more general than the one in both NixOS and Home Manager in that, for example, the URL for the module is generated by a given function argument rather than being hard coded in the xsl file.

@rycee that's really cool :) I'd like to improve this interface further until 19.09 is out, so we can incorporate some of your ideas.

@domenkozar FWIW I played around a bit more with nmd and now Home Manager uses it to build its documentation: https://github.com/rycee/home-manager/blob/master/doc/default.nix. It's a bit ugly but at least it produces the same output as before.


Psych V1.0 not compiling due to the VideoSprite.hx object

Describe your bug here.
I gotten a fresh source build and downloaded all required dependencies, but the problem arose when I tried to compile the build. It says that there was an unexpecting period in source/objects/VideoSprite, line 170 to be exact. Now, I don't necessarily know why this happens but when I try to delete the line/remove the question mark (I don't know why that's there considering it's there only in that file specifically), and recompile it gives me yet another error, but this time it's with the PsychUIInputText. I have no idea on what I'm doing wrong so if anyone's available, please do so to help.
Command Prompt/Terminal logs (if existing)
-- Before I deleted/changed the line
greglyfnf@penguin:~/Funkin' Corruption Minor Skill Issue Source Code$ lime build linux
source/objects/VideoSprite.hx:170: characters 39-40 : Unexpected .

-- After I deleted/changed the line
greglyfnf@penguin:~/Funkin' Corruption Minor Skill Issue Source Code$ lime build linux
source/backend/ui/PsychUIInputText.hx:224: characters 3-9 : Expected }

Are you modding a build from source or with Lua?
Source
What is your build target?
Linux
Did you edit anything in this build? If so, mention or summarize your changes.
I tried to edit/remove some stuff in source/objects/VideoSprite.hx, leads me to another error that I don't know how I would solve.

Okay I disabled the videos_allowed, thinking it would compile, but PsychUIInputText just won't cooperate at all.

I was initially facing difficulty with PsychUIInputText as well, but as long as you're using the libraries as specified here, things should be fine: https://github.com/ShadowMario/FNF-PsychEngine/wiki/Libraries-versions
Not just the libraries, either. The version of Haxe you are using is just as important. Make sure it's up to date: https://haxe.org

Libraries __ be like that, but I have no idea on how to update Haxe in my Linux/Crostini Distro

I don’t know what the command is on Linux, but on Windows it’s haxelib set <library name> <version number>. You can also see your current libraries with haxelib list.
Methinks this link will also help: https://lib.haxe.org/documentation/using-haxelib


win: fix handles with UV_PROCESS_WINDOWS_HIDE

Resolves #1625

I don't know why this fixes the problem on MoarVM, or if it breaks the expected behavior on node.

Sorry, of course it worked... it resets the process_flags


[vm/ffi] Explore using FfiNative for static linking

Given a dart file
@FfiNative<Int64 Function(Int64, Int64)>("FfiNative_Sum", isLeaf:true)
external int sum(int a, int b);

main(){
  print(sum(40, 2));
}

And a C file:
#include <stdint.h>

uint64_t FfiNative_Sum(uint64_t a, uint64_t b) { return a + b; }

It should be possible to compile this to a pc relative call if we use the native linker.

Compile the dart program to a (a) an assembly file with a call FfiNative_Sum or (b) to an ELF file with relocation records (a static library in ELF format rather than a dynamic library in ELF format).
Compile the C program to a relocatable file (static library or object file).
Link them together with the native linker to a dynamic library in ELF format.
Run with dartaotruntime passing in the dynamic library or appending it.

There is a huge design space.
For example we should add asset tags to disambiguate native symbols.
And we could use the same syntax for dynamic linking using these assets.
I will not write these up here, but wanted to have a bug to point to.

Would this enable LTO inlining of FfiNative_Sum?

Unfortunately, LTO inlining requires some interoperability between compilers (e.g. either us using the same IR as C/C++ compiler or us implementing C/C++ compiler on top of our IR). Currently we have no concrete plans for going that route.
The best we will get here is a direct (e.g. PC-relative) call from Dart function to C function, but not the inlining of C function into the Dart function.
If you have some C code that is so small that it hugely benefits from inlining into its Dart caller then probably that C code should be written in Dart if possible. Though, I can understand situations where callee is extremely low level (e.g. a snippet of assembly code). I have been dreaming about adding inline assembly to dart:ffi - but that's a very speculative and probably far out, given our current priorities.

Unfortunately, LTO inlining requires some interoperability between compilers (e.g. either us using the same IR as C/C++ compiler or us implementing C/C++ compiler on top of our IR).

Today I learned, with LTO a higher level representation (LLVM bitcode) is put in object files, not ELF:

https://llvm.org/docs/LinkTimeOptimization.html
https://developer.arm.com/documentation/101458/2200/Optimize/Link-Time-Optimization--LTO-/What-is-Link-Time-Optimization--LTO-#:~:text=Link Time Optimization is a,them to form the executable.

(I assumed LTO works on regular ELF object files and static libraries. ELF object files and static libraries only contain symbols and machine code, not a higher level representation. In which case LTO would need to prove to itself which registers are preserved to enable inlining.)

FYI: A week ago, at WWDC23, Apple introduced the concept of mergeable libraries that, they claim, combine the best parts of static and dynamic libraries. The main selling point appears to be improved build times. (Maybe there's something there that could be used for inspiration to e.g. minimize the impact of static linking on e.g. hot reload.)

If we know which functions are called in the native library, couldn't this also enable three-shaking of the native library? E.g if it is a huge library like OpenSSL but the user only calls one function of it, we could strip the rest to make binary size smaller. This would be amazing!

If we know which functions are called in the native library, couldn't this also enable three-shaking of the native library? E.g if it is a huge library like OpenSSL but the user only calls one function of it, we could strip the rest to make binary size smaller. This would be amazing!

That's precisely the point! :)

I think the most confusing point is that I use C to write a call to a function in a static library. Then I can find all the functions of this static library from Dart FFI, otherwise I can't get any.
For the problem of finding the functions exposed by the .a static library, I now write a C file that does nothing but forward parameters to the functions of the static library.


Remove experimental from serial_normalization in v20.2

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/ee9a082796d12bd0c487554d7b753348c730e833/
Edited pages:

v20.2/serial.md


[de] Add missing features to the main page

This pull request adds missing features to the main page, as one feature alone looks a bit strange.
I only added the feature blocks to the respective doc markdown files. The complete translation of the doc pages comes later in a separate pull request.

Thank you @termdew 👍
/lgtm
/approve

/lgtm


Data Table: footer navigation is not fixed

The kitchen sink example of "Data Table with footer pagination" on mobile phone: the footer is not fixed at the bottom and moves if user scrolls to the right (or left).
Describe the solution you'd like
The footer (unlike the header) should be fixed at the bottom and should not be moved with its content if user scrolls to right (or left)

This is for sure, can be done with some minimal custom CSS customization, e.g. setting position: sticky or something similar

Yes, I know but user expects that footer is sticky by default. Does not make sense to scroll it with its content because (unlike its headers) it is independent from its datatable content..


pull request for e2e test at 11/04/2016 21:55:58

Open Publishing Service
Your pull request has been validated and published.
Validation status: :white_check_mark:Passed
Here is the list of files that get changed in this pull request:

File
Status
Preview URL
Details

For more details, please refer to the publish report.

Open Publishing Service
Your pull request has been validated and published.
Validation status: :white_check_mark:Passed
Here is the list of files that get changed in this pull request:

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

Details

Here are detailed warnings/errors in each file:
For more details, please refer to the publish report.


fix: use react-query for mempool calls

Try out this version of the Hiro Wallet - download extension builds.

Per bug reported in splat channel, we need to better handle failed requests for mempool, as after retries are made, the wallet breaks atm.
This is a good chance to refactor the mempool logic out state mgmt, into react query. useQueries makes it super easy to get loading states per request etc. Currently this info is inaccessible to UI as its not exposed by the async atom.
I'm not going to finish this today. Not sure on priority of this issue, @fbwoolf feel free to continue if it is.
cc/ @andresgalante

@andresgalante is this priority over working on fee estimations?

Should we move this PR to QA?

@kyranjamie can you provide the information from Discord here directly for QA to test the resolution of the bug reported there?

@markmhx @fbwoolf fixed the bug last week in https://github.com/hirosystems/stacks-wallet-web/pull/1926.
This is a related refactor I started, but as it has already been fixed, this just requires a sanity check QA, that nothing mempool related has broken.

We'll merge this PR and do QA on the release PR


Draft proposal to move DataFusion to a new top level apache project

Is your feature request related to a problem or challenge?
In general, the idea of moving DataFusion to a new top level project within the Apache Software Foundation seems to have consensus (see https://github.com/apache/arrow-datafusion/discussions/6475)
Describe the solution you'd like
I would like a clear and concise proposal with a writeup of what it would take to "promote" DataFusion to a new top level project.
Describe alternatives you've considered
Tasks

[ ] Create a draft proposal
[ ] Submit a name search to ensure we can use the name  https://issues.apache.org/jira/browse/PODLINGNAMESEARCH
[ ] Submit the proposal to the board for consideration. For reference, this is the proposal sent for Arrow
[ ] (Hopefully) get approval for the board (for example, see the minutes of the meeting that created Arrow)

Naming
@andygrove  in order to do a name search / validation on DataFusion, one of the fields is "derivation". Do you have any background / text I can refer to related to how you picked the name DataFusion?
For reference, here is the relevant entry for the Arrow project:
https://issues.apache.org/jira/browse/PODLINGNAMESEARCH-92?jql=project %3D PODLINGNAMESEARCH AND description ~ Arrow

I started a discussion on initial PMC membership on the mailing list: https://lists.apache.org/thread/pymrzcdw4qdptvby85f69rg3pcckl15b

Just curious, will arrow-ballista be included in the new top project or still remain under arrow?

Just curious, will arrow-ballista be included in the new top project or still remain under arrow?

@liurenjie1024  that is an excellent question. I think ballista would naturally belong in the DataFusion project, but I don't know for sure.
I have stared a (new) discussion about that on the mailing list: https://lists.apache.org/thread/ob3n0d9ky0bgrryl3xn39w9k566bq00q

Just curious, will arrow-ballista be included in the new top project or still remain under arrow?

@liurenjie1024 that is an excellent question. I think ballista would naturally belong in the DataFusion project, but I don't know for sure.
I have stared a (new) discussion about that on the mailing list: https://lists.apache.org/thread/ob3n0d9ky0bgrryl3xn39w9k566bq00q

+1, it would be more nature to move ballista along with datafusion.

I have filed a name search request / research item on  https://issues.apache.org/jira/browse/PODLINGNAMESEARCH-219
The next step will be to pull the entire proposal together into one coherent document for discussion

Here is a draft proposal https://docs.google.com/document/d/11WTNYS8KWScOt3ySTX39WVS6krPhUvHsuJRY9PZQx4g/edit
I also sent a note to the arrow dev list:
https://lists.apache.org/thread/c150t1s1x0kcb3r03cjyx31kqs5oc341

The proposal is drafted and under review. ETA on a board vote is April 2024.  Details https://github.com/apache/arrow-datafusion/discussions/6475#discussioncomment-8022229
I am claiming the proposal is written so closing this ticket


[DOC] - Get Started dropdown in header missing content

Preliminary Checks

[X] This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/nebari-dev/nebari/discussions

Summary
The Get Started dropdown in the header is missing content when comparing it to the sidebar.

Steps to Resolve this Issue

...

Ignore the nebari-101 on the sidebar... the image is from a PR I'm working on


Add an option to ignore private rules ?

Private yara rules are not reported by yara when they match. I believe many people uses them for rules such as:
private rule IsPE {
    meta:
        description = "Ientifies Portable Executable binaries that has a valid magic in DOS and NT header"
    condition:
        (uint16(0) == 0x5A4D or uint16(0) == 0x4D5A) and uint32(uint32(0x3c)) == 0x00004550
}

Because these rules are never reported, and they are mostly referenced by other rules, does it make sense to ignore them in the validation process by adding a flag in the CLI or an option in the py package ?
This will save us from being obliged to add meta attributes to these rules. What do you think ?
Cheers.

I think this could make sense in general without a special flag. The idea of the metadata is to provide more definitive context on YARA hit (ie. if a rule hits in Assemblyline and the rule indicates the file belongs to certain malware family). So if the private rules don't show up in the hit, I don't see a lot of reason to perform the metadata validation on them (other than perhaps for consistency's sake 😅)

That's right. Maybe some folks would still prefer to run metadata validation on them, hence an optional flag. Maybe ON by default. which means don't skip validation on private rules.
I don't mind waiting for other ppl to give their opinion on this :)
Cheers.


can not enable pagination because of Scrollview

hi can you please use Flatlist in your npm library so that i can achieve pagination for my data

Thanks for bringing this up!
FlatList was not used because it's designed for linear lists and simple grid layouts based on uniform item sizes and relies on flexbox for layout.
Not adding pagination capability was an oversight, Rest assured, onEndReached onEndReachedThreshold will be incorporated in our next release to address this.

Hello @ritikakhelwar
A new version (0.1.7) has been published now with an implementation that covers pagination and also documented in README.md
You can see the usage example here

thank you! Its all good now


"skipFiles" setting completely ignores "<node_internals>"

VSCode Version: 1.47.0
OS Version: OSX Catalina 10.15.5

Steps to Reproduce:

Use "<node_internals>" inside skipfiles glob patterns
The editor will still step inside "<node_internals>/internal/modules/cjs/loader.js"

Tried all kinds of glob patterns and launch settings - none of them help. Depending on the combination of settings VSCode will step inside a different <node_internals> file.

Maybe it's got something to do with the fact that I'm trying to debug a package in a monorepo (something's off with the paths maybe?), but the skipFiles settings targeting node_internals are consistently ignored. Tried different TypeScript versions (3.8, 4), tried latest VSCode for Insiders as well - same thing. Also tried installing JavaScript Debugger (Nightly) v2020.7.1117 which has the same issue - if I step inside a module import, it doesn't step inside the module source code, but inside the node internals.

Does this issue occur when all extensions are disabled?: Yes

Same here.

VSCode Version: 1.47.0
OS Version: Windows 10 Home Insider Preview Single Language 20161.1000, with Ubuntu 20.04 LTS in WSL 2

In my case the editor always step into sync_hooks.js when call async functions

Thanks for the issue, fixed this this morning in https://github.com/microsoft/vscode-js-debug/issues/603
/duplicate


Update FileExtensionContentTypeProvider.cs...

...to support .webmanifest file extension, using the application/manifest+json content type. This is used to light up progressive web apps.
https://www.w3.org/TR/appmanifest/

@ctolkien,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Ping - any life in this?

We'd rather not add it before the draft is finalized.
Note that you can edit the list yourself in code to add and remove types as needed.

We'd rather not add it before the draft is finalized.

Fair enough. Aware I can edit it myself, but it's just one more thing to be done. Will leave this open and I'll keep an eye on the W3C status.

@ctolkien thanks for the PR!  As the draft has not finalized yet, I'm closing this PR. Please feel free to file a bug to track any future work based on the W3C draft status.  Thanks again.


Keyboard brightness read/write fails on TouchBar MBPs (>2016)

macOS sierra version: 10.12.5 (16F73)
mbp 15-in, 2016
Display controls work fine but keyboard read and write operations fail:
$ ./dbrightness
0.650391
$ ./dbrightness .8
$ ./kbrightness
getLightSensors() error: failed to find ambient light sensor
getKeyboardBrightness() error
0.000000
$ ./kbrightness 1.0
getLightSensors() error: failed to find ambient light sensor
setKeyboardBrightness() error
I will update with more info when I have some time to debug this evening (and will pr if I find the issue).

Thanks, you're not the only one to report this, but I haven't been able to fix it since it's not reproducible on my 2013 MacBook Pro.

Ok, well I will see if I can get anywhere with it this weekend.

Actually I think I fixed it 1d1daf1, pull master and give it a shot when you get a chance.
The binaries were just out of date from the c code (where I had removed getLightSensors), so I just recompiled them and pushed.

Still having an issue, but got a new error message:
$ ./kbrightness 1.0
Failed to connect to AppleLMUController
setKeyboardBrightness() error
$ ./kbrightness
Failed to connect to AppleLMUController
getKeyboardBrightness() error

Hmm the IOKit methods I'm using are all deprecated, it's possible Apple removed support for them when it added upgraded hardware in the 2015+ MBP models.
I can try copying over this newer swift code instead for krightness: https://github.com/bhoeting/DiscoKeyboard/blob/b50d1722007aadba1059e5324cc0a572419dfd54/DiscoKeyboard/Backlight.swift

Same is happening with DiscoKeyboard any leads on how to read KeyboardBrightness ?
I have a work around to set it by sending keystrokes but I can't read the value. I'll post it here soon.

Does ./dbrightness from the latest commit work?  If so I think I have a fix for you @Alex293.

Yes it does work,
./kbrightness give
Failed to connect to AppleLMUController
getKeyboardBrightness() error

Hello!
For me dbrightness works beautifully.
However kbrightness always returns 0.000000%
Now if I run blink, it gives me this error: setKeyboardBrightness() error
I am on a 2017 MacBook pro nTB

They changed the driver for the keyboard I'll post here soon how to read the value. But they didn't implemented the set function so we can't set the value without simulating the keyboard keys.

Got it!
Can we somehow implement the "simulating keyboard keys" part? I would love to have the keyboard flash when I get a notification for example :)

I haven't figured out how to do it by simulating key presses yet, but if you find a way, do post back!
This article says there isn't an easy way to do it via AppleScript, and I don't know Swift/ObjC well enough to do it there.
fn + F6 on my keyboard is keyboard brightness up, does it vary between macs?

static func readKeyboardBrigthness() -> Float?
{
let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleHIDKeyboardEventDriverV2"))
defer
{
IOObjectRelease(service)
}
let ser: CFTypeRef = IORegistryEntryCreateCFProperty(service, "KeyboardBacklightBrightness" as CFString, kCFAllocatorDefault,0).takeUnretainedValue()
if let result = ser as? Float {
return result
}
    return nil
}

if (sliderValue >= keyboardBrightness!)
{
print("Brightness : (keyboardBrightness), slider : (sliderValue), should go : up")
let code = NX_KEYTYPE_ILLUMINATION_UP
let event1 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xa00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xa << 8 as Int32))), data2: -1)
event1?.cgEvent?.post(tap: .cghidEventTap)
let event2 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xb00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xb << 8 as Int32))), data2: -1)
event2?.cgEvent?.post(tap: .cghidEventTap)
}
else
{
print("Brightness : (keyboardBrightness), slider : (sliderValue), should go : down")
let code = NX_KEYTYPE_ILLUMINATION_DOWN
let event1 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xa00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xa << 8 as Int32))), data2: -1)
event1?.cgEvent?.post(tap: .cghidEventTap)
let event2 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xb00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xb << 8 as Int32))), data2: -1)
event2?.cgEvent?.post(tap: .cghidEventTap)
}

@pirate the is no way to simulate key press for keyboard illumination but you can simulate nsevent sent when those keys are pressed.

Also now that I'm thinking about this, you may actually be able to listen to quicks change by listening to those events (in my second comment). Like first you read the value with the driver to get the initial value then you only listen to the events. I don't have time to experiment those days this but I will when I can.

Here is the start of an observer for IOKit. I does not work but I think its not so far :
import IOKit
import Foundation
let IOKitListenerNewDataNotificationIdentifier: NSNotification.Name = NSNotification.Name("IOKitListenerNewDataNotification")
let IOKitListenerNewDataNotificationKeyboardBrightnessIdentifier = "IOKitListenerNewDataNotificationKeyboardBrightness"
class IOKitListener: NSObject
{
//var masterPort : mach_port_t?
var isListenerActive : Bool = false
var service : io_registry_entry_t
var notificationPort : IONotificationPortRef?
//var notificationRunLoopSource : CFRunLoopSource?
//var info : Dictionary?

private override init()
{
    service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleHIDKeyboardEventDriverV2"))
}

//MARK: Shared Instance

static let shared: IOKitListener = IOKitListener()

func start()
{
    guard !isListenerActive else { return }
    notificationPort = IONotificationPortCreate(kIOMasterPortDefault)
    //let notificationObject : io_object_t
    IOServiceAddInterestNotification(notificationPort, service, kIOGeneralInterest, { (_, _, _, _) in IOKitListener.shared.didRefresh() }, nil, nil)
    IONotificationPortSetDispatchQueue(notificationPort, DispatchQueue.main)
    isListenerActive = true
}

func did (arg1 : UnsafeMutableRawPointer?, arg2 : io_service_t, arg3 : UInt32, arg4 : UnsafeMutableRawPointer?)
{
    didRefresh()
}

func stop()
{
    guard isListenerActive else { return }
    IONotificationPortDestroy(notificationPort)
}

func request()
{
    didRefresh()
}

func didRefresh()
{
    guard let result = IORegistryEntryCreateCFProperty(service, "KeyboardBacklightBrightness" as CFString, kCFAllocatorDefault,0).takeUnretainedValue() as? Float else { return }
    NotificationCenter.default.post(name: IOKitListenerNewDataNotificationIdentifier, object: nil, userInfo: [IOKitListenerNewDataNotificationKeyboardBrightnessIdentifier: result])
}

}

That looks awesome @Alex293 ! I've however never done macOS dev so I'm not sure how to execute it :(
I opened up a new Xcode project and made a cocoa app but it doesn't seem to play well with the code.

Look for a quick tutorial on the net with just a simple button in a controller then add one of the two part of my second comment.

Works nicely! :D

This didn't match my requirements but I'm happy that it still useful to someone !

As mentioned in https://github.com/pirate/mac-keyboard-brightness/issues/8 I now have a new mac to test this on, so I can hopefully get this working again sometime in the next few weeks.  Post any tips here if you have them.

Related issue: https://github.com/maxmouchet/LightKit/issues/1

As far as I can tell, the keyboard brightness is not present in the IORegistry at all :/
ioreg > before.txt
# changed keyboard brightness via touchbar
ioreg > after.txt
diff before.txt after.txt
# no indication of keyboard-brightness related changes in the difff

This means it's either controlled via some other secret API or is not accessible at all.  I'll keep investigating, but if I don't find anything we may have to resort to faking the key events as @Alex293 showed above.

I just reproduced the issue on my Machine:
$ ./brightness 0.85
Failed to connect to AppleLMUController
setKeyboardBrightness() error

$ neofetch
               .OMMMMo           OS: macOS 10.15.3 19D76 x86_64
               OMMM0,            Host: MacBookPro15,1
     .;loddo:' loolloddol;.      Kernel: 19.3.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 1 day, 19 hours, 21 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 123 (brew)
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.7.1
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 1920x1200@2x, 3840x1600@2x
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    WM Theme: Blue (Dark)
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   Terminal: iTerm2
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   Terminal Font: HackNerdFontComplete-Regular 12
    kMMMMMMMMMMMMMMMMMMMMMMd     CPU: Intel i7-8850H (12) @ 2.60GHz
     ;KMMMMMMMWXXWMMMMMMMk.      GPU: Intel UHD Graphics 630, Radeon Pro 560X
       .cooc,.    .,coo:.        Memory: 11195MiB / 16384MiB

Yeah there's no known fix unfortunately, the registry options that were used to control it in the past are no longer available on new machines.

Any news on this? I have the same issue.
cotfas:mac-keyboard-brightness work$ ./kbrightness
Failed to connect to AppleLMUController
getKeyboardBrightness() error
0.000000
cotfas:mac-keyboard-brightness work$

there's no known fix unfortunately

Just to clarify, there's no way to take command line control of the keyboard backlight for MacBook with Touch Bar?

Maybe
https://github.com/EthanRDoesMC/KBPulse


The Channel API feature has been deprecated and is going to be removed

Deadline October 31, 2017 https://cloud.google.com/appengine/docs/deprecations/channel
Alternative is using Firebase.

You can find inspiration here and on the internet (lot's of occurrences when searching for "howto replace channel api with firebase"


setup atlantis

Ran Plan for dir: . workspace: default
Plan Error
running "/usr/bin/terraform init -input=false" in "/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/default": exit status 1

Initializing Terraform Cloud...
╷
│ Error: Required token could not be found
│
│ Run the following command to generate a token for app.terraform.io:
│     terraform login
╵

atlantis plan

Ran Plan for dir: . workspace: default
Plan Error
running "/usr/bin/terraform workspace new default" in "/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/default": exit status 1: default workspace not supported
You can create a new workspace with the "workspace new" command.

goblok

atlantis plan -w area13

Ran Plan for dir: . workspace: area13
Plan Error
Show Output
running "/usr/bin/terraform init -input=false" in "/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/area13": exit status 1

Initializing Terraform Cloud...

Initializing provider plugins...
- Reusing previous version of digitalocean/digitalocean from the dependency lock file
- Reusing previous version of namecheap/namecheap from the dependency lock file
- Using digitalocean/digitalocean v2.21.0 from the shared cache directory
- Using namecheap/namecheap v2.1.0 from the shared cache directory
╷
│ Error: Failed to install provider from shared cache
│
│ Error while importing digitalocean/digitalocean v2.21.0 from the shared
│ cache directory: the provider cache at .terraform/providers has a copy of
│ registry.terraform.io/digitalocean/digitalocean 2.21.0 that doesn't match
│ any of the checksums recorded in the dependency lock file.
╵

╷
│ Error: Failed to install provider from shared cache
│
│ Error while importing namecheap/namecheap v2.1.0 from the shared cache
│ directory: the provider cache at .terraform/providers has a copy of
│ registry.terraform.io/namecheap/namecheap 2.1.0 that doesn't match any of
│ the checksums recorded in the dependency lock file.
╵

Plan Error
looking for atlantis.yaml file in "/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/default": found "atlantis.yml" as config file; rename using the .yaml extension - "atlantis.yaml"

Ran Plan for dir: . workspace: area13
Plan Error
Show Output
running "/usr/bin/terraform plan -input=false -refresh -out \"/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/area13/area13.tfplan\"" in "/home/faultable/.atlantis/repos/evilfactorylabs/area13/1/area13": exit status 1
╷
│ Error: No value for required variable
│
│   on variables.tf line 1:
│    1: variable "do_token" {
│
│ The root module input variable "do_token" is not set, and has no default
│ value. Use a -var or -var-file command line argument to provide a value for
│ this variable.
╵
╷
│ Error: No value for required variable
│
│   on variables.tf line 9:
│    9: variable "namecheap_username" {
│
│ The root module input variable "namecheap_username" is not set, and has no
│ default value. Use a -var or -var-file command line argument to provide a
│ value for this variable.
╵
╷
│ Error: No value for required variable
│
│   on variables.tf line 13:
│   13: variable "namecheap_api_user" {
│
│ The root module input variable "namecheap_api_user" is not set, and has no
│ default value. Use a -var or -var-file command line argument to provide a
│ value for this variable.
╵
╷
│ Error: No value for required variable
│
│   on variables.tf line 17:
│   17: variable "namecheap_api_key" {
│
│ The root module input variable "namecheap_api_key" is not set, and has no
│ default value. Use a -var or -var-file command line argument to provide a
│ value for this variable.
╵

Plan Error
parsing atlantis.yaml: yaml: line 13: mapping values are not allowed in this context

Plan Error
parsing atlantis.yaml: yaml: line 13: mapping values are not allowed in this context

Plan Error
parsing atlantis.yaml: repo config not allowed to set 'workflow' key: server-side config needs 'allowed_overrides: [workflow]'

atlantis plan

Plan Error
parsing atlantis.yaml: repo config not allowed to set 'workflow' key: server-side config needs 'allowed_overrides: [workflow]'

yowwwwww atlantis plan

atlantis plan

Plan Error
parsing atlantis.yaml: repo config not allowed to set 'workflow' key: server-side config needs 'allowed_overrides: [workflow]'

PLANNNNNN

coba plan

atlantis plan

Ran Plan for dir: . workspace: area13

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
Releasing state lock. This may take a few moments...

:arrow_forward: To apply this plan, comment:

atlantis apply -w area13

:put_litter_in_its_place: To delete this plan click here
:repeat: To plan this project again, comment:

atlantis plan -w area13

:fast_forward: To apply all unapplied plans from this pull request, comment:

atlantis apply

:put_litter_in_its_place: To delete all plans and locks for the PR, comment:

atlantis unlock

Locks and plans deleted for the projects and workspaces modified in this pull request:

dir: . workspace: area13

atlantis plan

Atlantis commands can't be run on closed pull requests


Untangle rails' ActionController enforcement of HTTPS from the name of the environment in which it is being executed

The PR untangles rails' ActionController enforcement of HTTPS from the name of the environment in which it is being executed:
It tries to maintain the old behavior by:

The default, when the ssl_required is not set, is to force SSL (as if it was set to true).
It adds the expected values for ssl_required for the four defined config environments.

The reason we are interested in this now is due to https://github.com/CartoDB/onpremises/pull/910
What is your view on this? I fear that certain app logic will make it difficult to opt-out of HTTPS entirely (which, as per https://github.com/CartoDB/onpremises/pull/910, is sadly something we need to work around).

Thanks @gonzaloriestra. It appears that the cloud CI tests do not use the environments config files, but rather get their configs from the sample file.
In any case, having this ssl_required config switch now, I would rather flip the logic on that one (which I had initially tried to maintain here) to instead have the default (when that parameter is missing or not set to true) be that the application not enforce anything (ideally this matter should not be a concern of the application code and rather handled elsewhere in the stack). Does this sound OK to you?

Ok, sounds good! :rocket:

Thank you @gonzaloriestra. Kindly merge whenever you feel ready.

@owayss all yours! Feel free to merge if you have already included the new config in cartodb-platform and tested it.

Tests performed in https://github.com/CartoDB/onpremises/pull/910/#issuecomment-647937949
Platform config changes merged in https://github.com/CartoDB/cartodb-platform/pull/6772
Merging!


Undefined index: /js/Manifest.js

Laravel Mix Version: 2.1.1
Node Version (node -v): 8.6.0
NPM Version (npm -v): 5.3.0
OS: ubuntu 16.04

Description:
Laravel 5.6 backend crashes upon rendering its default welcome blade template after the following code has been inserted right before closing  tag:
        <script src="{{ mix('js/Manifest.js') }}"></script>
        <script src="{{ mix('js/vendor.js') }}"></script>
        <script src="{{ mix('js/app.js') }}"></script>

Logfile says
Undefined index: /js/Manifest.js (View: /srv/development.domain.local/resources/views/welcome.blade.
php) {"exception":"[object] (ErrorException(code: 0): Undefined index: /js/Manifest.js (View: /srv/development.domain.local/resources/v
iews/welcome.blade.php) at /srv/development.domain.local/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:611, ErrorExcep
tion(code: 0): Undefined index: /js/Manifest.js at /srv/development.domain.local/vendor/laravel/framework/src/Illuminate/Foundation/hel
pers.php:611)

Steps To Reproduce:
Create new Laravel 5.6 project according to documentation.
Put  .extract(['vue']) in your webpack.mix.js as said in the Vendor Extraction section of mix documentation and put the following lines in your welcome.blade.php template
        <script src="{{ mix('js/Manifest.js') }}"></script>
        <script src="{{ mix('js/vendor.js') }}"></script>
        <script src="{{ mix('js/app.js') }}"></script>

so that they form the following template epilogue:
        <script src="{{ mix('js/Manifest.js') }}"></script>
        <script src="{{ mix('js/vendor.js') }}"></script>
        <script src="{{ mix('js/app.js') }}"></script>
    </body>
</html>

My package.json:
{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.18",
        "bootstrap": "^4.0.0",
        "cross-env": "^5.1",
        "jquery": "^3.2",
        "laravel-mix": "^2.0",
        "lodash": "^4.17.4",
        "popper.js": "^1.12",
        "vue": "^2.5.7"
    }
}

My webpack.mix.js:
let mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/assets/js/app.js', 'public/js')
    .extract(['vue'])
   .sass('resources/assets/sass/app.scss', 'public/css');

Hi! @skvskv
It is manifest.js , not Manifest.js .

public/js/manifest.js: Webpack manifest runtime

How about using the code below?
<script src="{{mix ('js/Manifest.js')}}"></script>

I am not good at English, it may be strange English... 😓

Had a similar issue,
Solution: npm install and npm run prod  or npm run dev if you doing this on your development server

@mojahige is correct. Don’t capitalize it.


RFE:  Add PVC mount for custom NAR directory

Add a PVC mount for the /opt/nifi/nifi-current/extensions directory so that custom NARs persist between restarts.

Good idea! I'll try to find some time to do it. Unless you beat me to it with a PR!

I have the code ready but am unable to create a branch in your repo.
ERROR: Permission to guimou/nifi-on-openshift.git denied to nnachefski.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Oh, you should fork the repo, and submit the PR from your the fork. Like this you will be able to modify, branch,... as you like as it will be your own repo.
Sorry, I won't change direct accesses for now as this repo will soon move to opendatahub-contrib.

PR submitted.
https://github.com/guimou/nifi-on-openshift/pull/12/commits/709767565bd5c4f0c716cde2acc32a061348d6f7

Feature implemented and merged in #12

I think there is still some config that needs to be added here (volumes?).  It's hard for me to test via Kubeflow.  Also, i re-deployed nifi via the Open Data Hub operator KfDef but still dont see the "extensions" change.

?-1 The volumes were there in your PR
?-2 Deploy with the ODH operator? Although this is conceptually feasible as it's a KfDef after all, that's not how I'm using this. If you are redploying on an existing installation, I'm also not sure reapplying the KfDef will kick off the creation of the volumes, and the modification of the StatefulSet. You may have to modify it manually.

Fixed in #13.
I tested it, the extensions are persisted and loaded when the pod restarts.


Release 0.8.2 -- Fixed Tests

Note: went ahead and made the react/react-dom 0.14.x and 15.4.x devDependencies changes discussed briefly in #809. I can easily revert that if anyone is uncomfortable with the idea, but then a discussion needs to be had around how to fix react-addons-test-utils issues.
Griddle major version
0.8.2 (fixes targeted for this version release)
Changes proposed in this pull request

Deprecating React 0.14.x and 15.4.x support in devDependencies
Fixing React Test Utils package dependency, along with related dependencies (ShallowRenderer)
Fixing es2015 Map constructor errors with a babel polyfill

Why these changes are made
To get passing tests!
Are there tests?
No new tests; all existing tests pass (as of this branch)

Tried a few things, but it seems like I can't update react-chartist to solve peer dependency errors in Node 4 and below due to some issues between the webpack:docs task and react-chartist 0.13.1.
Not sure how to proceed with that, but at least it seems to work fine in Node 5+

FWIW, @ryanlanciaux @joellanciaux the Chartist demo on https://griddlegriddle.github.io/v0-docs/customization.html is broken:

TypeError: root is undefined (ChartistGraph.js:177:108)
Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of OtherPager. See https://fb.me/react-warning-keys for more information. (react.js:19254:9)
TypeError: Chartist[type] is not a constructor (ChartistGraph.js:129:26)

Ahh - wonder if we should take that out.

Ahh - wonder if we should take that out.

Nobody seems to have noticed, so it doesn't seem worth bending over backward to manage the extra dependency just for docs. 🤷♂


Input doesn't return value from AutoCompleteItem when using react-hook-form

Hi, I'm having trouble using this library with react-hook-form.
import React from "react";
import * as yup from "yup";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import {
	Button,
	Flex,
	FormControl,
	FormErrorMessage,
	FormLabel,
	Input,
} from "@chakra-ui/react";
import {
	AutoComplete,
	AutoCompleteInput,
	AutoCompleteItem,
	AutoCompleteList,
} from "@choc-ui/chakra-autocomplete";

const schema = yup.object({
	country: yup.string().required(),
});

type Input = {
	country: string;
};

const Test = () => {
	const {
		register,
		handleSubmit,
		formState: { errors },
		setError,
	} = useForm<Input>({
		mode: "onBlur",
		resolver: yupResolver(schema),
	});

	const countries = [
		"nigeria",
		"japan",
		"india",
		"united states",
		"south korea",
	];

	const onSubmit = (values: Input) => {
		console.log(values);
	};

	return (
		<Flex pt="48" justify="center" align="center" w="full">
			<form onSubmit={handleSubmit(onSubmit)}>
				<FormControl w="60" isInvalid={!!errors?.country?.message}>
					<FormLabel>Olympics Soccer Winner</FormLabel>
					<AutoComplete openOnFocus>
						<AutoCompleteInput variant="filled" {...register("country")} />
						<AutoCompleteList>
							{countries.map((country, cid) => (
								<AutoCompleteItem
									key={`option-${cid}`}
									value={country}
									textTransform="capitalize"
								>
									{country}
								</AutoCompleteItem>
							))}
						</AutoCompleteList>
					</AutoComplete>
					<FormErrorMessage>{errors?.country?.message}</FormErrorMessage>
				</FormControl>
				<Button type="submit">Submit</Button>
			</form>
		</Flex>
	);
};

export default Test;

For the above example, when the user type "n", click "Nigeria" and press "Submit", only "n" appear in the console and not "Nigeria". Is this a bug?
Dependency list:
    "@chakra-ui/icons": "^1.1.7",
    "@chakra-ui/react": "^1.8.8",
    "@choc-ui/chakra-autocomplete": "^4.22.0",
    "@emotion/react": "^11",
    "@emotion/styled": "^11",
    "@hookform/resolvers": "^2.8.8",
    "framer-motion": "^6",
    "next": "12.1.5",
    "react": "18.0.0",
    "react-dom": "18.0.0",
    "react-hook-form": "^7.30.0",
    "yup": "^0.32.11",

Hi @rael346 Refer to this issue, for guidance on using RHF. https://github.com/anubra266/choc-autocomplete/issues/24


Term to use for 'output'

One of the most important terms to decide for a wallet2 rewrite is how to call the "constructs" that carry XMR within transactions. Some of the proposals in this issue here come from a discussion in the #monero-research-lab channel on 2022-07-25.
The "construct" in question is often called output quite in general, and of course especially as the result of a transaction. Right now a Monero transaction can have at most 16 such outputs. The same construct is then called input if it provides XMR to spend in a transaction. With usually no proper superordinate term the use of two terms input and output for the same thing depending on use can certainly be somewhat confusing.
The terms output and input are established in the realm of cryptocurrencies beyond Monero more or less since the beginning and therefore pretty "entrenched".
In current wallet2 code the name of the struct to handle the info of an input/output is called transfer_details, a choice seemingly made already by the original CryptoNote devs back in 2012 or so.
@UkoeHB coined a new term enote for his Seraphis library. enote is in analogy to terms like e-mail on the one hand and banknote on the other hand. An enote has an amount and an owner; it seems prudent to use owner and not destination because that's independent of use.
Another possibility is coin. Wallets that offer functionality to decide exactly which outputs to use as inputs for a transaction to do often speak of offering coin control.
One more proposal from the linked IRC discussion is ledger_entry. That may look attractive until you realize that there are pending transactions and prepared transactions "in transit" e.g. in the form of files for cold signing or multisig where whatever you call what they carry is of course not yet recorded in the ledger / blockchain.
My current personal opinion about this at the time of writing: Despite being well established output together with input is confusing and in lack of a term that encompasses both. transfer is quite unspecific, any you can easily mis-take it to mean a transaction as a whole. coin seems too "non-technical" to me for use in code. The mentioned problems make ledger_entry unattractive. I don't have an idea of my own for a good term. Thus what remains is enote.
In my view enote has one big advantage: It's fresh and not yet "worn out" like other term. Devs seeing it for the first time may puzzle over its meaning but once they know it there is almost no chance for confusion to arise.
I see no problem to use the terms input and output in a limited way, to specify the way a particular enote is used in the context of transaction construction.

eNote would get my vote as it seems a derivation from the words banknote and electronic mail.  In other words, electronic bank notes which is what Monero really is.  I have always disliked the term--coins.

Seen as decided (we use enote in Seraphis wallet coding) after discussion in the first workgroup meeting


Buttons cannot be clicked when Hand Physics Service is active with FingerTipKinematicBody selected in the Hand Physics Service profile

Description
MRTK buttons cannot be clicked when Hand Physics Service is active with FingerTipKinematicBody selected in the Hand Physics Service profile

To reproduce

Pull this repo containing a fully configured repro from git
Open in Unity
Hit play mode - this will show a button floating in front of you
Try to click a button - won't work
Disable the Hand Physics service or just remove the prefab from the profile
Button is clickable

Expected behavior
I expect the button to behave the same with or without this service activated
Your setup

Unity Version 2020.3.16f1
MRTK Version <IP_ADDRESS>

Target platform

HoloLens 2

Additional context
The same behavior can be observed in an app deployed on a HoloLens 2. Maybe related to/duplicate of 8259

Hi @LocalJoost, this sounds like it could be related to a past issue. Can you see if this solves your problem, https://github.com/microsoft/MixedRealityToolkit-Unity/issues/8465#issuecomment-689727087

I tried. Setting this checkbox does unfortunately not fix it.

As of today the problem still persists as described above.
Workaround for me was to use a CapsuleCollider instead of SphereCollider for fingertips (as triggers) and track them manually, e.g.:
HandJointService.RequestJointTransform(Microsoft.MixedReality.Toolkit.Utilities.TrackedHandJoint.IndexTip, Microsoft.MixedReality.Toolkit.Utilities.Handedness.Right);
And of course you also want to set "Registered Service Providers Profile" to None in MixedRealityToolkit > Extensions for it to work.

Thankfully I found this Issue soon enough. I have the same problem with Unity 2020.3.19f1 and MRTK 2.7.2.
As @franzabist reported, I have the same experience when pressing a button quickly it sometime works.

Is the issue resolved in newer versions of Unity or MRTK?

I found a workable solution.

We appreciate your feedback and thank you for reporting this issue.
Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.
Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.
Please note that MRTK3 was released in August 2023. It features an all new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visithttps://www.mixedrealitytoolkit.org.
Thank you for your continued support of the Mixed Reality Toolkit!


Reindexing with data from 1.1 release

Latest planet at:
https://github.com/geometalab/OSMNames/releases/tag/v1.1

Done.
Total lines in input file: 21 055 840
Processed lines: 21 055 701
Invalid lines: 139
Reported
Sphinx 2.2.10-id64-release (2c212e0)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
indexing index 'ind_charset'...
ERROR: index 'ind_charset': key 'path' not found.
indexing index 'ind_main_charset'...
ERROR: index 'ind_main_charset': key 'path' not found.
indexing index 'ind_name_prefix'...


filecoin calibration deployment addresses

Add new chain
Please fill the following form:
Provide the Chain ID (Only 1 chain id per PR).

Chain_ID: 314159

Provide RPC URL for the chain (should be able to query atleast 10 requests per minute for automatic PR check).

RPC_URL: https://api.calibration.node.glif.io/rpc/v1

Relevant information:
Add any other relevant information like blockexplorer, any annotation...

At the moment, we only support 1 Chain ID per PR. Could you make another PR for the different chain ID?

Sure thing
On Wed, Aug 7, 2024 at 11:52 PM Shebin John @.***>
wrote:

At the moment, we only support 1 Chain ID per PR. Could you make another
PR for the different chain ID?
—
Reply to this email directly, view it on GitHub
https://github.com/safe-global/safe-deployments/pull/730#issuecomment-2275079616,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASH4FPU2YJE7S7O6QXJGKTLZQMITBAVCNFSM6AAAAABL7HLRICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVGA3TSNRRGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Anon GOST3411

We have reviewed in real life. Gonna merge.

Looks good!

Let's give @switzer time for a final look and we're good to go :)


[2.5] Backport Missing Permissions in catalogs-manage GlobalRole

Issue:

https://github.com/rancher/rancher/issues/34592

Testing is the same as here though the UI steps are slightly different.

My checks PASSED
Reproduction Environment

Component
Version / Type

Rancher version
v2.5.11

Rancher cluster type
Docker

Docker version
20.10.7, build 20.10.7-0ubuntu5~20.04.2

Helm version
v2.16.8-rancher1

Downstream cluster type
RKE1 Linode

Downstream K8s version
v1.20.13

Browser type
Google Chrome

Browser version
96.0.4664.110 (Official Build) (x86_64)

Reproduction steps

Provision a downstream cluster
Create a standard user
Add the user to the downstream, navigate into the downstream cluster view and add them with the right roles Configure Catalogs
Sign in as user, navigate to Apps & Marketplace and try to edit the the chart repo url

RESULT
Unable to edit the chart repo url

Validation Environment

Component
Version / Type

Rancher version
v2.5-6ff6d08b210f5ce59f4c8dac817ae63af75a5d76-head

Rancher cluster type
Docker

Docker version
20.10.7, build 20.10.7-0ubuntu5~20.04.2

Helm version
v2.16.8-rancher1

Downstream cluster type
RKE1 Linode

Downstream K8s version
v1.20.13

Browser type
Google Chrome

Browser version
96.0.4664.110 (Official Build) (x86_64)

Validation steps

Provision a downstream cluster
Create a standard user
Add the user to the downstream, navigate into the downstream cluster view and add them with the right roles Configure Catalogs
Sign in as user, navigate to Apps & Marketplace and try to edit the the chart repo url

RESULT
Successfully able to edit the chart repo url


Merge pull request #5 from conda-forge/main

merge change

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender


VV-2527 Make SPI frequency and color depth configurable

Changes:

Make SPI frequency configurable
Make color depth configurable
Drive a LED when its RGB value is closer to on than off
Fix crash when a larger canvas is used

Tested:

Running on up to 4 times 64x32_8s displays
SPI frequency measured with a scope
Color depth reduction tested by observing no flicker when enabled

Imo it's a bit of a risk to not use the current master as base, since it will become increasingly hard to merge upstream changes once we need them. The changes in the master branch after the last release seem to be mainly related to added scan patterns?


Doubt about base image that already exist on target registry

Environment:

Jib version: 1.6.1
Build tool: Maven 3.6.0
OS: Linux Centos

Doubt
Hi team,
I see the log bellow on my build and it strange to me:
[INFO]
[INFO] --- jib-maven-plugin:1.6.1:build (default-cli) @ gesresrf-conector-api ---
[INFO]
[INFO] Containerizing application to harbor.myregistry.net/gesresrf/gesresrf-conector-api:1.5.2...
[INFO] Retrieving registry credentials for harbor.myregistry.net...
** [INFO] Getting base image harbor.myregistry.net/openjdk/openjdk:11-minimal...**
[INFO] Building dependencies layer...
[INFO] Building resources layer...
[INFO] Building classes layer...

That log "Getting base image" it's correct? My base image already exists on target registry. Maybe i can have a problem in this function or "Getting base image" is only verify if the image already exists there, like get the manifest?

Will leave this open to track the logging change.


refactor: move to rust 😎

🚧

@AnishDe12020 Are you still working on this PR or shall I close it?

@AnishDe12020 Are you still working on this PR or shall I close it?

Not right now, lemme close it


Catch the status of a child process as a stream error

I am using duplexify to create a duplex stream out of a child process. This enables me to create complex pipelines, combining processes with other streams. So, I wrote a simple function that wraps duplexify and child_process.spawn as follows:
function run(program, args) {
	const child = spawn(program, args, {
		stdio: ["pipe", "pipe", "inherit"],
	});
	const stream = duplexify(child.stdin, child.stdout);
	child.on("error", (err) => {
		stream.destroy(err);
	});
	return stream;
}

Now I can use the stream returned by run with stream.pipeline. The only issue that I have with this solution is that I would like run to wait for the child processes' exit status, and if it is not zero, forward an error to the duplex stream. I tried to address this by adding a final method as follows:
function run(program, args) {
	const child = spawn(program, args, {
		stdio: ["pipe", "pipe", "inherit"],
	});
	const final = (stream, callback) => {
		child.on("exit", (code, signal) => {
			if (code !== 0)
				callback(new Error("child process failed"));
			else
				callback();
		});
	};
	const stream = duplexify(child.stdin, child.stdout, {final});
	child.on("error", (err) => {
		stream.destroy(err);
	});
	return stream;
}

but the final function never gets called by duplexify. Is there a way to solve this issue with duplexify?

Modern days you can use async iterables instead of duplexify
I use spawn wrapper like
  const someCmd = (cmd:string) => {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    let resolve_ = (_value?: unknown) => {
      //
    };

    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    let reject_ = (_e: Error) => {
      //
    };

    const pWait = new Promise((r, rj) => {
      resolve_ = r;
      reject_ = rj;
    });

    const psql = spawn(execCmd, [...execArgs, ...commonArgs, '-c', cmd], {
      stdio: ['pipe', 'pipe', process.stderr],
    });

    psql.on('exit', code => {
      if (code != null && code > 0) {
        // throw new Error('process exited with error');
        console.error('EXIT CODE');
        reject_(new Error('process exited with non null code'));
      }
      resolve_();
    });

    // return stream;
    return async function* (source: NodeJS.ReadableStream) {
      if (source != null) {
        source.setEncoding('utf8');
        pipeline(source, psql.stdin, err => {
          if (err != null) {
            reject_(err);
          }
        });
      }

      for await (const chunk of psql.stdout) {
        yield chunk;
      }

      await pWait;
    } as never;
  };

Then
try {
await pipeline(
  eee(),
  someCmd(),
  blabla()
)
} catch(e) {
  <--- In case of spawn returns error code will be here
}


Update Invoke-Maester.ps1

Updated MailRecipient example description.

Good catch. Thanks for the PR @dnsinit 🙏


Allow additional recordActions

Currently, if you set any recordActions on a table they are overwritten in ListRecords as recordActions just replaces the array instead of merging the arrays.

Thanks!


Ubuntu install still failing on farmers in 1.2.90

The same "MAC check failed" error that is described in Issue #16 is still happening trying to run apple 1.2.90 on a farmer in Ubuntu.  Installs fine on harvesters, but I still have to run 1.2.30 for my farmer.

Actually, wow, even 1.2.30 is failing now.

Same problem in Debian - "MAC check failed". 1.2.30 works ok.

Okay, I figured out what that was.  Because the apple init is failing, the target addresses it set in the config.yaml were null.  When I fixed that, I was able to start with 1.2.30.

I'm having the same issue installing 1.2.90 on ubuntu 20.04. Going to try to install 1.2.30 first.