Wrong error message on missing module import

Description
Incorrect error message when you don't import any theme module which took quite alot of time me fiddling with the configuration and the json etc..
Minimal Reproduction

Bootstrap: https://stackblitz.com/edit/ngx-formly-ui-bootstrap
Material: https://stackblitz.com/edit/ngx-formly-ui-material
Ionic: https://stackblitz.com/edit/ngx-formly-ui-ionic
Primeng: https://stackblitz.com/edit/ngx-formly-ui-primeng
Kendo: https://stackblitz.com/edit/ngx-formly-ui-kendo

Open any of the example above
Navigate to app.module.ts and comment out or remove the import of the theme module. In my case i missed importing the FormlyBootstrapModule
Now if you check the console it throws the below exception

Error: [Formly Error] There is no type by the name of "input"

Your Environment

Angular version: 8.2.14
Formly version: 5.7.1

Additional context
Add any other context about the problem here.

The error message has been slightly improved in v5.7.2.
Thank you!


[WIP] Refactor the container creation to use clone(2) instead of fork.

Fix #87
Use clone(2) instead of fork to create the container process. Using clone(2) allows us to create new namespaces in a single function call. As a result, we create one process instead of two processes. The code also ended up cleaner and easier to follow.
Currently, the integration test on my local machine is breaking with errors in cgroups that are mentioned in other issues already. This PR didn't touch cgroup logic so unlikely this PR is causing it.
@utam0k I didn't change the comments and the docs in this PR yet. I'd like to get feedback from you first on the change. I tried to keep the original code as much as possible, but it was difficult. I ended up re-write more parts of the code than I originally imagined. If anyone else is touching this area, it will sure create merge conflicts. Let me know what you think.

There seems to be a large change that went in a few hours ago... I will resolve this.

There seems to be a large change that went in a few hours ago... I will resolve this.

Sorry... 😢

This is a big and great change.  I was prepared for the changes to be that big.
If it is no different from the existing behavior, merge it once. We will refactor it from merged. However, I need comments to help others understand it, so please do that.
@Furisto @tsturzl
What do you think?

If it is no different from the existing behavior, merge it once. We will refactor it from merged.

I am not 100% sure what you mean by that. Can you clarify?

This will take a while to review. I'll see if I can finish a review by tomorrow night.

This will take a while to review. I'll see if I can finish a review by tomorrow night.

If it is no different from the existing behavior, merge it once. We will refactor it from merged.

I am not 100% sure what you mean by that. Can you clarify?

@Furisto
I'm sorry 😢   I was trying to say that refactoring should be done in another PR if the behavior itself is fine in this PR. I expected that a major refactoring in this PR would put a lot of work on the author of this PR and would take a long time to merge this one. Of course, simple fixes should be done, but why not do major rewrites in a separate PR?

@utam0k I resolved the conflict and rebased it to the latest master branch. There should not be any behavior changes, other than now we create the container process using one clone instead of two fork calls. Hopefully, the code is also cleaner this way. Please let me know if you need anything.
@Furisto Most of the conflicts were with #138. I believe I resolved it correctly, but please double-check just in case.

Could you change the control flow diagram in docs/doc-draft.md?

Done

Sorry, I am busy with RL stuff today. Will take a look at this tomorrow.

This does not work for me. Tried
sudo docker run --rm --runtime youki busybox printenv
sudo docker run --rm -it --runtime youki busybox sh

both hang the shell. I highlighted the problematic areas. The first error is path must be shorter than SUN_LENwhich comes from the NotifyListener, specifically UnixListener::bind because the path is too long.
After I fixed this, I encountered another error which was that setup_console fails with "Bad file number" because during setup_console_socket it fails to find the socket file and creates an invalid file descriptor.  After that I was able to create a container, but could not exec into it, same problem I think.
The quick fix is to add back changing the working directory and using only the last component of the notfiy_name. I have made a mental note to rework how the setup of the NotifyListener and the console-socket is done, this is too easy to get wrong, not your fault.

Also sorry, didn't mean to commit that suggestion.

The first error is path must be shorter than SUN_LENwhich comes from the NotifyListener, specifically UnixListener::bind because the path is too long.

I was wondering why taking the extra steps to chdir... Maybe the solution is to chdir before bind and chdir back after, since this limitation is imposed on unix domain socket only? I will make a quick fix and leave the proper fix in a future PR.
Thanks for the review. Don't worry about the extra commit. I will clean it up with review and rebase.

So this is less so related to any changes in this PR, but I noticed while reviewing that we pass around a type we call FileDescriptor which is really just a raw file descriptor. I wonder if this is the right way to handle this, even if we do end up only needing the file descriptor we lose some guard rails at runtime over it. Acting on RawFd type isn't always safe or can cause EBADF. File and file-like objects generally are closed implicitly by the Drop trait, so passing around a File object instead of just it's file descriptor will usually give you some guarantee that the lifetime of the file descriptor and the lifetime of the File object are the same. I think in passing around a RawFd we might be holding a file descriptor to a file that is no longer open by the process. This could possibly be the reason why Furisto saw a EBADF because using a previously closed file descriptor means it no longer is valid.

In conclusion it might be worth the effort to pass around the file like object rather than the RawFd, and we could do this by allowing FileDescriptor to contain any type implementing AsRawFd. Ownership may become an issue then, but this would probably give us better runtime sanity

FileDescriptor was something I introduced in the early days of youki to create a useful function. However, it's currently in a half-baked state, and I think it's worth fixing.

The quick fix is to add back changing the working directory and using only the last component of the notfiy_name. I have made a mental note to rework how the setup of the NotifyListener and the console-socket is done, this is too easy to get wrong, not your fault.

@Furisto I fixed the NotifyListener and isolated the chdir logic around bind call. I also left a comment explaining the need to use chdir and the limit of unix domain socket path length. Hopefully this make it clear for future readers why chdir is needed, since I was really confused about it. I left the chdir logic for console-socket unchanged and put back the chdir call. I agree there should be improved in a different PR.
I tested with the 2 commands you mentioned as well. They seem to work correctly. However, the exec seems to not be working at the moment, even in master branch, so I suspect it is not this PR that's causing it. I will dig a bit more, but want to to see the fix to NotifyListener.

@Furisto I fixed it as you suggested. Combining with #153 I can successfully run docker run and docker exec.

lgtm

@yihuaf I tried to benchmark youki with a release build, but it seemed to fail to run because of this PR. Do you have any idea what it might be?
I tried to benchmark youki with a release build, but it seemed to fail to run because of this PR. Do you have any idea what it might be?

I expect that something is wrong around NotifySockt.
$ sudo YOUKI_LOG_LEVEL=debug ./youki create -b tutorial tutorial_container
[DEBUG src/container/init_builder.rs:89] 2021-07-26T19:16:11.038939918+09:00 container directory will be "/run/youki/tutorial_container"
[DEBUG src/container/container.rs:84] 2021-07-26T19:16:11.041038794+09:00 Save container status: Container { state: State { oci_version: "v1.0.2", id: "tutorial_container", status: Creating, pid: None, bundle: "tutorial", annotations: {}, created: None, creator: None, use_systemd: None }, root: "/run/youki/tutorial_container" } in "/run/youki/tutorial_container"
RUN CONTAINER
[INFO src/cgroups/common.rs:125] 2021-07-26T19:16:11.042030660+09:00 cgroup manager V2 will be used
[DEBUG src/container/builder_impl.rs:91] 2021-07-26T19:16:11.042572219+09:00 init pid is Pid(101195)
[DEBUG src/rootfs.rs:34] 2021-07-26T19:16:11.042734143+09:00 mount root fs "/home/utam0k/ghq/github.com/utam0k/youki/tutorial/rootfs"
[WARN src/rootfs.rs:48] 2021-07-26T19:16:11.043335406+09:00 A feature of cgroup is unimplemented.
[DEBUG src/capabilities.rs:21] 2021-07-26T19:16:11.043791182+09:00 reset all caps
[DEBUG src/capabilities.rs:28] 2021-07-26T19:16:11.043800345+09:00 dropping bounding capabilities to [CAP_AUDIT_WRITE, CAP_KILL, CAP_NET_BIND_SERVICE]
[WARN src/syscall/linux.rs:132] 2021-07-26T19:16:11.043809634+09:00 CAP_PERFMON is not supported.
[WARN src/syscall/linux.rs:132] 2021-07-26T19:16:11.043824355+09:00 CAP_CHECKPOINT_RESTORE is not supported.
[WARN src/syscall/linux.rs:132] 2021-07-26T19:16:11.043832108+09:00 CAP_BPF is not supported.
[DEBUG src/process/parent.rs:78] 2021-07-26T19:16:11.043919536+09:00 [child to parent] sending child ready

@utam0k I can't reproduce the behavior on my end. I tried docker run -it --rm --runtime youki busybox echo hello  with the current master branch. Do you have the benchmark command for me to try? Also, when you say failed, what is the behavior?

The log also looks correct.

As discussed offline, the issue happens when building the released version of the binary. #163 filed.


[Feature] Disable task runOn:folderOpen for multi-root workspace

I use the official "open multiple terminals on vscode open" task behaviour.
But now I'm working in a multi-root workspace, where each project automatically opens (multiple) terminals.
The net result - when opening the multi-root workspace - is dozens of terminals are opened.
It would be nice to disable that behaviour when a multi-root workspace is detected. Maybe something like:
"runOptions": {
  "runOn": "folderOpen",
  "runForMultiRootWorkspace": false      // <----- default true, for backwards compatibility
}

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

You can do this by setting task.allowAutomaticTasks in your workspace settings.


Set Operation Mode and Temperature Target

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
Additional control of the API if possible. Setting the modes and temperature target when setpoint is used.
Describe the solution you'd like
Add the ability through service call methods to set the operation mode and target temperature
service: water_heater.set_operation_mode
data:
entity_id: water_heater.aquanta_a_water_heater
operation_mode: setpoint
service: water_heater.set_temperature
data:
entity_id: water_heater.aquanta_a_water_heater
temperature: 130
Describe alternatives you've considered
Exposing a switch would be ideal.
Additional context
May reference:
https://github.com/alexanv1/customcomponents/tree/master/aquanta

Thanks for the request! I agree this would be a great enhancement.
The challenge with this is that I'm using this package from pypi which doesn't expose these abilities currently. The other aquanta custom component linked to does offer this functionality, but it's doing it by making requests to HTTP endpoints manually instead of using a separate python package to handle it (which is the HA best practice).
I think the best solution will probably be to fork the pypi package, implement the enhancements into that, and either get the original developer to merge the changes in or release a new package on pypi. Then I can update this integration to make use of the new functionality.
I'll plan to work on these changes as time permits, I don't think it should be very difficult as long as the API that the pypi package connects to is either the same or offers similar functionality.

Additionally, add set_performance_mode

An update that may be useful to those using aquanta.
I have two water heaters. One is in away mode, temperature/manual mode, the other is intelligence with the 'efficient' setting.
I wrote a custom program using http requests for setting temperature or intelligence modes, and performance modes (low, efficient, high). Pushing the button will toggle the modes and set the temperature based on the input select.
Implemented using templates and 'custom:button-card'
One interesting note, is that your implementation doesn't preserve the temperature state, so the history graph is 'unavailable' several times. May need to implement a 'var' or similar to keep the last value then update.

Thanks for the additional info!
Out of curiosity, and in case it might help with the full implementation, would you be willing to share the details of the HTTP requests you're using to make those changes? I'm curious if they're using the same API endpoint as the integration or not.
It seems like we should make a separate issue for the statistics gaps to keep this one focused on adding the missing API functionality. I'll create one to continue that discussion.

Out of curiosity, and in case it might help with the full implementation, would you be willing to share the details of the HTTP requests you're using to make those changes? I'm curious if they're using the same API endpoint as the integration or not.

Will do. I found a couple of bugs, and working through them. I implemented it with HTTP/python, and a combination of input_numbers, automation, command line sensors and scripts. Seeing if I can simplify it a bit more.

Out of curiosity, and in case it might help with the full implementation, would you be willing to share the details of the HTTP requests you're using to make those changes? I'm curious if they're using the same API endpoint as the integration or not.

Here is the core code that seems to be working for me. I borrowed quite a bit from Alex's code, he built the original Aquanta API calls. I also 'import dill' to save the entire session then load it again, to reduce the number of login calls. Keeps the session cache.
You would need to get the device IDs for each water heater. I have two, and just hard coded them.
I can set temperature, or use intelligence mode. For the latter, I can set less, efficient, or most efficient. You wouldn't need to update the status again, as you have that in your code.

API_BASE_URL = "https://portal.aquanta.io/portal"
API_LOGIN_URL = f"{API_BASE_URL}/login"
API_SET_LOCATION_URL = f"{API_BASE_URL}/set/selected_location?locationId="
API_SETTINGS_URL = f"{API_BASE_URL}/get/settings"
API_GET_URL = f"{API_BASE_URL}/get"
API_SET_SETTINGS_URL = f"{API_BASE_URL}/set/advancedSettings"
API_EFFICIENCY_SELECTION = f"{API_BASE_URL}/set/efficiencySelection"
CONTROL_MODE_INTELLIGENCE = "Aquanta Intelligence"
CONTROL_MODE_TEMPERATURE = "Set Temperature"
WATER_HEATER_ID_A = 1
WATER_HEATER_ID_B = 2
VERBOSITY = 0
###################
###FUNCTIONS
###################
def check_response(response: requests.Response):
if response.status_code != 200:
logPrint(f'Operation failed, status = {response.status_code}, response = {response.text}', 1)
return

def login(username: str, password: str):
session = requests.Session()

login_data = dict(email=username, password=password, returnSecureToken=True)
verifyPasswordResponse = session.post("https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=AIzaSyBHWHB8Org9BWCH-YFzis-8oEbMaKmI2Tw", data=login_data)
check_response(verifyPasswordResponse)
logPrint(f'Received VerifyPassword response, status = {verifyPasswordResponse.status_code}, json = {verifyPasswordResponse.json()}')

idToken = dict(idToken = verifyPasswordResponse.json()["idToken"])
loginResponse = session.post(f"{API_BASE_URL}/login", data=idToken)
check_response(loginResponse)
logPrint(f'Received login response, status = {loginResponse.status_code}, json = {loginResponse.json()}')

return session

class Aquanta():
def __init__(self, username, password, location):
    self._username = username
    self._password = password
    self._location = location

    self._session = None
    self._login_time = None
    self._session = None
    self._data = {}
    self._settings = {}

def check_login(self):

   if self._session is None or (datetime.now() - self._login_time > timedelta(minutes = 30)):
      # Login again after 30 minutes
      self._session = login(self._username, self._password)
      self._login_time = datetime.now()
      self.set_location()
      logPrint("new session",0)
   else:
      logPrint("session continues!",0)

def update_location(self, location):
    self._location = location

def set_location(self):
    response = self._session.put(f"{API_SET_LOCATION_URL}{self._location}")
    logPrint(f'Set location to {self._location}, status = {response.status_code}')

def update(self):

    self.check_login()

    try:
        response = self._session.get(API_GET_URL)
        check_response(response)
        logPrint(f'Received {API_GET_URL} response, status = {response.status_code}, json = {response.json()}')
        self._data = response.json()

        response = self._session.get(API_SETTINGS_URL)
        check_response(response)

        logPrint(f'Received {API_SETTINGS_URL} response, status = {response.status_code}, json = {response.json()}')
        self._settings = response.json()

    except:
        logPrint(f'Update error, will try to login and retry on the next update interval.')
        self._session = None

@property
def state(self):
    return self._data

@property
def performance_mode(self):
    return self.state["efficiencySelection"]

@property
def aquanta_intelligence_active(self):
    return not self.settings["aquantaIntel"]

@property
def settings(self):
    return self._settings

@property
def target_temperature(self):
    return round(float(self.settings["setPoint"]) * 1.8 + 32)

def set_performance_mode(self, performance_mode: str):
    self.check_login()
    json = {"efficiencySelection": performance_mode}
    response = self._session.put(API_EFFICIENCY_SELECTION, json=json)
    logPrint(f'Performance mode set to {performance_mode}. Received {API_SET_SETTINGS_URL} response, status = {response.status_code}')
    check_response(response)

    self.update()

set target temperature or intelactive where temperature is ignored
intelactive: True sets aquaintelligence active, False sets temperature control
def set_target_temperature(self, target_temperature, intelactive: bool):
    self.check_login()

    json = {
                "aquantaIntel": not intelactive,
                "aquantaSystem": False,
                "setPoint": (target_temperature - 32) / 1.8
            }

    response = self._session.put(API_SET_SETTINGS_URL, json=json)
    logPrint(f'Target temperature set to {target_temperature}. Received {API_SET_SETTINGS_URL} response, status = {response.status_code}')
    check_response(response)

    self.update()

portal = "portal.aquanta.io/views/"
if setting == "state":
if value == "efficiency":
if my_device.aquanta_intelligence_active:
print(my_device.state["efficiencySelection"])
else:
print(my_device.target_temperature)
else:
print("Not implemented")
elif setting == "efficiency":
my_device.set_target_temperature(target_temperature, True)
if value == "Less":
my_device.set_performance_mode("Less Efficient")
elif value == "Most":
my_device.set_performance_mode("Most Efficient")
else:
my_device.set_performance_mode("Efficient")
elif setting == "temperature":
target_temperature = float(value)
my_device.set_target_temperature(target_temperature, False)

Found my way here from the Home Assistant forums.  Implemented @bmcclure's awesome integration via HACS and noticed two interesting things:  (1) the frequent "unavailable" interrupts (mentioned above); and (2) a good surprise that it appears I can control the thermostat/setpoint from the device (see control immediately below the boost/away toggles) even though Ben mentioned in the OP that only boost and away could be controlled:

I'm using the latest version from HACS -- what would you guys recommend to address these two issues? @Mark612's implementation above is square on what I'm trying to do, but I'm not sure if that code has been pulled in, or is available as a separate fork somehow?
Appreciate any guidance -- and again, thanks for the awesome work so far!

Found my way here from the Home Assistant forums. Implemented @bmcclure's awesome integration via HACS and noticed
Appreciate any guidance -- and again, thanks for the awesome work so far!

I use the process I described above. Var variables to solve the issue of the Aquanta api timing out, to save the last known good value. I also used my own code, independently, to set other parameters not provided in the integration.
I hope to help with the integration to merge my code in the future.

@Mark612 nicely done with your app.  Is your a HA custom component or a freestanding app or?  Willing to share?
Also, I’ve been scouring the web trying to find the http syntax to control setpoint and other parameters.  Sounds like you coded to the http calls — can you point me to a link or something where the syntax is documented?  TIA…

@Mark612 HA custom component or a freestanding app or? Willing to share?
Also, I’ve been scouring the web trying to find the http syntax to control setpoint and other parameters. Sounds like you coded to the http calls — can you point me to a link or something where the syntax is documented? TIA…

See my posts above, you can see I use a https and sessions library to access the API portal. I use this as a freestanding app, called 'aquanta' in my coding folder, then integrate the commands into home assistant.
command_line:

sensor:
name: Aquanta A Performance
scan_interval: 604800
command_timeout: 21
command: "/config/coding/aquanta a state efficiency"

sensor:
name: Aquanta B Performance
scan_interval: 604900
command_timeout: 21
command: "/config/coding/aquanta b state efficiency"

And as a command.yaml to set the efficiency or change the temperature. I have 2 water heaters:
aquanta_a_intelligence: /config/coding/aquanta a efficiency {{variables}}
aquanta_b_intelligence: /config/coding/aquanta b efficiency {{variables}}
aquanta_a_settemp: /config/coding/aquanta a temperature {{variables}}
aquanta_b_settemp: /config/coding/aquanta b temperature {{variables}}

Ah I think I may have misunderstood.  I thought you were saying that Aquanta supports http calls directly (e.g., http:/aquanta.io/user=xyz&tank=xyz&setpoint=125, or whatever syntax).  Guess this explains why I couldn’t find documentation anywhere!
Since I’m an HA noob, I was going to hack a solution via http calls directly at least temporarily for setpoint temp and efficiency.    Candidly I’m not sure where to start with your app code earlier in the thread, nor the commands immediately above.  I will happily take any direction and aggressively try to push forward on my own if you’re willing to provide a startpoint?
Regardless, very much appreciate the reply.

y. Candidly I’m not sure where to start with your app code earlier in the thread, nor the commands immediately above. I will happily take any direction and aggressively try to push forward on my own if you’re willing to provide a startpoint?

Regardless, very much appreciate the reply.

I'll see if I can post my code up, and you can get it going. Even better, work with bmcclure to merge in the additional functionality needed, as described in this open issue.

@Mark612 hey there, it’s been a few months since we messaged about this.  Been patiently waiting 😜
I’m still hopeful of using your code to better integrate our Aquantas with HA.  I see your code above but, as an HA noob, I’m not quite sure how to deploy/install.   I’ve tried a few things, none of which worked.   Appreciate any pointers!


Remove semicolons to comply with JavaScript Standard style

I'm new to open source & thought I could contribute something simple to a library I love. The Collaborator-Guide.md says to follow standard style which calls for no semi-colons. I've noticed tons of files still have semi-colons.
I searched through the issues & didn't see anybody else proposing to remove them, so mind if I take a whack at it?

I think there was discussion around this is one of the issues, but essentially removing them would change almost ever line, making all existing PRs unmergable. Instead we are just applying the rule to new and changed lines for the time being.

Got it. I understand.


[Bug] pyobis.occurrences: MoF throws error for species with no occurrence records

Overview
When accessing MoF records for species that do not have a corresponding occurrence records, we encounter an unexpected error.
Steps to reproduce

Install pyobis
Run

import pandas as pd
from pyobis import occurrences as occ
res = occ.search(taxonid=124705, mof=True, hasextensions='MeasurementOrFact')
pd.Concat(res)

Error
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    res = occ.search(taxonid=124705, mof=True, hasextensions='MeasurementOrFact')
  File "/mnt/d/programming/pyobis/pyobis/occurrences/occurrences.py", line 96, in search
    a = pd.merge(pd.DataFrame(out["results"]),mofNormalized,on='id',how='inner')
  File "/home/ayush/.local/lib/python3.8/site-packages/pandas/core/reshape/merge.py", line 107, in merge
    op = _MergeOperation(
  File "/home/ayush/.local/lib/python3.8/site-packages/pandas/core/reshape/merge.py", line 700, in __init__
    ) = self._get_merge_keys()
  File "/home/ayush/.local/lib/python3.8/site-packages/pandas/core/reshape/merge.py", line 1097, in _get_merge_keys
    right_keys.append(right._get_label_or_level_values(rk))
  File "/home/ayush/.local/lib/python3.8/site-packages/pandas/core/generic.py", line 1840, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'id'

I am working on this issue. My initial plan of action is to introduce a null check constraint while extracting the MoF records.


Remove public facing and CI references to 32 bit linux support.

As noted in the release notes for 0.56, it is the last release to support linux-32 (i.e. linux running on 32 bit x86 hardware). This patch series:

Removes 32 bit linux support from the build scripts/conda recipes.
Removes 32 bit linux builds from Azure CI.
Fixes up the documentation to not refer to linux-32 as supported.
Removes references to other 32 bit linux systems which are no longer tested/supported, i.e. armv6l and armv7l.

This patch series does not address changes needed to the code base itself that are necessary to remove linux-32 support.
This PR depends on merging #8422, that patch is included as the first in the series for this PR as it touches the same code.

Removal of the 32-but testing infrastructure can also be found in one of my commits in #8319.

Some co-authorship attribution here would be appreciated based on my commit to drop the 32-but Linux support from the CI back on August 11th (https://github.com/numba/numba/pull/8319#discussion_r943924791).

Some co-authorship attribution here would be appreciated based on my commit to drop the 32-bit Linux support from the CI back on August 11th (#8319 (comment)).

Many thanks for your contributions - our plan here would be to merge this PR (since it's finished review) and to add a statement acknowledging your contribution to the release notes pertaining to this PR, which would probably read something like:
"In addition, we are grateful for the contribution of @jamesobutler towards a similar goal in PR #8319".

@stuartarchibald @gmarkall @jamesobutler thank you for getting this over the line! Excited to see this happen!

Some co-authorship attribution here would be appreciated based on my commit to drop the 32-bit Linux support from the CI back on August 11th (#8319 (comment)).

Many thanks for your contributions - our plan here would be to merge this PR (since it's finished review) and to add a statement acknowledging your contribution to the release notes pertaining to this PR, which would probably read something like:
"In addition, we are grateful for the contribution of @jamesobutler towards a similar goal in PR #8319".

For reference, the CHANGE_LOG update for 0.57.0 is in #8869, the above attribution is made in commit 1f49611. CC @gmarkall @jamesobutler.


fix wrong parameters passed to EnforceExecExternalProcessPolicy

Fixes GCS panic, because OCIProcess for exec external is nil.
For exec external process we don't use OCIProcess field of ProcessParameters, but instead use the top level CommandArgs, Environment and WorkingDirectory.
Signed-off-by: Maksim An<EMAIL_ADDRESS>

@matajoh FYI


Update OpenStack-Ansible SHA to tip of liberty

This commit updates the OpenStack-Ansible submodule to use the tip of
the liberty branch.
This update addresses one issue currently being tracked where the
Percona signing key for Apt packages has changed.
Connected https://github.com/rcbops/rpc-openstack/issues/1515

👍 The SHA matches the current tip of Liberty

This is blocked on an upstream bug, @hughsaunders is in the process of submitting a fix.

I don't know how this SHA can be good, the proper commits have not yet merged...

Could someone link the upstream bugs, please?

@alextricity25, guessing it's https://review.openstack.org/#/c/388685/ we're waiting on.

The additional upstream fix is now included and this is ready for review.

:+1:

:+1:


Detect inclusion dependencies

This still needs to be wired up with our queueing system, but the logic should be there.
This is essentially a two-step process (although 2 and 3 can live in the same queueing step):

Go through each dataset and collect some summary statistics (e.g. whether the dataset was unique, the number of distinct values, etc).
For each dataset:

Find all the columns it could be foreign keys to, using the summary statistics to prune the search space. (Right now, each column has ~250 potential foreign keys with these statistics. I was actually thinking of doing a bloomfilter / hash set type thing to prune things even more, but that's also for the future).
For each potential inclusion dependency, use a WHERE NOT EXISTS query to double-check that we have a real inclusion dependency.

This is actually an algorithmically inefficient way of doing things because we have to loop over the same columns potentially hundreds of times -- there's a more efficient algorithm called [SPIDER](https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/deliver/index/docId/4016/file/tbhpi34.pdf. However, this successfully processes ~2000 datasets in about 3 hours. I think with more aggressive pruning in step 2-1, this should be fast enough for our data.
r? @alexander-yu @dennis-wei

@alexander-yu I'm going to merge this in now to avoid more conflicts.

Codecov Report

Merging #40 into master will decrease coverage by 8.52%.
The diff coverage is 15.51%.

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
- Coverage    68.3%   59.77%   -8.53%
==========================================
  Files          11       13       +2
  Lines         306      363      +57
==========================================
+ Hits          209      217       +8
- Misses         97      146      +49

Impacted Files
Coverage Δ

nycodex/inference/__init__.py
0% <0%> (ø)

nycodex/db/inference.py
100% <100%> (ø)

nycodex/db/__init__.py
100% <100%> (ø)
:arrow_up:

nycodex/db/metadata.py
96.51% <50%> (-3.49%)
:arrow_down:

Continue to review full report at Codecov.

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


Conncection speed issues Windows client vs Android client

Dear Outline Team,
first of all thanks for your awesome project and work, it helped me immensely in the past weeks!
I have succesfully set up my own Outline Server and it is working fine so far - the only issue I am having is the connection speed on the Windows client.
In Windows, speed doesn't go above 30mbps. However, using the android client on the same network, i get speeds up to 100mbps.
What might cause that disparity? Is it client side or server side?
Any help would be greatly appreciated!
Cheers,
emryysDE

Can you please let me know what provider are you using? Digitalocean?

Digitalocean as well as the Google Cloud are unfortunately blocked by my ISP, so I found another provider at De-CIX called Synlinq.
Setup was fine and things are running smoothly, except for the connection speed in Windows.

Thank you for reaching out! If this is still an issue for you, please contact us at support.getoutline.org and include the GitHub issue number so that we can better support your needs.
If you haven’t already, check out the Outline Support Site at support.getoutline.org for access to help articles and more.


ListView controller

Could you expose the set of the ListVIew controller?
Thanks :)

Now you add your own ScrollController in v0.2.0 using the attribute scrollController. Thanks for using the package, feel free to reopen if you face any issue.


Use actions/toolkit

The github actions documentation encourages using actions/toolkit
Ok, this one became more complicated than initially thought. Changing from a composite action to a js action requires a compilation step of a dist/index.js file. Not sure if it's worth having the additional steps.

:books: Documentation preview :books:: https://readthedocs-preview--30.org.readthedocs.build/en/30/

Hi! I'm a little new on the GitHub Actions world. Can you please explain to me what are the benefits of actions/toolkit over the current pattern we are following here?

Initially I thought it can make it cleaner and more in line with upstream documentation, but having to enforce a compilation workflow is a bit of a disadvantage. Maybe if we push compilation commits automatically, it wouldn't be that bad.
Other than that there can be some benefits:

One less checkout action to call and manage. All source is directly accessed by the current action caller. This also ensures that other gh action callers can use a fork version for testing
Simpler reusability
Allows to use external libraries from npm
Unit testing eventually


Add license

It is a good practice to add a license in order to avoid tricky copyright issues when new users want to contribute or use this software. I think we could use the CC-BY-4.0 license, but it may be other license as well.

created LICENSE.md


Cleaned up the song position bar code and health bar color code

Hopefully this goes well since im not 100% confident in making pull requests, so here we go lmao.

Cleaned up the health bar color codes from a previous PR so its a more streamlined String -> FlxColor Map in CoolUtil, and made it so the status for it on the options menu doesnt go off screen
Made it so the song position bar is only made once (this might've been on purpose? not sure) and the song name text should be properly centered now.

Hey thanks for cleaning up my code! However, The Colors Don't Match As Well. Here is The Better Colors That Matches! (oh and if you can make it so the spooky kids in week 2 and the parents in week 5 their color is random because, there is two of them.)
bf = 0xFF31b0d1
gf = 0xFFa5004d
dad = 0xFFaf66ce
spooky kids = 0xFFb4b4b4 (skid) or 0xFFd57e00 (pump)
monster = 0xFFf3ff6e
pico= 0xFFb7d855
mom = 0xFFd8558e
parents = 0xFFd8558e(mom)  or 0xFFd57e00 (dad)
senpai = 0xFFffaa6f
spirit = 0xFFff3c6e

Hopefully this goes well since im not 100% confident in making pull requests, so here we go lmao.

Cleaned up the health bar color codes from a previous PR so its a more streamlined String -> FlxColor Map in CoolUtil, and made it so the status for it on the options menu doesnt go off screen
Made it so the song position bar is only made once (this might've been on purpose? not sure) and the song name text should be properly centered now.

oh yeah yo thing dont work

Conflicts, and this is just generally meh?


Provide readonly mode to Harbor

P0: Once it's set user can only pull images, and the API to modify data should be turned off too.  A meaningful error should be returned.
Stretch goal: Disable UI elements
This is step one to cover https://github.com/vmware/harbor-planning/issues/3

Close as there's dup #3569


Create a Test Specification document for ds VideoDevice

Create a Test Specification document for VideoDevice to covers L2, L3

merged to develop


docs(tabs): fix incorrect select change event name

The current documentation didn't match with the source code of the tabs component, which says that the
attribute should be selectChange instead of selectedChange

Closes #856

LGTM


Is there any reason to return all of the PT chains, or should only the one where beta = 1 be returned in all cases?

Title really, as a result of PT we end up with n chains for n inverse temperatures, one of these must be at an inverse temp of 1, i.e. the "correct" logdensity, do the other chains have any use? More a reminder to myself to read into if the others can be used for anything, but if anyone has ideas let me know here.

This can be achieved using a state history callback, given these chains can have some utility, shall we plan to support this more directly? What do you think @torfjelde ?

IMO no because you can always access this by running step and calling transition_for_chain, etc.
The sample should return just what "standard" user needs, nothing more. Then if you want to do more complex stuff, then step and callbacks should be used:)

Fair enough, I think as the package matures it may well be the case that we want to support a "friendly" way for people to diagnose potential mixing issues and so on at higher temperatures, in theory a naive way to tune a ladder would be to observe the mixing at the hottest level and if its poor then you probably havent tempered enough right? I would envision it being some boolean on the sampler that defaults to false but returns one chain per temp when true. Alternatively we could just export that callback you made as that might be a more Turing approach, this can be on the backburner though. I will close this for now and if it comes up we can rethink.

IMO no because you can always access this by running step and calling transition_for_chain, etc.

You can access this by running step, but that's a substantially lower-level interface than most users will want to deal with. I don't see what the disadvantage of including this as a named tuple in the info field would be.


[Accessibility]A11y_AzureDataStudio_NotebookQueryTable_ScreenReader:Voice over is announcing the column header two times for the table.

Check out Keros! - Identify accessibility bugs before check-in and make bug fixing faster and easier.
Environment Details:
Application name: Azure Data Studio
Version: 1.8.0-insider (user setup)
Commit: 2ca39b5
Electron: 3.1.8
Node.js: 10.2.0
V8: 6.6.346.32
OS : MacOS Mojave 10.14.5
Additional Details:
Tools Name: Voice Over
MAS Number :MAS1.3.1,MAS4.2.3
Steps to Reproduce :
1.Install the app Azure Data Studio.
2.Connect to the Database->Go to file->New Notebook.
3.Click on “Code” button and write query in the box for example SELECT * FROM sys.traces;
4.Select query->Click on the Run command.
5.Start Voice Over.
6.Navigate to table.
7.Observe that Screen reader is announcing the column header twice for the table.
Actual:
Screen reader is announcing the column header twice for the table.
Expected:
Screen reader should announce the column header once for the table.
User Impact:
User with disabilities will not be able to understand why the screen reader reading that column header twice for the table.
Recommendation:
Please refer the following snippet link for fixes:
https://microsoft.sharepoint.com/teams/msenable/mas/Pages/browse-fixes.aspx
MAS Reference:
MAS4.2.3
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={30e4fb40-dcc1-45b4-b714-5e2c28b23ae8}
MAS1.3.1
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}&cid=1a1d7dfd-3dfd-4394-a8af-81fa7c1cf482
Attachment for Reference:
5683_[Accessibility]A11y_AzureDataStudio_NotebookQueryTable_ScreenReader.pptx
Does this issue occur when all extensions are disabled?: Yes

Note: this appears to also affect query editor.

Known issue same as: https://github.com/microsoft/azuredatastudio/issues/6909
This can be close since this happen one when moving away or towards as header

Confirmed with accessibility SME Alexandria Reynolds and closing.


chore(ci): collect ui e2e tests coverage

Description
A detailed explanation of the changes in your PR.
Feel free to remove this section if it is overkill for your PR, and the title of your PR is sufficiently descriptive.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
TODO(replace-me)
Use this space to explain how you validated that your change functions exactly how you expect it.
Feel free to attach JSON snippets, curl commands, screenshots, etc. Apply a simple benchmark: would the information you
provided convince any reviewer or any external reader that you did enough to validate your change.
It is acceptable to assume trust and keep this section light, e.g. as a bullet-point list.
It is acceptable to skip testing in cases when CI is sufficient, or it's a markdown or code comment change only.
It is also acceptable to skip testing for changes that are too taxing to test before merging. In such case you are
responsible for the change after it gets merged which includes reverting, fixing, etc. Make sure you validate the change
ASAP after it gets merged or explain in PR when the validation will be performed.
Explain here why you skipped testing in case you did so.
Have you created automated tests for your change? Explain here which validation activities you did manually and why so.
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

/test ci/prow/gke-ui-e2e-tests

/test gke-ui-e2e-tests

UI e2e coverage is not working and needs to be enabled with a plugin


Add support for MySQL Databases

I've added a new schema for MySQL, updated all of the supporting functions, updated the documentation and expanded the unit testing/ci to cover MySQL.
In order for travis to pass the builds I had disabled opcache on php5.6 and php7 as it was introducing problems when swapping between the config.(postgres|mysql).php files.

Thanks!

Thanks for the improvements!


Enhanced cryptography

replace md5 with sha2 (256)
replace aes128 with aes 256 cbc

Not bad idea bringing AES 256bit military encryption standard to Quasar. :smile:

You should use authenticated encryption because someone would be able to completely decrypt the content of the packets otherwise... Maybe you should consider using an authenticated mode of operation (AES-GCM for example)

@TheNain38 At the moment it's only secure against MITM or someone else listening to the traffic. One needs to get the client binary to extract the encryption key from it.
Thanks for the links, I'll look into it!

@MaxXor If it isn't using Authenticated Encryption, then it can't be CCA-secure (Chosen-Ciphertext Attack), so it's not secure against a MITM

@TheNain38 I'm not an expert, but as far as I understand from that page the attacker needs to have a temporary opportunity to decrypt chosen ciphertexts. This is not the case here (correct me if i'm wrong).
One possible scenario I could think: An attacker would need to capture an encrypted packet (let's say the first handshake packet). He knows what the packet is and can build one himself, then encrypt it by bruteforcing the aes-key until it matches the encrypted packet. Isn't that a known-plaintext-attack? But even that would take a long time to bruteforce a 128bit aes-key and the IV is randomized in every packet too.

@MaxXor In this case, for example, it uses CBC in this case (It also works with other modes which aren't authenticated), CBC uses padding, I can actually know when the padding is valid or not (after it was decrypted by the client and that he sent a response), and by modifying the ciphertext, I can try to produce a valid padding that is longer, and this permits to recover the plaintext

@MaxXor Also, you souldn't compress the communications, as that also leads to leaks of data, see BREACH (This one is for browsers, but it is also applicable to other usage. If you compress the data before encrypting it, then you're creating a hole, not as big as using unauthenticated encryption, but it's still a hole)

@MaxXor You can also use AES-CTR + (HMAC-SHA256 or HMAC-SHA512). You need to derive two keys if you do that, one for AES, and one for HMAC. Also, your way of getting a key is actually totally broken (someone could just brute-force the password). You need to use a KDF (Key Derivation Function), because you derive a key from a password, you should use PBKDF2 (Password-Based Key Derivation Function), I'll explain you the parameters:
PKBDF2(PRF, password, salt, iteration_count, derivedkey_length)

I recommend you to use HMAC-SHA256 or HMAC-SHA512 for the PRF (Pseudo Random Function), it's what is going to be repeated multiple times
The salt need to be long enough, and it also need not to be hardcoded, the best, would be to generate a random salt, and also, the longer the better, and then store it in the config of quasarRAT, or even create a new one each time you generate an executable (So, even if you use the same password, different keys are used, but you also need to store it somewhere quasarRAT could access it, to reconstruct the keys)
The iteration count, is a parameter that makes it slower, to slow down brute force attack, by making it do a lot of iterations, you should make it so that it takes 1 second on your machine, and it should be good.
And the derivedkey_length, is how much bits you want, if using AES-GCM 256 bits, you'll use 256 here, if you use AES-CTR + (HMAC-SHA256 or HMAC-SHA512), you'll need 512 bits, 256 bits for AES, and 256 bits for (HMAC-SHA256 or HMAC-SHA512)

@TheNain38 Thanks, I'll need some time to make the required changes.

@MaxXor Also, is it secure against replay attack? (e.g. do you use a nonce in your packets, or do you increment something that is sent with each packets?)

@TheNain38 There is currently no packet counter so replay attacks are possible. :/
Maybe you wanna help enhance the cryptography of quasar to make it more secure for everyone?

@MaxXor Yes, you can contact me using Tox, my ToxID is: A205506F2036B4118D0733F8FBECC42C72AA45ED565F80DA3B2E56EA8FAABB7F859E8F6D5552

I'm now using AES-CBC-128-HMAC-256 authenticated encryption, deriving the encryption and mac key from the password using PBKDF2 (with 2000 iterations and static salt of 32 bytes. The HMAC is generated from the IV and ciphertext and appended at the beginning of the encrypted message, see here. I'm not going to use a different AES key and MAC for sending/receiving. Supported cipher modes for AesCryptoServiceProvider class are only this ones.
Things still missing are a packet counter on both sides and maybe an upgrade to AES-256. Anything else?
Thank you very much for your input @TheNain38.

@MaxXor You're good to go, the last thing, as you said, is just to use AES-256 instead of AES-128, and to have a packet counter to prevent replay attacks, also, maybe you could use a higher number of iterations (it is a bit low), also something that would be better, would be to generate a random salt, and store it in the config forever (else, someone could try to build a rainbow table with the static salt prepended to the passwords, and it would defeat it's purpose...)

Better to stick with 128 and increase the rounds as the expert said

@MaxXor Actually, there's a problem in your implementation when checking the MAC, there's a timing attack here, because even milliseconds of differences, allows you to brute force it to get a valid HMAC (because you know at which bytes it wasn't good), so you should use a constant-time comparison

@warezhafid If in the future quantum computers are made, the complexity will be reduced by a factor of a square root, so, AES-256 will have the same security as AES-128 with quantum computers

@TheNain38 it's a far shot before quantum computers will replace pcs and laptops nonetheless the cyber war is still on

Thanks! Fixed the HMAC check now against timing attacks and added an attribute to the method so that it won't get optimized to return too early.
The problem with a random salt is that the server must know it too. The only option for that would be when building a client and the server saves the salt which it generated for the client somewhere in database (?). Otherwise they would generate different keys, right?
Gonna work on the packet counter later today and do you think 10k iterations will be enough?
@warezhafid Quantum computers won't need to replace PCs and Laptops, they're only good for special problems. Not for all-day-use. It's enough when there are a few in a datacenter available to the government so they can crack encryptions. :(

@MaxXor just make it hard for hackers and crackers. playing against nsa is a lost game in advance

@MaxXor You could just generate a random salt once, and store it in the config, and you would use it everytime, also, in the Client, you should just store the keys, and not the password, so, even if an attacker itercepts the executable, it can't get the password you inputed, they only get the derived keys, from which he can't recover the password you inputed, and so you could then increase the number of iterations in PBKDF2, because only the Server would need to derive keys from the password, and not the Clients (because they already have the derived keys in the executable)

@warezhafid :see_no_evil:
@TheNain38 Yep, but when someone loses his config file he'll also lose access to the clients. Currently the user can get all clients to reconnect even from a fresh installation by setting the right password & port. Okay I'll increase the iteration count and see how long it'll take. And when building a client, I'll just let the server store the already derived keys from the password in the client, right?
And thanks again for your input, I've learned now a lot more about cryptography and read a lot about it on various sites to make use of your advices.

@MaxXor All you said is good, yes you store the already derived keys from the password in the client, you could create a TODO-list for things that are left, a packet counter and upgrading to AES-256, and increasing the number of iterations


Fix MediaTypeOptions methods typo

Fixes #22431
Fix AddText() and AddBinary() methods documentation

@lohithgn  thanks for the fix. Sorry I missed the other overload.

@Rick-Anderson  Thanks. Appreciate the quick responses :)


Missing v4 "beta" files on cdn.jsdelivr.net

Simply FYI -
I can see alpha version files on cdn.jsdelivr.net here:
<EMAIL_ADDRESS>But I don't see files for latest beta versions.

The beta versions have a new directory structure that doesn't use the es5 directory.  The components are now in the top-level directory.  See
<EMAIL_ADDRESS>

See also the release notes that discuss this.

Thanks for the info.
Sorry now I see this link is working which was not working an hour ago.
<EMAIL_ADDRESS>Closing.


FFimageloading.transformations doesnt work on win phone

FFimageloading.transformations doesnt work on win phone 8.1. I tried to unistall/reinstall package and added diferent links to package, but it still throws exception :"You are referencing the Portable version in your App - you need to reference the platform (iOS/Android) version".  What should I do to fix it?

You need to add Xamarin.FFImageLoading.Transformations to both, shared and platform specific projects. The Exception you're getting suggests that you didn't do that. Also read this: https://github.com/luberda-molinet/FFImageLoading/wiki/Xamarin.Forms-API#windows-uwp---compile-with-net-native-tool-chain-note

I did it. But it doesn't helps

What are your projects PCL profiles?

Android and WinPhone

PCL profile is represented as a number
Did you call CachedRenderer.Init?

I have PCL profile #111.

And yes, I did.

It's really hard to help anything more without further details. It should work. You could try to remove nuget packages and install them once again.


update readme

but the real purpose is to make sure the new GitHub Actions stuff kicks in on new PRs

:+1:


sngrep: init at 1.4.6

Sngrep is used to inspect SIP traffic.

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Tested with nix-review, builds and runs fine though I can't really test the functionality as I don't have a clue what it is supposed to do.
Is it correct that this should only be runnable through root

Tested with nix-review, builds and runs fine though I can't really test the functionality as I don't have a clue what it is supposed to do.
Is it correct that this should only be runnable through root

For the package I haven't found a better solution in nixpkgs. Sngrep needs the permission to capture network traffic.
For NixOS I have found that for wireshark this is solved by using linux capabilities. I would have to look into that, so I think that would be another PR.

It is used for inspecting and debugging network issues when using Session Initiation Protocol (SIP). Maybe this screenshots make it a little clearer :)

TBH networking is a magic black box to me, but from what I can tell the program works

For NixOS I have found that for wireshark this is solved by using linux capabilities. I would have to look into that, so I think that would be another PR.

It would be fine for this to be a separate PR

@JorisE I had a chance to play around with this a bit. I'm no automake guru, but I think this might be better: https://github.com/JorisE/nixpkgs/compare/sngrep...aanderse:sngrep
If you like the changes feel free to merge them into this PR.

@JorisE I had a chance to play around with this a bit. I'm no automake guru, but I think this might be better: JorisE/nixpkgs@sngrep...aanderse:sngrep
If you like the changes feel free to merge them into this PR.

I had to look into this, as I am also in no way a automake guru, so now I am also not sure what the best way is :) Using autoreconf does work, but upstream suggests using ./bootstrap.sh.

One of these days I'll learn enough about autoconf and friends to hopefully know what I'm talking about. Until that day comes, though, I'll make a guess that autoreconfHook actually calls that for you.

One of these days I'll learn enough about autoconf and friends to hopefully know what I'm talking about. Until that day comes, though, I'll make a guess that autoreconfHook actually calls that for you.

Are you saying I should use autoreconfhook? I don't think, autoreconf runs the bootstrap.sh script. That means that it would currently work, but if upstream decides to add something to the bootstrap.sh script it may stop working.

I don't think, autoreconf runs the bootstrap.sh script.

That is correct. autoreconfHook just runs autoreconf:
https://github.com/NixOS/nixpkgs/blob/914a8f543a2f156dd67c2547a75876196d275621/pkgs/build-support/setup-hooks/autoreconf.sh#L5
You should use
preConfigure = ''
  ./bootstrap.sh
'';

when upstream suggests it. (Even though in modern autotools projects, that script should not do anything other than invoke `autoreconf`)

Thanks @jtojnar!

Thank you both @aanderse and @jtojnar. I have learned a lot about autotools as well as nixpkgs :)

@GrahamcOfBorg build sngrep


[Bug] backward after optimzer.step()?

I am trying to train autoslim on cifar10 with mobilenetV2.
But I found there are some errors when training

And I found some of root cause. For example,
You have already called optimized.step() here (https://github.com/open-mmlab/mmrazor/blob/master/mmrazor/models/algorithms/autoslim.py#L226)
but in mmcv here is already have one (https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/optimizer.py#L56).
Do i need to configure something?
thank you

I ran into this issue just now. And I solve it by setting optimizer_config = None as https://github.com/open-mmlab/mmrazor/blob/0dd407abc4a3ce251f3f63377384be7eb13ab713/configs/base/schedules/mmcls/imagenet_bs2048_autoslim.py#L12
The setting avoids the second call of backward() via no registering OptimizerHook.

Why not just comment out all the .backward and .step in  https://github.com/open-mmlab/mmrazor/blob/master/mmrazor/models/algorithms/autoslim.py#L226
I tried and it works.

Forcing optimize_config to None may not be a good idea, for example, it's not easy to adapt to fp16 training when setting optimizer_config to None.
Why not just comment out all the .backward and .step in https://github.com/open-mmlab/mmrazor/blob/master/mmrazor/models/algorithms/autoslim.py#L226
I tried and it works.

Thank you for your issue.
It does work to comment out all the .backward and .step. And we use these here just to save GPU memory. It is hacky as it's not easy to adapt to fp16 training. But just using OptimizerHook may lead to cuda out of memory when training on bigger dataset, such as Imagenet. We are still working on it.

@HIT-cwh
I am wondering why the current implementation would result OOM, I reimplement with SlimConv2D from https://github.com/JiahuiYu/slimmable_networks/blob/master/models/slimmable_ops.py#L25.
And there is no OOM occur.

@HIT-cwh

I am wondering why the current implementation would result OOM, I reimplement with SlimConv2D from https://github.com/JiahuiYu/slimmable_networks/blob/master/models/slimmable_ops.py#L25.
And there is no OOM occur.

It is better to make a new issue to discuss this question. @twmht

@HIT-cwh
I am wondering why the current implementation would result OOM, I reimplement with SlimConv2D from https://github.com/JiahuiYu/slimmable_networks/blob/master/models/slimmable_ops.py#L25.
And there is no OOM occur.

Look here. In the official code, the gradient of the loss is computed immediately for each width_mult. That is, loss.backward() is executed immediately after forward_loss. So there is no OOM occur.

@HIT-cwh
But you can also do the same thing in mmrazor, where is the OOM from if you do the same thing?

Maybe I didn't make it clear.
code 1:
loss1 = forward_loss()
loss2 = forward_loss()
loss3 = forward_loss()
loss = loss1 + loss2 + loss3
loss.backward()
optimizor.step()

code2:
loss1 = forward_loss()
loss1.backward()
loss2 = forward_loss()
loss2.backward()
loss3 = forward_loss()
loss3.backward()
optimizor.step()

The memory cost of code1 is 3 times as much as that of code2

Interesting. To the best of my knowledge, I though both use the same memory. Thank you for pointing out that.

Interesting. To the best of my knowledge, I though both use the same memory. Thank you for pointing out that.

I'm sorry to bother you again. To some degree, the above code2 has the same effect as grad-cumulating. So, I think the implementation like code2 may save much memory. If it turns out that I'm wrong, please let me know. Thanks.

Yup. I think you are right, since we need to trace the autograd graph when training.

@HIT-cwh
Well, I found out it also works by commenting out all the backward and step when training object detection, No OOM happens.
It's weird since the consuming memory is almost the same as when doing normal object detection training.
My pytorch version is 1.9.
What is your batch size and number of gpus when training with ImageNet?

Samples_per_gpu=8 and GPUS=8


Bopes excited states

Summary
Fix #683
Makes BOPES compatible with ExcitedStatesSolver by:

Splitting the solve() method of excitedstatessolver into a get_qubit_operators() followed by the solve() to match the format of groundstateeigensolvers.
Adding if/else clauses in BOPES because the VQE parameters are accessible with self._gss for a groundstateeigensovler and self._gss._gsc for a excitedstateseigensolver.

A new section was also added in the tutorial 05 to show typical BOPES curves for excited states.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: manoelmarques:x: Anthony-GandonYou have signed the CLA already but the status is still pending? Let us recheck it.

There is a mypy error in the bopes_sampler.py because:

The first argument of BOPES is of type 'Union[GroundStateSolver, ExcitedStatesSolver]'
In practice, this argument is going to be among GroundStateEigensolver, ExcitedStatesEigensolver, QEOM (which inherits from ExcitedStatesSolver)
The boxes_sampler tries to access the Variational 'solver' attribute which are not defined at the level of GroundStateSolver and ExcitedStatesSolver.

I think this error existed already when BOPES was only working with GroundStateSolver.

I think this error existed already when BOPES was only working with GroundStateSolver.

Indeed it seems that it was not picked up; and never noticed either as so far all the GroundStateSolvers here are GroundStateEigensolvers. In your logic where we want solver, since if its a GroundStateEigensolver that is variational we can manipulate the initial starting point, then it would be simple to change to check for GroundStateEigensolver instance and only access solver in this case - that seems, as you say, to be an problem from before that was not detected (mpypy or otherwise).
As to accessing the private property property of another class (_gsc) since I guess if the ExcitedStateSolver is based on a GroundStateSolver we do not have an abstraction for that  - and QEOM does this right, i.e computes based off a ground state. Arguably some base class for that would be more the way to go so the GroundStateSolver can be exposed via public API. Then here it would check if its in instance of that, then get the GroundStateSolver whereupon its the same logic, ie is that a GroundStateEigensolver and so on.

Modifications were made following the discussion with @mrossinek.
Apart from this, I wanted to append another new feature for the BOPESSampler.
For the moment, BOPESSampler calls self._wrapper_solver.solve() without arguments so that aux is always None.
I added an argument  aux_operators: Optional[ListOrDictType[Union[SecondQuantizedOp, PauliSumOp, Callable]]] = None, to the BOPESSampler, which is passed to a function evaluate_callable_aux_operators and then to self._wrapper_solver.solve().
This allows auxiliary operators to be evaluated along with the energies.
The callable feature also allows nuclear coordinate dependent observables to be defined (forces for examples).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

64 of 66 (96.97%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 84.684%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_nature/algorithms/pes_samplers/bopes_sampler.py
39
41
95.12%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
9665

Relevant Lines:
11413

💛  - Coveralls

Thank you all for the feedbacks and reviews!
Anthony


Add Alliander as TODO adopter

Thanks to @anajsana for reaching out to us about the landscape view and the option of being included in it.
Signed-off-by: Nico Rikken<EMAIL_ADDRESS>Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Build failed because of:
No cached entry, and Alliander (Adopter) has issues with logo: alliander.svg, SVG file embeds a png. Please use a pure svg file
No cached entry, and Banco Itaú (Adopter) has issues with twitter: https://twitter.com/itauunibanco_ri, 404 - {"errors":[{"code":34,"message":"Sorry, that page does not exist."}]}
Empty twitter for Apple (Adopter): https://twitter.com/apple
Duplicate item: Adobe Adobe (Member) at path TODO Group Member / General
Duplicate item: Adobe Adobe (Member) at path TODO Group Member / General

Build failed because of:
No cached entry, and Alliander (Adopter) has issues with logo: alliander.svg, SVG file embeds a png. Please use a pure svg file
Empty twitter for Apple (Adopter): https://twitter.com/apple
No cached entry, and Banco Itaú (Adopter) has issues with twitter: https://twitter.com/itauunibanco_ri, 404 - {"errors":[{"code":34,"message":"Sorry, that page does not exist."}]}
Item Alliander (Adopter) has no image_data

The Alliander logo contains a rasterized graphic as detected by the CNCF bot. There does exist a simplified version of the logo but this version with rasterized graphic is the most used and most recognizable.

We need a real SVG logo vs a logo with an embedded PNG.

@caniszczyk in that case I'll update the pull-request with a simplified version of the logo. But thanks for offering help!

LGTM


Add constraints

To be tested on 10.14
Before / After

Tested on macOS 10.14, No clipping content.


.js.map comments in js files

These comments in the js files give me warnings when I compile. I'm using json2typescript in my React project, installed using npm. When I npm start to run the React app, I see warnings about these lines. The link below is one example but these comments exist in all the js files.
https://github.com/dhlab-basel/json2typescript/blob/97d2600677870176d03aafb2b9de2ec1d04f647b/src/json2typescript/any.js#L8

Thanks for your report, this wasn't intended and I will try to remove them in the next release.


The committer is not the logged-in user

I got the example config.ru file working by runnig this script in the same directory:
#!/usr/bin/env ruby
require 'sinatra/base'

I logged in as Rick Sanchez (as per the config), and made the first commit.
Result: The committer shown in git show is not Rick Sanchez, but whatever system user the daemon runs as.
I hope this is supposed to work! What can I do?

I see a pattern: Creating a new file uses the wrong user, but editing an existing file uses the right one. Deleting a file depends on which button is clicked.
I guess this must be a gollum issue, since this proves that the right user be in the session.

Thanks for taking the time to invest and report this!

There must be a bunch of new paths that this plugin is not aware of. I've noticed that if you allow read-only access, some operations don't get authed and are written to git as the anon user. If you just auth reads and writes, that issue goes away.


Right-click interaction when carrying block

Is it possible to add a right-click interaction for carried items?
e.g. If say a pickaxe mold can be carried, is it possible to right-click on the vertical rack to insert it, in the same way as having it on the toolbar?

I  mentioned this to them as well... Much desired!


peerDependencies behavior change as of npm@3

So, as you may already know, with npm@3 (on the registry now, currently in beta), peerDependencies are no longer installed for you. They act as assertions, warning you if you don't meet their requirements, but they do not break the install nor do they trigger installation of the thing mentioned.
This means that npm install -g webpack will not result in a working install out of the box as node-libs-browser won't be installed.
I'd like to work with you all to figure out what the best solution is for this. My first reaction would be to just make node-libs-browser a regular dependency. Is there a reason not to do that?

You probably read the npm@3 changelog, like I did :)
In there, they actually do suggest turning most peer dependencies into normal dependencies, since npm@3 flattens the install tree automatically. This will avoid duplicated installs - and, the module will be available at the best-possible version. If two modules depend on a whole different version, then their required version will be installed in a submodule tree, like the current NPM does.
Therefore: Add peerDependencies as normal dependencies. :)
My cent for that, at least. o.o

I wrote the npm@3 changelog 😉

O.O! O-oh…well…i didn’t know. Sorry!
It’s well written. :)

This can be closed now, as #1197 is merged.


changes are shown when file opens

Anytime I open a file it shows that changes have been made even before typing.  This happens whther I open it through the fuzzy finder or through the file tree.

As stated in the README, this package is no longer maintained and is deprecated. We recommend that people use the vim-mode-plus package instead. Because of this, we are archiving this repository and closing all issues and pull requests. Thanks very much for your support and contributions!


[CI:DOCS]Starter for dockerpy regression tests

Signed-off-by: Brent Baude<EMAIL_ADDRESS>

/lgtm

/hold

LGTM
assuming the tests get happy.

The damn merge button on github causes the gating test to fail.


fix: add warning for async external

related to #17958, also add the warning for async external (external import, external module, external promise, external script)

What kind of change does this PR introduce?
Add EnvironmentNotSupportAsync warning for async external (external import, external module, external promise, external script)

Did you add tests for your changes?
update configCases/async-module/environment-not-support-async-warning

Does this PR introduce a breaking change?
no

What needs to be documented once your changes are merged?
none

Release will be soon, need to solve this https://github.com/webpack/webpack/issues/17565 because critical and we can make a release


Add notice to README on repository status

I suggest adding a notice to README with information on the current maintenance status of the repository, as it seems to not have received updates for quite a while now; links to alternatives or forks would be good to have.
@axiak

For others, so you don't waste your time like myself, try this fork: https://github.com/prashnts/pybloomfiltermmap3


Enable file sharing should say to use the beta packages of @azure/communication

Enable file sharing should say to use the beta packages of @azure/communication when installing the packages.

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

ID: 8fbce2c9-7426-0207-e3c5-d1dfeb65b0e3
Version Independent ID: 4dc99dd8-fdfc-25a8-876c-c79cb4c8b27d
Content: Enable file sharing using UI Library and Azure Blob Storage - An Azure Communication Services tutorial
Content Source: articles/communication-services/tutorials/file-sharing-tutorial.md
Service: azure-communication-services
Sub-service: chat
GitHub Login: @anjulgarg
Microsoft Alias: anjulgarg

Hi @JamesBurnside Thanks for your feedback! We will review and update this doc soon

#reassign: tayaras

Hi @JamesBurnside, thank you for reporting this issue. Closing this Github issue since it is fixed in this PR: https://github.com/MicrosoftDocs/azure-docs-pr/pull/261422#user-content-6e52b130830ab80b4b5c280574144016-59b82c90


chore(ci): Allow versioning components separately

Since we already have apps published, we need the ability to decouple the versions of components from each other so that we can run CI and publish them independently.
This is the first step. The next step would be decoupling releases so that they're for individual components.
refs #4397

@AndrewDryga With this PR I can version Apple apps and Android apps separately from everything else. Otherwise CI won't pass everytime we publish a version since you can't upload a build for a version that's already published.


Extract files for Grappa/ClangDB support functionality

e.g. convert2bin, which is not used in any tests. The repo where it goes should be the analog of myria

probably subsumed by refactorings in milestone "refactor raco for clarity"


Wrong variable

Coverage remained the same at 92.391% when pulling c3559c397ac28c3dd89a12320092a560365febe2 on ondra-m:patch-1 into ba8eb783d0735d97f3190da3142f32ee2f93b028 on piotrmurach:master.

Coverage remained the same at 92.391% when pulling c3559c397ac28c3dd89a12320092a560365febe2 on ondra-m:patch-1 into ba8eb783d0735d97f3190da3142f32ee2f93b028 on piotrmurach:master.

Coverage remained the same at 92.391% when pulling c3559c397ac28c3dd89a12320092a560365febe2 on ondra-m:patch-1 into ba8eb783d0735d97f3190da3142f32ee2f93b028 on piotrmurach:master.

Thanks ❤


Update Token TS Docs

Problem:
Token TS library is released now and we need better doc coverage
Summary of changes:

Upgrade docusaurus to 2.0.0-alpha.73 for MDX support
Update various items to be compatible with latest docusaurus
Added documentation for Token TS

You can find the changes deployed here: https://solana-program-library-iiq8ia3f9-jacobcreech.vercel.app/token

Thanks again!


Fix code scanning alert - Arbitrary file access during archive extraction ("Zip Slip")

Tracking issue for:

[x] https://github.com/bmoussaud/TechExcel-Accelerate-developer-productivity-with-GitHub-Copilot-and-Dev-Box/security/code-scanning/1

odn


New app: Todoist Routines

Description
Adds a new app for displaying today's remaining Todoist tasks and subtasks as minimal rows or columns of dots. Can you make the screen go blank?

Copilot

🤖 Generated by Copilot at 20a94f8
Summary
📄📝🌟

This pull request adds a new applet called Todoist Routines, which shows today's remaining tasks and subtasks from Todoist as dots on the Tidbyt screen. It includes a manifest.yaml file for the applet's metadata, a README.md file for the applet's documentation, and a todoist_routines.star file for the applet's code.

Todoist Routines
An applet for Tidbyt
Shows tasks as dots

Walkthrough

Create a new applet for displaying Todoist tasks and subtasks as dots on the Tidbyt screen (link, link, link)

Add a manifest.yaml file to define the applet's metadata and properties (link)
Add a README.md file to explain the applet's purpose, usage, and settings (link)
Add a todoist_routines.star file to implement the applet's logic and rendering using Starlark modules (link)

Use the http module to fetch tasks and subtasks from the Todoist API (link)
Use the render module to display the tasks and subtasks as dots on the Tidbyt screen (link)
Use the schema module to provide a schema for the applet's settings, such as layout, color, and background (link)

I have read the CLA Document and I hereby sign the CLA

Thanks for the PR!
Two questions:

Would you like to do oauth2 authentication instead of having user copy-paste an API token? I believe the other Todoist apps do this, if you want to take a look at some examples.
In the case where no API token has been provided by the user, it'd be great if the app could show an example graphic with some mock data. That allows users to see a preview of the app, helping them understand what it does and why they should go through the process of setting it up (whether that's through oauth2 or by pasting a token manually.)

That said, if you'd rather just get this in we can merge it as is as well.

Thanks for reviewing! Would it be ok to merge as is, then I can make those changes in a follow up? I’d love to start using it personally as soon as I can.


[New game]: Emoji Charades

🎮 Game Request
Game logic and basic description
It is a fun game where there will be emojis displayed on the screen and the player needs to enter the suitable word describing the emoji which appears respectively.
Point down the features
Game points
The score keeps increasing as the player guesses the correct description of the emoji shown.
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @akhilender-bongirwar !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @akhilender-bongirwar ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


how to make use of helm install in offline mode (servers are not internet enabled)

Hi -
i've a server, which is not internet enabled (offline)
i'm trying to install couchbase in my k8s cluster through helm charts , and i have loaded docker images of couchbase already, but still my helm is looking for images and throwing below error
[root@k8s-master-1 ~]# kubectl logs -f deployment/crdl-couchbase-operator  --namespace crdl
Error from server (BadRequest): container "couchbase-operator" in pod "crdl-couchbase-operator-6d4565594c-96gz4" is waiting to start: image can't be pulled

Hi @argunasekhar. Were you able to resolve your issue? I notice this has been open for a few months now so I wanted to check in and see if you found a solution.

Given that this is a support question related to a chart we don't know about, it's hard to determine how we can help out here. My gut feeling is that you should probably go and ask the authors of the couchbase-operator chart about your question. This seems like a question related to how this chart can be used in an offline scenario, and they would be better suited to answer your question.

Hi, @argunasekhar - we cannot provide further assistance without being able to see the chart. I'm closing this issue for that reason. If you would like to return and let us know more details, we can try to help. Thanks.


format --diff still overwrites file

I have the following TOML file:
# thing.toml

space="none"

Running taplo format --diff thing.toml produces the following output on stdout, as expected (modulo #415):
diff a//git/repro/taplo/thing.toml b//git/repro/taplo/thing.toml
--- a//git/repro/taplo/thing.toml
+++ b//git/repro/taplo/thing.toml
# thing.toml

@@ -0,2 +0,2 @@
@@ -2,1 +2,1 @@
-space="none"
+space = "none"

However, it also overwrites thing.toml with the resulting formatted toml. This is unexpected. Other tools' equivalent option for diff generation only prints the diff, leaving the original file in place.
For example rustfmt:
$ cat repro.rs
// repro.rs

fn main ( ) { }

$ rustfmt --check repro.rs
Diff in /git/repro/taplo/repro.rs at line 1:
 // repro.rs

-fn main ( ) { }
+fn main() {}

$ cat repro.rs
// repro.rs

fn main ( ) { }

As a workaround I found taplo format --check --diff thing.toml.
I think not overwriting files would be the better behavior for --diff, even without --check.
That said, I am not clear what the intended use of --diff is. A hypothetical usage I was able to think of is:
# .github/workflows/ci.yml

...
  steps:
     ...
    - run: cargo test
    - name: "check that source files are properly formatted"
      run: cargo fmt -- --check
      if: always()
    - name: "the toml files too"
      run: taplo format --diff && git diff --exit-code >/dev/null
      if: always()

Here, what the user wants (from both rustfmt and taplo) is:

If any files in the repo are incorrectly formatted, fail CI on the commit.

Show the lines that need to be reformatted, not just the filenames. This would be important if the user was not able to, or did not want to, install rustfmt/taplo on their machine when writing their contribution to someone else's repo, or had a different rustfmt/taplo version installed than required by CI. They can manually apply the required formatting.

But for this objective, taplo format --diff is not any better than taplo format && git diff --exit-code.
Are there any foreseen use cases for taplo format --diff without --check? If not, perhaps --diff should imply --check. Separately, perhaps --check should imply --diff, like in rustfmt? At that point it would be okay to remove --diff altogether.

I agree with you. I also don't understand the use of taplo format --diff and decided to not use it and instead do the same as you suggest, see here.
I'm not sure how best to proceed here. What are the options?

Do nothing (given I'm only an interim maintainer, I would prefer this option)
Remove --diff
Make --diff imply --check


Issue with redisson - Exception Command still hasn't been written into connection!

Hi,
We are using AWS elasticache Redis with cluster mode enabled. We are seeing below issue intermittently from Redisson, please guide how to resolve this issue.
Exception Command still hasn't been written into connection! Increase nettyThreads and/or retryInterval settings. Payload size in bytes: 0. Node source: NodeSource [slot=6524, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@106880645 [redisClient=[addr=redis://], channel=[id: 0xdb426022, L:/:52758 - R:/:6379], currentCommand=CommandData [promise=RedissonPromise [promise=ImmediateEventExecutor$ImmediatePromise@6b0e5454(failure: java.util.concurrent.CancellationException)], command=(GET), params=[], codec=org.redisson.codec.MarshallingCodec]], command: (GET), params: [**] after 5 retry attempts
Below is the cluster configuration:
Config config = new Config();
config.setNettyThreads(1000);
config.useClusterServers().addNodeAddress(REDIS_CLUSTER)
.setTimeout(30000)
.setMasterConnectionPoolSize(1000)
.setSlaveConnectionPoolSize(1000)
.setRetryAttempts(5)
.setRetryInterval(5000);
redissonCluster = Redisson.create(config);
I have tried increasing netty threads, connection pool size and retry attempts.
Average load on our system is around 500 requests/sec.

https://github.com/redisson/redisson/issues/2559#issuecomment-621652611

https://github.com/redisson/redisson/issues/2559#issuecomment-621652611


couldn't resolve host name

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:

What is the expected behavior?

What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?
  <x.y.z>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[ ] Raspberry Pi
[x] Other - tell us more:

Tell us about your OS (Type & version):

[x] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Briefly summarize your issue:
What is the expected behavior?
I want to run the sampleapp.
What behavior are you observing?
while running the sampleapp i am getting the below error..
What version of the AVS Device SDK are you using?
1.3
Tell us what hardware you're using:
Other - tell us more:
   ARM-cortex-a9

Tell us about your OS (Type & version):
Linux

unning app with log level: DEBUG9
2016-01-01 17:42:29.606 [  1] I ConfigurationNode:initializeSuccess:configuration={"authDelegate":{"clientSecret":"30695947228e372e6c2496c95}
2016-01-01 17:42:29.624 [  1] 9 MediaPlayer:createCalled
2016-01-01 17:42:29.750 [  1] 9 MediaPlayer:createCalled
2016-01-01 17:42:29.754 [  1] 9 MediaPlayer:createCalled
2016-01-01 17:42:29.765 [  1] 9 MediaPlayer:setObserverCalled
2016-01-01 17:42:29.766 [  2] 0 MediaPlayer:handleSetObserverCalled
2016-01-01 17:42:29.766 [  1] 9 SpeechSynthesizer:addObserver:observer=0x19c3774
2016-01-01 17:42:29.767 [  1] 9 MediaPlayer:setObserverCalled
2016-01-01 17:42:29.767 [  2] 0 MediaPlayer:handleSetObserverCalled
2016-01-01 17:42:29.768 [  1] 9 MediaPlayer:setObserverCalled
2016-01-01 17:42:29.768 [  2] 0 MediaPlayer:handleSetObserverCalled
2016-01-01 17:42:29.773 [  1] 9 AlertScheduler:setTimerForNextAlertLocked
2016-01-01 17:42:29.773 [  1] I AlertScheduler:executeScheduleNextAlertForRendering::no work to do.
2016-01-01 17:42:29.774 [  3] 1 AlertsCapabilityAgent:executeOnConnectionStatusChanged:status=DISCONNECTED,reason=ACL_CLIENT_REQUEST
2016-01-01 17:42:29.777 [  1] 9 MediaPlayer:getSpeakerTypeCalled
2016-01-01 17:42:29.778 [  1] 9 MediaPlayer:getSpeakerTypeCalled
2016-01-01 17:42:29.778 [  1] 9 MediaPlayer:getSpeakerTypeCalled
2016-01-01 17:42:29.778 [  1] 0 SpeakerManager:mapCreated:numAvsSynced=2,numLocal=1
2016-01-01 17:42:29.778 [  1] 9 MediaPlayer:getSpeakerSettingsCalled
2016-01-01 17:42:29.779 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2016-01-01 17:42:29.779 [  1] 9 MediaPlayer:getSpeakerSettingsCalled
2016-01-01 17:42:29.779 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2016-01-01 17:42:29.779 [  1] 9 SpeakerManager:validateSpeakerSettingsConsistencyResult:consistent=true
2016-01-01 17:42:29.779 [  1] 9 SpeakerManager:validateSpeakerSettings:volume=100,mute=false
2016-01-01 17:42:29.779 [  1] 9 SpeakerManager:updateContextManagerCalled:speakerType=AVS_SYNCED
2016-01-01 17:42:29.780 [  1] 1 AudioPlayer:addObserver
2016-01-01 17:42:29.781 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechSynthesizer,name=Speak,handler=0x19d9f68,polG
2016-01-01 17:42:29.781 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=ClearQueue,handler=0x19daa28,poliG
2016-01-01 17:42:29.781 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=Stop,handler=0x19daa28,policy=NONG
2016-01-01 17:42:29.781 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=Play,handler=0x19daa28,policy=NONG
2016-01-01 17:42:29.781 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechRecognizer,name=ExpectSpeech,handler=0x19d93G
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechRecognizer,name=StopCapture,handler=0x19d930G
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alerts,name=DeleteAlert,handler=0x19db0f0,policy=NG
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alerts,name=SetAlert,handler=0x19db0f0,policy=NON_G
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=System,name=SetEndpoint,handler=0x1a1d200,policy=NG
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=System,name=ResetUserInactivity,handler=0x19d90dc,G
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=AdjustVolume,handler=0x1a1d5e0,policyG
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=SetMute,handler=0x1a1d5e0,policy=NON_G
2016-01-01 17:42:29.782 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=SetVolume,handler=0x1a1d5e0,policy=NOG
2016-01-01 17:42:29.783 [  1] 9 TemplateRuntime:getConfiguration
2016-01-01 17:42:29.783 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=TemplateRuntime,name=RenderPlayerInfo,handler=0x1aY
2016-01-01 17:42:29.783 [  1] I DirectiveRouter:addDirectiveHandlers:action=added,namespace=TemplateRuntime,name=RenderTemplate,handler=0x1a3aY
Failed to authorize SDK client!
2016-01-01 17:42:49.783 [  1] I DirectiveSequencer:doShutdown
2016-01-01 17:42:49.784 [  1] 9 TemplateRuntime:getConfiguration
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=TemplateRuntime,name=RenderPlayerInfo,handlerY
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=TemplateRuntime,name=RenderTemplate,handler=0Y
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=Speaker,name=AdjustVolume,handler=0x1a1d5e0,pG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=Speaker,name=SetMute,handler=0x1a1d5e0,policyG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=Speaker,name=SetVolume,handler=0x1a1d5e0,poliG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=AudioPlayer,name=ClearQueue,handler=0x19daa28G
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=AudioPlayer,name=Stop,handler=0x19daa28,policG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=AudioPlayer,name=Play,handler=0x19daa28,policG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=SpeechSynthesizer,name=Speak,handler=0x19d9f6G
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=SpeechRecognizer,name=ExpectSpeech,handler=0xG
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=SpeechRecognizer,name=StopCapture,handler=0x1G
2016-01-01 17:42:49.785 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=Alerts,name=DeleteAlert,handler=0x19db0f0,polG
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=Alerts,name=SetAlert,handler=0x19db0f0,policyG
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=System,name=ResetUserInactivity,handler=0x19dG
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:removeDirectiveHandlers:action=removed,namespace=System,name=SetEndpoint,handler=0x1a1d200,polG
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x1a3ae00
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x1a1d5e0
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x19daa28
2016-01-01 17:42:49.786 [  1] 0 AudioPlayer:onDeregistered
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x19d9f68
2016-01-01 17:42:49.786 [  1] 9 SpeechSynthesizer:onDeregistered
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x19d9308
2016-01-01 17:42:49.786 [  4] 1 AudioPlayer:executeStop:playNextItem=false,m_currentActivity=IDLE
2016-01-01 17:42:49.786 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x19db0f0
2016-01-01 17:42:49.787 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x19d90dc
2016-01-01 17:42:49.787 [  1] I DirectiveRouter:onDeregisteredCalled:handler=0x1a1d200
2016-01-01 17:42:49.788 [  1] 1 AudioPlayer:removeObserver
2016-01-01 17:42:49.789 [  1] 1 AudioPlayer:executeStop:playNextItem=false,m_currentActivity=IDLE
2016-01-01 17:42:49.789 [  1] 9 MediaPlayer:setObserverCalled
2016-01-01 17:42:49.789 [  2] 0 MediaPlayer:handleSetObserverCalled
2016-01-01 17:42:49.790 [  1] 0 ContextManager:setStateProvider:action=removedStateProvider,namespace=AudioPlayer,name=PlaybackState
2016-01-01 17:42:49.790 [  1] 9 SpeechSynthesizer:doShutdown
2016-01-01 17:42:49.790 [  1] 9 MediaPlayer:setObserverCalled
2016-01-01 17:42:49.790 [  2] 0 MediaPlayer:handleSetObserverCalled
2016-01-01 17:42:49.791 [  1] 9 AlertsCapabilityAgent:releaseChannel
2016-01-01 17:42:49.792 [  5] I CertifiedSender:CertifiedSender worker thread done.  exiting mainloop.
2016-01-01 17:43:09.793 [  6] E HttpPost:doPostFailed:reason=curl_easy_performFailed,result=6,error=Couldn't resolve host name
2016-01-01 17:43:09.793 [  6] E AuthDelegate:handleLwaResponseFailed:reason=parseJsonFailed,position=0,error=The document is empty.
Failed to initialize SampleApplication
2016-01-01 17:43:09.797 [  1] 9 MediaPlayer:~MediaPlayerCalled
2016-01-01 17:43:09.798 [  1] 9 MediaPlayer:resetPipeline
2016-01-01 17:43:09.798 [  1] 9 MediaPlayer:~MediaPlayerCalled
2016-01-01 17:43:09.799 [  1] 9 MediaPlayer:resetPipeline
2016-01-01 17:43:09.799 [  1] 9 MediaPlayer:~MediaPlayerCalled
2016-01-01 17:43:09.800 [  1] 9 MediaPlayer:resetPipeline
Failed to create to SampleApplication!

i have enabled wifi in my target...
Please help me to resolve this..

Hi, can you please provide the following information:

Did you provide any endpoint under SampleApp in your AlexaClientSDKConfig.json?
Are you able to reach the same endpoint using curl command?  If you have a different endpoint configured in your json configuration, please use that instead.

I'm closing this issue due to the lack of activity. Please feel free to reopen it if you are still having any problem.


update rate limiter

update rate limiter to support RPS less than 1.

Changes Unknown when pulling 39ede0500b91a51c5fb3ac1970dc56b8f0e4adf7 on yiminc:rate_limiter into ** on uber-go:master**.

Coverage remained the same at 92.086% when pulling ba39ed569e99b6e0ac5b4d1a65a998bc61577c65 on yiminc:rate_limiter into 13a37db8421d8a2e8656a5187be1dbb998f8a2e4 on uber-go:master.


Blog App: validations and model specs

This is a PR for adding validation and test to the model classes

Add validation to the classes
Add test for the classes

Thank you for reviewing and approving my project


How to implement dynamic striped table rows?

I'm trying to adjust dark colors on a table row based on odd: and even: selectors. For the light theme, it works. But for the dark theme, nothing gets applied:
I have tried an example
odd:bg-white even:bg-gray-50 border-b odd:dark:bg-gray-800 even:dark:bg-gray-700 dark:border-gray-600

found from #54
Maybe I'm missing a config setting somewhere?

Hey @stsrki,
Did you try to use dark:even:bg-gray-700 instead of even:dark:bg-gray-700?
I think you need to add the dark variant before even and odd.
Cheers,
Zoltan

Hey @stsrki,
Are you using Tailwind CSS v3.0?
I've refactored the tables and here's the list of classes that work for me:
odd:bg-white odd:dark:bg-gray-900 even:bg-gray-50 even:dark:bg-gray-800 border-b dark:border-gray-700

Cheers,
Zoltan

I don't think that it works. I have even tried it on Flowbite docs; see the screenshot

Here's a Tailwind Play example:
https://play.tailwindcss.com/KZg5W8B3xm


bash /cygdrive/c/users/hans

after install
bash-cli: pm
command not found?
can you give a hint?

Hello @HansS,
Did you restart the terminal or load pm using source?


String interpolation

I have this code snippet and doesn't work for me. Any thoughts.
:root {
  --color: red;

  --google-font-name: 'Lato';
  --google-font-sizes: '400,700,400italic,700italic';
  --google-subset: 'latin';
  --google-font-request: 'var(--google-font-name):var(--google-font-sizes)&subset=var(--google-subset)';
  --google-font-url: 'https://fonts.googleapis.com/css?family=var(--google-font-request)'
}

@import url(var(--google-font-url))

Does not match CSS spec.
var() can only be used for property values, as a real function. Not in a string.
In your case I think your are just doing some over-engineering :/

@MoOx sorry for my lack of experience with the spec. Thank you very much!

No problem. Next time, use the gitter chat for this kind of question.


The method scanBleDevices(UUID... filters) is not support for two types service.

@nightscape Sorry I need help, I think this is not Bug. maybe!
I got a problem that the method scanBleDevices(UUID... filters) cannot support to discover double kind of devices with different UUIDServices.
I guess  that the relationship between the args are AND, but not OR. But How could I get the double kind of device with different UUIDService?
The code is that i want to find out the device with the uuid 00001801-0000-1000-8000-00805F9B34FB and another device with uuid 6E400001-B5A3-F393-E0A9-E50E24DCCA9E , But i always cannot get the result with the code.
scanScription = rxBleClient
                .scanBleDevices(UUID.fromString("00001801-0000-1000-8000-00805F9B34FB"),  UUID.fromString("6E400001-B5A3-F393-E0A9-E50E24DCCA9E"))
                .subscribe(new Action1<RxBleScanResult>() {
            @Override
            public void call(RxBleScanResult rxBleScanResult) {
                if (!bleDeviceHashMap.containsKey(rxBleScanResult.getBleDevice().getMacAddress())) {
                    bleDeviceHashMap.put(rxBleScanResult.getBleDevice().getMacAddress(), rxBleScanResult.getBleDevice());
                    HashMap<String, String> ble = new HashMap<String, String>();
                    ble.put("name", rxBleScanResult.getBleDevice().getName());
                    ble.put("address", rxBleScanResult.getBleDevice().getMacAddress());
                    bleDevices.add(ble);
                    adapter.notifyDataSetChanged();
                }
            }
        });

Hello @iBotasky
The feature works as intended. It has the same behaviour as default filtering in Android 4.3 and 4.4. There is a plan to update the scanning to use 5.0 features.
About how to implement the desired behaviour I encourage you to post a question on www.stackoverflow.com with tag rxandroidble so the knowledge will not be lost.
Best Regards

@dariuszseweryn OK，I got it ,Thanks for your help.