Improper Item Levels

There are phase 2 items that are labeled as 232 item level that should be item level 226 and are given inflated stat weights. The ones that I've found are Proto-hide Leggings, Flamestalker Boots, Belt of the Twilight Assassin, Footpads of Silence, and Savior's Slippers. There may be more but these are the ones I've seen. Appreciate the sim as it's been very helpful in gearing decisions.

Blizzard has stated that they're changing item levels of Phase 2 equipment.
https://www.wowhead.com/wotlk/news/wowhead-wrath-classic-database-updated-item-levels-330095
226 -> 232 for Phase 2 25nm gear seems consistent with Blizzard's intent.
Our gear picker uses Wowhead as a data source, Wowhead harvests data from the game.
https://www.wowhead.com/wotlk/item=45141/proto-hide-leggings
That means 232 item level Proto-hide Leggings are consistent with at least what Wowhead has found in-game.

Linking them ingame on the PTR gives the 232-stats aswell, NAB

Understood. Thanks for the feedback.


Support task reconnection for all tasks

From what I recall the task.reconnection feature used to work for all tasks, but appears to have recently been changed to only work for tasks that have problem matchers. This strikes me as an arbitrary distinction as I've always just treated tasks as a more convenient way to run npm scripts instead of using the terminal. I rarely set up configuration for individual tasks since the task runner auto-discovers npm scripts and I don't make much use of problem matchers. Given that use-case I'd appreciate an additional option to support reconnection for all tasks.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


APP display "Your Alexa device is not connected" but it's actually running locally

Briefly summarize your issue:
APP display "Your Alexa device is not connected" but it's actually running locally.
From Alexa APP or website : https://pitangui.amazon.com/spa/index.html
It can display the current Alexa status, from my test, it's running Amazon Prime Music or iHeartRadio
However, somehow it become "Your Alexa device is not connected" with a WiFi disconnect icon,
but it's actually playing and can play next song if it's playing Prime Music.
From the log, it ever dump the "setupDownchannelStream ..." and into "Connecting..." state.
During the period, I could make sure the WiFi is working due to we monitor the ping status.
I have two questions here ,
(1) which situation that the Downchannel will try to reconnect ?
(2) why APP show incorrect information while the Alexa device is actually running.
For (2), during our evaluation these weeks, we never see such behavior with Amazon Echo(v1) on same test. (we often run it overnight or over weekend for long term Music test)
What is the expected behavior?
It should respond correct Alexa device status if the connecting reset.
What behavior are you observing?
Please see my description in issue summery.
Provide the steps to reproduce the issue, if applicable:
Please see my description in issue summery.
Tell us about your environment:

What version of the AVS Device SDK are you using?
  1.3.0

Tell us what hardware you're using:

[ ] Desktop / Laptop
[ ] Raspberry Pi
[X ] Other - tell us more: ARM based embedded Linux system

Tell us about your OS (Type & version):

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

Hi @zeusshuang,
It is possible for the SDK to be trying to reconnect to AVS while music is playing - because they rely on different endpoints.  If the SDK is not connect to AVS (in which case it will be trying to reconnect AVS) the device is expected to show up as offline.
I just tried this recently with SDK 1.10 and with alexa.amazon.com, and it looks like the page is refreshing the offline/online state fairly quickly and without a manual refresh.
Are you still observing a problem in this area?
Thank you,
-SWH

Hi @scotthea-amazon ,
I will try it with SDK 1.10 and feedback asap.

Hi @zeusshuang,
Are you still experiencing this issue with the latest version of the SDK?

We can close this case.


shared/rng: Rename sol_rng_engine to sol_random

This renames sol_rnd_engine to sol_random so it's easier to figure
out what it does from a cursory glance.
Also slightly change the API to use a sol_buffer instead of
writing bytes to an unsigned char array.  While at it, add a few
utility functions to generate integers, doubles, and booleans, without
requiring the user to actually instantiate a sol_buffer.
The internal API also changed slightly: each implementation now
generates an uint32_t, which is appended to the buffer given to
sol_random_fill_buffer() function.

Ping @barbieri, @glima.

(The force-push was to fix a style issue and keep Semaphore happy.)

(Another push -f to rebase/fix conflicts.)

If there are no other comments, I'll merge this soon.

Merged.


Scraperobject Italy tested

In your data.csv https://coronadatascraper.com/#data.csv
city	county	state	country	population	lat	long	url	cases	deaths	recovered	active	tested	growthFactor	date
from detailed file for Italy: https://github.com/pcm-dpc/COVID-19/blob/master/dati-regioni/dpc-covid19-ita-regioni.csv
You have these column headings:
data > date
stato > country
codice_regione
denominazione_regione > state
lat
long
ricoverati_con_sintomi (in hospital)
terapia_intensiva (ICU)
totale_ospedalizzati (total in hospital= in hospital+ICU)
isolamento_domiciliare (home isolation/quarantine)
totale_attualmente_positivi > active (total in hospital+home isolation)
nuovi_attualmente_positivi (new day active)
dimessi_guariti > recovered
deceduti > deaths
totale_casi > cases
tamponi > tested
So you can add tested column too that is really a key number (in Italy we have really low numbers of tested).
If someone can find Spain, Germany, UK tested/tampon csv would be great.

Can you please rebase from the latest master? It looks like you're working off a pretty old commit.

In https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv
data,stato,codice_regione,denominazione_regione,lat,long,ricoverati_con_sintomi,terapia_intensiva,totale_ospedalizzati,isolamento_domiciliare,totale_attualmente_positivi,nuovi_attualmente_positivi,dimessi_guariti,deceduti,totale_casi,tamponi,note_it,note_en
tamponi > tested

The intent is good on this PR, but it badly needs a re-base. Can you redo it against the current master?

Dear Larry
First time here, sorry!
I tried doing so:
https://github.com/lazd/coronadatascraper/commit/072b936510c55a6e6d5944d70e54db32cd94a998#r38078934
Il giorno gio 26 mar 2020 alle ore 20:57 Larry Davis <
<EMAIL_ADDRESS>ha scritto:

The intent is good on this PR, but it badly needs a re-base. Can you redo
it against the current master?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lazd/coronadatascraper/pull/344#issuecomment-604652709,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO4VCPZTMGY72YW7RU6VN63RJOXS3ANCNFSM4LTLWKXA
.

--
also known as aledettaaLe

Ok I get it! I will make the change to include tested as tamponi and set the commit author to you.
Grazie mille!


Update to SystemJS 0.17 branch

To go along with https://github.com/systemjs/systemjs/pull/390.
Work in progress.

(tests only failing due to wrong version of SystemJS being pulled)


Attached Song Lines to Player

@jamesmcnamara I just resolved the merge conflicts here. Should be good to merge, but would love a quick double check!


Fix  *-nspkg.pth files and imports for pkg_resources-style legacy namespaces in editable installs.

Summary of changes

Fix the name given to the *-nspkg.pth files in editable installs, ensuring they are unique per distribution.
Workaround limitations on pkg_resources-style legacy namespaces in editable installations.

Closes #4039
Pull Request Checklist

[x] Changes have tests
[ ] News fragment added in newsfragments/.
(See documentation for details)

See comments on challenges for legacy namespaces in editable installs on:
https://github.com/pypa/setuptools/issues/4039#issuecomment-1708789047


Produce interview plan

Produce a plan that:

[x] Identify the list of teams that will need to be interviewed (can use this org chart here
[x] Divide the interview efforts across the IT Strategy team members
[x] Identify the span of time that will be required to cover all teams
[x] clarify how answers will be collected and saved while meeting the safe space principle

Task pending team debrief scheduled for March 12th


🔧 [Refactor] remove fetchPolicy network-only from statistics

🔧 Refactor ticket
for faster loading of the info page
remove fetchPolicy network-only from statistics

is work on #2152


Retrieve remote static key?

How can I get other party static key (for authentication) while using X patterns?
This method exists in other noise protocol implementations, but I can't find it in this one.
https://docs.rs/snow/latest/snow/struct.HandshakeState.html#method.get_remote_static
https://docs.rs/noise-protocol/0.2.0/noise_protocol/struct.HandshakeState.html#method.get_rs

Thanks for pointing this out! Clatter is definitely missing this feature.
I'm just finishing up other changes for v1.1.0 so you can expect a fix for this also in a few days :)

Remote ephemeral key would also be useful for noise pipe implementation (However, I'm not sure if it is already possible to implement noise pipe here?)

How can I get other party static key (for authentication) while using X patterns?
This method exists in other noise protocol implementations, but I can't find it in this one.
https://docs.rs/snow/latest/snow/struct.HandshakeState.html#method.get_remote_static https://docs.rs/noise-protocol/0.2.0/noise_protocol/struct.HandshakeState.html#method.get_rs

This feature is absolutely required for anything I would do with Noise.
Wait wait wait... actually ACTUALLY is it even possible to perform authentication without this feature!?

Wait wait wait... actually ACTUALLY is it even possible to perform authentication without this feature!?

You can pre-share static key and use K pattern instead of X as the form of authn

Wait wait wait... actually ACTUALLY is it even possible to perform authentication without this feature!?

You can pre-share static key and use K pattern instead of X as the form of authn. Wireguard does that (Noise_IK)

Okay that makes sense. I'm very biased here because my mixnet project, Katzenpost has been using Noise XX variations for many years now.


SM - API Gateway configuration Add Xray logging for all API paths.

After researching I found that if I enable in Chalice it will also add it to API Gateway.
Reading through the PR to add support it looks like I can just add this to the config.json for Chalice.
aws/chalice@922fb57
Here it is in the documentation.
https://aws.github.io/chalice/topics/configfile.html?highlight=xray
It adds Xray for Lambda paths, as well as all API Gateway paths.

This should be a configurable option, e.g. not enabled by default.

It seems Chalice doesn't support this for API Gw stages but only for functions, see #86 for more details.

Closing in lieu of #86


Fix types in open_existential_addr / value

Result type for open_existential_addr should be $*@opened P.  Similar change for open_existential_value.

@swift-ci Please smoke test and merge


Lameducking period for graceful shutdown / serve_with_shutdown

Feature Request
Crates
tonic
Motivation
In tonic right now, serve_with_shutdown does not implement lameducking the way I am used to seeing. What I was expecting is that on SIGTERM idle keepalive connections would be disconnected, readiness health checks would start returning negative, but new connections would continue to be accepted (albeit with no keepalive) during a grace period in order to allow clients time to notice that we are lameducking and select different backends. Then eventually after a delay we would close the listening socket.
What actually happens is that we close the listening socket (or at least we stop calling accept() on it) immediately and then drain requests from existing connections.
Is that okay? I don't know, it depends on whether clients can be counted on to promply and transparently try a different backend when they get either a refused or reset connection (depending on the timing) during the short interval after we have started shutting down but before they have had a chance to update their backend list to exclude us. I feel like most gRPC clients might be all right there, but there are stories of 502s from ngnix floating about...
https://github.com/vandry/td-archive-server/commit/7e202e586ed0d3f19e576304ba1bd91ebc760edb
Proposal
First, I would like to solicit opinions about whether the behaviour I am looking for is needed or if the status quo is good enough. We definitely implement the lameducking delay as I describe it at very large scale at $DAYJOB but there might be other considerations here.
If the feature is deemed desirable then I propose:

Allow a lameducking delay to be configured, defaulting to zero, which makes serve_with_shutdown have the present behaviour.
If nonzero, first drain all existing connections and set max_connection_age to zero on all new ones. Then sleep for the delay while still accepting new connections. Then drop the listener and return.
It is the caller's responsibility (e.g. using the tonic-health crate) to flip health checks to bad when the shutdown signal is first sent.

Alternatives
See above; it is possible that the status quo is fine.

What actually happens is that we close the listening socket (or at least we stop calling accept() on it) immediately and then drain requests from existing connections.
Is that okay?

It's not reasonable behaviour, even though, as you mentioned, it works pretty much fine in stateless services behind a load balancer where clients know how to retry.
Implementations battle tested in production perform a graceful shutdown.
Tokio docs talk about graceful shutdown, and it's not hard to find people trying to do so in other stacks (C++, Java, Go from a quick search), and in Rust too.
A reference C++ implementation defines a Shutdown with a deadline argument to degrade into lame-duck mode before shutting down,
class ServerInterface : public internal::CallHook {
  public:
   ServerInterface() override {}

   template <class T>
   void Shutdown(const T& deadline);
   // ...
 }

Docs for Shutdown(const T& deadline).
Granted, they offer a Shutdown() overload too, I don't know when you'd prefer it for anything other than convenience/sloppiness.

I guess the more interesting question is on how to implement this, as Tokio's article already shows that the Service needs not only to stop serving new requests and finish the outstanding ones, but may also need to perform some Application-specific steps, which is fine, but show that maybe the interface for announcing and executing shutdown might need some thought.
Similarly, we may want to temporarily enter lame-duck mode as a way to ease operations on services downstream.

Well, it's also sort of blocked by instability of the underlying ecosystem,
https://github.com/hyperium/tonic/issues/1820#issuecomment-2250943423
I guess some issue de-duping is needed to keep things easy to find.


history.listen doesn't work in v5.20 with HashRouter (it does work in 5.1.2 with HashRouter, and in 5.2.0 with BrowserRouter)

Version
5.2.0
Test Case
I still need to update this, but wanted to log the ticket in case anyone else sees the same behaviour in the meantime.
https://codesandbox.io/s/react-router-gh6n7
Steps to reproduce

Set up an app with a conditional where one version of the app uses HashRouter and another uses BrowserRouter
Set up a hook in an inner component of the app using useHistory and history.listen to fire a callback when the history changes (e.g., a search parameter changes in the URL)
See that it doesn't fire the callback for HashRouter, but it does for BrowserRouter

Expected Behavior
history.listen callback should be fired
Actual Behavior
history.listen callback isn't fired
Additional Notes
My specific implementation is using a wrapped Angular 1.6.1 ngReact implementation to display the react app in the view. I'll try to update a codesandbox repo for reproduction.

Closing this because I think this is actually some issue with my implementation of hooks when moving from version 4 to 5.

Closing this because I think this is actually some issue with my implementation of hooks when moving from version 4 to 5.


428 reference new endpoint

closes #428
Overview
This wraps up the demo-endpoint-related changes to the SDK and has the final (for the foreseeable future) tweaks to the helm chart.
Discussion
Changes to the workerInit for the demo endpoint have been live since last week -- this is the kludge for running models with python <= 3.7 which I hope to never touch again.
I also added a 20 minute task timeout, which should be generous enough for good faith demos but not like, mining bitcoin or whatever.
The docs now point tutorial-followers to join the Garden Users group as both a prerequisite and again at the point where users are going to try running on the demo endpoint.
The special error handling is there so users who bravely don't read docs still have an easy way to join.
still TODO: configure the globus group to auto-accept members instead of (only occasionally?) requiring me to manually approve them, but nothing in this PR is blocked on that.
Testing
I tested this with DLHub models (to make sure they remained unbroken) and by logging in with my personal email so I could confirm that the error handling looked correct for group non-members.
Documentation
Yes, just in the tutorial

📚 Documentation preview 📚: https://garden-ai--434.org.readthedocs.build/en/434/

Codecov Report
Attention: Patch coverage is 52.63158% with 9 lines in your changes are missing coverage. Please review.

Project coverage is 75.51%. Comparing base (3b59ca2) to head (47d0275).

Files
Patch %
Lines

garden_ai/entrypoints.py
52.63%
9 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #434      +/-   ##
==========================================
- Coverage   75.69%   75.51%   -0.18%
==========================================
  Files          50       50
  Lines        3139     3149      +10
==========================================
+ Hits         2376     2378       +2
- Misses        763      771       +8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix ktx parsing failing if texture array has 6 layers

Fixing line in code that assumes if numSides == 6 then it must be a cubemap even though numSides in this situation can refer to numLayers as well.
	const uint16_t numSides = _imageContainer.m_numLayers * (_imageContainer.m_cubeMap ? 6 : 1);

I caught this when trying to load a 6-layer texture array. I tested the other changes in https://github.com/bkaradzic/bimg/commit/82781e44d8844e13c60a65f7425abd7eea91e428 and didn't catch any other issues with the code.
I confirmed code works with 09-hdr and my skybox code still.

cc @RazielXYZ

It's worth noting that since numSides is numLayers * 6 in the case of a cubemap I wonder if size should just be mipSize * 6 for a cubemap rather than mipSize * numSides

Actually according to ktx spec imageSize "includes all array layers, all z slices, all faces, all rows (or rows of blocks) and all pixels (or blocks) in each row for the mipmap level". So I think we can just do size = mipSize * numSides with no conditions.

So I think we can just do size = mipSize * numSides with no conditions.

That exactly was there until you changed it:
https://github.com/bkaradzic/bimg/pull/82/files#diff-3cc33c19b2f83be364b2b42d7fe2ccc7c1d6f32a78d5f963400a28f81696221fL5211

It's possible the files I was testing against had imageSize incorrectly set but I doubt it, so now I'm not sure why I did it like that. I'll test some more again tomorrow too, @pgruenbacher feel free to let us know what your tests reveal as well if you do try out more stuff.

i did notice that if i did mipSize * numSide instead of _imageContainer.m_cubeMap ? mipSize : mipSize * numSides i got an error when reading in a skybox cubemap... so i think the logic was fine, just the logic didn't handle the edge case of texture-array with 6 levels and made incorrect assumptions that 6 == cubemap.
That being said there could be a better way of phrasing the code but this is a simple fix at the moment.

It should be fine as quick fix and I'll investigate further anyway.
Quick question @pgruenbacher what are you using to make/save your multi-layer textures?

So the correct condition is actually
const uint32_t size = _imageContainer.m_numLayers == 1 && _imageContainer.m_cubeMap ? mipSize : mipSize * numSides;
Assuming multi-layer cubemaps ever exist this should work with them too.

I was using texturearrayc which i realize is a custom implementation of
texturec by me
On Thu, Dec 21, 2023, 6:50 PM Raziel Alphadios @.***>
wrote:

It should be fine as quick fix and I'll investigate further anyway.
Quick question @pgruenbacher https://github.com/pgruenbacher what are
you using to make/save your multi-layer textures?
—
Reply to this email directly, view it on GitHub
https://github.com/bkaradzic/bimg/pull/84#issuecomment-1867095856, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZNT5S4ZTFRL4JVWJSVDEDYKTKOZAVCNFSM6AAAAABA5R5VCWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXGA4TKOBVGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

@bkaradzic  good to merge :+1:


Show correct css import

With the current described import it does not work. It should be index.css instead.

Thanks for the PR. I am in the middle of some pretty sizable updates, but I will make sure to get this in the next release.


Prevent pipe-based FileHandle tests from hanging

Writing to a pipe can block if an internal buffer fills up, and the size of the buffer varies by platform and even kernel version, which may be causing the TestFileHandle.testWritingWith*() tests to hang. Address this by writing from a background queue and imposing a timeout on the write writing to a temporary file and then reading it back.

@swift-ci please test

Lily asked for something that didn't use expectations, so this just does the simplest possible thing: writes the data to a temporary file and reads it back.
@swift-ci please test

@swift-ci please test

@swift-ci please test


[Deferred components] Always stuck when executing loadLibrary()

Steps to reproduce
Simply following https://docs.flutter.dev/perf/deferred-components on a simple flutter app, and upload the AAB to internal app sharing. (No issue when testing locally using bundletool)
Install the app and open the app normally, and when downloading the dynamic module, it's stuck on infinite loading (while executing loadLibrary()). When force closing the app, the dynamic module is listed as downloaded. When reopening the app, the app's stuck on the splash screen and can never be opened again (the loadLibrary() is now done in startup because the dynamic module has been downloaded).
Notes:

Obfusaction active or not has no impact.
Emulator or real device has no impact.
I've made some Android apps before with Play Core SDK but never got this kind of issue
The code is stuck when executing loadLibrary()

Expected results
loadLibrary() can be finished bringing the downloaded dynamic module and I can normally use the feature inside the dynamic module.
Actual results
Stuck on infinite loading when executing loadLibrary() regardless the dynamic module has been downloaded or not.
Code sample
Content of deferred_components_loading_units.yaml
loading-units:
  - id: 2
    libraries:
      - package:example/navigation/other_entry.dart
      - package:example/navigation/other_module.dart
      - package:example/page/deferred_page.dart
      - package:example/page/deferred_tab.dart
      - package:example/page/deferred_component.dart

Minimum reproducible example repository
https://github.com/mrhabibi/deferred_component_example

Screenshots or Video

Video demonstration
https://github.com/flutter/flutter/assets/13618227/a4c68284-0f55-4e3d-acba-ad8264489c95

Logs
Suspicious logs
2024-03-28 08:37:50.233  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.dm': No such file or directory
2024-03-28 08:37:50.233  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.dm': No such file or directory
2024-03-28 08:37:50.235  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.config.arm64_v8a.dm': No such file or directory
2024-03-28 08:37:50.235  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.config.arm64_v8a.dm': No such file or directory
2024-03-28 08:37:50.237  4960-4960  .seller.android         com.bukalapak.seller.android         W  Entry not found
2024-03-28 08:37:50.237  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.config.xxhdpi.dm': No such file or directory
2024-03-28 08:37:50.237  4960-4960  ziparchive              com.bukalapak.seller.android         W  Unable to open '/data/app/~~v4oL6MBa3Rdrm2NQkMZjHQ==/com.bukalapak.seller.android-LC5xaYbuBfQ3c8ssY89HwQ==/split_other.config.xxhdpi.dm': No such file or directory
2024-03-28 08:37:50.237  4960-4960  .seller.android         com.bukalapak.seller.android         W  Entry not found

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.7.12, on macOS 14.4.1 23E224 darwin-arm64, locale en-ID)
    • Flutter version 3.7.12 on channel stable at /Users/mrhabibi/flutter/3.7
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (12 months ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/mrhabibi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/mrhabibi/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[!] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio 2.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.87.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 123.0.6312.87

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

I've made a repository to reproduce the issue: https://github.com/mrhabibi/deferred_component_example which following the deferred component guideline

@mrhabibi
You are on very old version of stable, can you upgrade to latest (3.19.4) and re-run your scenario to check if the reported behavior still persists or not ?

Hi @darshankawar, thanks for your suggestion, I'm using flutter 3.7.12 to maintain the project which hasn't been ready to use the newer version.
But after I adapt the flutter 3.19.5 SDK on my example repository (the changes have been pushed as well) and I uploaded the AAB to the internal app sharing, the problem still persists.
So I guess flutter version isn't the culprit, seems like I miss adding a small config to make the deferred component works.
Here's the screen recording showing it's stuck when executing loadLibrary():
screencast-Genymotion-2024-04-01_<IP_ADDRESS>.webm
Here's my new flutter doctor output:
[✓] Flutter (Channel stable, 3.19.5, on macOS 14.4.1 23E224 darwin-arm64, locale en-ID)
    • Flutter version 3.19.5 on channel stable at /Users/mrhabibi/flutter/3.19
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 300451adae (4 days ago), 2024-03-27 21:54:07 -0500
    • Engine revision e76c956498
    • Dart version 3.3.3
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/mrhabibi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/mrhabibi/Library/Android/sdk
    • Java binary at: /Applications/Android Studio 2.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio 2.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.87.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • A50 (mobile)    • <IP_ADDRESS>:6555 • android-arm64  • Android 13 (API 33)
    • macOS (desktop) • macos          • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)    • chrome         • web-javascript • Google Chrome 123.0.6312.87

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Thanks for the update.
Please check if your issue resembles https://github.com/flutter/flutter/issues/97149 or not.

@darshankawar after reading the issue until the last reply, I think it's a bit different where my issue occurs every time since the first download, where the issue you mentioned occurs next app launch after the first successful download.
I've tried some solutions given on the replies, but unfortunately none works.

from android triage: @darshankawar were ever able to reproduce this following the getting started documentation?

were ever able to reproduce this following the getting started documentation?

@gmackall Hello, no, I wasn't able to replicate it. I tried locally in release mode but maybe we need to upload it on playstore and then install it on device to check if it persists or not.

but maybe we need to upload it on playstore and then install it on device to check if it persists or not.

Exactly that's where the problem occurs, I couldn't reproduce the problem as well when testing locally with bundletool.jar based on this.

I am facing the same problem here.
I could found the same warning in the logcat
Unable to open '/data/app/~~edDJVlV2ZaNE5FTk6JVTHw==/com.xxxM2jqH0QDHEcImNlUFFuO1A==/split_audiosComponent.dm': No such file or directory

@mrhabibi were you ever able to fix this? I'm having the same exact issue

@Levyks not yet, I didn't use Play Feature Delivery yet for my app due to this issue.
@darshankawar Any update on this?

@Levyks I was using Android 33 device for testing, and I'm not really sure that's related because the new version of Play Core SDK was just released, whereas this issue happened since the very beginning of deferred component on Flutter was invented I guess.
But I'm looking forward for the result! maybe somehow it solves this issue as well.

So, update, the app crashes as soon as I call loadLibrary() when using com.google.android.play:feature-delivery, probably due to some incompatibility.

When reopening the app, the app's stuck on the splash screen and can never be opened again (the loadLibrary() is now done in startup because the dynamic module has been downloaded)

However, while I was playing a bit with the native Play Feature Delivery feature (without using flutter's Deferred Components wrapper), I also got this problem of the app being stuck in the splash screen on the next initialization after the module install (with exactly the same error in the logs of being unable to open some split .dm file), and that was solved by replacing com.google.android.play:core with com.google.android.play:feature-delivery so maybe that still has something to do with it?

@Levyks can you confirm that Deferred components work by using the com.google.android.play:feature-delivery and probably the com.google.android.play:asset-delivery with current flutter releases and SDK 34?
Gradle example
dependencies {
    // REMOVED: implementation "com.google.android.play:core:1.8.0"
    implementation 'com.google.android.play:asset-delivery:2.2.2'
    implementation 'com.google.android.play:feature-delivery:2.1.0'
}


Question: Agile Octopus - Battery Charging

Hi,
This is not an issue, just a question.
I have managed to get your script working. Thanks for all your hard work on it.
I now have a basic script that I can manually run which calls the pyscript.solis_control service which sets the amps and charging slots.
I am a novice so I hope you don't mind the following question.
I would like to set a charging schedule triggered by low cost charging slots from BottlecapDave's Octopus integration.
Possible using ""octopus_energy_electricity_next_day_rates" as a trigger?
These values are fixed in the script:
service: pyscript.solis_control
data:
days:
- chargeCurrent: "60"
dischargeCurrent: "60"
chargeStartTime: "12:00"
chargeEndTime: "15:30"
dischargeStartTime: "00:00"
dischargeEndTime: "00:00"
- chargeCurrent: "60"
dischargeCurrent: "60"
chargeStartTime: "00:00"
chargeEndTime: "00:00"
dischargeStartTime: "00:00"
dischargeEndTime: "00:00"
- chargeCurrent: "60"
dischargeCurrent: "60"
chargeStartTime: "00:00"
chargeEndTime: "00:00"
dischargeStartTime: "00:00"
dischargeEndTime: "00:00"
If I could somehow have a trigger that could input variable values?
I just don't know where to start - I have tried but I'm a bit lost if I'm honest.
Would you have any code or tips that you could share to help me achieve this?
Thanks
Brian

Yeah, I do mine by creating a service using pyscript and use that to setup the inverter charge/discharge times (well, discharge times mainly for octopus saver session)
`
def saver_session_timer_factory(trigger_time, chargeDischarge):
log.warning("chargeDischarge:"+str(chargeDischarge)+" trigger at:"+trigger_time)
@time_trigger("once("+trigger_time+")")
def call_charge():
solis_charge(chargeDischarge)
saver_session_setTimes.append(call_charge)
@service
async def saver_session_setup(event):
log.warning(str(event))
start = event['start']
end = event['end']
log.warning("saver session setup start "+start+ " end "+end)
dateTimeStart = datetime.strptime(start,'%Y-%m-%d %H:%M')
dateTimeEnd = datetime.strptime(end,'%Y-%m-%d %H:%M')
dischargeStart = dateTimeStart.strftime('%H:%M')
dischargeEnd = dateTimeEnd.strftime('%H:%M')
trigger_time = (dateTimeStart - timedelta(hours=2)).strftime('%Y/%m/%d %H:%M:%S')
log.warning("triggering at:"+trigger_time)
saver_session_timer_factory(trigger_time, ["00:00","00:00", dischargeStart,dischargeEnd ])
`
is the kind of thing I use. You could easily set this up to be called and use your octopus integration to figure out the best times...
so you could do something like.. (in your automation)
`
alias: Automatically setup charge
description: setup charge times at cheapest rate
trigger:

platform: event
event_type: octopus_energy_electricity_next_day_rates
condition: []
action:
service: pyscript.saver_session_setup
data:
event:
rates: |
{{ trigger.event }}
mode: single
`

assuming octopus_energy_electricity_next_day_rates is an event. If it's just data you could simply set a time trigger and get the python script to either use the data passed in or get the data itself... and sort etc. Should be okay, but you only get 3 charge/discharge slots, so you may need to setup a few time triggers. The python above kinda shows you how to get the python script to self trigger based of data if you need to make it a trigger based on the data. Hope that helps.


HDDS-7281. [Snapshot] Handle RocksDB compaction DAG persistence and reconstruction

This PR rebased #3786, changed the first commit title (so there is less chance of merging this patch with incorrect commit message), switched branch name (as the dev branch cannot be changed in the original PR), and added more commits.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-7281
What changes were proposed in this pull request?

Register custom onCompactionBegin and onCompactionCompleted event listeners that is attached on OM startup RDB open that tracks RocksDB compaction. (partially done in HDDS-7224)
The onCompactionBegin listener saves the copies of the compaction input files (by hardlinking them in a separate directory) that are about to be deleted by RDB compaction logic. (initially done in HDDS-7224)
The onCompactionCompleted listener persists the RDB compaction input SST files and output SST file names to a plain text file (compaction log) on each compaction. The compaction log file name itself takes the RDB latest sequence number (with padded zeros) in hope of achieving monotonically increasing order when the files are listed and sorted alphabetically.

This leaves room for optimization on compaction log read logic if necessary.
This implies that on a OM metadata reset, the compaction log dir must be purged as well, otherwise it would confuse the differ.
A new compaction log file is created every time the differ is initialized (e.g. during OM startup / re-initialization), or when a new OM snapshot is created. The reason of not using a single large file to log the compaction is that it makes future garbage collection implementation harder (and more inefficient) because there isn't a general way to truncate the beginning chunk of a file.

RocksDBCheckpointDiffer#printSnapdiffSSTFiles can now load the compaction log in order when some SST files are not found as a node in the DAG. Then it could return the list of different SST files to be further processed by RocksDiff (to speed up OM snapshot diff operation). If the compaction log is missing or corrupted, it should report such error and expect RocksDiff to fall back to a slow full diff as the last resort.

TODO

[x] Refactor RocksDBCheckpointDiffer to reduce duplication between two setRocksDBForCompactionTracking methods (one for standalone testing and one for OM since they are using different RDB options right now)
[x] Use https://github.com/apache/ozone/pull/3658 to locate the from (src) and to (dest) snapshots in the snapshot chain. It should be much more efficient to locate the snapshot in the chain this way. No longer applicable with the latest implementation where it doesn't care about the snapshot chain anymore. -- It simply reads from the first compaction log that exists in the directory until it loads and finds all the SST files.
[x] Address all TODOs added in this PR.

How was this patch tested?

[x] Standalone UT TestRocksDBCheckpointDiffer (that tests with its own RDB) works as expected.
[x] Integration test TestOMSnapshotDAG. testZeroSizeKey can trigger the event listeners correctly.

These lines are confusing to me:  https://github.com/apache/ozone/blob/c7e922fb0c4d4c6c312bd717246c9fd8fde27e6f/hadoop-hdds/rocksdb-checkpoint-differ/src/main/java/org/apache/ozone/rocksdiff/RocksDBCheckpointDiffer.java#L734-L738
I think something like this would be clearer:
      Set<CompactionNode> currentLevel = new HashSet<>();
      currentLevel.add(infileNode);
      Set<CompactionNode> nextLevel = new HashSet<>();

This is in response to the discussion here: https://github.com/apache/ozone/pull/3786#discussion_r992935645
To me there is value in the conceptual simplicity of having all the state in rocksdb.
And I don't think it would have to be a new RDB instance.  It could just be a separate CF in the existing one.  I know that that CF wouldn't be shared through ratis transactions, but it would be shared with followers when they get bootstrapped (which happens to be what we want.)
Finally, with respect to the ordering problem mentioned above, couldn't the db lastSeqNum be used as the rocksdb key, (as it is used in the filename currently)?
I don't feel too strongly about it, and will understand if you think it is not worth the effort.  But it does seem like a cleaner approach to me.

This is in response to the discussion here: #3786 (comment)
To me there is value in the conceptual simplicity of having all the state in rocksdb.
And I don't think it would have to be a new RDB instance. It could just be a separate CF in the existing one. I know that that CF wouldn't be shared through ratis transactions, but it would be shared with followers when they get bootstrapped (which happens to be what we want.)

Doesn't bootstrapping pack the entire ozone-metadata directory? If this is the case then the new compaction-log directory would have been included automatically. (I need to double check.)
I understand it would be easier (and cleaner) if we just use a new CF in the existing OM RDB to store compaction history. The implementation would be trivial. But there is some aspects I dislike about it:

The info we are storing to the DB (input / output SST file pairs) tightly relates to the file structure of the database itself, which isn't really related to main functions of OM, and can differ from OM to OM. Plus the fact that the compaction log isn't crucial for the RocksDiff feature to work (as it is meant for acceleration by returning only the relevant set of SST files). If we do want to persist the log in RDB I would prefer starting a new RDB instance just for this (a metadata DB of the existing DB).
We are putting extra pressure on RDB compaction by writing those extra K-V pairs to the DB itself after each compaction. Though the pressure should be small provided that compaction doesn't happen too frequently (depends on DB write).

Finally, with respect to the ordering problem mentioned above, couldn't the db lastSeqNum be used as the rocksdb key, (as it is used in the filename currently)?

Good point.

Current  compaction log format is
input files newline output files
Its a very risky format. Lets change it to
something like
C(compaction log entry) $ input-file1, i2, i3 : outputfile-1, o2 o3
S(Snapshot creation entry) $ Snapshot number
C(compaction log entry) $ input-file1, i2, i3 : outputfile-1, o2 o3
But this can be done in a separate PR also and a separate Jira. Lets get this one in as it is working. All improvements can happen incrementally.

This PR is ready for another round of review.
UT TestRocksDBCheckpointDiffer output for reference:
2022-11-01 22:22:44,258 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-1': [000013, 000022, 000011, 000018, 000015, 000020]
2022-11-01 22:22:44,261 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-50000': [000013, 000022, 000018, 000015, 000020]
2022-11-01 22:22:44,263 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-99999': [000022, 000018, 000015, 000020]
2022-11-01 22:22:44,265 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-149998': [000022, 000018, 000020]
2022-11-01 22:22:44,267 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-199997': [000022, 000020]
2022-11-01 22:22:44,269 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-249996': [000022]
2022-11-01 22:22:44,272 [main] INFO  rocksdiff.TestRocksDBCheckpointDiffer (TestRocksDBCheckpointDiffer.java:diffAllSnapshots(170)) - SST diff from 'rocksdb-cp-250000' to 'rocksdb-cp-250000': []

LGTM for this PR. Additional set of changes that are highlighted in this PR can also go in the next PR.

I will merge this in a minute.

Thanks @GeorgeJahad @sadanand48 @prashantpogde @hemantk-12 for reviewing this.


Set fext when computing inverse dynamics with rnea()

Hi, first of all, thanks for developing such a great tool. I'm trying to use the rnea(model, data, q, v, a, fext) function to compute inverse dynamics of a quadruped robot. The documentation says fext is:

"vector of external forces expressed in the local frame of the joints (dim model.njoints)".

In my case, the external forces are contact forces at the foot tips and there are no joints there. How should I do to deal with this? Should I transform the force to the knee joint frame? This seems to be feasible way but not straightforward. Could you give me some advice on that? Thanks.

If you know the relative placement of the tip frame wrt the knee joint frame, let's say kMt, you can get the force expressed in the local frame of the tip to the local frame of the knee joint as f_k = kMt.act(f_t).

Hi, thanks for the reply, but I'm not quite clear how to get kMt. I assume kMt should be a pinocchio::SE3 object representing the homogeneous transformation from frame k to frame t, and f_t is a pinocchio::Force object.
Therefore, what I did was:
const pinocchio::FrameIndex bodyIdLFFoot = model.getFrameId("LF_FOOT");
const pinocchio::SE3Tpl<SCALAR_T> T_wf = data.oMf[model.getFrameId("LF_FOOT")]; // transformation from world to foot
const pinocchio::SE3Tpl<SCALAR_T> T_wk = data.oMf[model.getFrameId("LF_KFE")]; // transformation from world to knee
const pinocchio::SE3Tpl<SCALAR_T> T_fk = T_wk * T_wf.inverse(); // transformation from world to knee
const pinocchio::container::aligned_vector<pinocchio::ForceTpl<SCALAR_T>> force_in_knee = T_fk.act(force_at_foot);

but the compiling failed with the following error:
error: ‘const struct pinocchio::container::aligned_vector<pinocchio::ForceTpl<double, 0> >’ has no member named ‘se3Action’

How should I fix this? I will be much appreciated!

I found that I actually have exactly the same questions as #1544, @jcarpent  your answer is quite helpful and I would be grateful if you can provide a bit more detail about the implementation.

Your code is not complete, but you should work at the level of Force element and not std::vector. This is what the compilation info gives you.

@jcarpent May I ask if you know whether and why my method would be faster/slower than using the rnea function from Pinocchio? Your insights would be much appreciated!

@manumerous you are not exploiting the  sparsity induced by the kinematic tree. This is what the Recursive Newton-Euler algorithm does.
If I remember correctly, the algorithm complexity of CRBA is also higher than RNEA. In short, it is terribly inefficient to do the computation yourself.
For more details, I advise you to read Rigid Body Dynamics from Featherstone.

Thanks for your answer! I guess I should have been more precise, but I think your comments and the book reference guided me in the right direction.
Although i was aware of the way RNEA leverages the kinematic sparsity for fixed-base kinematic trees I was unsure what it would do in the case of several fixed contact points. Please correct me if I am wrong, but according to my current understanding there is no smart way to enforce zero velocity/acceleration at several points in the kinematic chain in the RNEA algorithm?
If that is true the best way forward depends on whether a contact constraint consistent motion plan (q, u, a, f_ext) is present.

If yes the floating base dynamics could be reformulated to have one of the contact points as the root and adding a corresponding joint depending on the contact. I guess this would be much very fast but requires the root joint to change upon contact.

If not it might be better to use the TSID library to solve the problem via Hierarchical Least Square Optimization instead of using Pinocchios RNEA.

In that sense my manual computation just has the advantage of being easy to implement for a floating base robot model (where the root joint can move) at the disadvantage of being much slower than RNEA.
I hope this thoughts can be useful for others. So please correct me if anything is wrong. Thanks! :)

You could artificially define the root of your system as a single contact point, and then use RNEA for that. However, you cannot do this for multiple contacts (you only have one root). This would be the most efficient way, but it is SO restrictive that (I might say) it is out of interest.
Imposing acceleration-based holonomic constraints can be done with TSID or any general-purpose QP algorithm. If we think in terms of QP, what we can solve these problems via the Schur-complement approach, for instance.
Such techniques requires matrix-matrix multiplications between the inertia matrix and contact Jacobians.
Therefore, you can leverage the structure induced by the kinematic tree during those operations.
This is something that you can do with a general-purpose approach.
As a conclusion, exploiting or not the completely structure in your algo might be extremely expensive to develop in your project. As a pragmatic person, I would do it if you really need it.

Thanks for the great insights too from my side! Back to my original question, it's finally solved and in case anyone is also looking for a solution, I would refer to this example here (line 189-225) which used rnea() to solve inverse dynamics for quadruped robot. This example might give people some hints to see how to correctly transform the contact forces in world frame to the joint frame.
And for Manuel @manumerous, thanks for your advice and your method to directly manipulate the floating-base equation of motion can absolutely give a correct result.  And I've compared the results given by your method and directly using rnea, they're very close. The only thing that we should notice is rnea returns a vector with dimension of generalized velocity. In our case, since the base is actuated, we just need to ignore the first six elements.

Hi, thanks for the reply, but I'm not quite clear how to get kMt. I assume kMt should be a pinocchio::SE3 object representing the homogeneous transformation from frame k to frame t, and f_t is a pinocchio::Force object.
Therefore, what I did was:
const pinocchio::FrameIndex bodyIdLFFoot = model.getFrameId("LF_FOOT");
const pinocchio::SE3Tpl<SCALAR_T> T_wf = data.oMf[model.getFrameId("LF_FOOT")]; // transformation from world to foot
const pinocchio::SE3Tpl<SCALAR_T> T_wk = data.oMf[model.getFrameId("LF_KFE")]; // transformation from world to knee
const pinocchio::SE3Tpl<SCALAR_T> T_fk = T_wk * T_wf.inverse(); // transformation from world to knee
const pinocchio::container::aligned_vector<pinocchio::ForceTpl<SCALAR_T>> force_in_knee = T_fk.act(force_at_foot);

but the compiling failed with the following error:
error: ‘const struct pinocchio::container::aligned_vector<pinocchio::ForceTpl<double, 0> >’ has no member named ‘se3Action’

How should I fix this? I will be much appreciated!

Hi FenglongSong,
@FenglongSong Thanks for the issue. @jcarpent thanks for the suggestion here.
@FenglongSong  You could essentially use your approach here for computing the force on the knee, right? But for that, don't you need T_kf instead? And then it could be T_kf.act(force_on_foot). is that correct? Also, did you instead use the OCS2 method here instead of yours? I find Justin's suggestion (also what you implemented above) quite straightforward to do.

Hi shubhamsingh91 @shubhamsingh91, yes I think it's my mistake and it should be T_kf.act(force_on_foot).
I did use these lines in OCS2 because they match my requirements perfectly and just take copy and paste.  And I trid to simply transform external forces on foot tips into joint torques by multiplying the Jacobian. It also works well.


share: test complex recovery scenarious

We need to test the base case where:

there are two full nodes on the network connected to each other;
neither of them individually are connected to enough light nodes to reconstruct the block;
but, together, they do have enough light nodes to reconstruct the block.

Here is one proposal how the setup could look like:

This is meant to consistently and deterministically yield an integration tests that fulfils the test-case assumptions.

Alternatively, you could achieve sth similar via the number of light nodes but probabilistically. If we do tests on a real network, we should be doing that I think.


No delay between adjacent menu items

Just an idea.. when moving sideways across a horizontal navigation with many large submenus, It would be less jarring visually to have no delay between the over and out of each submenu.
In other words: hoverintent is useful on the first hover but once the cursor is in the menu there could be a setting to remove the delay ( and act like a normal hover ) between over and out based on if target has same class etc...

A few weeks... more like a few months... :confused:
@frankie-loves-jesus - Does resolving issue #11 resolve this issue using @usmonster's workaround above? Or do you still feel the need for an adjacency check?
Re-reading my initial comment, I think the reason I was leaning towards sharedIntent (while slightly more convoluted, code-wise) is that it would allow for non-adjacent/related blocks to share intent.

There he is -- welcome back @briancherne!
About the adjacency check, I think you meant to hit @Grimmrobe with that one?


Unable to download video with -f 17 or -f 36 anymore

Hello
Please follow the guide below
my version is:
pi@raspberrypi:~ $ youtube-dl --version
2019.02.18

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2019.02.18. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2019.02.18

Before submitting an issue make sure you have:

[x] At least skimmed through the README, most notably the FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones
[x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[x] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
pi@raspberrypi:~ $ youtube-dl -v -f 36 https://youtu.be/pRSjyeogm5U
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'-f', u'36', u'https://youtu.be/pRSjyeogm5U'                                                                                ]
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.02.18
[debug] Python version 2.7.13 (CPython) - Linux-4.14.92+-armv6l-with-debian-9.6
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] pRSjyeogm5U: Downloading webpage
[youtube] pRSjyeogm5U: Downloading video info webpage
[youtube] {18} signature length 41.40, html5 player vflX2rhq7
[youtube] {136} signature length 41.40, html5 player vflX2rhq7
[youtube] {247} signature length 41.40, html5 player vflX2rhq7
[youtube] {135} signature length 41.40, html5 player vflX2rhq7
[youtube] {244} signature length 41.40, html5 player vflX2rhq7
[youtube] {134} signature length 41.40, html5 player vflX2rhq7
[youtube] {243} signature length 41.40, html5 player vflX2rhq7
[youtube] {133} signature length 41.40, html5 player vflX2rhq7
[youtube] {242} signature length 41.40, html5 player vflX2rhq7
[youtube] {160} signature length 41.40, html5 player vflX2rhq7
[youtube] {278} signature length 41.40, html5 player vflX2rhq7
[youtube] {140} signature length 41.40, html5 player vflX2rhq7
[youtube] {171} signature length 41.40, html5 player vflX2rhq7
[youtube] {249} signature length 41.40, html5 player vflX2rhq7
[youtube] {250} signature length 41.40, html5 player vflX2rhq7
[youtube] {251} signature length 41.40, html5 player vflX2rhq7
ERROR: requested format not available
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 805, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 859, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1632, in process_video_result
    expected=True)
ExtractorError: requested format not available

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
I normally do youtube-dl -F
That lists all available formats.
Some days ago the videos above offered 17 and 36 as very small formats. I received a 3gp video file.
Now I am not offered the format any more. All files are much larger now e.g.
youtube-dl -F https://youtu.be/pRSjyeogm5U
[youtube] pRSjyeogm5U: Downloading webpage
[youtube] pRSjyeogm5U: Downloading video info webpage
[info] Available formats for pRSjyeogm5U:
format code  extension  resolution note
249          webm       audio only DASH audio   55k , opus @ 50k, 1.77MiB
250          webm       audio only DASH audio   69k , opus @ 70k, 2.33MiB
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k, 5.64MiB
171          webm       audio only DASH audio  132k , vorbis@128k, 4.43MiB
251          webm       audio only DASH audio  138k , opus @160k, 4.58MiB
278          webm       256x144    144p   96k , webm container, vp9, 24fps, video only, 3.85MiB
160          mp4        256x144    144p  109k , avc1.4d400c, 24fps, video only, 2.99MiB
242          webm       426x240    240p  225k , vp9, 24fps, video only, 6.39MiB
133          mp4        426x240    240p  301k , avc1.4d4015, 24fps, video only, 6.73MiB
243          webm       640x360    360p  412k , vp9, 24fps, video only, 11.33MiB
134          mp4        640x360    360p  675k , avc1.4d401e, 24fps, video only, 12.24MiB
244          webm       854x480    480p  732k , vp9, 24fps, video only, 14.82MiB
135          mp4        854x480    480p  991k , avc1.4d401e, 24fps, video only, 17.21MiB
136          mp4        1280x720   720p 1112k , avc1.4d401f, 24fps, video only, 22.47MiB
247          webm       1280x720   720p 1187k , vp9, 24fps, video only, 22.18MiB
18           mp4        640x360    medium  517k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 22.55MiB (best)
What happened. Why is 17 and 36 not offered any more.
Kind regards,
Roland

Address this question to Youtube.

It seems to be a general issue because I see this behaviour for all youtube links which had worked recently with this format. Is it your suggestion that I should address this question to youtube or could you do it for me. To be honest I do not know how to contact the youtube support and it's probably easier if you could address this question to youtube as you know more details.
It would be great if you could help me.
Best regards,
Roland

I am not sure if I asked my question to youtube correctly. Please see:
https://support.google.com/youtube/thread/1944781?hl=en
It would be great if you could help me.
Best regards,
Roland

Pretty likely that this is an intentional change by YouTube, i.e. they are currently retiring some specific formats from their infrastructure.


Is there an option to allow individual mail addresses?

Hi, I wanted to know if there's any option to select individual mail addresses instead of a whole domain or vice versa: Excluding individuals from my own domain.
Thank you.

This is not possible with the OIDC_GOOGLE_APPS_DOMAIN option, since this is enforced at both Google and flask-oidc.
Flask-OIDC currently doesn't have code to deal with allowed email addresses otherwise, so I'd say that you  would need to handle that at your application.
However, if you'd be interested, I could add an "authorization callback" where you would implement your own function to return True or False.
Another way could be to allow requiring specific values for attributes.
Do you have a preference for leaving the filtering to the application or flask-oidc?

I think having such a feature on OIDC would benefit for additional features other than individual auth, am I correct?

Yeah, I think that's a reasonable idea. I'll try to see if I can hack something up in the coming weekend.

You're the best, thank you!


Show alert and add button for missing zero hour entry when workday has flex leave entry

When workday has only an flex leave entry, but is missing a necessary zero hour entry, show alert and a button to add the zero hour entry below the entries

Code and result look good and work. GJ!


Serializing a custom type has Sideeffects

When you include Mongoid::Fields::Serializable in a class, the following code within this class will now return false instead of true: {}.is_a?(Hash)
This happens because with the inclusion of Serializable the 'nearest' Hash-Class will be 'Mongoid::Fields::Serializable::Hash'.
Naturally this is not the behaviour someone would expect.
The following Code illustrates the problem:
class TestIt
   include Mongoid::Fields::Serializable

   def is_hash
      if( {}.is_a?(::Hash) )
         puts "hash: right"
      else
         puts "hash: wrong"
      end
   end

   def is_array
     if( [].is_a?(Array) )
       puts "array: right"
     else
       puts "array: wrong"
     end
   end
end

Hey mate. Which version of Mongoid are you using? I'm getting different behaviour from you with 2.3.4:
class TestIt
   include Mongoid::Fields::Serializable

   def is_hash
      if( {}.is_a?(::Hash) )
         puts "hash: right"
      else
         puts "hash: wrong"
      end
   end

   def is_array
     if( [].is_a?(::Array) )
       puts "array: right"
     else
       puts "array: wrong"
     end
   end
end

TestIt.new.is_hash
hash: right
=> nil

TestIt.new.is_array
array: right
=> nil

Note that I changed if( [].is_a?(Array) ) to use ::Array.

I've tested it with 2.3.3 and 2.3.4.
I'm not sure I follow, but of course using ::Array generates the correct/expected result. But honestly I have never seen a Code which tests for an Array or Hash to be written like: object.is_a?(::Array) or object.is_a?(::Hash) (maybe it should).
Maybe I'm missing something ...?

Actually, I removed the :: from ::Hash and ::Array, and the expected behaviour still occurs for me in 2.3.4:

class TestIt
   include Mongoid::Fields::Serializable

   def is_hash
      if( {}.is_a?(Hash) )
         puts "hash: right"
      else
         puts "hash: wrong"
      end
   end

   def is_array
     if( [].is_a?(Array) )
       puts "array: right"
     else
       puts "array: wrong"
     end
   end
end

TestIt.new.is_hash
hash: right
=> nil

TestIt.new.is_array
array: right
=> nil

Now that is interessting. I will try to reproduce (hopefully) your results on another dev-machine.

Can you please try to verify the side effect with this repo: https://github.com/QEDio/mongoid_serialization
I've tested it now on three different dev-machines, always the same result, but I've only tested it with ruby 1.9.2. Maybe this is the culprit.

Hey jak4, I just tried out the repo that you posted. When Mongoid::Fields::Serializable is included in the model, all 4 specs do in fact fail.
Thanks for the great example.
Durran, I'm not sure if this is technically a bug, or a wider issue with how we approach serializing fields. Any thoughts?

I'm considering this a bug, but I'm not sure of a solution outside of some renaming in Mongoid.


Add support for integrations/github ~5.0

GitHub releases a week ago a new major version of the provider: https://github.com/integrations/terraform-provider-github/releases
The module should support that version :-)

Hi @0x46616c6b ,
Thanks for reaching out. We added support for the 5.x provider back in October in https://github.com/mineiros-io/terraform-github-team/releases/tag/v0.9.0.
Thanks and let me know if there's anything else we can help you with!


feat: Merge changes from Cosmos SDK upstream release/v0.46.x branch [DEV-2777]

Description
Closes: #XXXX

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch (see PR Targeting)
[ ] provided a link to the relevant issue or specification
[ ] followed the guidelines for building modules
[ ] included the necessary unit and integration tests
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Task linked: DEV-2777 Assess whether we can use vanilla Cosmos SDK or need to patch our fork


[DataGrid]: DataGrid ExpandedRow examples are not working on StackBlitz and Code Sandbox

Package
Carbon for IBM Products
Description
404 errors for StackBlitz and CodeSandbox links here:
https://stackblitz.com/edit/github-oqgtfd?file=src%2FExample%2FExample.jsx,package.json
Component(s) impacted
DataGrid
Browser
Chrome, Firefox
@carbon/ibm-products (previously @carbon/ibm-cloud-cognitive) version
v2.43.0
Severity
Severity 2 = Aspects of design is broken, and impedes users in a significant way, but there is a way to complete their tasks. Affects major functionality, has a workaround.
Product/offering
IBM CCX
CodeSandbox or Stackblitz example
https://stackblitz.com/github/carbon-design-system/ibm-products/tree/main/examples/carbon-for-ibm-products/ExpandableRow?file=src%2FExample%2FExample.jsx
Steps to reproduce the issue (if applicable)
Visit links above
Release date (if applicable)
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate issues

This is now resolved with @annawen1's updates here.


Tory solution

Completeness: 5/5
Understanding: strong 3 or sort-of 4 / 5
This exercise was really useful. I stayed after yesterday and got a lot of useful help from Erica and Adam.
I'm still working on this -- I want to create a grid of cells (divs), and name every cell its position with an ID

Not sure if you're referring to the bonus with your note about div's and id's, but either way, happy to help with that. Let me know. Otherwise, great job with this assignment!

:+1:


How should Dataset.update() handle conflicting coordinates?

Recently, we updated Dataset.__setitem__ to drop conflicting coordinates from DataArray values being assigned if they conflict with existing coordinates (https://github.com/pydata/xarray/pull/2087). Because update and __setitem__ share the same code path, this inadvertently updated update as well. Is this something we want?
In v0.10.3, both __setitem__ and update prioritize coordinates from the assigned objects (e.g., value in dataset[key] = value).
In v0.10.4, both __setitem__ and update prioritize coordinates from the original object (e.g., dataset).
I'm not sure this is the right behavior. In particular, in the case of dataset.update(other) where other is also an xarray.Dataset, it seems like coordinates from other should take priority.
Note that one advantage of the current logic (which is violated by my current fix in https://github.com/pydata/xarray/pull/2162), is that we maintain the invariant that dataset[key] = value is equivalent to dataset.update({key: value}).

cc @fujiisoup

I think dataset.update(other) should be equivalent with
for key, value in other.items():
    dataset[key] = value

Our .item() ony iterates over data_vars not coordinate.
So I think even in dataset.update(other) coordinates from other should be dropped if there is a conflict.

I'm of the strong opinion that all joins should be outer joins unless the user explicitly says otherwise, as it's the approach least prone to do damage. I would humbly suggest considering the change for a future major release (0.11 / 0.12), with several minor releases before that printing futurewarnings.
This said, I think that changing from a right join (0.10.3) to a left join (0.10.4) will only cause breakages without providing any actual benefit in terms of user-friendliness, so we should retain the previous behaviour. A right join vaguely makes more sense IMHO as it follows the general phylosophy of dict.update() where rhs wins in case of collision.

I think we should discuss dimension coordinte and non-dimenson coordinate separately.
I guess @shoyer meant non-dimenson coordinate here.
For dimension coordinte, it is always outer join, if I understand correctly.

Then I'm not sure I understand the change:
fridge = xarray.Dataset(
    data_vars={
        'fruits': ('fruit', [10]),
    },
    coords={
        'fruit': ('fruit', ['apples']),
        'quality': ('fruit', ['Red Velvet']),
    })
shopping = xarray.Dataset(
    data_vars={
        'fruits': ('fruit', [20]),
    },
    coords={
        'fruit': ('fruit', ['oranges']),
        'quality': ('fruit', ['Tangerine']),
    })
fridge.update(shopping)  # throw away old contents and fill with new stuff

In both 0.10.3 and 0.10.4:
<xarray.Dataset>
Dimensions:  (fruit: 1)
Coordinates:
  * fruit    (fruit) object 'apples'
    quality  (fruit) object nan
Data variables:
    fruits   (fruit) float64 nan

The above doesn't make any sense to me. I wanted to replace the fruits variable with brand new content, and instead I lost both the old and the new?!?

I got cofused... I was wrong. I thought it would be an outer joing
I think we need to discuss two issues here separately.

If there are conflicts in dimension coordinate, should it be outer join?
If there are no conflicts in dimension coordinate, but there are conflicts in non dimension coordinate, whether left or right should be prioritized?

#2087 changed the second behavior.
In [1]: import xarray
   ...:
   ...: fridge = xarray.Dataset(
   ...:     data_vars={
   ...:         'var1': ('fruit', [10]),
   ...:     },
   ...:     coords={
   ...:         'fruit': ('fruit', [1]),
   ...:         'quality': ('fruit', ['Red Velvet']),
   ...:     })
   ...: shopping = xarray.Dataset(
   ...:     data_vars={
   ...:         'var1': ('fruit', [20]),
   ...:     },
   ...:     coords={
   ...:         'fruit': ('fruit', [1]),
   ...:         'quality': ('fruit', ['Tangerine']),
   ...:     })
   ...:
   ...: fridge['var1'] = shopping['var1']
   ...:

with v10.3
In [2]: fridge
Out[2]:
<xarray.Dataset>
Dimensions:  (fruit: 1)
Coordinates:
  * fruit    (fruit) int64 1
    quality  (fruit) <U9 'Tangerine'
Data variables:
    var1     (fruit) int64 20

and with v10.4
In [3]: fridge
Out[3]:
<xarray.Dataset>
Dimensions:  (fruit: 1)
Coordinates:
  * fruit    (fruit) int64 1
    quality  (fruit) <U10 'Red Velvet'
Data variables:
    var1     (fruit) int64 20

OK, looking at this more carefully ds.update(other) didn't actually change when other is a Dataset, because ds[k] = ds[k].drop(coord_names) doesn't actually drop coordinates from a Dataset. It just shows a warning now, due to iteration over a Dataset.
So maybe we can leave the current behavior as is for now (but remove the warning).
What did change is how we handle conflicts in __setitem__ (which was intentional), and how we handle conflicts in update when the new value is a dictionary (which was not intentional, but at least remained consistent with __setitem__).

@crusaderky this behavior you show is indeed really strange. I don't know why alignment of dimensions works that way here.

So maybe we can leave the current behavior as is for now (but remove the warning).

Agreed.
@shoyer, how do you think about the current __setitem__ behavior with conflict dimension coordinate?
Should it be outer join as @crusaderky pointed out?

If there are conflicts in dimension coordinate, should it be outer join?

Consider this example:
a = Dataset({
    'x': [10, 20],
    'd1': ('x', [100, 200]),
    'd2': ('x', [300, 400])
})
b = Dataset({
    'x': [15],
    'd1': ('x', [500]),
})
a.update(b)

In the above, with anything but an outer join you're destroying d2 - which doesn't even exist in the rhs dataset! A sane, desirable outcome should be
Dataset({
    'x': [10, 20, 15],
    'd1': ('x', [nan, nan, 500]),
    'd2': ('x', [300, 400, nan])
})

If there are no conflicts in dimension coordinate, but there are conflicts in non dimension coordinate, whether left or right should be prioritized?

I think this should be a right join. I alway think of non-index coords as N-to-1 properties of the index. For example,
a = Dataset(
    coords={
        'country': ('country', ['UK', 'France', 'Greece']),
        'currency': ('country', ['GBP', 'EUR', 'EUR']),
    },
    data_vars={
        'GDP': ('country', [1000, 2000, 3000]),
        'Debt': ('country', [100, 200, 300]),
    })
b = Dataset(
    coords={
        'country': ('country', ['UK', 'France', 'Greece']),
        'currency': ('country', ['GBP', 'EUR', 'GRD']),
    },
    data_vars={
        'GDP': ('country', [1000, 2000, 150000]),
    })
a.update(b)

In the above example, I just broke the Debt variable - as I forgot to perform a currency conversion for the greek debt, which has been silently changed from 300 EUR to 300 GRD.
However I can't see any elegant way to avoid this. I definitely would not like to duplicate the 'country' index.

Thanks, @crusaderky.
The first behavior you pointed out is a bug I think.
I raised an issue in #2184, and maybe it should be discussed there.
For the second example,

I think this should be a right join.

I agree with this.

For referene the original issue in #2068 was
In [4]: ds = xr.Dataset()
   ...: ds.coords['source'] = (['a', 'b', 'c'], np.random.random((2, 3, 4)))
   ...: ds.coords['unrelated'] = (['a', 'c'], np.random.random((2, 4)))
   ...: ds
   ...:
Out[4]:
<xarray.Dataset>
Dimensions:    (a: 2, b: 3, c: 4)
Coordinates:
    source     (a, b, c) float64 0.4158 0.07152 0.4258 0.4382 0.6616 0.142 ...
    unrelated  (a, c) float64 0.9318 0.03723 0.4226 0.9472 0.8753 0.7022 ...
Dimensions without coordinates: a, b, c
Data variables:
    *empty*

In [5]: ds['dest-2'] = xr.ones_like(ds['source'].isel(c=0))
   ...: ds
   ...:
Out[5]:
<xarray.Dataset>
Dimensions:    (a: 2, b: 3)
Coordinates:
    source     (a, b) float64 0.4158 0.6616 0.1583 0.7821 0.221 0.2555
    unrelated  (a) float64 0.9318 0.8753
Dimensions without coordinates: a, b
Data variables:
    dest-2     (a, b) float64 1.0 1.0 1.0 1.0 1.0 1.0

where ds['unrelated'] drops dimension c.
We changed this behavior in #2087, but I think it was a wrong direction.
The previous behavior might be OK as long as unrelated is a coordinate variable.

Looking at @crusaderky's example of different coordinate labels again, I finally remember why it works this way.
The logic of ds.update(other) is that (1) variables explicitly listed in other should take precedence over the original object and (2) mutating a Dataset should not change its dimensions or indexes.
This is pretty clearly expressed in the original code:
    return merge_core([dataset, other], priority_arg=1,
                      indexes=dataset.indexes)

In @crusaderky's example with fridge.update(shopping), shopping first gets reindexed to fridge (which means it ends up only holding NaN), and is then used to override the original dataset:
<xarray.Dataset>
Dimensions:  (fruit: 1)
Coordinates:
  * fruit    (fruit) object 'apples'
    quality  (fruit) object nan
Data variables:
    fruits   (fruit) float64 nan

It would probably make sense to keep values from the original variables rather than blindly replacing them with the new NaNs from shopping, but in general I do think the general approach of "right join on variables" and "left join on indexes" makes sense for update().
For most use cases, the true outer join makes more sense -- which is why xarray.merge() works that way.


General submodule update + MSR null transient fix

Let's see how we're doing here

Job VTB Documentation on 5e8bf53 wanted to post the following:
View the site here
This comment will be updated on new commits.

error is some allow_unused parameter being ignored, which should be fixed by the work on this https://github.com/idaholab/moose/issues/20567


Update for recordset_data table based on rsdump

Changes in this pull request:

Update for recordset_data table based on rsdump

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: Jay07GIT:x: jvelku299jvelku299 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Add attachment data with content ids

The content ids is valuable information that we should be able to reliable access from the parsed email. this pr adds an array of hashes with the content id, type and file instead of just an array of files, while keeping the attachment array we already use in griddler.  This can be useful when using a separate email class with this data.
Todo: I still need to figure out how to make this work the default email class in griddler, just opening this pr to check how feasible is this.

I'm thinking to change this to save this data in this  vendor specific param on the griddler email class.

This seems reasonable to me.
Also it seems reasonable to assign it to vendor_specific: {attachment_info: {info...}} (I'd name it attachment_info rather than attachment_data to match what ppl see in sendgrid docs).
And would be reasonable to add some assertions about the extracted info in specs (beyond just .present?)

Sounds good, I'll get back to this tomorrow and I'll add some more
assertions.
On Thu, May 23, 2019, 9:49 PM Steve<EMAIL_ADDRESS>wrote:

This seems reasonable to me.
Also it seems reasonable to assign it to vendor_specific:
{attachment_info: {info...}} (I'd name it attachment_info rather than
attachment_data to match what ppl see in sendgrid docs).
And would be reasonable to add some assertions about the extracted info in
specs (beyond just .present?)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/thoughtbot/griddler-sendgrid/pull/35?email_source=notifications&email_token=ABDADPKRFALVNHTOFW4AZ2LPW5CUHA5CNFSM4HPK5AR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWD56SI#issuecomment-495443785,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABDADPJYJ67D4OVJC6TVPOLPW5CUHANCNFSM4HPK5ARQ
.

There, I changed this to add a new array attachment_info  under vendor_specific with the same file that we are sending on  the attachments, but now we have its precise content_id and type. I also added a couple of methods to the specs since it'd be the third time we use that large eojson string with the attachment-info.

Note the change that it doesn't do a params.delete the attachment1, ...attachmentn params anymore. Was that necessary for griddler somehow?

Closing this as this library has been deprecated: https://github.com/thoughtbot/griddler-sendgrid/pull/41


Display stdlib errors on Travis run

So I figured out how we can display stdlib errors on a Travis run: we can run nose as a module and set a flag (-Wd)for Python to display all warnings.
I was thinking we could make a separate target for testing the dev releases:
test-dev:
	rm -f .coverage
	. local/bin/activate && local/bin/python3 -Wd -m nose

Originally posted by @jadchaar in https://github.com/crsmithdev/arrow/pull/585#issuecomment-493787621

Gonna try and tackle this when I get some free time :)

I added this to the Makefile in the latest PR so it can be run before future Python releases going forward. I am not putting it in Travis because the only warnings emitted are by the dated nose and by a deprecation warning emitted by arrow itself. I think adding it to Travis could introduce extra clutter and confusion :).


About page

Updated responsive styles for About Page, including:

Logo
Nav + Footer
Using red for emphasis & visual distinction (ex: FAQ questions)

TODO:

[ ] red for emphasis should be distinct from links
[ ] mobile navigation Menu: expand/collapse
[ ] transition when resizing
[ ] "Voicemails for the Lives Lost" marquee…

@lionel-lints just opened this as a checkpoint for myself – I'm gonna do the TODOs before merging so don't worry about this for now!


Recommended way to update a Map

Hi,
I'm experimenting a bit with immutables and I'm not sure what I'm doing is actually correct or if there is a better way to do it.
So let's say I have a Store like this
var store = Map({
  customers: Map({
    count: 0,
    total: 0,
    results: List()
  })
})

Now when I get new customer data I want to update the store and dump the new data in it
var newData = {
  count: 2,
  total: 2,
  results: [
    {id: 1, name: 'Alice'},
    {id: 2, name: 'Bob'}
  ]
}

store = store.setIn(['customers'], fromJS(newData))

Any help would be much appreciated, thanks :)

That looks just fine to me. Is it doing what you want?
Since your setIn key path is short, you can also do:
store = store.set('customers', fromJS(data))

Hey, thanks for the quick answer!
Yes, it does what I expect, just wondering if it's the right way to do it ;)
Because if I just pass the JS object and don't convert it back with fromJS then customers is not an immutable map anymore
console.log(store.set('customers', newData).get('customers'))
// => Object {count: 2, total: 2, results: Array[2]}

console.log(store.set('customers', fromJS(newData)).get('customers'))
// => Object {size: 3, _root: ArrayMapNode, __ownerID: undefined, __hash: undefined, __altered: false…}

I thought it would be implicitly converted on set, so I just wanted to make sure :)

That's correct

Cool, then I can close this. Thanks for the help and your time :+1:


File explorer for "Open project"

It would be nice to have a file explorer instead of that ugly text input we have 😄

@NickSeagull after some search, it seems there is only a non-standard way of having a "directory" input, and that is by using webkitdirectory attribute (supported by Chrome, Firefox, Safari and Microsoft Edge), seems to be our best shot, if you agree on using this, I can work on this :+1: :grin:

I was checking it out, the problem that I ser there is that it just gives us the relative path, starting from the directory that the user selected. We need the absolute one. What about getting a tree using System.Directory and then just showing it?

@NickSeagull woops, even worse, I just found out it doesn't work on empty directories, definitely not an option anymore. So yeah, I guess fetching the tree from server-side makes sense, can I start working on it? :grin:

Of course! Thank you!!

@NickSeagull guess this one's done now, can close :grin: :+1:

Yep! Thanks 😄


Failed to initiaize error after upgrade to v3.0

As per title, tried reinstalling without any improvement.

You need to provide more useful details

This is the only log entry:
Logger: homeassistant.setup
Source: setup.py:173
First occurred: 20:32:21 (1 occurrences)
Last logged: 20:32:21
Setup failed for sonoff: Integration failed to initialize.

Maybe you have more detail error in full Hass log?

What Hass version do you using?

Home Assistant 2021.8.5

This is from the log before and after the error
2022-05-01 20:32:21 INFO (SyncWorker_10) [homeassistant.loader] Loaded coronavirus from homeassistant.components.coronavirus
2022-05-01 20:32:21 INFO (MainThread) [homeassistant.setup] Setting up sonoff
2022-05-01 20:32:21 INFO (MainThread) [homeassistant.setup] Setup of domain sonoff took 0.0 seconds
2022-05-01 20:32:21 ERROR (MainThread) [homeassistant.setup] Setup failed for sonoff: Integration failed to initialize.
2022-05-01 20:32:21 INFO (SyncWorker_8) [homeassistant.loader] Loaded calendar from homeassistant.components.calendar
2022-05-01 20:32:21 ERROR (SyncWorker_24) [homeassistant] Error doing job: Task was destroyed but it is pending!
2022-05-01 20:32:21 INFO (SyncWorker_14) [root] Sending handshake.

FYI i just used HACS to upgrade to v3.0 and this is when it started giving this error

Your Hass version don't supported in new release
https://github.com/AlexxIT/SonoffLAN/releases/tag/v3.0.0


Issue loading multiple fixtures when running multiple specs

I've been trying to track down this issue for a while, but without success, I'm hoping someone has either seen something similar or has an idea on how to track it down better.
When I run my entire jasmine test suite I get a number of failing test cases, a few are real failing tests, but the others give the following error:
Fixture could not be loaded: jasmine/fixtures/activity_header.html (status: error, message: undefined)
Then when I run a subset of those same tests and the fixture error goes away giving me a green status bar.  Running the full suite again brings back the error for tests that previously passed.  I'm not editing the tests in any way.
The odd thing is that when I get the error above, the browser isn't sending the ajax request (nothing appears in the Network tab of the Safari or Chrome development panel), and the server console isn't reporting any requests for those fixtures (I'm running a Rails server with jasminerice).  It's as if something internal to javascript is preventing them from loading and returning the error.  While debugging I've examined the error object and it has a 404 status, but I can't see how that's possible as nothing was ever sent out according to the browser and the server.  The url of the request is fine, and if I make the request in a different browser window, it works fine.
Also interesting is that the fixtures associated with the last test case to run do load correctly (and their requests appear in the Network console of the browser as expected).  The fixtures for the previous test cases do not however, though they all generate this error.  I suspect that's why when I run a subset of tests the fixtures work, because there is only one test running the fixture in that context.
Any ideas on what could be causing these errors?

If you are running Rails 3.1, then I presume this is due to the asset pipeline. In order to use jasmine with the asset pipeline, I use the jasmine rice gem. To get fixtures working, I moved the fixtures directory into vendor/assets/javascripts/fixtures and set jasmine.getFixtures().fixturesPath = 'assets/fixtures' (see the Fixtures section of the jasmine readme).

I'm curious if the solution suggested by @dnelson-cs solves the original problem. @dnelson-cs it shouldn't be necessary to move the fixtures in order to get them to load. Note that jasminerice includes a monkey-patched version of jasmine-jquery that changes the load path for fixtures. If you also have jasmine-jquery in your helpers directory, the monkey-patched version is overwritten by the 'pristine' version configures the wrong load path. If you look at the firebug console you'll see that both are being loaded.
The solution that was (I believe) intended by jasminerice is to remove jasmine-jquery from your helpers directory so that the monkey-patched version is used. This works for me, and solves the error message that @emeryamiller reports.
Les

@dnelson-cs @lazylester , thanks for the replies.
I am using jasmine rice, and originally had the fixtures in the spec/javascripts/fixtures directory because they are haml fixtures.
I tried @dnelson-cs's suggestion of moving the fixtures out to the vendor/assets/javascripts/fixtures directory, converting them from haml to raw html and changing the fixturesPath, but I get the same results.
@lazylester, I also looked to see if jasmine-jquery was being overridden, but I only include the monkey-patched version.  Just to be sure, I did a quick diff between the two versions, and the only difference is the this.fixturesPath setting.  I then checked my browser to see whether the jasmine-jquery file being used had that change, and it does.
I've run a few more tests, trying to recreate this issue using basic test cases, but I haven't been able to re-create the issue in my smaller test suites.  Still looking into it.  If anyone has any other suggestions, that'd be much appreciated.

Finally found it.  I don't fully understand why, but it was due to my use of Sinon.js.
In the event someone else comes across the same issue if you use sinon.fakeServer.create() in your test cases, you'll need to run sinon.restore() once your test is finished (in an after block for example).
While forgetting to include it in one or two tests may not cause issues, there will come a point where it causes your fixtures to fail to load, even if the Sinon calls are not part of the tests that load fixtures. I have no idea why, or how many fakeServer calls can be made without restore before the error manifests (I had several in my test cases that didn't cause problems, until I added one more).
Closing the issue.


Investigate apollo issue

The version of apollo-server-express that we use (3.11.1) has a deprecation message, with end-of-life as October 23. This needs investigating.

https://github.com/nestjs/graphql/issues/2445 Says that there is intention to upgrade the nestjs apollo package to use apollo v4, but it hasn't happened yet. We'll wait until that happens - I've followed the issue.


 I mean

As in title,  there are (probably more then else) people not that techy to get really confused here, I am one of those.
Thanks to the guy commenting on the issue at the bottom. I was just about to leave some feedback RE finding tokens on Safari
" ...because they are likely trying to steal your login token so they can use your ChatGPT instead of their own.
under no circumstance should you be entering a session token ANYWHERE to login to ANYTHING.
the session token allows them to login to your ChatGPT session without the username and password, if it was legit, it would just ask you to login and it would create a new session token which would be tied to their extension.
in this case it looks like your browser was smart enough to realize your interacting with a token that has no user functions, settings or parameters and thus it was blocked and sent the error message "403 Forbidden" which indicates that you are not allowed to modify that token in any way,
if it was modified it will likely revert to the default state which would be to delete the token and make you login to all ChatGPT services again.
to solve the issue, uninstall the extension and install a legit ChatGPT extension.
Ultimately there is no reason to login or enter session tokens, you can just go to the OpenAI website (openai.com) > Login to the website and click the icon in the top right, select "view API Keys" and then create a new API key, the API key can then be put into the extension and if you want to stop the extension from having access to your ChatGPT you can just delete the API key and make a new one from ChatGPT's website.
maybe im wrong but i have never EVER had to use a login session token from a web browser to use an extension or application and i have been using/interacting computers for 25+ years."
Originally posted by @Milentius in https://github.com/barnesoir/chatgpt-vscode-plugin/issues/37#issuecomment-1519653337

Time indeed an amateur new thank you for pointing that out for me I will be more careful from now on. Once again thank you comrade is there any way I can show my appreciation do I like give reputation points or something I really am being serious I don't know much about Github and and maybe I shouldn't be pulling stunts like I tried without further research but but I've been reading all my life and lately it's just become a little tedious I love the reading ever since I was a kid I guess I finally burned myself out on it haha. I know that sounds like the stupidest thing ever but I tend to just do things now instead of read about them which is not always good thank you once again comrade


DNPTime.quality always INVALID for g2v2 event

When sending a g2v2 unsolicited event to a opendnp3 master (v3.0.1), TypedMeasurement.time.quality is always INVALID whereas info.tsquality is SYNCHRONIZED. The expected behaviour is that DNPTime.quality and HeaderInfo.tsquality are always in sync.

After spirited debate, we've decided how to resolve this discrepancy. This will result in 3.0.2 being released this week.

Have a look at this PR @sidhoda:
https://github.com/dnp3/opendnp3/pull/379

Resolved in #379


renovate: add esbuildOptions to jsLoader options

This pr is related to issue: #39
add esbuildOptions as prop to createLoader thus can make jsLoader using custom esbuild options while doing esbuild transform:

Yup, named as esbuild is better. Updated.

@pi0 Maybe look at this? Thanks.

is this new option expected to be use in js mkdist api directly?

No new cli flag for it, is this new option expected to be use in js mkdist api directly?

Yes.  Cause esbuild options is an object and may not be suitable to pass in as cli option.
In fact, I make this pr not just to provide esbuild options to mkdist. I found unjs/unbuild is using mkdist and doesn't provide options to customize esbuild option:

When using unbuild as library bundler, it is useful to allow setting esbuild option.