Support closures as values for ::set()

This allows us to Memoize::set() with a Closure as a value, resolving it when retrieving from memoization. If the key being retrieved is not itself a Closure, we will resolve the closures recursively from the key downwards.
Documentation Improvements:

README.md: Added a Table of Contents and updated examples to use the new Memoizer class instead of the old Memoize class. Introduced sections on caching with closures and using the library with a dependency injection container. [1] [2] [3] [4]

Codebase Refactoring:

src/Memoize/Config.php: Removed the Config class, which previously handled driver and namespace configuration.
src/Memoize/Contracts/DriverInterface.php: Renamed and refactored to use the new namespace.
src/Memoize/Contracts/MemoizerInterface.php: Refactored the Memoize class into an interface named MemoizerInterface. [1] [2]
src/Memoize/Memoizer.php: Added a new concrete implementation of the MemoizerInterface with methods for getting, setting, checking, and forgetting cache values.

Closure Support:

src/Memoize/Drivers/MemoryDriver.php: Updated the MemoryDriver to support caching closures and resolving them when retrieved. [1] [2]
src/Memoize/Drivers/Traits/ClosureResolver.php: Introduced a new trait to handle the recursive resolution of closures within the cache.

Testing:

tests/unit/ClosureTest.php: Added new unit tests to verify the correct behavior of caching and resolving closures.

@JasonTheAdams - tbh, resolving on set would be waaaay simpler and I think I see where you are going with it being a potential anti-pattern. I could see how a result could become unpredictable later based on the moment of resolution.

I went ahead and went the resolve-on-set route for simplification's sake.


Hyprbars: ability to hide titles

While I know the feature of hyprbars is... the titlebars, many other WMs have the ability to hide the names from the titlebars themselves, and only feature the buttons and the bar itself.
This would be a decent feature for those wanting to achieve a more minimal look.
This is an image of what that could look like.

oh, lol, text. We live in a society.
Yeah it was just a temporary idea. I'll add the option in a sec


DevicePoPManager Tweaks to Improve Huawei Device Support

In testing, Huawei encounter errors/exceptions when attempting to generate pop keys with any of the following properties:

RSAPSS padding
SHA384/512

Temporarily tagging as No Changelog


(pup-4336) add test for puppet apply trace

This change adds a test for --trace using puppet apply.
Other tests use --trace with apply but don't check the output.
Create a dedicated test to protect against possible regressions.

America Works!

heh.  i need to add Underwood quotes to my PRs.

I think FU says it all ;)

@hlindberg fixed the exit code and made a better stack trace matcher (i hope)


Language of error messages in Test/Preview

Issue/opportunity
Language matches the interface rather than the testing language.
Expected
Errors should match testing/form language
Testing in English should show error messages in English.
Testing in French should show error messages in French.
Screenshots

Found on: Macbook, Chrome, French

Potentially related to another issue encountered by client with required copy in wrong language (shared via support team on Jul 10)

Still persists (August 8, 2023)


State Provider - Permissive State issue

Before I create a PR to remove checking the current status of SElinux (https://github.com/skottler/selinux/blob/master/providers/state.rb#L67-L69)  when the state is set to Permissive. I want to spark feedback.  As a cookbook consumer for managing selinux i'd like to be able to set setlinux to permissive then reboot for changes to take affect. Currently this cookbook requires that permissive or enforcing be enabled before you can set selinux to permissive.

Thanks for reporting this issue. As of version 1.0.1 of this cookbook we've updated the logic for this cookbook. This will allow changing the modes for the template. It logs a message about rebooting.


Vagrant provision failing with MySQL install section

Issue Type

Bug Report / Support Request

Your Environment
Vagrant 1.9.0
sh.exe": vboxmanage: command not found
VirtualBox
sh.exe": ansible: command not found

Your OS

Windows 8.1 Pro

Full console output
TASK [geerlingguy.mysql : Ensure MySQL packages are installed.] ****************
failed: [drupalvm] (item=[u'mysql-common', u'mysql-server']) => {"cache_update_time":<PHONE_NUMBER>, "cache_updated": false, "failed": true, "item": ["mysql-common", "mysql-server"], "msg": "'/usr/bin/ap
t-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"     install 'mysql-server'' failed: E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify
a solution).\n", "stderr": "E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).\n", "stdout": "Reading package lists...\nBuilding dependency tree...\nReading stat
e information...\nYou might want to run 'apt-get -f install' to correct these:\nThe following packages have unmet dependencies:\n mariadb-server : Depends: mariadb-server-10.0 (>= 10.0.28-0ubuntu0.16.
04.1) but it is not going to be installed\n mysql-server : Depends: mysql-server-5.7 but it is not going to be installed\n", "stdout_lines": ["Reading package lists...", "Building dependency tree...",
"Reading state information...", "You might want to run 'apt-get -f install' to correct these:", "The following packages have unmet dependencies:", " mariadb-server : Depends: mariadb-server-10.0 (>=
10.0.28-0ubuntu<IP_ADDRESS>) but it is not going to be installed", " mysql-server : Depends: mysql-server-5.7 but it is not going to be installed"]}
Summary
Windows GitBash shell is rubbish for "full output" (so this is just the offending section). I've not yet managed to get vagrant provision to work yet and I've made no modifications to the basic git checkout master.

@BrianWillows - Do you have any modifications in your config.yml? It looks like it might be trying to install both mariadb and mysql. Also, have you switched between CentOS and Ubuntu at all? CentOS would attempt installing MariaDB by default if using the geerlingguy/centos7 box.

No modifications, but I had switched. I had tried CentOS to see if it was different. I've retried with clean up-to-date pull from origin and it was getting the same error.  I then did vagrant destroy followed by
$ vagrant up --provision
Bringing machine 'drupalvm' up with 'virtualbox' provider...
==> drupalvm: Checking if box 'geerlingguy/ubuntu1604' is up to date...
==> drupalvm: [vagrant-hostsupdater] Checking for host entries
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> drupalvm.dev
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> www.drupalvm.dev
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> adminer.drupalvm.dev
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> xhprof.drupalvm.dev
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> pimpmylog.drupalvm.dev
==> drupalvm: [vagrant-hostsupdater]   found entry for: <IP_ADDRESS> dashboard.drupalvm.dev
==> drupalvm: Running provisioner: ansible_local...
An error occurred in the underlying SSH library that Vagrant uses.
The error message is shown below. In many cases, errors from this
library are caused by ssh-agent issues. Try disabling your SSH
agent or removing some keys and try again.

If the problem persists, please report a bug to the net-ssh project.

timeout during server version negotiating

Sorry about this - I've probably got a misunderstanding of what's going on but any help to clear this up is much appreciated.

@BrianWillows - For the SSH issue... can you make sure you're running VirtualBox 5.1.6 or later? 5.0.x has some issues with connection in new versions of Vagrant.

That totally fixed it. Thanks for your help
From: Jeff Geerling<EMAIL_ADDRESS>Sent: 30 December 2016 16:30
To: geerlingguy/drupal-vm<EMAIL_ADDRESS>Cc: Brian Willows<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [geerlingguy/drupal-vm] Vagrant provision failing with MySQL install section (#1087)
External Email
@BrianWillowshttps://github.com/BrianWillows - For the SSH issue... can you make sure you're running VirtualBox 5.1.6 or later? 5.0.x has some issues with connection in new versions of Vagrant.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/geerlingguy/drupal-vm/issues/1087#issuecomment-269791317, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJmAXyfJDKsQGP05DZhfuTmrXXtgHP72ks5rNTF3gaJpZM4LXfmo.

@BrianWillows - Awesome, thanks for posting back!


Config file documentation (and related texts) must be checked

Having drafted the config file documentation, I realized that there are some oddities that need to be checked against the implementation.
These include, but may not be limited to the following:

there are some arguments, such as help or version, that have not that much use from within configuration files. It must be clarified what they mean: do they ONLY provide help/version text (and not do anything else), or do they show such texts and continue with any further processing. This bears relevance on whether or not the scopedir argument is required.
the onNotExist parameter can be seen as generic (what to do when something of importance is checked but doe not exist), or specific, e.g., in the MRGT, onNotExist says what happens in case  vsntag was specified, but not found in the SAF.
parameters for the HRGT must be checked. For example, the interpreter is currently not used - there is a fixed MRGRef syntax. Do we want to keep that, or do we want to make that the 'basic' interpreter for HRGTs, and enable converters to be specified for HRGs in the config file?

@Ca5e, can you check this and comment on this issue and/or adjust documentation where needed?

there are some arguments, such as help or version, that have not that much use from within configuration files.

The arguments help and version are automatically generated by the commander package which is used to handle the commands and arguments. I suppose I could overwrite this default behaviour somehow and actually implement these commands based on any requested functionality.

This bears relevance on whether or not the scopedir argument is required.

I'm not sure what's meant by this.

the onNotExist parameter can be seen as generic

I'll look into the scenarios where onNotExist would be useful as well.

parameters for the HRGT must be checked.

I'd say we interpret the interpreter of the HRGT the same as the TRRT, where we have a default, but any regex or (default) could also be provided.


Trouble setting up ETS mode 2205A

Setup

Example filename: Autotest ETS Problem (manipulated version of ps2000BlockExample)
Version of Python: 3 (running code in idle)
Pico Technology device model 2205A:
Driver name, version number and platform (32- or 64-bit): libps2000
Operating system: Raspbian stretch
USB port type	(e.g. 2.0): 2.0

Description
In attempt to capture a better representation of the signal I am attempting to invoke the ETS block mode. I have successfully run the normal block mode in a loop, but I am looking for something a little cleaner. I was hoping you might have a look at my code and see if you can help out a little.
Steps to reproduce the issue
Currently, the program dies at the point shown below, and the shell restarts.
# Get times and values
        status["getTimesAndValues"] = ps.ps2000_get_times_and_values(chandle,
                                                                     ctypes.byref(times), # time interval between trigger and
sample
                                                                     ctypes.byref(bufferA), # pointer to data buffer
                                                                     ctypes.byref(bufferB), # pointer to data buffer
                                                                     None, # bufferC not used
                                                                     None, # bufferD not used
                                                                     0, # ChA overflow
                                                                     2, # time_units (ns)
                                                                     maxSamples) # no_of_values #SHELL RESTART HERE
        assert_pico2000_ok(status["getTimesAndValues"])

Use one of two methods to describe the issue:
I feel as though I am pretty close to getting this to work the way I intend. Can't work out whats going on here. Need a fresh pair of eyes if you don't mind?
Autotest_ETS_Problem.txt

Hi @AntonyLHart, for the overflow parameter, please try passing a value using ctypes.byref as it is a pointer to a value.
If that does not work, try the same code on a Windows or Linux (e.g. Ubuntu) system. It will help to narrow down if it is an issue in the code or driver.

There doesn't seem to be a definition for _get_times_and_values in library.py. I think this iss why the prgram crashes upon excecution of the class call. Do you know if there is any work being done here? Where is the best place to put in a request. I don't think this is something I'm going to be able to do myself. Bit of a show stopper atm. Can't get ets mode running without _get_times_and_values.
Any advise here?

Latest version of application attached
Autotest_ETS_Problem.txt

I have made a change to the overflow parameter as you can see in the code. I actually realised this also and made the change, however, it doesn't seem to be that, which is crashing the application.

Thanks @AntonyLHart. A member of the team is looking into this so we'll provide an update as soon as we can.

that's good news, thanks for the assistance. I'll be looking forward to the update

Can any one shed any light as to the origin of the problem?

Hi @AntonyLHart, does the function crash if you do not use ETS mode?
Have you tried the same code on a Windows or Linux PC?

No, not yet. I'll get to it. I was wondering if anyone has looked at the driver .py's yet? Particularly library.py. I haven't had any problems with any existing examples so it seems strange that it would be something to do with the raspberry pie, or debian. I cannot find anyone who has attempted the ETS mode. I will aim to run this on another system, not that I have one to hand. Can you tell me if there have been ANY successful implementations of ETS mode coded in python on linux?

And yes, If I do not setup ETS mode, the function still crashes

Hi @AntonyLHart, the definition of the function is in ps2000.py as it is a ctypes function in a shared library.
I have requested for this to be investigated as a matter of priority.

OK thanks

Any news here?

Hi @AntonyLHart would you be able to try the attached ETS example and see if it runs on your system
ps2000ETSBlockExample.txt


--help formatting is bad after localization

cc @joaomoreno
Standard sized (80 width) terminal:

This is what is was like before:

@joaomoreno do you have any reason against using a community lib for this if I get the deps approved?

Not at all... I just think that the hard 80 column wrap is an unnecessary remnant of the past, given the resizing capabilities of terminal emulators of today.

@joaomoreno yeah, I believe the community libs like yargs size the column dynamically but keep formatting similar to what it was like before.


quadratic insertion time when resizing ctables

When you have a "list" yang node that was compiled as a ctable, it gets serialized out in hash order (just as an artifact of how things work).  When you go to construct a new ctable, it will start by creating a small ctable and grow that table over time.  However in the beginning the hash values for the entries always map to small hash values, guaranteeing collisions and quadratic probe depths as those hash values map to the same early buckets.  We need a fix like Rust did to include a salt in their hash table.

cf http://accidentallyquadratic.tumblr.com/post/153545455987/rust-hash-iteration-reinsertion.  It's not quite the same problem but it's pretty close.


When can i use get_sender by v1.8.x in contract side?

Does it support any API like get_sender using GET_SENDER codename in contract side? I did not found any API in eosiolib.

https://github.com/EOSIO/eos/issues/7028
API not released yet, it is in CDT v1.7.0-rc1.
https://github.com/EOSIO/eosio.cdt/blob/v1.7.0-rc1/libraries/eosiolib/contracts/eosio/system.hpp#L90
Also not activated on mainnet yet: https://bloks.io/protocol-features


Extended SPI with more hardware CS features

The hardware CS now comes in 4 specific modes that are setup in the config:

Disabled
EndlessTransaction
WordTransaction
FrameTransaction

New here is the frame transaction where TSIZE is used to send frames of a specific length.
There's now also end_transaction that is useful for endless and mandatory for frame transactions.
The blocking implementation now checks if we're in frame mode and will send frames when we are.
I don't have a nice dev board, so all testing was with an oscilloscope with the probe manually held to the pins. So I couldn't check everything as good as I'd like, but it should all work from what I could see.

Is there a good reason as to why you aren't consuming the hardware CS pin as well just like we consume the other pins so users don't end up messing around with the pins while we are using them?

This wasn't done before either with the existing hardware CS support. Doesn't mean that wouldn't be a good thing to do though...
Should I look into adding that?

I think that's a good idea yeah...and since you're speaking of some testing code, maybe you could come up with some sort of minimal example for examples/ as well? I see spi, spi-dma, and spi-dma-rtic there but no concrete example for hardware CS yet so that'd definitely be cool as well! (Speaking from experience, the H7 HAL is known among the other stm32-rs HALs for having examples for most of its features)

Sure! I'll look into taking ownership of the CS pin and I will add an example.

Ok, both have been added now

bors r+

HW cs pin into the type system

I had considered that. But this way people can keep their old pin config and don't need to add a NoHCS pin.
Glad this got in! 😁
Now the chip I talk to doesn't bug out anymore at random

In the end its

If you provide a Hardware CS pin and try to use it you should presumably be clever enough to also provide a proper config for it
-An assert that happens during initialisation of the peripheral,so if a user makes a mistake he should notice that preeeetty quickly and not when they're already deploying it into production.


Change doclet's tag alias format

Related to #5.
I know I spoke about doclet.alias = componentName + '.vue', but it was not working as expected: the module name was vue and not componentName.vue.

Now, we got something like that :

Coverage remained the same at 83.206% when pulling 84dc1535d27cc7920c7ce13713b999e1445e7300 on fix/ISSUE-5 into a94be24139ba503a047c1a30d64e8447063760fe on develop.

Coverage remained the same at 83.206% when pulling 84dc1535d27cc7920c7ce13713b999e1445e7300 on fix/ISSUE-5 into a94be24139ba503a047c1a30d64e8447063760fe on develop.

Coverage remained the same at 83.206% when pulling 84dc1535d27cc7920c7ce13713b999e1445e7300 on fix/ISSUE-5 into a94be24139ba503a047c1a30d64e8447063760fe on develop.


Made Java implementation use Maven

I have moved the Java implementation to use Maven, while also preserving the current Makefile. I have also made quite a few code changes, but these don't touch the application logic, just make the code feel more like Java.

Balázs: many thanks for the clean-up! I've merged your commits after moving the changed files to the new src/main path to keep the history of the changes, see the recent master.
Note: I had to revert the getResource path to "data/" from "/data/" to get a working jar file using the command-line compiling. I hope, this is a fix for the Maven build, too, not the opposite.


Debug start view: describe syntax of contents

Testing #91143

As far as I can tell this allows a subset of Markdown. h1/h2 with #/## doesn't seem to be working, neither do italic and bold. However links work.
Welcome content doesn't really say anything about the format of the content. I think it should at least describe what subset of Markdown is supported.

Plain links such as https://www.google.com aren't linkified either. Not sure if that's intended or not.


fix bower main

update bower.json to point to correct main file

thank you!

@gnandretta bower package is not updated! Do u know why?

@milesibastos because we didn't release your change. I've just released 2.2.3 and it works now, but please let me know if you have any issues. Thanks.


Plex media_player clients not recognized

Home Assistant release (hass --version):
0.65.5
Python release (python3 --version):
Python 3.6.3
Component/platform:
plex (media_player)
Description of problem:
Clients/players not created as entities.
Problem-relevant configuration.yaml entries and steps to reproduce:
- platform: plex
  include_non_clients: true
  use_custom_entity_ids: true

Client entities are never added. Attempted to start hass with clients actively playing media, and nothing is logged or displayed.
Have tested with homeassistant.components.media_player.plex set to debug under logger config.
Additional info:
Only log entries shown for the component:
2018-03-15 17:57:06 INFO (SyncWorker_14) [homeassistant.components.media_player.plex] Discovery configuration done (no token needed)
2018-03-15 17:57:06 INFO (SyncWorker_14) [homeassistant.components.media_player.plex] Connected to: http://<my_plex_server>:32400

Note that I do see the active sessions/players if I check from the same host:
curl http://<my_plex_server>:32400/status/sessions?X-Plex-Token=<token>

So I’ve fought with this a bit more and I’ve been able to get web clients to (usually) trigger a media_player entity creation, even adding it to the entity registry. However all of the “native” clients such as on iOS, Apple TV, or Plex Media Player (Mac) appear to create a media_player.unnamed_device# entity which go away after a restart. These of course aren’t very useful.
Digging a bit deeper (and setting all logs to a more verbose level), I see that these players for some reason give the same error as in #11959 where a machineIdentifier can’t be found. When checking manually with the URL in my previous comment, all devices provide a proper unique identifier. Is this component using a different method to query the Plex server for devices?

"Optional cleanup of clients is coming" in this PR: https://github.com/home-assistant/home-assistant/pull/13156
Non-Clients are currently broken, in fact both these issues are described here:
https://github.com/home-assistant/home-assistant/issues/10074
I've just bought an apple tv 3 to try and get to the bottom of the non-clients. But it wont be here until monday and I'm travelling for work till Friday. So it will be next weekend before i get to look at it.

I have the same problem that @jjlawren described.
I started with two iOS devices playing a movie, Plex on a TV playing a movie and a movie playing on the web version (Chrome). The only one that shows up in Home Assistant is the TV media player.
One of the iOS devices showed up as a media player (not in the UI), has been added to the entity_registry.yaml, but when I stopped the movie on it, it kept logging the machineIdentifier errors. The other iOS device doesn't even show up in the entity_registry, but that might be because the machineIdentifier error had already happened.
Even after a restart the client that started the error is still there, although I closed the app. The web version doesn't show up either, but was added to the entity_registry.

The web version not working is strange as i do ~90% of my testing on chrome.

Thinking back to several major releases ago, I do remember iOS devices reporting playback properly and getting entity names with unique IDs.

Ok, so I did another test and somehow, everything works now.
The web version, both iOS clients and the Plex client on my TV, they now all show up as media players and they've also shown up in the entity_registry.yaml file. I haven't actually changed anything, so I'm not sure what happened here.
When I stop a video on one of the clients, that client isn't removed from Home Assistant though, so right now I do still have the same issue as described in #10074.

@kevintuhumury #10074 will be fixed in 0.66 (hopefully)

@jjlawren This is my Plex config:
- platform: plex
  entity_namespace: plex
  include_non_clients: true
  use_episode_art: true

@kevintuhumury that's very odd. I've matched your config but I can only get web clients to show up with proper identifiers. All my iOS and PMP apps create 'unnamed_device' entity names but report an unavailable status with null attributes.
Can you think of any other variables in your setup? For example, are you signed into your Plex account on all devices? Are all devices on the local network?
What kind of unique IDs are the iOS apps getting in the entity registry? Are they UUID-style?

I am signed into all of the devices with a single account. I don't have Plex Pass. All devices are on the local network.
Yes, all of the iOS apps have unique ID's in the form of an UUID. The characters aren't lowercase though.

Matched your config yet my Apple TV, iPhone, and smart TV apps all create “unnamed” entities, unavailable status, and empty attributes. Some clients triggered creation of multiple entities as there’s no identifying info available.
I do have a Plex Pass, and I use Plex Home with a primary/admin account and one managed account. More info on Plex Home is here if that seems relevant: https://support.plex.tv/articles/203960236-consequences-of-being-in-a-plex-home/

@ryanm101, I just realized that I applied your diff from #10074 during these tests above. Now that I've reverted and went back to the component as it's provided in 0.65.5, the non-web clients no longer get a media_player.unnamed_device# entity and the machineIdentifer errors mentioned in #10074 show in the log once a minute while playing.
I don't see a fix for this issue in #10074 or #10450, which both have similar backtraces. Can I help you get to the bottom of this issue here?

I'm just back from a work trip and my apple tv has arrived so I've now something to test against.
I'll spend some time on this today hopefully.

I think i see the issue.
I'll have some test code up later today

I think there are two issues in this:

Non Clients -> There is no machineID
Custom Entities -> We use the machineID as the unique_id but where we have custom entities we should use the entity_id.

fixing 2 should solve issue 1.

@ryanm101, I’m not sure that’s the problem. All the “problem” clients I have report a proper machineIdentifier when I request this URL while playing:
http://<my_plex_server>:32400/status/sessions?X-Plex-Token=<token>
Does this component use a different Plex endpoint?

@jjlawren I'm confused:

the non-web clients no longer get a media_player.unnamed_device# entity and the machineIdentifer errors mentioned in #10074 show in the log once a minute while playing.

After removing your fix (https://github.com/ryanm101/home-assistant/commit/3fe45239feb6eb7c5ffe3a7c7f6e07716442532c), the component no longer created any entities for the problem devices. In addition, I get a backtrace like the one from https://github.com/home-assistant/home-assistant/issues/10074#issuecomment-358098076 every minute as a problem client is playing.

Ok so the errors are because self._device is None which is where it is looking for the machine_identifier
Which is what that "patch" corrected, I was just stopping it looking in an object that didnt exist

Right, but when the patch was applied, those players never got a machineIdentifier nor an entry in the entity registry. I’m saying they definitely do have a machineIdentifier as reported by the Plex server, but this component doesn’t pick it up.

+1 with Android TV client on Nvidia Shield

+1, getting the same error...

+1 same error here...

@jjlawren yes but reported by the server may be different to how the plexapi presents it. (Not saying it is just that may be the case.)
Sorry for delay in this but Chrome & amazon tablet work fine.
Not setup ATV yet.
Will try firestick as well

I was using Android and Chrome and got that...

@joaoasilva can you post your cfg please? and Device types

Hi @ryanm101
Config:
  - platform: plex
    host: <host>
    port: <port>
    entity_namespace: 'plex'
    include_non_clients: true
    scan_interval: 10
    use_custom_entity_ids: false
    use_episode_art: true
    show_all_controls: true

Curl:
<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer size="1">
<Video addedAt="1521564200" art="/library/metadata/1206/art/1521570672" duration="2572926" grandparentArt="/library/metadata/1206/art/1521570672" grandparentKey="/library/metadata/1206" grandparentRatingKey="1206" grandparentThumb="/library/metadata/1206/thumb/1521570672" grandparentTitle="Ride with Norman Reedus" guid="com.plexapp.agents.thetvdb://310633/1/1?lang=en" index="1" key="/library/metadata/1208" lastViewedAt="1523895228" librarySectionID="2" librarySectionKey="/library/sections/2" librarySectionTitle="TV Shows" originallyAvailableAt="2016-06-12" parentIndex="1" parentKey="/library/metadata/1207" parentRatingKey="1207" parentTitle="Season 1" ratingKey="1208" sessionKey="14" summary="Norman and his friend Imogen Lehtonen ride up the California Pacific Coast Highway to check out some dune buggies, ride a futuristic bike and do a podcast." thumb="/library/metadata/1208/thumb/1521570668" title="California: Pacific Coast Highway" type="episode" updatedAt="1521570668" viewOffset="0" year="2016">
<Media audioProfile="lc" id="8713" videoProfile="main" audioChannels="2" audioCodec="aac" bitrate="10047" container="mp4" duration="2572926" height="1080" optimizedForStreaming="1" protocol="dash" videoCodec="h264" videoFrameRate="PAL" videoResolution="1080p" width="1920" selected="1">
<Part audioProfile="lc" id="8713" videoProfile="main" bitrate="10047" container="mp4" duration="2572926" height="1080" optimizedForStreaming="1" protocol="dash" width="1920" decision="transcode" selected="1">
<Stream bitrate="9823" codec="h264" default="1" frameRate="25" height="1080" id="18001" streamType="1" width="1920" decision="transcode" location="segments-video" />
<Stream bitrate="224" bitrateMode="cbr" channels="2" codec="aac" default="1" id="18002" selected="1" streamType="2" decision="copy" location="segments-audio" />
<Stream codec="ass" container="ass" format="ass" id="18006" key="/library/streams/18006" language="English" languageCode="eng" selected="1" streamType="3" decision="transcode" location="segments-subs" />
</Part>
</Media>
<User id="1" thumb="https://plex.tv/users/$$myuser$$/avatar?c=24234234" title="$$myuser$$" />
<Player address="$$IPADDRESS$$" device="OSX" machineIdentifier="$$mymachine$$" model="" platform="Chrome" platformVersion="65.0" product="Plex Web" profile="Web" remotePublicAddress="$$IPADDRESS$$" state="playing" title="Chrome" vendor="" version="3.47.1" local="0" userID="1" />
<Session id="$$SESSIONID$$" bandwidth="10517" location="wan" />
<TranscodeSession key="/transcode/sessions/$$KEY$$" throttled="0" complete="0" progress="1.2000000476837158" speed="3.5" duration="2572926" remaining="686" context="streaming" sourceVideoCodec="hevc" sourceAudioCodec="aac" videoDecision="transcode" audioDecision="copy" subtitleDecision="transcode" protocol="dash" container="mp4" videoCodec="h264" audioCodec="aac" audioChannels="2" transcodeHwRequested="0" timeStamp="1523957016.7774587" maxOffsetAvailable="29" minOffsetAvailable="1" />
</Video>
</MediaContainer>

Error:
2018-04-17 10:55:36 ERROR (MainThread) [homeassistant.components.media_player] Error while setting up platform plex
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 82, in async_setup
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
    return fut.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 101, in setup_platform
    hass, config, add_devices_callback
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 238, in setup_plexserver
    update_devices()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 319, in wrapper
    result = method(*args, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 319, in wrapper
    result = method(*args, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 189, in update_devices
    update_sessions)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 328, in __init__
    self.refresh(device, session)
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/media_player/plex.py", line 394, in refresh
    if self._device.machineIdentifier is not None and \
AttributeError: 'NoneType' object has no attribute 'machineIdentifier'

what device is that?

It's on the curl response. Chrome on Mac

are you connecting by webclient to the server directly or are you going via plex.tv?

Hi @ryanm101 , going via plex.tv. But the same error happens when I connect using the Plex Android APP.

does it work if you access the PMS server directly VIA IP?  x.x.x.x:32400/web?

Just tried, the same error.

If you set include_non_clients to false do you still get the error..
also you can clean up your config by removing:
use_custom_entity_ids: false
entity_namespace: 'plex'

I've just used chrome on a macbook pro and went direct via IP to teh PMS server and via plex.tv and everything works as expected

What Plex URL(s) is this component querying to retrieve clients and activity? Is it http://<my_plex_server>:32400/status/sessions?

we use plexapi to handle it all

What can we gather to help troubleshoot this since we have multiple similar reports? Maybe a trivial script that uses the plexapi library to dump interesting data to compare?
In some basic testing, I can't get my clients to show with a .clients() call, but .sessions() reports active playbacks:
Example script:
from plexapi.server import PlexServer
baseurl = 'http://<plexserver>:32400
token = 'secrettoken'
plex = PlexServer(baseurl, token)

print(plex.account())
print(plex.myPlex)
print(plex.sessions())
print(plex.clients())

Output:
<EMAIL_ADDRESS>True
[<Movie:197105:The-Lion-King>]
[]

@ryanm101, my example above was when playing through Plex Web, which should be considered a native client.
I checked my logs this morning and I'm seeing the AttributeError: 'NoneType' object has no attribute 'machineIdentifier' backtraces once a minute for hours when there have been no clients playing. Same backtrace, but perhaps a different root issue.

It should be but if you disable non-clients do you still get the error?

No, but then all clients come in as media_player.unnamed_device# and report an unknown status.

Is there any update on this?
It is still an issue for me, using Plex client on an NVidia Shield TV. The Plex Server is on a QNAP NAS.
Home-Assistant is 0.69.1.
If there's anything I can do to help diagnose the issue, or test a solution, I will happily do what I can.
Nigel

No update yet, had a few things irl that have distracted me. Will start looking at this again.

Well, if I can help, let me know what you need

Is this component broken completely. I'm not getting any entities but the sensor works fine

I'm currently trying to build out a proper test env before i tackle this. So it will be a bit longer due to work travel.
It's working fine for me, but it seems that there are a number of cases where it is broken if you use the include_non_clients feature.

@ryanm101 what is your config like? I am having the same issue

@ryanm101 I don't think that the include_non_clients feature is the issue. Here's my current plex platform section.
  - platform: plex
    entity_namespace: 'plex'
#    include_non_clients: false
#    scan_interval: 5
#    show_all_controls: true
    use_custom_entity_ids: true
#    use_episode_art: true
#    remove_unavailable_clients: true
#    client_remove_interval: 600

yes, but i want home assistant to show plex status, i want include_non_clients set to true so i can see if other people are connected to my plex server

I was playing around with the plex component last week and at this point I think I got it to work like I would expect, in the meantime I also played around with the python code and got the non_clients to properly show(they still show the full controls tho and that is not entirely right since you can't control a non-client, just get the session info, but I have to find out where I can change that).
First a few words about the Shield TV client. At first it was not showing at all as an entity in home assistant, while for example a chrome web player was being properly registered as an entity. After finding this thread I thought that the shield tv client is not a real client like the apple connect, so I tried the include_non_clients: true option which lead me to the
AttributeError: 'NoneType' object has no attribute 'machineIdentifier
exception, so tried to fix that part of the code and I think I got it to properly work. The shield tv now showed up as an entity(keep in mind that entity_namespace is needed if you have the discovery or chromecast component enabled because there is also a chromecast with the same name as the plex client on the shield)
If someone wants to test this, i just pushed the updated plex.py in this repo:
https://github.com/etheralm/home-assistant/blob/dev/homeassistant/components/media_player/plex.py
Anyway at this point I dug around a bit more and found out from the official plex documentation that the android tv client should be a fully featured client that should also be remotely controllable:
https://support.plex.tv/articles/203082707-supported-plex-companion-apps/
So based on this info I thought that I should be able to fling content at least from the plex server web interface to the shield tv client, but the client was not showing in the the list of devices.

After some more testing I figured out that the reason for this was that the firewall on the centos server where I'm running the plex server docker image was blocking the multicast communication needed to register the shield tv client properly, when I fixed my firewall rules the shield tv popped up as a client in the web interface and I was able to fling content to it and to control it. At this point I fired up home assistant again and the fully featured plex entity popped up too :). I'm now able to see what's playing  on that client and to control it.
I'm just putting this info here in hopes that it will help you too. Let me know if I could be of any other assistance.

So to try this, I would just download your plex.py and copy into my custom_components folder?

yes, just remember to preserve the folder structure, so it should go in custom_components/media_player/plex.py
Btw I noticed that you mentioned earlier that you trying to get a shield tv client to work. Normally you wouldn't need to run this fix since this is a fix for the "include_non_clients" and the shield tv client works as normal client when properly configured (eg. you can pause it and etc from the web interface).
Do you see your shield tv client listed in the plex server web interface (in the cast devices list, see the screenshot above)?

For whatever reason, I'm not seeing the SHIELD client showing up at all.
I can get Chrome clients to show up no problem, but if I pause playback on chrome, and switch to the plex app on an android phone, or the Shield, I see nothing.
I'll download this and give it a try, and let you know in a little bit how it works for me.

And unfortunately, I'm not seeing any difference.
I wonder if this is being coomplicated on my network because I have two Plex servers running. I've got the Plex server I actually use running on my NAS, but there's also a PLEX server instance on the Shield.
Oh well, I'll probably see if I can dig into this in the near future.

Having 2 servers on the network shouldn't be a problem, but I'm not sure if it will be if one of them is also the shield tv.
Btw did you try it with the option: include_non_clients: true? it won't work otherwise.
Otherwise I had exactly the same problem as you, chrome and other web plex clients were showing up, but not the shield tv and for me it was the firewall where the plex server was running. I wasn't even able to figure out exactly what was being blocked, but the moment I turned off the firewall, the shield tv client showed up in the plex web interface and also in home assistant, so in the end I just whitelisted the shield tv ip on the firewall and now everything is running fine.

I’ve had better luck with @etheralm’s custom component so far. I haven’t tested for controls and other details, but new players appear and log errors are gone.

The component doesn't seem to be available anymore? I'd like to give a try as it's still not working for me.

For some reason the URL in the link above is bogus. Copy/paste it or try this one: https://github.com/etheralm/home-assistant/blob/plex_fixes/homeassistant/components/media_player/plex.py

Thank you very much @jjlawren, that is working beautifully for me! Dropped into the custom_components/media_player folder, a quick restart and I see my Shield again! :)

Thank @etheralm for the fixes.
Any plans to make a pull request or is there a need to dig deeper. @ryanm101, have you made any progress or reviewed @etheralm’s changes?

Unfortunately, this didn't fix anything for me.. My plex chrome goes unavailable after a while and won't reappear until I restart HA..

the fix I did is for "non controllable" clients like the apple one (haven't tested it with it tho, if someone can it would be great).
@AbysFlo I have no idea why this may be happening, I never had a problem with the chrome players and for them you don't need the include_non_clients option. Can you paste your ha config for plex here? Also when the player goes unavailable can you check if its still available in in the plex ui?

I'll try out the scenario you described when I get back home, lets hope that I'll be able to reproduce it.

Thanks for helping, to clarify as my memory is coming back to me, before it never went to unavailable and was always "Idle" if it was off or not playing anything. I'll do more testing tonight as well to provide more details if I can.

@etheralm, thanks for the fixes in plex.py. Using your file caused my clients to show when I set include_non_clients to true (instead of getting the 'machineIdentifier' error in this issue).
That said, the thumbs weren't being pulled in, and the limited controls that appeared didn't work, so I decided to revert back to the original file (and set include_non_clients to false) for now.

Problem still exists in 0.82.3? Having the same issue here.. Another SHIELD user..

Same here, doesn't work on mine using NVIDIA SHIELD.

All of @etheralm links to his plex.py are 404.  I'm having this problem too and would love to test that script.

The issue still occurring in 0.84.6 (using HASS.io).  I don't see ANY media_player.plex...service or any media_player.unnamed_device.  Really ALL I see is my autodetected Apple TVs on my local network (which is unrelated to plex component).  My plex server is non-local btw.
Logs on boot:
2018-12-22 11:46:59 INFO (MainThread) [homeassistant.components.media_player] Setting up media_player.plex
2018-12-22 11:47:00 INFO (SyncWorker_8) [homeassistant.components.media_player.plex] Discovery configuration done (no token needed)
2018-12-22 11:47:00 INFO (SyncWorker_8) [homeassistant.components.media_player.plex] Connected to: http://[my-plex-server-url]

configuration.yaml
media_player:
  - platform: plex
    entity_namespace: plex
    include_non_clients: true
    use_custom_entity_ids: true
    scan_interval: 1
    remove_unavaliable_clients: false
    client_remove_interval: 60

plex.conf
{
    "url:port": {
        "ssl": false,
        "token": "Correct_token",
        "verify": true
    }
}

Errors I see in logs:
018-12-22 11:39:30 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/plex.py", line 142, in
    track_utc_time_change(hass, lambda now: update_devices(), second=30)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/util/__init__.py", line 324, in wrapper
    result = method(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/util/__init__.py", line 324, in wrapper
    result = method(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/plex.py", line 182, in update_devices
    update_sessions)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/plex.py", line 321, in __init__
    self.refresh(device, session)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/plex.py", line 387, in refresh
    if self._device.machineIdentifier is not None and \
AttributeError: 'NoneType' object has no attribute 'machineIdentifier'

@balloob this appears to be related to https://github.com/home-assistant/home-assistant/issues/11959 which you dug into a while back.  Just FYI.


Low disk space detected, Fulcrum  /scripthash_history/ takes 77 GB of log files

Just did the whole "clean" script.  I didn't clear much, now have 3.1 GB left out of 1000 GB drive.
I think this script should suggest to clear that folder. /home/node/parmanode/fulcrum_db/scripthash_history/
Actually nevermind I tought it was all logs, I guess it's normal for Fulcrum to take 149gb?
Didn't expect to run out space with 1 TB,

Any advice would be greatly appreciated.

Apparently there's 5% of the full disk that is being overprovisioned, changing this to 1% is sufficient and can give back an extra 45gb for "free" using the command.
sudo tune2fs -m 1 /dev/sda2

Yes, it's normal. You need a bigger drive.
The disk clean script is for the internal drive btw.
On Mon, 30 Sept 2024, 3:57 am nostitos, @.***> wrote:

Just did the whole "clean" script. I didn't clear much, now have 3.1 GB
left out of 1000 GB drive.
I think this script should suggest to clear that folder.
/home/node/parmanode/fulcrum_db/scripthash_history/
Actually nevermind I tought it was all logs, I guess it's normal for
Fulcrum to take 149gb?
Didn't expect to run out space with 1 TB,
image.png (view on web)
https://github.com/user-attachments/assets/e34a8aa5-878d-412f-a971-c0176ec1da98
Any advice would be greatly appreciated.
—
Reply to this email directly, view it on GitHub
https://github.com/ArmanTheParman/Parmanode/issues/49, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASQCCX2JWKDUMESQAOBBJSTZZA5QRAVCNFSM6AAAAABPB5E3HWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU2TKMBUHE4DIOA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


MCP breaking Mojang ToS.

Hey! Not to be rude or anything, but unfortunately you can't host your client on Github publically like this. Mojang's ToS disallow you from publically distributing Minecraft's code like you do here. Please take it down :)

Hello and thank you for the information, if I remove the code from Minecraft, but I leave my code it is not a problem ?

Hello and thank you for the information, if I remove the code from Minecraft, but I leave my code it is not a problem ?
sorry for the wait of the message I'm not too much on github these days because I revise my final exams :)

I believe it's fine if you remove the Minecraft code, yeah.

I've removed the code from minecraft. Thanks to this I think I will make a mixed client, to be able to publish the code more easily


connect externally

is it possible to use pytapo to connect to tapo externally? I have received errors when trying to do this.

Your camera has to be available on specified IP and ports. If it is (IP is public and ports are forwarded), it can be accessed remotely.

I have access to tapo externally on port 553, from here I get video. I placing the wrong port to control the camera via pytapo?
`#!/usr/bin/env python3
from pytapo import Tapo
user = "username" # user you set in Advanced Settings -> Camera Account
password = "password" # password you set in Advanced Settings -> Camera Account
host = "address:551" # ip of the camera, example: <IP_ADDRESS>
tapo = Tapo(host, user, password)
print(tapo.getBasicInfo())
`
`x@x-K52Jr:~$ python3 tapo.py
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 376, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 996, in validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 366, in connect
self.sock = ssl_wrap_socket(
File "/usr/lib/python3/dist-packages/urllib3/util/ssl.py", line 370, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/lib/python3.8/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.8/ssl.py", line 1040, in _create
self.do_handshake()
File "/usr/lib/python3.8/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1131)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
retries = retries.increment(
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 436, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='aosr.no-ip.org', port=551): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "tapo.py", line 9, in
tapo = Tapo(host, user, password)
File "/home/x/.local/lib/python3.8/site-packages/pytapo/init.py", line 40, in init
self.basicInfo = self.getBasicInfo()
File "/home/x/.local/lib/python3.8/site-packages/pytapo/init.py", line 232, in getBasicInfo
return self.performRequest(
File "/home/x/.local/lib/python3.8/site-packages/pytapo/init.py", line 94, in performRequest
self.ensureAuthenticated()
File "/home/x/.local/lib/python3.8/site-packages/pytapo/init.py", line 60, in ensureAuthenticated
return self.refreshStok()
File "/home/x/.local/lib/python3.8/site-packages/pytapo/init.py", line 73, in refreshStok
res = requests.post(
File "/usr/lib/python3/dist-packages/requests/api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='aosr.no-ip.org', port=551): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)')))
`


updates regex to string

Description
Safari wasn't able to compile due to regex that it does not support
The fix is to wrap the regex in a string
Notes
n/a

Issue (if applicable)
fixes #514

Testing
App should load on safari correctly

Screenshots (if applicable)
n/a

o dang I looked at the wrong thing to confirm it working. I was hoping a quick fix. I'll take another look.


Please add DeepSparse support

Your inference turned out to be much more accurate than Ultralytic's inference.
I found this interesting thing called DeepSparse. It works faster than ONNX but unfortunately its inference is less accurate than yours + uses heavyweight Torch.
https://github.com/neuralmagic/deepsparse
Could you please help me to use DeepSparse instead of ONNX?

@ibaiGorordo i made it. Hard-coded some dimensions tho: https://pastebin.com/y2J32M90
Could you please help me make it without hard-coded values?

My recommendation is to copy this repository, rename it to something like Deepsparse-YOLOv8-Object-Detection and change the yolov8 class with your changes. For easier findability.

@ibaiGorordo that's what I did. But i suggest you to add the support :)

@kopyl how did you come up with the result of this repo gives higher accuracy than ultralytics yolo? can you elaborate?


Issue with Google Tag Manager

Hello there!
First of all thank for such a lovely package!
I am trying to set up it to work with Google Tag Manager, but it seems that no events get through. I've followed installation instructions for Android form Tag Manager itself and this package as well. All the methods seem to resolve to successful Promises, but there are nothing in analytics.
Are there some known issues I should be aware of? Do you have any ideas what might me the root cause of the problem?

Hi @gyzerok,
I'd recommend in any case to setup logging in order to debug. Check out the wiki for that.
Other than that I'd have to ask if you've verified that your GTM account/container is setup correctly, and connected to your GA account?

@cbrevik thanks for your response!
It seems like container set up is good, because if I pass incorrect id then the whole thing fail, but if I pass correct one everything is fine.
When using logcat I can see following in my logs.
02-22 11:56:52.814 E/GoogleTagManager( 2934): Invalid macro: _gtm.loadEventEnabled

I am unsure if I've understood the problem correctly.
Did you do a separate installation of GTM (Android form Tag Manager you said) in the app? Other than just installing this module?
Have you tried setting up some values and retrieve them from the container?

Ah, sorry. Let me try to explain it better.
I was following these instructions to add proper permissions and container binary into the application.
Then I am using your plugin in the following way
GoogleTagManager
  .openContainerWithId('GTM-XXX111Q')
  .then(() =>
    GoogleTagManager.pushDataLayerEvent({
      event: 'event',
      action: 'hello',
    }),
  )
  .then(val => console.log(val)); // prints "true"

If I would change container id to just some weird string, then I will receive an error that it doesn't exists, which, I guess, mean that plugin is able to find installed container.
The problem is that no event get through to the google tag manager. It looks like even thought there are no error the event do not get sent.
Meanwhile each time I do try send new event I do see following error in logcat.
02-22 11:56:52.814 E/GoogleTagManager( 2934): Invalid macro: _gtm.loadEventEnabled

@cbrevik not sure if you seen the message without mention. Sorry for pinging you twice otherwise.

Sorry @gyzerok, the previous week(end) has been busy, forgot about this issue.
From googling, it doesn't seem like Invalid macro: _gtm.loadEventEnabled is that big of an issue. So I'm not sure that is the problem. I haven't got the opportunity to test if I get that error too though, at the moment.
Have you attempted a simple web-integration on a test page, just to see that if GTM works there? It'd be good to rule out an issue with GTM not properly connected to GA or something.

I have the same issue. Any update?


Create Multilingual AI Agent

📝 Description
Description for a Translation AI Agent:
Description:
The Multilingual Translator is your personal language translation assistant. It's designed to help you quickly and accurately translate text from one language to another. Whether you need to understand a foreign language text or communicate with someone who speaks a different language, our AI-powered translator is here to assist you.
Key Features:
Translate text from a wide range of languages to your preferred language.
Simple and intuitive user interface for text input.
Accurate and reliable translations based on advanced AI models.
Swift response times to make your translation tasks more efficient.
Easily accessible via a user-friendly conversational interface.

💣 Is this a breaking change (Yes/No):

[ ] Yes
[x] No

🚧 How to migrate?
Don't need.
📝 Additional Information
lol

Hey @nobunagaaa :
We checked your AI Agent and it seems the way you are using the variable in your prompt is incorrect. If it's correct it will show up in green color.

@donqu1xotechina
Hi, can you review the changes?


cmd/go: omit non-executable "func _()" functions from coverage profiles

Currently, coverage profiles include coverage for functions that cannot ever run (func _() { ... }). These sorts of functions are commonly used to generate compile-time checks that aren't expected to actually execute. For example, code generated by stringer:
// Code generated by "stringer -type=accessLevel -trimprefix=level"; DO NOT EDIT.

package bot

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[levelUnknown-0]
	_ = x[levelEveryone-1]
	_ = x[levelSubscriber-2]
	_ = x[levelModerator-3]
	_ = x[levelBroadcaster-4]
	_ = x[levelAdmin-99]
}

const (
	_accessLevel_name_0 = "UnknownEveryoneSubscriberModeratorBroadcaster"
	_accessLevel_name_1 = "Admin"
)

var (
	_accessLevel_index_0 = [...]uint8{0, 7, 15, 25, 34, 45}
)

func (i accessLevel) String() string {
	switch {
	case 0 <= i && i <= 4:
		return _accessLevel_name_0[_accessLevel_index_0[i]:_accessLevel_index_0[i+1]]
	case i == 99:
		return _accessLevel_name_1
	default:
		return "accessLevel(" + strconv.FormatInt(int64(i), 10) + ")"
	}
}

Could have a coverage profile of:
github.com/hortbot/hortbot/internal/bot/accesslevel_string.go:7.10,17.2 7 0
github.com/hortbot/hortbot/internal/bot/accesslevel_string.go:28.38,29.9 1 23
github.com/hortbot/hortbot/internal/bot/accesslevel_string.go:30.24,31.80 1 21
github.com/hortbot/hortbot/internal/bot/accesslevel_string.go:32.15,33.29 1 2
github.com/hortbot/hortbot/internal/bot/accesslevel_string.go:34.10,35.64 1 0

Note the first line, which says 7.10,17.2 7 0, i.e. the _ function has zero lines covered.
I propose that coverage data should be omitted for these _ functions. My rationale:

Because these functions show up in coverage profiles, they "fool" commonly used coverage visualization / tracking systems into reporting a lower-than-true percentage. Here's my profile example on coveralls: https://coveralls.io/builds/27776643/source?filename=internal/bot/accesslevel_string.go
These functions cannot run; their benefit is already gained at compile time.
Due to the simplicity of the coverage profiles (just line info, no context), it's not straightforward to post-process coverage data to get this behavior without changing go test itself.

I'm not sure if this is a proper "proposal", but I didn't think it was exactly a "bug" either. Feel free to retitle as needed.

I get the feeling that this missed getting put into the Proposals project. Maybe I shouldn't have made it a proposal at all.

This doesn't really need to be a proposal. If you'd like to send a fix, the tree is open now. 🙂

Thanks, that's what I figured. I'm still not sure what should and shouldn't be a proposal... :smile:
I'll take a look, though I'm definitely not familiar with this particular code.

I am still getting this issue. My generated code has the following function:
func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	 It wouldn't be fixed in Go 1.14.

Oh. Ok, thanks for the quick reply!


[question] How to create some sitemaps?

I try to use example sitemapAndIndexStream . My code:
const sms = new SitemapAndIndexStream({
  limit: 10000,
  getSitemapStream: (i) => {
    const sitemapStream = new SitemapStream();
    const path = `./sitemap-${i}.xml`;

    sitemapStream
      .pipe(createWriteStream(resolve(path))); // write it to sitemap-NUMBER.xml

    return [new URL(path, 'https://example.com/subdir/').toString(), sitemapStream];
  },
});

sms
  .pipe(createWriteStream(resolve('./sitemap-index.xml')));

const arrayOfSitemapItems = [{ url: '/page-1/', changefreq: 'daily'}, { url: '/page-2/', changefreq: 'daily'}];
arrayOfSitemapItems.forEach(item => sms.write(item));

But I have an error TypeError [ERR_INVALID_URL]: Invalid URL: /page-1/

@coolswood Thanks for pointing that out. I've updated the documentation to reflect that you should pass in a hostname to the sitemapStream on creation if you want it to resolve relative paths. Alternatively you can directly pass full URLs.

here's a direct link to what you need to change

Thank you, it works!


RSS feed items

Should we use the pub date and title from the RSS feed, or at least offer it?
The latter so this is not coupled to Google RSS

@richardwu

we could include a optional flag in the GoogleNewsRss constructor that also retrieves pubDate and other Google RSS metafields in the extract method.

would require a refactor I think, not sure its worth tbh


mobile: Fix merge race conflict

This fixes the merge race conflict between https://github.com/envoyproxy/envoy/pull/34029 and https://github.com/envoyproxy/envoy/pull/34014.
Risk Level: low
Testing: unit test
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @alyssawilk


Adding alternate alerts when vitals not present

This will utilize the /api/solar_powerwall endpoint to populate the alerts array if devices (through vitals) are not present. Let me know if you want it simplified to not include the outer 'if'. I included it for clarity, to show the distinct paths, but it can also be simplified if needed (since it won't loop through devices that aren't present).
I also only used the fallback if alertsonly was true, since we don't have device specific information in that setup.
This should be automatically picked up by the alerts/pw endpoint since the format is the same.
I tested it locally using the /alerts endpoint, but might be good to validate that it still uses vitals if they are present (it should). I am on the later firmware where it's no longer present (23.44).
Let me know if you'd like anything changed!

Let me add some error handling actually, in case that endpoint goes

Ok, ready to be reviewed!

Looks good @DerickJohnson !  Thanks! 🙏
I'll add release notes and start the merge.


neonvm: Refactor runner pod cgroup cpu scaling

Move cgroup updates to VmScaling phase. Rewrote updating CPU status in VmRunning phase based on the values from cgroups and qemu.
Fixes https://github.com/neondatabase/autoscaling/issues/462

LGTM


Wrong/Missing Log Levels in application.properties

Hi,
Autocomplete for Log Levels has issues.
For all the log level properties except quarkus.log.category.key.level, the proposed levels are the ones from java.util.logging, which means that setting FATAL, ERROR, WARN, DEBUG or TRACE is detected as an error.
For quarkus.log.category.key.level, two more levels are available: ERROR and DEBUG, but the other ones are missing too.
According to this issue (see quote below), the levels that users are expected to use are the ones from JBoss Log Manager. The JUL ones are there only for compatibility reasons.

As far as the Quarkus documentation goes: it was, in my view, an error (due to overzeal) to document anything other than the Apache levels. Those are the levels we expect users to use and configure. The JUL levels are worthy, perhaps, of a footnote, for cases where older Sun frameworks are used (for example) and the user needs to know how to map those levels on to the Apache ones for the purposes of configuring log categories. But this is one case where what is in the JDK is not really the standard that is used by the majority of developers. Documenting them as if they were serves only to add confusion.

The JBoss Log Manager levels should be added to the autocomplete (or used instead of JUL ones if not possible to combine them) to avoid having the properties marked as errors in VS code.
Thanks in advance.

Today LEVEL are hard coded on MicroProfile LS side https://github.com/eclipse/lsp4mp/blob/master/microprofile.ls/org.eclipse.lsp4mp.ls/src/main/resources/org/eclipse/lsp4mp/model/values/quarkus-values-rules.json but it was a bad idea. (This issue is a sample of the limitation).
I had created the issue https://github.com/eclipse/lsp4mp/issues/39 but I need more investigation. The basic idea is that MP JDT should return the list of logger level.

Fixed with https://github.com/eclipse/lsp4mp/pull/105 and https://github.com/redhat-developer/quarkus-ls/pull/370
@Faboli7 see the following demos:


chore: Validate outputs in kernel circuits

Kernel circuits have a validation step that checks their output, which is constructed in an unconstrained function earlier. This check should not be needed when running in unconstrained mode, so they were skipped.
However, this means that errors in the unconstraiend construction of the output could go unnoticed in tests that run without real proofs enabled, since those use the -simulated versions of kernels which are unconstrained. To catch these errors, we now force kernel circuits to always validate this output.

Benchmark results
Metrics with a significant change:

proof_construction_time_sha256_ms (4): 1,553 (-48%)
proof_construction_time_sha256_ms (16): 700 (-17%)
proof_construction_time_sha256_100_ms (32): 5,538 (-19%)
proof_construction_time_sha256_30_ms (1): 11,767 (-27%)
protocol_circuit_simulation_time_in_ms (private-kernel-tail): 687 (+60%)
protocol_circuit_proving_time_in_ms (base-parity): 2,187 (+50%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,720
:warning: 1,553 (-48%)
:warning: 700 (-17%)
754 (+2%)
761 (-1%)

proof_construction_time_sha256_30_ms
:warning: 11,767 (-27%)
3,155
1,416
1,453 (+1%)
1,468

proof_construction_time_sha256_100_ms
43,937 (-3%)
12,409 (+3%)
5,649 (-1%)
:warning: 5,538 (-19%)
5,490 (-1%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
57.0 (-2%)
87.0

proof_construction_time_poseidon_hash_30_ms
1,518
417
202 (+1%)
223 (-3%)
263 (-1%)

proof_construction_time_poseidon_hash_100_ms
5,608 (-5%)
1,514
685 (-1%)
721
750 (+1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
708
708
708

l1_rollup_calldata_gas
6,600
6,588
6,576

l1_rollup_execution_gas
611,442
611,581
611,720

l2_block_processing_time_in_ms
763 (-2%)
1,422 (-1%)
2,767

l2_block_building_time_in_ms
10,674 (-1%)
20,733 (-1%)
41,336 (-1%)

l2_block_rollup_simulation_time_in_ms
10,674 (-1%)
20,733 (-1%)
41,336 (-1%)

l2_block_public_tx_process_time_in_ms
8,927 (-1%)
18,779 (-1%)
39,287 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
7,116
9,980

node_database_size_in_bytes
12,742,736
16,887,888

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

GasToken:_increase_public_balance
95.2 (-1%)
8,139

GasToken:set_portal
11.5 (-10%)
2,362

Token:constructor
119 (-3%)
16,400

FPC:constructor
91.8
9,304

GasToken:mint_public
79.6 (-3%)
6,150

Token:mint_public
102 (-8%)
11,720

Token:assert_minter_and_mint
62.3 (+4%)
8,028

AuthRegistry:set_authorized
44.4 (+2%)
4,537

FPC:prepare_fee
238 (+4%)
8,812

Token:transfer_public
41.9 (+7%)
32,641

FPC:pay_refund
73.3 (+10%)
12,114

Benchmarking:increment_balance
1,044
7,450

Token:_increase_public_balance
11.8 (+1%)
8,960

FPC:pay_refund_with_shielded_rebate
142 (-1%)
12,663

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.155 (+2%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.3 (-2%)
16.6 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.594 (-2%)
0.512 (-1%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
47.8 (-1%)
77.9 (+2%)
135 (+2%)
245 (-2%)
472 (-1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.488 (-1%)
0.478 (+1%)
0.463 (+1%)
0.444 (-3%)
0.439 (-2%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
59.0 (-1%)
112 (-1%)
183 (-2%)
352 (-1%)
722 (+2%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.499 (-1%)
0.500 (-1%)
0.485 (-1%)
0.478
0.495 (+2%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
72.7 (-1%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
133
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.518 (-1%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,017
666,910

Transaction size based on fee payment method
| Metric |  |
| - |  |


automate management prep

When S3 buckets for exotenportaal are in order:

[ ] add gbif secrets
[ ] create management_prep.yaml
[ ] create install_packages_management.R
[ ] create run_management_prep.R
[ ] create PR_management.md
[ ] create upload_management_to_UAT.rmd like upload_files_to_UAT.Rmd from backoffice-wild-analyse

completed


[BUG] Criteria type mismatch between adminApiTypes and storeApiTypes

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
The type for Criteria in adminApiTypes doesn't seem up-to-date (compared to storeApiTypes).
Here a picture of the diff (adminApiTypes <-> storeApiTypes):

Currently i'm having 2 main issues with the types in adminApiTypes:

associations?: Record<string, never>; always shows a ts error (workaround -> as any)
includes is missing (workaround -> // @ts-ignore)

Expected Behavior
Criteria types in adminApiTypes should work as expected.
Steps To Reproduce
No response
Environment
- @shopware/api-client: 1.0.1

Anything else?
No response

the missing parts of Criteria type is now available under canary version of api-client package. let me know if it works for you.


Add extern 'C' guards to eliminate -Wold-style-cast warnings in C++.

It's not a substantial change, but wrapping the header in extern "C" eliminates warnings regarding casting when used in C++ which aren't appropriate because the code is C and C++ casts obviously wouldn't work.

Thanks for your pull request!
But unfortunately your code causes a compiler using GCC 4.8 when compiling C code:
gcc   -m32 -g -O3 -Wall -pedantic -Wextra -Werror -Wno-unused-parameter -Wno-long-long  -O3 -DNDEBUG test/test2.c
/home/travis/build/kimwalisch/libpopcnt/./libpopcnt.h:816:3: error: C++ style comments are not allowed in ISO C90 [-Werror]
 } // extern "C"

So can you please remove the // extern "C" comment?

Absolutely, thank you for letting me know!

Thanks!


Animating nodes

I am trying to animate the nodes in my sceneNode and I can't get it to work, I am trying like this:
func sceneLocationViewDidSetupSceneNode(sceneLocationView: SceneLocationView, sceneNode: SCNNode) {
        let animation = CABasicAnimation(keyPath: "opacity")
        animation.fromValue = 100.0
        animation.toValue = 0.0
        animation.duration = 2.0
        animation.autoreverses = true
        animation.repeatCount = .infinity

        print("\(sceneNode) name name name name name" )
        for node in sceneNode.childNodes {
            for nodeInner in node.childNodes {
                for nodeInnermost in nodeInner.childNodes {
                    if (nodeInnermost.name?.localizedStandardContains("ship"))! {
                        print(nodeInnermost.childNodes.first ?? "FIRST DOESNT EXIST")
                        nodeInnermost.childNodes.first?.addAnimation(animation, forKey: "opac")
                    }
                }
            }
        }
    }

As you can see I am using the delegate method to wait until the scene is rendered and then I try to add the animations. I have also tried adding the animation to the node of the scene when it is created and added with no luck. Has anyone successfully animated a node?

Yes, you need to use scnaction.
Romain

On 17 Feb 2018, at 21:02, Eamon White<EMAIL_ADDRESS>wrote:
I am trying to animate the nodes in my sceneNode and I can't get it to work, I am trying like this:
func sceneLocationViewDidSetupSceneNode(sceneLocationView: SceneLocationView, sceneNode: SCNNode) {
let animation = CABasicAnimation(keyPath: "opacity")
animation.fromValue = 100.0
animation.toValue = 0.0
animation.duration = 2.0
animation.autoreverses = true
animation.repeatCount = .infinity
    print("\(sceneNode) name name name name name" )
    for node in sceneNode.childNodes {
        for nodeInner in node.childNodes {
            for nodeInnermost in nodeInner.childNodes {
                if (nodeInnermost.name?.localizedStandardContains("ship"))! {
                    print(nodeInnermost.childNodes.first ?? "FIRST DOESNT EXIST")
                    nodeInnermost.childNodes.first?.addAnimation(animation, forKey: "opac")
                }
            }
        }
    }
}

As you can see I am using the delegate method to wait until the scene is rendered and then I try to add the animations. I have also tried adding the animation to the node of the scene when it is created and added with no luck. Has anyone successfully animated a node?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

can i animate opacity with scnaction?

SCNAction is quite simple - you do something like:
let action = SCNAction.rotateby(...)
node.run(action)
There's a lot of documentation available on line for it.

I'd like to run action that moves location node by X metres, while I'm using move(to:) action, the node location is not updating within the scene as are the static nodes, is there any way how to do this?
For now, I'm setting the new location in SCNAction completition handler and moving the node to position calculated from current and future location, so the node position gets updated when the action finishes. My idea is to update the node's location simultaneously with the position as the move(to:) action does, somebody managed to solve this?


Base OscTime/SystemTime conversions on UNIX_EPOCH

This allows the math to work on 32 bit systems where SystemTime cannot
represent times as far back as the OSC epoch. As a consequence times
before the unix epoch can not be converted between, even on 64-bit
systems. This has been documented.

First, the implementation looks fine to me, kudos for doing the hard work @ooesili :)
But I will need to have a second look, generally it should be fine to deny timestamps from before the Unix epoch but I am still a bit on the fence with this since we then diverge from the OSC specification.  For the majority of cases this should be fine, hence adjusting the logic based on register width is probably not worth the hassle.

I don't think it's technically diverging from the specification, because users can still create OscTime values as far back as the OSC epoch, they just won't be able to do so by converting from a SystemTime.

Here's a proposal that uses conditional compilation based on the target systems pointer width to allow the full conversion range on 64-bit systems and the epoch-time limitation for others.  See commit edaf5caf0413a52fe0307c782ddc47bbbd8b1800 for the implementation.  @ooesili  You are free to cherry pick this change and to give feedback on the implemenation of course.

@ooesili Did you take a look at edaf5caf0413a52fe0307c782ddc47bbbd8b1800 ?

Hey there! Sorry for the delay. I was dealing with some quarantine blues and haven't really been coding for the last couple weeks. I looked into this a little bit more today and it seems that the rules for determining the range of times a SystemTime can represent on any given platform are more complex than just looking at target_pointer_width. Here are the sources for libc::time_t on a few platforms to show you what I mean (time_t is used to hold the seconds portion of SystemTime).

https://docs.rs/libc/0.2.94/x86_64-pc-windows-msvc/src/libc/windows/mod.rs.html#30-36
https://docs.rs/libc/0.2.94/x86_64-apple-darwin/src/libc/unix/bsd/apple/mod.rs.html#7
https://docs.rs/libc/0.2.94/src/libc/unix/linux_like/linux/gnu/b64/mod.rs.html#12-22

Considering the complexity of figuring this out, and the fact that in practice OSC timestamps are primarily used (based on my experience and understanding of the OSC spec) for specifying times close to or slightly ahead of the current time, I feel pretty confident in the current implementation in this PR. It seems unlikely to me that users would try to create OSC timestamps before 1970, and this implementation does not prevent users from doing so, they would just have to construct an OscTime directly instead of converting to one from a SystemTime.
TL;DR I strongly agree with what you already said :)

For the majority of cases this should be fine, hence adjusting the logic based on register width is probably not worth the hassle.

Hey there! Sorry for the delay. I was dealing with some quarantine blues and haven't really been coding for the last couple weeks.

No worries, took me also quite some time to reply, hope you're doing well now.

I looked into this a little bit more today and it seems that the rules for determining the range of times a SystemTime can represent on any given platform are more complex than just looking at target_pointer_width.

Thanks for having a deeper look and, yes, it's more complicated than I initially though.
Actually I'm happy to skip edaf5caf0413a52fe0307c782ddc47bbbd8b1800 since it would have introduced additional complexity without benefit, hence I will go with the initial approach and merge this PR as-is.  Thanks again for the fix!


Locally linked repos do not have their components styles transformed

jest-glamor-react version: 4.3.1
node version: 9.11.2
npm (or yarn) version: 6.1.0

What you did:
I have two repositories, one that contains a UI library using glamour and the other that contains our production site, also using glamor. Both are using the same version of jest-glamor-react. In our main repo, when we have the UI library installed normally, we see the styles come through on all components, and all is well. But when running npm link to symlink to a local copy of the UI library, components from that library no longer get transformed, and we just get data-css-hash in our snapshots for those components.
Reproduction repository:
https://github.com/chrissinclairedited/jest-glamor-react-issue-library
https://github.com/chrissinclairedited/jest-glamor-react-issue-client
Clone both and link client -> library (the dependency in client is expecting it to be called library) and the tests pass. But looking at the snapshots for the client, the test that depends on the library component doesn't include the styles.
Problem description:
Snapshots are not transforming css classes when the component exists in a locally linked repo.
Suggested solution:
Treat locally linked libraries the same way as locally installed ones and transform the styles on that repo.

Hi there,
My guess is that you have two instances of the glamor module loaded in your tests. This isn't really something we can solve in this library I'm afraid. You'll have to make sure that the glamor your components are using I'd the same one this library if using.
I'm sorry we can't be more helpful. Good luck!

Thanks for the reply - what you say makes sense, and would explain this. Also agree it's probably not on this library to solve, and is part of the way npm handles dependencies. I'm not seeing a good way around it either at the moment which is a real shame. Thanks for your time at any rate.

FWIW it seems like it's a known thing on a bigger scale:

https://github.com/facebook/jest/issues/5356
https://github.com/facebook/create-react-app/issues/3883


⚠ Bofrost.com has degraded performance

In e71be7a, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 2062 ms

Resolved: Bofrost.com performance has improved in ff08228 after 6 minutes.


Minor refactoring

Minor refactoring
Add docstring

Codecov Report

Merging #3 (f8c97b3) into main (2beb32b) will decrease coverage by 0.01%.
The diff coverage is 90.00%.

@@            Coverage Diff             @@
##             main       #3      +/-   ##
==========================================
- Coverage   86.96%   86.95%   -0.02%
==========================================
  Files          17       18       +1
  Lines         913      912       -1
==========================================
- Hits          794      793       -1
  Misses        119      119

Flag
Coverage Δ

tests
86.95% <90.00%> (-0.02%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

dp/__init__.py
100.00% <ø> (ø)

dp/preprocess.py
84.61% <ø> (ø)

dp/train.py
61.76% <ø> (ø)

dp/training/decorators.py
90.90% <ø> (-0.76%)
:arrow_down:

dp/training/evaluation.py
100.00% <ø> (ø)

dp/training/losses.py
100.00% <ø> (ø)

dp/training/metrics.py
100.00% <ø> (ø)

dp/utils/logging.py
100.00% <ø> (ø)

dp/training/trainer.py
55.34% <53.84%> (ø)

dp/model/utils.py
94.44% <87.50%> (ø)

... and 11 more

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 2beb32b...f8c97b3. Read the comment docs.


0.0.7

This update has the following improvements:

The bill text is the most up to date version (first, third, as passed)
The current reading is included in the bill

bill = Bill(bill_five)
print(bill.data["reading"])
# prints: "first", "third", or "aspassed"


Use esc / tablet mode back button to go back

Is your feature request related to a problem? Please describe.
I often use esc key to go back, in Files UWP that doesn't seem to be possible. Moreover in tablet mode the back button closes the app
Describe the solution you'd like
Implement esc/tablet mode back button to go back
Describe alternatives you've considered
None
Additional context
Not needed

Tablet mode support has been implemented in v0.9.0

@yaichenbaum can this be opened? Esc key is not working

You can already use the Back key.

You can already use the Back key.

Yes, but I'd like to use esc, like I do in some apps

There are no plans to support the Esc key.

There are no plans to support the Esc key.

Can I ask why? Are there any drawbacks?

The Esc key is used for other functions throughout the app and it can cause potential conflicts.


Incorrect key label on "Top Projects by Forks" graph on insights page

The following mouseover label says Projects: 30 but should say Forks: 30:

Seems to come from this line: https://github.com/usdot-jpo-codehub/codehub-ui/blob/6f021b470759f9b59c3b01ef9041e7efdcff34fd/src/insight/insight.js#L446

Fixed and will be included in the next release.


https request object does not emit the "end" event?

I never get the callback or the "sent" event emitted after sending a message.

Same issue. Ubuntu, Node 0.4.12, c2dm 1.0.3; the 'end' event doesn't fire and the callback doesn't get called.


[objc] Use SourceWriter from *Helper classes

Mostly remove tabulations from Write[Line] calls.

Build and tests passed.


#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x2d563fa1fb80, cond=0x2d563fa1fbb8) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x2d563fa1fbb8, mutex=0x2d563fa1fb80) at pthread_cond_wait.c:655
#3  0x000055555735d1b4 in gpr_cv_wait (cv=0x2d563fa1fbb8, mu=0x2d563fa1fb80, abs_deadline=...) at external/com_github_grpc_grpc/src/core/lib/gpr/sync_posix.cc:128
#4  0x0000555557331907 in grpc_core::Executor::ThreadMain (arg=0x2d563fa1fb80) at external/com_github_grpc_grpc/src/core/lib/iomgr/executor.cc:246
#5  0x000055555735eb9a in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::operator()(void*) const (this=<optimized out>, v=<optimized out>) at external/com_github_grpc_grpc/src/core/lib/gprpp/thd_posix.cc:139
#6  grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::__invoke(void*) (
    v=<optimized out>) at external/com_github_grpc_grpc/src/core/lib/gprpp/thd_posix.cc:109
#7  0x00007ffff74116db in start_thread (arg=0x7ffff6817700) at pthread_create.c:463
#8  0x00007ffff713a71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7ffff7018700 (LWP 276)):
#0  0x00007ffff7417ad3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x2d563fa20160) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x2d563fa20100, cond=0x2d563fa20138) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x2d563fa20138, mutex=0x2d563fa20100) at pthread_cond_wait.c:655
#3  0x000055555735d1b4 in gpr_cv_wait (cv=0x2d563fa20138, mu=0x2d563fa20100, abs_deadline=...) at external/com_github_grpc_grpc/src/core/lib/gpr/sync_posix.cc:128
#4  0x0000555557331907 in grpc_core::Executor::ThreadMain (arg=0x2d563fa20100) at external/com_github_grpc_grpc/src/core/lib/iomgr/executor.cc:246
#5  0x000055555735eb9a in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::operator()(void*) const (this=<optimized out>, v=<optimized out>) at external/com_github_grpc_grpc/src/core/lib/gprpp/thd_posix.cc:139
#6  grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::{lambda(void*)#1}::__invoke(void*) (
    v=<optimized out>) at external/com_github_grpc_grpc/src/core/lib/gprpp/thd_posix.cc:109
#7  0x00007ffff74116db in start_thread (arg=0x7ffff7018700) at pthread_create.c:463
#8  0x00007ffff713a71f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7ff1300 (LWP 272)):
#0  0x00007ffff713aa47 in epoll_wait (epfd=8, events=0x2d563fc66300, maxevents=32, timeout=100) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x000055555762e8c0 in epoll_dispatch ()
#2  0x00005555576295db in event_base_loop ()
#3  0x00005555571d579c in Envoy::Server::InstanceImpl::run (this=0x2d563faec800) at source/server/server.cc:684
#4  0x0000555556533008 in Envoy::MainCommonBase::run (this=0x2d563fc7e688) at source/exe/main_common.cc:162
#5  0x0000555556533807 in Envoy::MainCommon::run (this=<optimized out>) at bazel-out/k8-opt/bin/source/exe/_virtual_includes/main_common_lib/exe/main_common.h:101
#6  Envoy::MainCommon::main(int, char**, std::__1::function<void (Envoy::Server::Instance&)>) (argc=3, argv=0x7fffffffe4c8, hook=...) at source/exe/main_common.cc:234
#7  0x0000555556531bdc in main (argc=8, argv=0x2d563fc66300) at source/exe/main.cc:12

Ok thanks. Is envoy concurrency set to 4? I saw only 4 I/O threads and none of them were hanging in the recv. Hmm, this does not confirm my theory.

I have not set the concurrency explicitly, therefore envoy will use as many threads as my PC has available, which is indeed 4

I have looked through this again and I can not figure out where the problem is. The only way Envoy would skip reading from socket is when it is read disabled, but there would be a log message when reads were disabled, which is not present in the log.
All I can suggest at this point is to reproduce it without docker with the latest build and see if it is possible to provide repro case to Envoy devs so we can diagnose it.

@jheaff1 I have a repro repo here: https://github.com/dio/grpc-web-hello. From my quick experiment, this is because the "envoy.reloadable_features.unify_grpc_handling" is set to true. You can try to disable it via, for example, a static layer as exhibited here: https://github.com/dio/grpc-web-hello/blob/4bef88d629019e5719de5e9448235fac2756e58e/envoy.yaml#L224-L228.
However, though it is not "hanging" when unify_grpc_handling is disabled (set to false), I notice a significant delay introduced by sendLocalReplyViaFilterChain when sending back 503 to the downstream. cc. @snowp @alyssawilk. (will do further investigation).

@snowp I started to think probably we can expose envoy.reloadable_features.unify_grpc_handling as config field in HCM. So when we want to use the gRPC Web filter, we can set it to false, WDYT?


How to access commands from controller?

I understand how to add track, etc using the buttons provided.
For my use case I need to remove these buttons and instead do everything programatically (i.e. without user input).
I'm new to Angular JS. Basically I just want to use this library to do simple things like add a specific track and play it. That's really it.
I have this part:
angular.module('memoryGameApp', ['angularSoundManager']);
Now how do I reference this library inside the scope of my project? What I mean is, do I refer to the angular sound manager object as "angularSoundManager", "soundManager", "ngSoundManager", or "angularPlayer"? I see all of these used in different contexts in the code.
Just trying to wrap my head around angularJS. thanks.

Using this stackoverflow post, you can basically hack Angular JS to click buttons that are already in the HTML. Then add the property hidden="true" to your button if you don't want it to be seen


Make test scripts configurable

This PR makes the CPP and Python test scripts configurable. This enables us to use these shared workflows in a parent workflow multiple times with different shell scripts. The benefit of this is that we can parallelize Python package tests (e.g. testing cudf, dask-cudf, custreamz, etc. at the same time).

Can/should we do the same for build scripts?

I can make that change now since it's trivial. I just don't want us to get bogged down with trying to over-optimize parallelization between builds and tests before we've shipped a GH Actions MVP for each repository.


v0.9.0 Create container fails with mount

SpecGenerator input:
 dbg!(&item);

  client
    .containers_api()
    .container_create_libpod(item)
    .await
    .map_err(|err| eyre!("Failed to create {name_type} {name_str} - {err:?}"))?;

[packages/podman_cli/src/modules/podman/deploy/handle_containers.rs:88:3] &item = SpecGenerator {
    networks: None,
    annotations: None,
    apparmor_profile: None,
    base_hosts_file: None,
    cap_add: None,
    cap_drop: None,
    cgroup_parent: None,
    cgroupns: None,
    cgroups_mode: None,
    chroot_directories: None,
    cni_networks: None,
    command: None,
    conmon_pid_file: None,
    container_create_command: None,
    create_working_dir: None,
    dependency_containers: None,
    device_cgroup_rule: None,
    devices: None,
    devices_from: None,
    dns_option: None,
    dns_search: None,
    dns_server: None,
    entrypoint: None,
    env: None,
    env_host: None,
    envmerge: None,
    expose: None,
    group_entry: None,
    groups: None,
    health_check_on_failure_action: None,
    healthconfig: None,
    host_device_list: None,
    hostadd: None,
    hostname: None,
    hostusers: None,
    httpproxy: None,
    idmappings: None,
    image: Some(
        "mirror.gcr.io/mccutchen/go-httpbin:latest",
    ),
    image_arch: None,
    image_os: None,
    image_variant: None,
    image_volume_mode: None,
    image_volumes: None,
    init: None,
    init_container_type: None,
    init_path: None,
    intel_rdt: None,
    ipcns: None,
    label_nested: None,
    labels: None,
    log_configuration: None,
    manage_password: None,
    mask: None,
    mounts: Some(
        [
            Mount {
                bind_options: None,
                cluster_options: None,
                consistency: None,
                read_only: None,
                source: None,
                target: None,
                tmpfs_options: None,
                type: None,
                volume_options: None,
            },
        ],
    ),
    name: Some(
        "one",
    ),
    netns: Some(
        Namespace {
            nsmode: Some(
                "host",
            ),
            value: None,
        },
    ),
    network_options: None,
    no_new_privileges: None,
    oci_runtime: None,
    oom_score_adj: None,
    overlay_volumes: None,
    passwd_entry: None,
    personality: None,
    pidns: None,
    pod: None,
    portmappings: None,
    privileged: None,
    procfs_opts: None,
    publish_image_ports: None,
    r_limits: None,
    raw_image_name: None,
    read_only_filesystem: None,
    read_write_tmpfs: None,
    remove: None,
    resource_limits: None,
    restart_policy: Some(
        "unless-stopped",
    ),
    restart_tries: None,
    rootfs: None,
    rootfs_mapping: None,
    rootfs_overlay: None,
    rootfs_propagation: None,
    sdnotify_mode: None,
    seccomp_policy: None,
    seccomp_profile_path: None,
    secret_env: None,
    secrets: None,
    selinux_opts: None,
    shm_size: None,
    shm_size_systemd: None,
    startup_health_config: None,
    stdin: None,
    stop_signal: None,
    stop_timeout: None,
    storage_opts: None,
    sysctl: None,
    systemd: None,
    terminal: None,
    throttle_read_bps_device: None,
    throttle_read_iops_device: None,
    throttle_write_bps_device: None,
    throttle_write_iops_device: None,
    timeout: None,
    timezone: Some(
        "local",
    ),
    umask: None,
    unified: None,
    unmask: None,
    unsetenv: None,
    unsetenvall: None,
    use_image_hosts: None,
    use_image_resolve_conf: None,
    user: Some(
        "65534",
    ),
    userns: None,
    utsns: None,
    volatile: None,
    volumes: None,
    volumes_from: None,
    weight_device: None,
    work_dir: None,
}

Error: Failed to create Container one - Api(ApiError { code: 500, body: "hyper::body::Incoming" })

It turns out doing this:
# TOML config mount.

# source = '/tmp'
# destination = '/tmp_test'
# type = 'bind'

Makes podman return 500 response.

I see that the generator decided to rename these to whatever Case they liked, so deserialize was troublesome:
https://github.com/blazzy/podman-rest-client/blob/main/podman-autogen-api/src/models/mount.rs#L25-L31

# mount source
❯ ls -ah /home/admin/tmp/
 .   ..   .nobackup   bench   jobs   plot.svg   redb   wireguard   work

I haven't had a chance to look at this closely yet, but I suspect you're actually running into this problem from podman: https://github.com/containers/podman/issues/13092
I think solution in the short term might be that we need hand craft the structs. 😞
I already massaged one struct here make to make a HashMap key value. golang really likes its nil values.

Ok, what shape is it expecting?

This should fix it: https://github.com/blazzy/podman-rest-client/pull/12. Just changing Target to Destination. There may be other things wrong with the Mount structure, but that gets the basics working at least.

Api(ApiError { code: 500, body: "hyper::body::Incoming" })

These errors were super unhelpful. I made a change in the generated client published in v0.10.0 to make it actually parse the error body to this:

Api(ApiError { code: 500, body: Json(Object {"cause": String("container directory cannot be empty"), "message": String("container directory cannot be empty"), "response": Number(500)}) })


google-api-client

DONE
http://qpypi.qpython.org/pyshop/package/google-api-qpython-client
Could be installed from QPYPI also.