Migration guide or changelog

Hi there! I noticed you just published a version of this library compatible with Google Sheets V4.
At a first glance, what do existing codebases using this library need to do to migrate from the old version? It looks like a number of functions no longer take callbacks (and return Promises instead), but is there anything else that is materially different?
If there's a changelog, that'd be awesome.
Thanks!

I had considered it, but figured the effort would be better spent on making sure the general docs were really solid. I'll see if I can make some time to get something together, but in general quite a lot has changed, but I've tried to make sure it still is very simple. Google's v4 api is very different so some things really had to change.

everything is promise based so no more callbacks (promises are now much better with async/await)
when fetching rows, you can no longer use queries or ordering (google no longer supports the row-based calls, so I had to recreate them as much as possible)

also the issue with an empty row breaking things is now gone, but empty rows will be fetched

use doc.loadInfo() which loads props that live on the doc, rather than returning the info with doc.getInfo()
cell interaction is very different, but should be even easier to use

load cells with sheet.loadCells() (can use a filter like sheet.loadCells('A1:F10'))
access specific cells with sheet.getCell(row, col) or sheet.getCellByA1('D5')
make changes cell.value = "newValue" or cell.formula = "=SUM(A1:D1)"
save all unsaved changes using sheet.saveUpdatedCells()

I'm also trying to migrate my project to Google Spreadsheet v4. The documentation of this library mentions getCells to get all cells, but when I call it, I get an error 'getCells is not a function', and I can't find that function in the code either. What function should I use to get all the cells?

Hello! Must be a typo - it’s loadCells

Another idea (purely a suggestion/feature request, I'm sure there are many other things competing for your attention): Would be awesome to have TypeScript type definitions for this library!

going to close as it's now been quite a while. I've also added a changelog file and will keep it up to date as we move forward!
Thanks :D


LOCAL_AWS_PROFILE

This lets you picked a named profile to connect to S3 with https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

Thanks Brad!


cdylib still not fully functional

cdylib works perfectly if I do this in my build.rs:
println!("cargo:rustc-link-search=.../target/debug/deps/");
println!("cargo:rustc-link-lib=my_custom_ffi-b248e1a221d9ae20");

The problem is that I can not hard code the hash. If I don't hard code the hash cargo will fail.
Is there a public API available to calculate this hash?
I can use cargo pkgid my_custom_ffi . Perhaps there is a standard hash Fn I can use to get the hash?
There seems to be no other way to create a cdylib that links dynamically against a dependent DSO. ?
Thanks!

Ah yeah the intention of cdylib was that other Rust crates wouldn't depend on it, it's the endpoint of a compilation like an executable or a staticlib artifact.
Could you describe how come you're linking a Rust cdylib into another Rust library? It sounds like the Rust cdylib may want to be a totally independent Cargo project that's hooked up externally rather than through Cargo itself.

create a Rust shared library that contains common functionality.
create n Rust shared libraries/plugins that run in separate containers - there will be a good number of these and because of memory constraints we need these plugins to dynamically link against the common shared library.

I really don't mind calculating the hash myself.
cargo pkgid project gives me the pkgid which I think is hashed. Maybe cargo exposes the hash Fn and I just call it?

I found a way that seems to work. In my plugin, create a make.sh file that simply:
cargo rustc --lib -- -C prefer-dynamic
Bonus: I can specify in my Cargo.toml:
crate-type = ["dylib", "rlib"]
This is important because without rlib none of the tests will build.
I thought that cdylib was supposed to basically be "-C prefer-dynamic"?

Ok, if you want to use Rust projects with shared libraries amongst one another, you're basically exiting the world of the compiler and Cargo in terms of dependency resolution because they assume that "C libraries" (aka cdylibs) have their own build system and are accounted for separately.
You probably don't want -C prefer-dynamic as it's related to dylibs, not cdylibs. It sounds like you may be pretty far in the weeds though, so perhaps you may want to step back for a second? First off, shared libraries in Rust do not work well in terms of extern crate foo pulling in foo as a shared library. It works, but only barely. You probably want to statically link all your Rust dependencies as it won't really have that much of a footprint in practice.
The cdylib crate type is intended to produce a dynamic library to be loaded into an application, not be used as a dependency in Rust. That is, if you were to use one from Rust, you'd basically have to redefine everything with extern { ... } and have lots of unsafe glue between the two. This isn't really idiomatic Rust either so I wouldn't necessarily recommend it.
Basically if a rust crate depends on another, the crate depended on should not be a cdylib, otherwise you're probably going to run into pain as it's not really what they're intended for.

Ok, dropping cdylib for my current task. Will use it for another...
Note that I do statically link all other dependencies besides the common DSO and Rust std.
Wrt footprint... it's a really big deal in our environment. I'm hopeful that I'll be able to talk about why in more detail.

Oh interesting! We should be able to do basically any reasonable linkage scenario, although not through Cargo but rather through the compiler. I can certainly try to help out if it's needed!

@alexcrichton - just been trying to find more info on the cdylib, but it makes me wonder - since it is assumed that using it leaves the Rust world for all practical purposes, and it's goal is to ease being used by C, can this be even taken further such that, what's exposed is similar in nature to how an rlib is exposed to another?
By that I mean, add #[no-mange] along with extern automatically to all public functions. Perhaps, even a repr for public structs, where it is reasonable to do so. And separate module namespaces automatically with perhaps _, so most safe libraries (which do not rely on specific representations, or other unsafe features) can just be used from C by convention, with almost no changes? .. The ones that do use them are inherently unsafe - so it becomes the responsibility of the libraries to ensure it's correct anyway.
While it may sound counter-intuitive at first, I wonder if there are any major disadvantages to do so. Making this kind of a friction-less escape hatch to use from C for many simple cases.

@prasannavl what you're mentioning sounds like a larger change to the language rather than something that Cargo would do? That may be best discussed on the RFC repository rather than here perhaps?

@alexcrichton - You're right, of course. I've followed Rust for a long time now, but I'm fairly new to actually using it in real projects, and as such didn't feel my hands-on experience with the language was sufficient enough to start proposing RFCs.
So just wanted to throw it in some where of relevance to see if it made sense to someone living in the ecosystem, and if it's worth exploring further. And found this thread which seemed to be so :)


Add Tests for all XX_request methods in test_interpreter.cpp

I think now, for a start we have some implementation for all request methods.
We also have tests for some of them and we can finish the others I guess

[x] execute_request
[x] inspect_request
[ ] complete_request
[ ] is_complete_request
[ ] kernel_info_request
[ ] shutdown_request

cc @tharun571 you might be interested to cover some of these.

Writing tests for other files right now. Is it fine if I get on this after that?

Yeah no issues at all. Just thought of making a note of what we've covered and what we should be addressing.

This issue can now we closed as we've added basic tests for all request methods through #116 and #124


FLPATH-476: Update openapi-generator-maven-plugin

What this PR does / why we need it:
Update the Update openapi-generator-maven-plugin from 6.4.0 to 6.6.0
Which issue(s) this PR fixes:
Fixes # FLPATH-476
Change type

[ ] New feature
[x] Bug fix
[ ] Unit tests
[ ] Integration tests
[ ] CI
[ ] Documentation
[ ] Auto-generated SDK code

Impacted services

[ ] Workflow Service
[ ] Notification Service

Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.

@pkliczewski FYI

@pkliczewski FYI

Thank you!


[Candidate 1v1 Storm Surge ZH v1] Supply Docks near dams do not offer equal build space

Observed behavior
Supply Docks near dams do not offer equal build space.
Expected behavior
Supply Docks near dams offer equal build space for fairness.
Screenshots
Can not build

Can build

fixed

Ths was not fixed. I fixed it now. Question is: Are the rocks on the buildings a problem or not? Its no problem to remove them, but I would rather not as it hurts the optic. If seen as an issue I can remove the rocks on the buildings

I think Dominator just commented "fixed" but never actually sent a fixed version. So ignore these. If a report is open, it is considered valid.

Big rocks must not clip into buildable space. Move or remove them if space is meant to be buildable.


Trim parquet row selection

Which issue does this PR close?

Closes #.
Rationale for this change

Skipping over records isn't necessarily free, in particular for variable length types such as strings. There is no point going to this effort if there are no further rows to be read.
What changes are included in this PR?

Trims trailing skips from a RowSelection prior to the scan
Are there any user-facing changes?
No

Perhaps @thinkharderdev you might be able to give this one a review


Duplicate icons in sni tray at startup

Seems to happen mostly immediately after boot

Reopening until we actually bump versions for everything all the way up to taffybar.


Rtd/sphinx compat

Should fix the failing RTD builds, inspired by:
https://github.com/sphinx-doc/sphinx/issues/7747

Build is here: https://readthedocs.org/projects/numba/builds/14032023/

RTD Build passed: https://readthedocs.org/projects/numba/builds/14032023/

These type of URLs are working again! https://numba--7122.org.readthedocs.build/en/7122/

Question... Does this create a minimum sphinx version requirement or is the patch backward compatible?

Deprecated since 1.8, removed with 4.0 -- yes, new minimum sphinx is now 4.0

Deprecated since 1.8, removed with 4.0 -- yes, new minimum sphinx is now 4.0

Thanks, I guess we need to fix up the recipes and add a note in the docs too. Anything else?


[SPARK-48586][SS] Remove lock acquisition in doMaintenance() by making a deep copy of file mappings in RocksDBFileManager in load()

What changes were proposed in this pull request?
When change log checkpointing is enabled, the lock of the RocksDB state store is acquired when uploading the snapshot inside maintenance tasks, which causes lock contention between query processing tasks and state maintenance thread. This PR fixes lock contention issue introduced by https://github.com/apache/spark/pull/45724.
The changes include:

Removing lock acquisition in doMaintenance()
Adding a copyFileMappings() method to RocksDBFileManager,  and using this method to deep copy the file manager state, specifically the file mappings versionToRocksDBFiles and localFilesToDfsFiles,  in load()
Capture the reference to the file mappings  in commit().

Why are the changes needed?
We want to eliminate lock contention to decrease latency of streaming queries so lock acquisition inside maintenance tasks should be avoided. This can introduce race conditions between task and maintenance threads. By making a deep copy of versionToRocksDBFiles and localFilesToDfsFiles in RocksDBFileManager, we can ensure that the file manager state is not updated by task thread when background snapshot uploading tasks attempt to upload a snapshot.
Does this PR introduce any user-facing change?
No
How was this patch tested?

Added unit test cases.
Was this patch authored or co-authored using generative AI tooling?
No

@chaoqin-li1123

@sahnib

Can you fill in testing description in the PR description?
Remove the WIP from title and finalize the title and description when it is ready for review.

Thanks! Merging to master/3.5/3.4.

@riyaverm-db Looks like there is merge conflict in 3.5 (and probably 3.4 as well). Could you please help crafting a PR for 3.5 and 3.4? Thanks in advance!


Image Links broken in README and VS Code Marketplace listing

The links are pointing to URLs in a non-existent repository, for example:
https://github.com/selfrefactor/niketa-themes/blob/master/packages/niketa_dark/screens/aqua.teen.hunger.force.png?raw=true
This is also true on the Marketplace listing:
https://marketplace.visualstudio.com/items?itemName=selfrefactor.niketa-dark-theme

txs will fix it


Added night mode option

Fixes #12

Modified autocomplete

Added options to toggle between night and light mode

@arnav-t Kindly review.


[QUESTION] How to remove newline at the top of the editor?

Hi, I want to ask is there any way to remove the newline at the top of the editor?

I want the cursor at the top of the editor when I click the editor for the first time like the image below.

Here is the code that I used:
HtmlEditor(
  controller: _descriptionController,
  htmlEditorOptions: const HtmlEditorOptions(
    hint: "Your text here...",
  ),
  otherOptions: const OtherOptions(
    height: 300,
  ),
  htmlToolbarOptions:
      const HtmlToolbarOptions(defaultToolbarButtons: [
    FontButtons(
      strikethrough: false,
      subscript: false,
      superscript: false,
    ),
    ListButtons(listStyles: false),
    ParagraphButtons(
      alignCenter: false,
      alignJustify: false,
      alignLeft: false,
      alignRight: false,
      lineHeight: false,
      caseConverter: false,
      textDirection: false,
    )
  ]),
),

Please see #24 for more details on this issue

Hi, tneotia. Thanks for the reply. I'll close this for now.


Add from_reader and to_writer convenience methods

Resolves #215, resolves #216.
I used Arc<io::Error> as suggested in #215.

Looks great to me, just one minor nit. Thanks!

Bump! Would be great to have this in toml-rs :)

2020 bump life

If anyone wants to continue where I left it off, to_writer returns toml::ser::Error which can't contain io::Error and I didn't know how to fix that.

I believe as for that, we could add IoError(std::io::Error) (or something else) to https://github.com/alexcrichton/toml-rs/blob/7d8ed33c949dfff9df873193ac18183fc136925f/src/ser.rs#L164-L206
Then, I believe can just use writer.write_all(&b).map_err(Error::IoError)?, not tested but I think it is the rough idea.

It would make sense to just replicate whatever serde_json does in the same situation.

serde_json uses trait to handle deserialization. to_writer is used as a base for other methods.

Tell me if this fix it's OK for you : https://github.com/RazerM/toml-rs/pull/1

A possibility would be to return std::io::Error.  That can already contain other errors as an inner error.

I've rebased this onto current master in #452.

If anyone wants to continue where I left it off, to_writer returns toml::ser::Error which can't contain io::Error and I didn't know how to fix that.

I removed the PartialEq and Eq traits from ErrorKind, and that unblocked that issue. Tests pass, and some very basic testing seems to work, but I'm unaware if that'll have any larger consequences.

toml-rs has moved to https://github.com/toml-rs/toml_edit.  Feel free to rebase your PR against that repo and open a new issue there.


System requirements

The system requirements are missing on the documentation of the project.
Which version of .NET Framework is required and which version of Windows is supported ?

Thank you for the note! There is now a system requirements section in the README. Policy Plus requires .NET Framework 4.5 or newer, which requires Windows Vista or newer.


Upgrade PM2 and use no auto-restart

#172

Coverage remained the same at 21.816% when pulling a4f4659f86f7ac850240bcefd4853b3ef670fc06 on auto-restart into 86f714b93a0a4470af5edc6c1841ad8becb7e191 on master.


Created my profile.

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[ ] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] This PR does not contain plagiarized content.
[ ] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

@Panquesito7 @kumarsonsoff3 Please check if this PR is ready to be merged.

Hello,
Can some one help me with this, Format test is failing !
@SaptarshiSarkar12 @Pradumnasaraf

No worries @OmAvhad, this issue is resolved last day! This PR is good to goo!
It will re-run when we'll push your PR!!
__
  Summary: :ok_hand: This code looks good


Actions in a git diff

Hi guys, what do you think about this feature?

source: https://atom.io/packages/line-diff-details

Each widely used editor/IDE has an active gutter for reverting chunks...I think that there already i issue filed for this #22025 ;)

Yeah, it's the same request, I will close this issue in favor of #22025


Support k8s >= 1.16

Switch to the apps/v1 API; all the parameters we use are still supported.
Part of https://github.com/plotly/streambed/issues/14300

[x] Tested on stage
[x] Won't affect On-Prem

@BRONSOLO Please review.
@antoinerg Image tests are failing due to some image differences that you can see here. Is it OK to merge with these differences? Should I update the baselines? Something else?

@antoinerg Image tests are failing due to some image differences that you can see here. Is it OK to merge with these differences? Should I update the baselines? Something else?

There is only one slight difference in font rendering (the difference is in red below):

I think it's OK to merge with these differences although I'm a bit puzzled as to what caused the difference. Anyway, I can update the baselines for the fonts mock in a subsequent PR. @scjody


thellier_gui crashes when asked to do anisotropy calculations

What command was run:
thellier_gui.py => Anisotropy/Calculate anisotropy tensors
What happened:
-I- Using anisotropy data
done sort blocks to arai, zij. etc.
self.GUI_RESOLUTION 1.0
Traceback (most recent call last):
File "/Users/ltauxe/PmagPy/programs/thellier_gui.py", line 2960, in on_menu_calculate_aniso_tensor
res, error = self.calculate_anisotropy_tensors(data_model=self.data_model)
File "/Users/ltauxe/PmagPy/programs/thellier_gui.py", line 3558, in calculate_anisotropy_tensors
new_data['method_codes'] = new_meths
UnboundLocalError: local variable 'new_meths' referenced before assignment
What I expected to happen:
calculate the tensors and then use them
Data file(s):
Screenshot(s):
PmagPy version:
pmagpy-4.2.108

This is now fixed


Tails.classes/1 removes the space in a class list with rounded

Describe the bug
When I pass in a string "px-2 rounded", Tails.classes/1 removes the space.
To Reproduce
iex(8)> Tails.classes(["px-2 rounded"])
"px-2rounded"

Expected behavior
iex(8)> Tails.classes(["px-2 rounded"])
"px-2 rounded"

Runtime

Elixir version: 1.16.1
Erlang version: 26.2.2
OS: MacOS
Tails version: 0.1.10

Duplicate of https://github.com/zachdaniel/tails/pull/22


Update pod-lifecycle.md

@Coderayush13
JFYI: Please mention the related issue like Fixes <#Issue No.> or mention the description while opening the PR, so that it will be easy for the reviewers to look at what this PR is for, and the issue will close automatically soon after the PR merge.


Forcing non-ego car(s) to switch lanes at some time step

Hi @eleurent , awesome project!
I am developing a highway environment where sometimes an exit ramp will appear.
I created a graph similar to the merge environment you developed, but instead of an on ramp, I created an exit ramp.
Visually, this is what a portion of the highway looks like:

In my highway environment, lanes where cars can merge left and right are named similarly. For example in the image above, there are three nodes named "A" and three nodes named "B" denoting the start and end of three portions of lanes. This is following the same format of the _make_road() function of merge_env.py. My understanding is that there are three nodes created indexed by [0,1,2] when a node is added to the road graph with the same name.
I see there is a ControlledVehicle.plan_route_to() function which takes in the string name of a destination node you want a car to drive to, and will set the route of the vehicle to reach that goal. I don't think this function considers a specific lane you would like the car to end up in (e.g. as long as the B string node is reached, it doesn't matter if the car reached B0 or B1 or B2 index)
Is there a way to force a non-ego vehicle (IDMVehicle object) to switch lanes at a specific timestep? For example, is there a way to force the blue car in the picture above to merge right from the [A0,B0] lane to the [A1,B1] lane?
Actually, I also just saw that IDM vehicles have a change_lane_policy() function that sets a target_lane_index variable for the car. Is there a good function I can set the target_lane_index variable of a non-ego vehicle from the environment python file so that the ego vehicle switches lanes to my target lane at the next IDMVehicle.act() call?
Truly appreciate your time and help, and please feel free to let me know if I can clarify any details from my end. In the meantime, I'll try setting the target_lane_index variable from my environment file and seeing if it works.

Hi @TheNeeloy,
I think you have a very good understanding of what's going on, but here's a a small clarification to make sure we are on the same page.

My understanding is that there are three nodes created indexed by [0,1,2] when a node is added to the road graph with the same name.

I would say that there are two nodes, A and B, but they are connected by three edges: (A,B,0) (A,B,1), (A,B,2).
In fact, my (flawed) reasoning when I wrote this model was that the lanes were not really relevant to route planning (since you can freely change lane on a highway without really changing your planned route), but rather the road segments (set of adjacent lanes) were.
But it is quite simplistic, and although it turned out fine for most situations, it is not great for your scenario since it does not really allow to plan in the lane space (and thus plan a lane change). The current solution only takes decisions at the end of a road segment, by selecting the next one in the planned route and tracking it instead.
Maybe we would need to adapt it to actually account for the lane changes in the plan (eg  (A,B,0) -> (A,B,1) -> (A,B,2) -> (B,C,0)), which could probably be achieved by duplicating the node as you suggested. But then, we are coupling again the lanes vs road segment decisions, which does not really give the liberty to change lane freely.
A possible solution related to what you suggested:

Actually, I also just saw that IDM vehicles have a change_lane_policy() function that sets a target_lane_index variable for the car. Is there a good function I can set the target_lane_index variable of a non-ego vehicle from the environment python file so that the ego vehicle switches lanes to my target lane at the next IDMVehicle.act() call?

Something in this spirit already exists: a planned route is currently a list of lane indexes (node_from, node_to, lane_id). If I remember correctly, the lane_id is set to None by default, which means the vehicle is indifferent to the actual lane. But if it is set to an actual lane_id, then this lane will be chosen either when changing of road segment in follow_road() as usual, but also if the vehicle is driving in a lane adjacent to its target lane.
So in your example, if a vehicle has a route [(A, B, 2), (B, C, 0)], they will change lane if they are on (A, B, 1). However, since this is only a local decision it won't work if the vehicle starts in (A, B, 0). It would need to be part of the planning procedure to anticipate two lane changes (A, B, 0) -> (A, B, 1) -> (A, B, 2).
I'm not sure what is the best way to go.
Maybe the easiest would be to just adapt this rule and move to an adjacent lane if it gets you closer to a target lane (ie same road segment but closer lane_id), rather than exactly on the correct lane_id.

Actually, as I'm reading this code again, it seems that it already does what we want: do a lane change if it is safe and if it goes in the good direction (change of lane id has the same sign as desired change of lane id)
        # Do I have a planned route for a specific lane which is safe for me to access?
        old_preceding, old_following = self.road.neighbour_vehicles(self)
        self_pred_a = self.acceleration(ego_vehicle=self, front_vehicle=new_preceding)
        if self.route and self.route[0][2]:
            # Wrong direction
            if np.sign(lane_index[2] - self.target_lane_index[2]) != np.sign(self.route[0][2] - self.target_lane_index[2]):
                return False
            # Unsafe braking required
            elif self_pred_a < -self.LANE_CHANGE_MAX_BRAKING_IMPOSED:
                return False

So maybe having a planned route with a lane_id set to 2 instead of None is enough, I will try it.

https://user-images.githubusercontent.com/1706935/148241437-0721414c-3213-43df-9ecf-d3ae4922a7dd.mp4
This is what I get on my exit_env environment, after adding the following lines in create_vehicles().
            vehicle = vehicles_type.create_random(self.road,
                                                  lane_from="0",
                                                  lane_to="1",
                                                  lane_id=lane_id,
                                                  speed=lane.speed_limit,
                                                  spacing=1 / self.config["vehicles_density"],
                                                  ).plan_route_to("exit")
            graph = self.road.network.graph
            vehicle.route = [(li[0], li[1], len(graph[li[0]][li[1]])-1)
                             if li[1] in ['1', '2'] else li for li in vehicle.route]
            vehicle.enable_lane_change = True

This sets the destination of every vehicle as exit, and their target lane (for the (0,1) and (1,2) segments) to L-1, where L is the number of lanes

Thank you for the detailed and clear explanation of how the graph is set up and how routes work!
I added this code after I generate a non-ego vehicle in my environment to set its route's preferred lane to be at the very right:
curr_vehicle.plan_route_to("e")    # "e" is the name of the node at the end of the highway
graph = self.road.network.graph
curr_vehicle.route = [(li[0], li[1], len(graph[li[0]][li[1]])-1) for li in curr_vehicle.route]

And it does the expected behavior for the blue and black cars below when the highway density is low:
https://user-images.githubusercontent.com/14181513/148443593-c672a15c-6f01-412a-9bb0-bdb8d1542485.mp4
In the above environment, the green car is the ego vehicle is green, aggressive cars are black, defensive cars are blue, and a crashed vehicle I spawned is in red. I am forcing non-ego cars to merge to the right lane before they reach the crashed vehicle.
When I increase the density of non-ego vehicles on the highway and similarly force their preferred lane to be on the right side, it seems like cars merging right will sometimes side-swipe cars that are next to it or slightly behind it on the right lane while merging in, or brake check cars behind it after merging in, or rear end cars as they merge in.
https://user-images.githubusercontent.com/14181513/148444330-5dfca56a-89ca-4691-9974-f6855ad86d5c.mp4
Are there suggested parameters I should change of the non-ego vehicles to minimize the probability of crashes occurring in these high density scenarios? I can also try to increase the length of the highway before the spawned crashed vehicle to give cars a longer chance to merge right, but I don't know if that will fix the side-swipe or brake check issues. When deciding when to switch lanes, do IDMVehicles consider the distance of cars behind it in the desired lane?
Thanks for your time!

Hi!
The lane change decision is carried out by the MOBIL model, which theoretically has a mechanism to avoid this kind of scenarios:
when considering a lane change, a vehicle computes its position after the lane change, finds its new following vehicle on that lane, and checks that the deceleration that was imposed on that following vehicle is lower than a threshold. This is done here:
https://github.com/eleurent/highway-env/blob/9d63973da854584fe51b00ccee7b24b1bf031418/highway_env/vehicle/behavior.py#L230
This is supposed to prevent the lane changes you observe. Clearly, it is not the case, so something must be going wrong. Here are two hypotheses:

In the original MOBIL model, the lane changes were assumed to be instantaneous. In contrast, in this project it takes some time for a vehicle to complete a lane change, and during this time the new following vehicle keeps accelerating as if nothing was on the lane. A possible fix would be to make the following vehicle consider any vehicle currently changing to its lane as already on the lane, so that it starts braking earlier.
I did something similar here (but for the changing vehicle instead): https://github.com/eleurent/highway-env/blob/9d63973da854584fe51b00ccee7b24b1bf031418/highway_env/vehicle/behavior.py#L104

another possibility is that the IDM/MOBIL parameters are too aggressive. Decreasing LANE_CHANGE_MAX_BRAKING_IMPOSED makes vehicle less likely to change lane in front of someone else (a higher safety distance is required), and increasing  COMFORT_ACC_MIN makes vehicles brake faster when another car merges in front of them.

If you want to share your environment code with me, I can help you investigate and try to find an acceptable solution.

Hi!
Thank you so much for your advice, and I apologize for the delayed response in getting back to you about this.
Currently, my environment spans a length of 330 meters, and I can spawn 7 non-ego vehicles into the scenario evenly across the highway without causing crashes during an episode. As I increase to 9 or more non-ego vehicles, side-swipes, rear end, etc. crashes occur more often.
I tried decreasing LANE_CHANGE_MAX_BRAKING_IMPOSED and increasing COMFORT_ACC_MIN and ACC_MAX with higher density scenarios to no avail.
I was thinking about whether the MOBIL model's assumption that it can merge instantaneously is causing the crashes, but I noticed there were times when a car would merge into the other lane even when there is another car directly next to it (side by side).
I have published my environment code to this repo:
https://github.com/TheNeeloy/highway-env
The environment in question is highway_env.envs.anomaly_exit_env.
I added a script which you can run from the project directory to visualize the environment:
python hello_highway.py
If you have the chance, I would be very much thankful if you could take a look at the parameters used or whether a different solution would be more appropriate.
Thanks for your time!

Sequence of 5 episodes with 7 non-ego vehicles max with no crashes:
https://user-images.githubusercontent.com/14181513/152594661-7a2c4eb8-87a1-42fd-b969-a2e3b0eae102.mp4
Sequence of 5 episodes with 10 non-ego vehicles max with crashes:
https://user-images.githubusercontent.com/14181513/152594816-d33da010-f4de-4d02-8713-9b235530cf79.mp4

I think the problem of crashing cars may be originating from what you said earlier about how cars will switch lanes at the end of the lane if they weren't able to do so earlier:

However, if a vehicle does not reach the correct lane in time (because others are in the way), they will still try to change to track the exit lane at the end of road segment (1, 2), which will typically cause a collision.

My 2 lane highway scenario with no exit has several intermediate nodes between the start and end of the road that mimic the construction of my exit scenario. I think I can just use a RoadNetwork.straight_road_network instead of my current construction of the 2 lane highway scenario.

https://user-images.githubusercontent.com/14181513/152725354-8e0bcea4-c534-4f83-a4b6-4940fd9b6c9e.mp4
By changing the graph to use fewer nodes, I stopped the crashes from occurring.
Then, I also had to comment out from behavior.py the following line to ensure that stopped IDM vehicles stuck behind the red crashed vehicle were still able to merge right:
# Only change lane when the vehicle is moving
if np.abs(self.speed) < 1:
    continue

Do you think there would be a better way to solve the issue of stuck vehicles? I played around with the IDM parameters further and read https://github.com/eleurent/highway-env/issues/259#issuecomment-1015873714 and https://github.com/eleurent/highway-env/issues/81#issuecomment-640223373 until I just commented out the condition I wrote above.

Hi @TheNeeloy
First, in your "Sequence of 5 episodes with 10 non-ego vehicles max with crashes:", I can see only one crash, happening at 0:05. It is very strange that the vehicle that cuts was allowed to change lane, since there is another car on that lane just a few meters behind, so this should have been stopped by the MAX_BRAKING_IMPOSED criteria. If you can consistently reproduce it (find the random seed in the episode stats), it would be good to investigate what's going on there, e.g. what was the computed imposed braking.
I think it's a shame you went back to the straight road network, I liked your exit ramp scene a lot :) But its true that currently, if a vehicle has planned in its route to take the exit and could not reach the exit lane early enough; it is just going to cross the road when it reaches the fork. This behaviour could be avoided though, I think? it suffices to check when moving to the next road segment in the planned route that it is reachable from the current position, and else to just keep following the current lane.
I could submit a patch, if you're interested.
About the line you cited above, I agree that removing it would definitely help avoiding stuck vehicles. It was introduced to fix this issue which may be a bit too specific. I think your use-case is more common, and that other issue should probably be addressed in a different way.


Firebase connection problems from GCP Cloud Run app

[REQUIRED] Step 2: Describe your environment

Operating System version: GCP Cloud Run (Java 8 runtime). US-Central region.
Firebase SDK version: 6.8.1, 6.8.0, 6.7.0
Library version: 6.8.1, 6.8.0, 6.7.0
Firebase Product: database

[REQUIRED] Step 3: Describe the problem
I experience intermittent connection problems with Firebase Realtime Database from a Spring Boot App running on Google Cloud Run (Managed) service. It works without any problem locally (tried multiple networks and computers as well), but once deployed as a container on Cloud Run - queries response time to Firebase become unpredictable or sometimes no response at all.
I can constantly reproduce this problem during last 48+ hours. Not sure if it was the case before. I am under impression that it worked well in the past.
In order to isolate the problem I came up with a simple controller that queries ONE object from a database and waits for the result. Here is the controller code:
@GetMapping("/me")
public String me() throws Exception{
        	DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("PromoCodes");
    		logger.info("DatabaseReference: " + ref.getKey());

    		ref.addListenerForSingleValueEvent(new ValueEventListener() {

    			@Override
    			public void onDataChange(DataSnapshot snapshot) {

    				logger.info("-- onDataChange: " + snapshot.getChildrenCount());

    			}

    			@Override
    			public void onCancelled(DatabaseError error) {

    				logger.info("! onCancelled: " + error);

    			}
    		});

    		return "Firebase path: " + ref.getPath();
    	}

Here is one sample response from log files:
2019-07-01 20:22:20.689 PDTGET200 247 B 68 ms Safari 12  /me
2019-07-01 20:27:15.886 PDT2019-07-02 03:27:15.885 WARN 1 --- [database-worker] io.netty.util.internal.MacAddressUtil : Failed to find a usable hardware address from the network interfaces; using random bytes: 8c:e7:67:82:bd:a7:0c:1b
2019-07-01 20:28:28.887 PDT2019-07-02 03:28:28.886 ERROR 1 --- [ebsocket-worker] c.g.f.d.connection.WebsocketConnection : [ws_0] WebSocket error
2019-07-01 20:28:28.887 PDT
2019-07-01 20:28:28.887 PDTjava.lang.IllegalStateException: executor not accepting a task at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:60) ~[netty-resolver-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:200) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:49) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:188) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:174) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:1009) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:517) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:428) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:487) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_202] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_202] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) [na:1.8.0_202] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_202] at java.lang.Thread.run(Unknown Source) [na:1.8.0_202]
2019-07-01 20:28:28.887 PDT
2019-07-01 20:29:59.885 PDT2019-07-02 03:29:59.685 INFO 1 --- [se-event-target] ApiApplication : -- onDataChange: 1
In this case I got the response 7+ minutes after the request, including [database-worker] and [ebsocket-worker] exceptions prior to that. This is pretty much a pattern.
Sometimes I get response in a matter of milliseconds like expected, other times it takes 5-15 minutes to get it eventually with a bunch of similar connectivity exceptions in the logs.
Steps to reproduce:
Deploy simple Spring Boot app with a controller that queries small object from Firebase to Cloud Run.
Let me know if I can provide any other details to help resolve it.

If this only happens on Cloud Run, then it's more likely to be a problem with that environment. Have you tried contacting the Cloud Run team with this information?

I will contact them for sure. Planning to run the same test on App Engine to isolate Cloud Run infrastructure vs. Firebase location.

I have multiple test applications on App Engine that uses this library. And we have a few other users who use this API in App Engine for various production apps. Never seen an issue of the reported nature.

I had problems using the admin SDK (Firestore) using an image built with openjdk:8-jre-alpine, as cribbed from one of the Google-provided examples for Kotlin/ktor/netty.  After I switched to openjdk:8-jre-stretch, it worked.  The alpine build was a bit too slim and lacked some libraries and classes.  Don't know if that's what you're running into, but I'd give it a try.

Thanks for the suggestion about different jdk. I tried it, but it did not solve the problem.
Though I think I have nailed the pattern for this problem:
Step 1. Issue seems to be 100% reproducible then I just start new container (for example re-deploy it).
I get the following three error messages in logs after attempts to read anything from Firebase:
2019-07-02 23:41:57.395 PDT2019-07-03 06:41:57.395 WARN 1 --- [database-worker] io.netty.util.internal.MacAddressUtil : Failed to find a usable hardware address from the network interfaces; using random bytes: 11:7b:e0:13:9f:a5:3e:60
2019-07-02 23:43:33.196 PDT2019-07-03 06:43:33.195 ERROR 1 --- [ebsocket-worker] c.g.f.d.connection.WebsocketConnection : [ws_0] WebSocket error
2019-07-02 23:43:33.196 PDT
2019-07-02 23:43:33.196 PDTjava.lang.IllegalStateException: executor not accepting a task at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:60) ~[netty-resolver-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:200) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:49) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:188) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:174) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:1009) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:517) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:428) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:487) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_212] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_212] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
Step 2. It take 5-10 minutes for query result to eventually return results (onDataChange callbacks). It happens after the exceptions above:
2019-07-02 23:45:28.595 PDT2019-07-03 06:45:28.595 INFO 1 --- [se-event-target] ApiApplication : -- onDataChange: 1
Step 3. Right after that moment system works perfect. Expected quick responses from Firebase for new requests...
Step 4. Wait for container to be restarted due to inactivity (or just re-deploy app one more time). And the story repeats from #1 above.
Looks like it's the stable pattern to reproduce that problem.
BTW - it works like a charm on App Engine.
P.S. I will try to report this issue to Cloud Run, but I may be you guys can try to escalate it from your (Firebase) side as well.
Thanks!

Thanks for the detailed analysis @grebenshikov. We will try to follow up with the Cloud Run team via internal channels as well.
Can you share your test case (source code) with us? Ideally a simple web app and a Docker file, or even a hosted container that we can inspect and test?

@hiranya911 - please contact me directly and I would be happy to provide you details or even access to my hosted container to help you debug the problem. So far I can confirm that pattern continue to remain THE SAME over the week. The first Firebase query causes exceptions and several minutes delay before it "self-heals" and works fine till next container restart.
What is interesting - I saw one more detailed exception today that refers to you guys.
Uncaught exception in Firebase Database runloop (6.8.1). Please report to<EMAIL_ADDRESS>Below is the full stack trace with that exception.
P.S. I have no heard back from Cloud Run team on my ticket...
2019-07-09 21:06:05.262 PDT2019-07-10 04:06:04.863 WARN 1 --- [database-worker] io.netty.util.internal.MacAddressUtil : Failed to find a usable hardware address from the network interfaces; using random bytes: 9a:bd:99:d5:71:db:e4:13
2019-07-09 21:07:26.663 PDT2019-07-10 04:07:26.465 ERROR 1 --- [ebsocket-worker] c.g.f.d.connection.WebsocketConnection : [ws_0] WebSocket error
2019-07-09 21:07:26.663 PDT
2019-07-09 21:07:26.663 PDTjava.lang.IllegalStateException: executor not accepting a task at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:60) ~[netty-resolver-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:200) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:49) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:188) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:174) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:1009) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:517) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:428) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:487) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) [netty-transport-4.1.34.Final.jar!/:4.1.34.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar!/:4.1.34.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_212] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_212] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
2019-07-09 21:07:26.663 PDT
2019-07-09 21:09:16.763 PDT2019-07-10 04:09:16.762 ERROR 1 --- [database-worker] c.google.firebase.database.core.RunLoop : Uncaught exception in Firebase Database runloop (6.8.1). Please report to<EMAIL_ADDRESS>2019-07-09 21:09:16.763 PDT
2019-07-09 21:09:16.763 PDTjava.lang.NullPointerException: null at com.google.firebase.database.connection.WebsocketConnection$WSClientHandlerImpl$1.run(WebsocketConnection.java:273) ~[firebase-admin-6.8.1.jar!/:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_212] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_212] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_212] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_212] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]

Can you share the source code please? Just zip up a sample webapp project that we can build and deploy.

Sure. Here it is - https://www.dropbox.com/s/o6o55p3xeyy8gih/cloudrun-firebase-test.zip?dl=0
Look at "readme.txt" for instructions to configure it for your environment.
I tested it as newly deployed container @Cloud Run. Issue is 100% reproducible.

@grebenshikov I can't reproduce the issue. Just uploaded your project to Cloud Run and made some calls with curl. The longest cold start time I observed was around 18s which is to be expected. But nothing as outrageous as 7 minutes.
2019-07-15 16:42:07.434 PDT /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
2019-07-15 16:42:07.434 PDT( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2019-07-15 16:42:07.434 PDT \\/ ___)| |_)| | | | | || (_| | ) ) ) )
2019-07-15 16:42:07.434 PDT ' |____| .__|_| |_|_| |_\__, | / / / /
2019-07-15 16:42:07.434 PDT =========|_|==============|___/=/_/_/_/
2019-07-15 16:42:07.438 PDT :: Spring Boot :: (v2.1.4.RELEASE)
2019-07-15 16:42:07.438 PDT
2019-07-15 16:42:08.132 PDT2019-07-15 23:42:08.121 INFO 1 --- [ main] c.myapp.CloudrunFirebaseTestApplication : Starting CloudrunFirebaseTestApplication v0.0.1-SNAPSHOT on localhost with PID 1 (/cloudrun-firebase-test.jar started by root in /)
2019-07-15 16:42:08.135 PDT2019-07-15 23:42:08.134 INFO 1 --- [ main] c.myapp.CloudrunFirebaseTestApplication : No active profile set, falling back to default profiles: default
2019-07-15 16:42:15.232 PDT2019-07-15 23:42:15.231 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-07-15 16:42:15.405 PDT2019-07-15 23:42:15.405 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-07-15 16:42:15.405 PDT2019-07-15 23:42:15.405 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17]
2019-07-15 16:42:15.954 PDT2019-07-15 23:42:15.954 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-07-15 16:42:15.955 PDT2019-07-15 23:42:15.954 INFO 1 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 7428 ms
2019-07-15 16:42:16.593 PDT2019-07-15 23:42:16.593 INFO 1 --- [ main] com.myapp.FirebaseBean : --- FirebaseInitBean has been initialized successfully | https://fireflicks-io.firebaseio.com
2019-07-15 16:42:17.313 PDT2019-07-15 23:42:17.313 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-07-15 16:42:18.596 PDT2019-07-15 23:42:18.595 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-07-15 16:42:18.606 PDT2019-07-15 23:42:18.605 INFO 1 --- [ main] c.myapp.CloudrunFirebaseTestApplication : Started CloudrunFirebaseTestApplication in 12.998 seconds (JVM running for 16.296)
2019-07-15 16:42:18.929 PDT2019-07-15 23:42:18.928 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-07-15 16:42:18.930 PDT2019-07-15 23:42:18.929 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-07-15 16:42:18.996 PDT2019-07-15 23:42:18.996 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 67 ms
2019-07-15 16:42:19.323 PDT2019-07-15 23:42:19.323 INFO 1 --- [nio-8080-exec-1] com.myapp.MyController : DatabaseReference: PromoCodes
2019-07-15 16:42:19.526 PDTGET200 259 B 18.3 s curl/7.53.1  /me
2019-07-15 16:42:26.138 PDT2019-07-15 23:42:26.138 INFO 1 --- [nio-8080-exec-4] com.myapp.MyController : DatabaseReference: PromoCodes
2019-07-15 16:42:26.142 PDTGET200 251 B 22 ms curl/7.53.1  /me
2019-07-15 16:45:42.009 PDT2019-07-15 23:45:42.008 INFO 1 --- [nio-8080-exec-8] com.myapp.MyController : DatabaseReference: PromoCodes
2019-07-15 16:45:42.012 PDTGET200 250 B 11 ms curl/7.53.1  /me

From the above log you can see that the first request took 18.3 seconbds (around 12s was that spent on the Sprint/Tomcat/framework initialization).

FWIW, I do see the error messages you mentioned, but they seem to occur after a period of inactivity -- likely due to Cloud Run terminating the running container instance. For example, roughly 3 minutes after my last request I see:
2019-07-15 16:48:33.184 PDT2019-07-15 23:48:33.183 WARN 1 --- [database-worker] io.netty.util.internal.MacAddressUtil : Failed to find a usable hardware address from the network interfaces; using random bytes: 0d:61:cb:4e:a0:e1:09:28
2019-07-15 16:50:02.484 PDT2019-07-15 23:50:01.884 ERROR 1 --- [ebsocket-worker] c.g.f.d.connection.WebsocketConnection : [ws_0] WebSocket error

I have a feeling your notion of "response time" is based on when the RTDB event listener logs the data read from the database:
2019-07-15 16:51:45.084 PDT2019-07-15 23:51:45.084 INFO 1 --- [se-event-target] com.myapp.MyController : -- onDataChange: getChildrenCount=0

Is that right? In that case please note that RTDB event listeners are asynchronous and run on a separate thread. How Cloud Run handles the execution of such async threads (specifically, how their logs are collected and presented in the console) are completely undeterministic. You cannot rely on that timestamp to reason about the response time. For that you need to halt your web request thread, until the event listener fires.

Hey, thanks for testing my test app and sharing your observations. I think you are directionally correct. The way Cloud Run handles async threads (AND not only the way logs are collected - that one I am not sure if this adds up to the problem), but it for sure "plays" some games with infrastructure resources if no web workers are active... In the end it's designed to handle HTTP requests and control container lifetime during its execution.
I did a simple change of the code as you suggested - added HALT to my web request thread while event listener does it job... and problem seems to go away!!! Now I got completely synchronous way to work with RTDB from Cloud Run and it looks effective as well.
For example for the first execution of my request, including time to query RTDB it took 2.3sec (after container start up time) and following requests are processed in 15-20ms timeframe.


Custom language set manually.

I have english local on my OS. How i can setup manually Ru translation for lovelace-body-miscale-card?
Thanks advance!

I also don't know how to set language manually. I expect some `language: DE´ config option.
In my case DE is not shown unfortunately...

Je ne sais pas non plus comment définir la langue manuellement. J'attends une language: DEoption de configuration.
Dans mon cas, DE n'est malheureusement pas affiché...

Unfortunately I was not able to define it manually. It is based on the language of your homeassistant. If your homeassistant is in German your card should be too. I already have problems to solve it switch your homeassistant to English then go to the card page refresh F5 then switch back to German return to the card page refresh with F5.

switch your homeassistant to English then go to the card page refresh F5 then switch back to German return to the card page refresh with F5.

That neat workaround actually - worked 👍
If possible I still vote for a config option. There might be use-cases - like initially described in this issue - one wants to set another language for this card than the rest of HA frontend.

passez votre homeassistant en anglais puis allez sur la page de la carte actualisez F5 puis revenez en allemand revenez à la page de la carte actualisez avec F5.

En fait, cette solution de contournement intéressante a fonctionné 👍 Si possible, je vote toujours pour une option de configuration. Il peut y avoir des cas d'utilisation - comme décrit initialement dans ce numéro - où l'on souhaite définir une autre langue pour cette carte que le reste de l'interface HA.

If you have a card that has this option, I would like to study it to adapt it. For my part, I couldn't find it during my searches.

Can't find one.
Seems like one needs to perform that workaround over and over again which is VERY annoying:
After updating to 5.9.5, now the language is again defaulted to English on all instances. Really, I can't do the language switch hack on EVERY device/browser I use on every update...

There needs to be a smarter / more stable solution to this. A fixed language setting could be one...


Google Tag manager violates Content Security Policy directive

Describe the bug
After adding the analytics.googleAnalyticsId I get the following error:
Refused to load the script 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'unsafe-inline' giscus.app". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
To Reproduce
clone, install, add googleAnalyticsId and deploy to Vercel
Default ContentSecurityPolicy from next.config.js:
const ContentSecurityPolicy = `
  default-src 'self';
  img-src * blob: data:;
  style-src 'self' 'unsafe-inline' *.googleapis.com cdn.jsdelivr.net;
  script-src 'self' 'unsafe-eval' 'unsafe-inline' giscus.app;
  media-src 'none';
  connect-src *;
  font-src 'self' fonts.gstatic.com cdn.jsdelivr.net;
`

How can i fix it?

See here: https://github.com/timlrx/tailwind-nextjs-starter-blog/issues/319

Ah, my bad! Thanks for clearing it up!


Read States API

Where is the Homebridge API documented? I've been trying to dissect built plugins to determine what functions or callbacks are needed to request read states from a device, i.e. brightness level, on/off. The author of the HTTP shim was exploring adding this to the plugin, but decided it was better off to write your own plugin, which I agree with. However, I can't find any documentation on requesting and updating read states. I have control over the URL which can be called and the data that is returned by the URL call. Thank you!

For the underlying "HomeKit" API, see: https://github.com/KhaosT/HAP-NodeJS#api

Thank you this helped a lot. I am able to read boolean states for switches. I am running into trouble with how to call a 'getBrightness' function and write that to the characteristic.
The following is my function:
getBrightness: function(callback) {
var url = this.brightness_lvl
	this.log("Getting Brightness");
	this.httpRequest(url, "", this.http_brightness_method, this.username, this.password, this.sendimmediately, function(error, response, body) {
		if (error) {
			this.log('Getting brightness failed!', error);
			callback(error);
		} else {
			var level =  parseInt(body, 10);
			this.log('HTTP get Brightness succeeded! The Current Level is: '+level);

			callback(null, level);
		}
	}.bind(this));
}

For the Services:
lightbulbService
.addCharacteristic(new Characteristic.Brightness())
.on('set', this.setBrightness.bind(this))
.value = this.getBrightness.bind(this);
If I manually set a value it will populate ( .value = 55)

@bp529 Try this instead:
lightbulbService
.addCharacteristic(new Characteristic.Brightness())
.on('set', this.setBrightness.bind(this))
.on('get', this.getBrightness.bind(this));


[i18n] Hindi 'hin-in' translation

Main Issue: #175
Translate 90 cat facts to Hindi

I can do that


What is a dictionary template for?

What is a dictionary template for?

Used to configure device information or control


Dynamically loading panes

Responding to the README:

And so we hope we will end up with panes dynamically laoded according to user configuration preferences.

I thought I'd describe what I currently do and what I'm still missing.
A pane needs to be defined and registered using JS, so I have a index.html file that provides a custom pane sitting in my pod. When I navigate to it within solidos, it gets rendered in an IFrame.
Within that file, I call
parent.panes.register(p)

Or so that it becomes the default pane for that session:
parent.panes.list.unshift(p)
parent.panes["myPaneName"]=p

The latter is a workaround because register always adds panes in order of decreasing preference, so a user-defined pane will never be default
I currently have to specifically navigate to index.html within solidos. Pasting the URL straight into the location bar doesn't load solidos, and navigating to the folder loads solidos but not index.html. https://github.com/SolidOS/solidos/issues/196 would change the latter, i.e. the pane registration code would run automatically when navigating to the folder
In some use cases, I don't need the pane to be always available - it would be ok for it to be registered only when navigating to a folder. For other use cases, it would be useful if the pane was automatically loaded from my preferences file (perhaps lazily the first time the relevant class is encountered). Presumably this would be just JS rather than an index.html, though maybe it could be an entire custom component.
I do see there are security issues with executing arbitrary JS that has access to the entire parent solidos environment. I only have html files I have written in my pod at this time.

Despite the limitations above I find it very useful to be able to change a custom pane on the fly rather than having to recompile and without adding it to the mashlib bundle.

@josephguillaume can you give the index.html link or content?

Here's an example:
https://josephguillaume.solidcommunity.net/public/index.html
It creates a pane with a link to open the resource in an external window with Penny.
I have other examples that have hard-coded paths/vocabs and would need work before being able to shared.
I've been using an older mashlib on my own pod. As it turns out, the latest behaviour on solidcommunity.net is a bit different.
Opening the link directly to both the path and folder just return the html (not solidos), and the registration therefore doesn't work in that context. It looks like dokieli is already the default handler for a folder with an index.html too.
The pane does get registered as intended when navigating within solidos to the folder or index.html page.
Here's an entry point into solidos to be able to see the behaviour
https://josephguillaume.solidcommunity.net/public/index.ttl


Updating bundle 1.5.0 to 1.8.1 and 2.4.0 to 2.6.1

PR information

[x] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which has an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] If applicable, the PR references the bug/issue that it fixes in the description.
[ ] New Unit tests were added for the changes made and CI is passing.

I also found 1.5.0 references:
https://github.com/Azure/azure-functions-docker/blob/dev/host/3.0/buster/amd64/dotnet/dotnet-isolated/dotnet-isolated-appservice.Dockerfile#L16
https://github.com/Azure/azure-functions-docker/blob/dev/host/3.0/buster/amd64/dotnet/dotnet-isolated/dotnet-isolated-slim.Dockerfile#L16
https://github.com/Azure/azure-functions-docker/blob/dev/host/3.0/buster/amd64/dotnet/dotnet-isolated/dotnet-isolated.Dockerfile#L16
Should I change them to 1.8.1?

/azp run

/azp run v2 java build, v2 powershell build

cc @brettsam

@TsuyoshiUshio  - can you help unblock the build for this PR? If move to later version of V2 - then we should

Hi @pragnagopa
Yes. I talked with Bala, since this is the blocker of the release of extension bundle template for kafka and RabbitMQ update.
Bala is planning to release v2 new host version. Since the issue is old nuget site and dependency of the old tag of v2. It should be better solution to update v2 with new dependency.  @balag0  Do you know the status? or should I create a PR for the v2?

@TsuyoshiUshio /@Brettsam - We do not have to update 2.0 images as we will not be release them any more.
@brettsam - please update this PR without changes to 2.0 images.

@soninaren We are go without v2 host and try to release v3 then publish the extension bundle to CDN. Sounds good?

@soninaren We are go without v2 host and try to release v3 then publish the extension bundle to CDN. Sounds good?

That sounds good.

@Ankitkumarr - please look at dotnet-isolated images
@TsuyoshiUshio  / @balag0  - fixed the PR - please review

Ping for reviews!


[bug]: select an option after searching

Describe the bug
I tried to select the value I searched using onSearch prop and async mocksearch function. and encounter the type error

Affected component/components
multiselector
How to reproduce
search in multi selector and click an option
Codesandbox/StackBlitz link
No response
Logs
No response
System Info
No response
Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

What's your cmdk version?

am having the same issue with 1.0.0 CMDK version,


Brush Selections Don't Seem to Cross Filter

I can create a sample spec if needed but the general problem is that brush selections don't seem to cross-filter other Power BI visuals.
e.g.
https://vega.github.io/vega-lite/examples/interactive_brush.html
Clicking individual datapoints or ctrl-clicking multiple datapoints successfully cross filters other visuals. However, using the brush to select multiple data points doesn't seem to have any effect and no cross filtering is happening.

D'oh - I see this is already raised.
https://github.com/deneb-viz/deneb/issues/223
https://github.com/deneb-viz/deneb/issues/176


Support Unity 6

Changes

Fix regex patterns for Unity 6
Fix Android variables for Unity 2021+
Increase freed space on Linux runners
Update report to backend packages
Update test workflow packages

Checklist

[x] Read the contribution guide and accept the code of conduct
[x] Readme (updated or not needed)

Error: Invalid version "6000.0.0f1".

Is it because it didn't use the latest version of test runner? the pipeline errors seems related to https://github.com/game-ci/unity-test-runner/pull/264#event-12720910060


Ability to create an identification predicate with a block given the context of the representation being mapped

Closing this due to lack of tests, please ping me if they get added.


[WIP] electron-builder

Should create a distributable electron application built for win, linux, and mac. Rel #141

Note: Rename content_base from /build -> /app (you'll want to rm -rf your git-ignored dir /build... npm run start/build will automatically rebuild you the new one (/app) and serve from that if you're developing)
Create dir /build containing images and icons specific for electron-builder
Add "build" configuration to package.json

Currently...

Builds succeed, except for my system (OSX) throwing an error requiring Wine when building for windows.
Running the app as built by electron-builder results in window not found error... I think this may be due to lack of integration with the electron-package scripts.

TODO

[ ] integrate with electron-packager
[ ] sign with an official ETCDEV signature instead of my

Signing app (identity: 34DCCEF7F961A3C83C31856326E1C4267BB36A84 Developer ID Application: Rotblauer, LLC (3T8C45E2VR))

[ ] include http://isaacardis.com/z/emerald-wallet/icon.ico at https://github.com/ethereumclassic/Media_Kit instead (apparently windows wants its icons from a url for auto-upgrading capability)

configuration at https://github.com/whilei/emerald-wallet/blob/e953a295727ae1f5314e097e275f7150f80abf30/package.json#L142

Do we need all this icons to put as sources? especially as ZIP files. Also it's unclear which license is used for this images. Can't we download them as dependencies during the build?

The images under src/images/ (except for the logo, of course) are unnecessary --  I had just left them in there for reproducability.
The icons under /build/:
-rw-r--r-- 1 ia staff 6.7K Jun 20 12:36 background.png
-rw-r--r-- 1 ia staff 113K Jun 20 12:34 icon.icns
-rw-r--r-- 1 ia staff 362K Jun 20 12:34 icon.ico

are necessary for electron-build as far as I know

http://electron.rocks/electron-builder-explained/
https://github.com/electron-userland/electron-builder/wiki/Optionshttp://electron.rocks/electron-builder-explained/

Resources need to be in this folder by these names, since electron-builder is expecting them.

@splix @elaineo just an FYI update: building and packaging are still, for me, roadblocked by #154
If anybody's got a big idea about it I'd love to hear it. Google's been listening to me complain all afternoon.

Just rebased on master and with @splix's edits.
ae9ef30 swaps unzip2 package for extract-zip package because the latter has no dependency on fs, which may interfere with electron's fs.
Unfortunately, I'm still getting:
$ npm run package
open releases/EmeraldWallet.app

able to get a different error:

it seems that code wasn't compiled to plain js (or you have to enabled babel, not sure how it works in Electron runner)

see last couple commits for a new approach to try moving /electron/* to /src/ to ensure they all get webpacked during node build. seems to almost work except for strange new error message which you'll find in the commit message bodies

a07d4fc works, woohoo! Still todo:

[ ] refine npm scripts
[ ] remove/replace electron/package.js with electron-builder programmatic api
[ ] bundle with emerald (...?)

Be advised!: I'm going to use the --force to push a squashed and up-to-date branch. Brace yourselves.
A mostly-complete record of the individual commits can be found on my fork on branch builder-publisher.

we need to compile and package connector also
cargo install emerald-cli -v 0.9.0 then copy into bin

crate install --vers 0.9.0, we will publish it in half hour.

@splix @dulanov Better to download the latest release (like geth) than cargo install since that requires the system to have cargo set up?

It's just one command indeed - curl https://sh.rustup.rs -sSf | sh

But we will set up also github releases, so you can download from github binary assets directly.

Is the download possible to do today, or should we use cargo install for the time being and plan on phasing that out once the releases are up and running later?

Start from cargo install and I ask help for @bunda to prepare github releases for you. But one more - it's not good way to distribute something from github releases, IMHO.

Do you think it's better to use a download from different release source like Bintray, or is it the general downloading that's the issue?

@ia Another problem, we will probably split current emerald into several other tools, you whant to download all of them directly from github in binary form instead of using standard Rust package system?

I didn't know that... not necessarily, I'm just aiming for the most sustainable and easy-for-the-user option. If you think cargo is the way to go then I think we should do that.

Replaced by #190, closing.


Incremented Beta Version of SnakeMD: No Bugs

There appears to be no crashes or bugs with the simple upgrade of SnakeMD.

Not going to make an official release for this change as everything is working just fine on the old version of SnakeMD.


New-ComplianceTag -FilePlanProperty Bug when using ReferenceId attribute

Adding metadata to FilePlanProperties on a ComplianceTag via UI in ComplianceCentre for ReferenceId -
...will block the user adding duplicates:

The ComplianceCentre FilePlan UI guides you to create an unique ReferenceId per item, although no constraints on format (its a string). Using number-referencing convention here is expected, and is typical across various platforms, so not unexpected.
I create a new ComplianceTag via powershell and the command errors if you DONT use an existing ReferenceId when creating a new label, or when update using "Set-"

Existing ReferenceIds on UI created items

JSON generated using the approach from documentation:

Error generated by PowerShell trying to create a new items, with new ReferenceId

..re-run the PowerShell command using existing ReferenceId e.g. 20/1.0, and creates item - with duplicate referenceid. which is now visible in the UI

I have tried multiple variations

@officedocsbot assign @yogkumgit

Hello, thanks for your feedback.
I think your question is more suitable for support resources like:
https://support.microsoft.com/en-us/hub/4338813/windows-help?os=windows-10
docs.microsoft.com feedback is to help in documentation issues, not product issues.
Hope this information helps you.

@bongo-ho Thank you very much for posting this issue. Considering the nature of the issue, it is advised that please open a service ticket in your tenant and follow with them for the resolution.
We will be very happy if you can share the outcome or resolution with us. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

@officedocsbot close


Upgrade to zict 3.0

Avoids unnecessary deep-copy when unspilling uncompressed numpy arrays (dask/zict#74)

Fine by me if tests pass. Btw, should we expect to see corresponding performance improvements in certain benchmarks?

"expect" is a big word. This prevents a memory spike on unspill, so we may see a reduction in peak memory usage by 120 MiB per worker. Or not, if the peak is caused by something else that isn't unspilling.

I looked at the plots. Can't see a difference.


How to easy use in mobile web browser?

The Viewers run fine on PC web browser.

But in mobile web browser,The menu toolbar can't be click like below:
If the toolbar can On the bottom and folding then it will look better.

And if the left series panel can popup on view,then it will look better.

@wangning08115, thanks for the feedback! We're aware that there are a few simple improvements we could make to improve viewing on mobile devices. Unfortunately, the core team doesn't have those changes slated for the near future.
We do, however, welcome community pull requests to improve mobile support 🙌


feature/SKOOP-123

Endpoint to delete notifications.
@svetivanova could you take a look please?

Codecov Report

Merging #70 into master will increase coverage by 0.39%.
The diff coverage is 89.13%.

@@             Coverage Diff              @@
##             master      #70      +/-   ##
============================================
+ Coverage     76.84%   77.24%   +0.39%
- Complexity      483      498      +15
============================================
  Files           132      135       +3
  Lines          2203     2246      +43
  Branches         75       77       +2
============================================
+ Hits           1693     1735      +42
  Misses          455      455
- Partials         55       56       +1

Impacted Files
Coverage Δ
Complexity Δ

...p/notification/query/NotificationQueryService.java
83.33% <0%> (-16.67%)
3 <0> (ø)

...gistration/RequestToJoinCommunityNotification.java
80% <0%> (-20%)
1 <0> (ø)

...mmand/CommunityUserRegistrationCommandService.java
94.44% <100%> (+0.25%)
25 <2> (+2)
:arrow_up:

...in/java/com/tsmms/skoop/exception/enums/Model.java
100% <100%> (ø)
3 <0> (ø)
:arrow_down:

...ication/command/NotificationCommandController.java
100% <100%> (ø)
6 <6> (?)

...tration/InvitationToJoinCommunityNotification.java
100% <100%> (ø)
2 <1> (+1)
:arrow_up:

...oop/community/command/CommunityCommandService.java
84.21% <100%> (ø)
14 <0> (ø)
:arrow_down:

...ava/com/tsmms/skoop/notification/Notification.java
100% <100%> (ø)
1 <1> (?)

...p/exception/handler/BusinessExceptionsHandler.java
56.52% <100%> (+6.52%)
7 <1> (+1)
:arrow_up:

...ms/skoop/exception/UserNotAuthorizedException.java
50% <50%> (ø)
1 <1> (?)

... and 4 more

Continue to review full report at Codecov.

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


Bottles files missing

The following bottles files return 404:
http://homebrew.bintray.com/bottles-games/myman-2009-10.el_capitan.bottle.tar.gz
http://homebrew.bintray.com/bottles-games/myman-2009-10.yosemite.bottle.tar.gz
http://homebrew.bintray.com/bottles-games/myman-2009-10.mavericks.bottle.tar.gz
http://homebrew.bintray.com/bottles-games/tty-solitaire-0.2.0.yosemite.bottle.tar.gz
http://homebrew.bintray.com/bottles-games/tty-solitaire-0.2.0.mavericks.bottle.tar.gz
http://homebrew.bintray.com/bottles-games/tty-solitaire-0.2.0.mountain_lion.bottle.tar.gz

Could someone fix them?

tty-solitaire bottle updated to 0.2.1 in 32e26fd6838218a69830003d90fcb67667fa8372

myman bottle updated in 21c0acb53e13c868f52ba6400b5fd78b8cb317d5


Agnoster theme looks weird

I installed zsh and made it my default shell, logged out and checked that zsh is the default.
I have git a curl installed, so I installed Oh My Zsh via the curl command.
In the .zshrc file i set ZSH_THEME="agnoster" opened the terminal again and saw this:

It doesn't look right, what is up with this vertical angle brackets?

Don't know what happened but now it is looks normal?!? I am not sure if I did anything to fix it.

Apparently the problem is in the font used in the terminal. I use ubuntu unity 16.04, so the default monospace font is "Ubuntu Mono Regular" when i change the monospace font with Unity Tweak Tool, and set it with Source Code Pro download here, it seem to fix the problem.


How can I detect prerender request in my web app?

I am using Angular 1.5 and ui-router, when accessing certain states from a desktop machine I automatically forward the user to a default child state, but I never do this on mobile. I would like to be able to disable this forwarding when prerender is accessing the page so only the parent state is shown.
I've tried searching for 'escaped_fragment' in the url and also doing some user agent matching but can't seem to get it to work.
Can you shed any light on what approach I should be taking?
Thanks

I wouldn't recommend changing the content. You should serve the same content to the crawlers as you serve to users. If this is to make sure you serve the same content, then checking the user agent for "Prerender" should let you detect if Prerender is rendering your page.

It's a little bit complicated because it's likely more people will be viewing on a mobile device which does not automatically go to the child state. This is also important for us to avoid duplicated/incorrect meta tags for specific URLs.
Thanks for the tip, I'll see how I get on.


put media link in enclosure for standard compliance

from discord, uRHrU0ed write:

antennapod is showing the podcast I've added as having no media file. I'll post a screenshot in a minute. It is working fine on the podly web interface. I'll try on podcini too.

I experienced a similar problem with my app, and this fixed it for me.
Not merging right away so we can verify that this fixed the issue for more than just me. Also, surely there's a better way to do this with flask instead of this string stuff...

This did fix the relative path, but unfortunately AntennaPod sees the link as the "episode webpage" and still does not recognize the link as the podcast media URL!

So, it turns out that the standard is apparently to put the media links under enclosure instead of link for whatever reason.  Would be interested in knowing if this shows up better in AntennaPod. If it looks like we're on the right track I can go ahead and wire that up and merge this. Honestly probably should do this even if it's not the cause of this particular problem but probably won't get to it tonight.

the standard is apparently to put the media links under enclosure instead of link

This did the trick! It now appears as a real podcast in AntennaPod.

@ConorIA mind giving it one more shot, download a podcast see if it works for you? Once you confirm I'll merge this.

tested e2e with my client of choice and seems to work fine


python3Packages.zha-quirks: remove conftest as a checkInput

Motivation for this change
@etu I don't think zha-quirks requires conftest, below is my reasoning but LMK if I've missed anything
I've built it with and without conftest as a checkInput and the result is identical.
The only reference to conftest looking at the repo in the browser is a file called conftest.py but that's just for pytest, unrelated to conftest.
Also there's no .rego files which you'd need to have any use for conftest/open-policy-agent

Conftest helps you write tests against structured configuration data.

It's a golang cli tool not a python library

Build output with and without difference:

with:
============================= test session starts ==============================
platform linux -- Python 3.9.1, pytest-6.1.2, py-1.9.0, pluggy-0.13.1
rootdir: /build/source, configfile: setup.cfg, testpaths: tests
collected 402 items

tests/test_ctrl_neutral1.py .                                            [  0%]
tests/test_kof.py .                                                      [  0%]
tests/test_konke.py ssss                                                 [  1%]
tests/test_orvibo.py s                                                   [  1%]
tests/test_quirks.py ................................................... [ 14%]
........................................................................ [ 32%]
........................................................................ [ 50%]
........................................................................ [ 68%]
........................................................................ [ 86%]
................                                                         [ 90%]
tests/test_tuya.py ssssssssssss                                          [ 93%]
tests/test_xiaomi.py ..sss.............ssssssssss                        [100%]

=============================== warnings summary ===============================
../../nix/store/3qhzfcyi089wxjbhl0ndinklm68c7pa0-python3.9-asynctest-0.13.0/lib/python3.9/site-packages/asynctest/mock.py:434
  /nix/store/3qhzfcyi089wxjbhl0ndinklm68c7pa0-python3.9-asynctest-0.13.0/lib/python3.9/site-packages/asynctest/mock.py:434: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
    def wait(self, skip=0):

# ...

tests/test_tuya.py:153
  /build/source/tests/test_tuya.py:153: PytestCollectionWarning: cannot collect test class 'TestDevice' because it has a __init__ constructor (from: tests/test_tuya.py)
    class TestDevice(CustomDevice):

tests/test_konke.py: 4 warnings
tests/test_orvibo.py: 1 warning
tests/test_tuya.py: 12 warnings
tests/test_xiaomi.py: 13 warnings
  /nix/store/46g9p42rwqx7isq2ps39iwk83sc31pw4-python3.9-pytest-6.1.2/lib/python3.9/site-packages/_pytest/python.py:173: PytestUnhandledCoroutineWarning: async def functions are not natively supported and have been skipped.
  You need to install a suitable plugin for your async framework, for example:
    - anyio
    - pytest-asyncio
    - pytest-tornasync
    - pytest-trio
    - pytest-twisted
    warnings.warn(PytestUnhandledCoroutineWarning(msg.format(nodeid)))

-- Docs: https://docs.pytest.org/en/stable/warnings.html
================= 372 passed, 30 skipped, 44 warnings in 0.62s =================

without:
============================= test session starts ==============================
platform linux -- Python 3.9.1, pytest-6.1.2, py-1.9.0, pluggy-0.13.1
rootdir: /build/source, configfile: setup.cfg, testpaths: tests
collected 402 items

tests/test_ctrl_neutral1.py .                                            [  0%]
tests/test_kof.py .                                                      [  0%]
tests/test_konke.py ssss                                                 [  1%]
tests/test_orvibo.py s                                                   [  1%]
tests/test_quirks.py ................................................... [ 14%]
........................................................................ [ 32%]
........................................................................ [ 50%]
........................................................................ [ 68%]
........................................................................ [ 86%]
................                                                         [ 90%]
tests/test_tuya.py ssssssssssss                                          [ 93%]
tests/test_xiaomi.py ..sss.............ssssssssss                        [100%]

=============================== warnings summary ===============================
../../nix/store/3qhzfcyi089wxjbhl0ndinklm68c7pa0-python3.9-asynctest-0.13.0/lib/python3.9/site-packages/asynctest/mock.py:434
  /nix/store/3qhzfcyi089wxjbhl0ndinklm68c7pa0-python3.9-asynctest-0.13.0/lib/python3.9/site-packages/asynctest/mock.py:434: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead
    def wait(self, skip=0):

# ...

tests/test_tuya.py:153
  /build/source/tests/test_tuya.py:153: PytestCollectionWarning: cannot collect test class 'TestDevice' because it has a __init__ constructor (from: tests/test_tuya.py)
    class TestDevice(CustomDevice):

tests/test_konke.py: 4 warnings
tests/test_orvibo.py: 1 warning
tests/test_tuya.py: 12 warnings
tests/test_xiaomi.py: 13 warnings
  /nix/store/46g9p42rwqx7isq2ps39iwk83sc31pw4-python3.9-pytest-6.1.2/lib/python3.9/site-packages/_pytest/python.py:173: PytestUnhandledCoroutineWarning: async def functions are not natively supported and have been skipped.
  You need to install a suitable plugin for your async framework, for example:
    - anyio
    - pytest-asyncio
    - pytest-tornasync
    - pytest-trio
    - pytest-twisted
    warnings.warn(PytestUnhandledCoroutineWarning(msg.format(nodeid)))

-- Docs: https://docs.pytest.org/en/stable/warnings.html
================= 372 passed, 30 skipped, 44 warnings in 0.56s =================

Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108846 run on x86_64-linux 1

3 packages built:

python37Packages.zha-quirks
python38Packages.zha-quirks
python39Packages.zha-quirks

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108846 run on x86_64-linux 1

3 packages built:

python37Packages.zha-quirks
python38Packages.zha-quirks
python39Packages.zha-quirks


v1.3 backports 2019-02-01

These backports do not supersede the outstanding backport from 01-29 (https://github.com/cilium/cilium/pull/6849). Running
this PR to reduce backlog while we wait for issues on other v1.3 backport branch
to be resolved.

#6890 -- cilium: fix fd leak from ObjClose being omitted on ConfigMap (@jrfastab)
#6869 -- iptables: Fix <IP_ADDRESS>:NodePort to remote pods (@tgraf)

Had to manually intervene here - No IPSec marks in v1.3, and the files
where the logic lives is different on master vs v1.3. Please look closely.

#6867 -- pkg/k8s: consider 2 CNPs different if they have different annotations (@aanm)
#6859 -- Streamline backporting and improve backporting docs (@joestringer)

Minor fixup in the Makefile changes for render-docs on port 9080.

#6834 -- backporting: Accept multiple commits in 'cherry-pick' (@joestringer)

Manual cherry-pick from v1.4

Once this PR is merged, you can update the PR labels via:
$ for pr in 6890 6869 6867 6859 6857 6834 6809; do contrib/backporting/set-labels.py $pr done 1.3; done

This change is

test-missed-k8s

test-docs-please

test-me-please

test-missed-k8s

test-me-please

I think there's some occasional failure of upgrade tests in v1.3 branch, see the standard build recently:
https://jenkins.cilium.io/view/Cilium-v1.3/job/cilium-v1.3-standard/35/
Similar to the missed-k8s failure above. I think we don't need to block this specific PR on that failure.

test-missed-k8s

Latest run just failed out with no output on k8s-1.11:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-K8s/1598/execution/node/99/log/

test-missed-k8s

Upgrade test failed for [K8s 1.10](url
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-K8s/1602/execution/node/98/) and K8s 1.11 tests.
I noticed that the upgrade test failed in 1.10 and 1.11, but not 1.8 and 1.9. I realized that for 1.10 and 1.11, that the upgrade test was the first test to be run - I suspect that the test doesn't work without some prior test having ran in the Ginkgo suite. Filing an issue for this for investigation.
Merging this given the above observation.


Failures on [tests] Remove more deprecated List constructor usage in tests...Fix LinterContext().canBeConst() - compute dependencies.

There are new test failures on [tests] Remove more deprecated List constructor usage in tests...Fix LinterContext().canBeConst() - compute dependencies..
The tests
vm/dart/splay_test/13 CompileTimeError (expected Pass)
vm/dart/splay_test/14 CompileTimeError (expected Pass)
vm/dart/splay_test/15 CompileTimeError (expected Pass)
vm/dart/splay_test/16 CompileTimeError (expected Pass)

are failing on configurations
dartkp-asan-linux-release-x64
dartkp-msan-linux-release-x64
dartkp-tsan-linux-release-x64

Error: SDK summary not found: out/ReleaseTSANX64/vm_platform_strong.dill. Error: Error when reading 'out/ReleaseTSANX64/vm_platform_strong.dill': No such file or directory Error: Error when reading 'out/ReleaseTSANX64/vm_platform_strong.dill': No such file or directory
Logs:
https://dart-ci.appspot.com/log/vm-kernel-precomp-tsan-linux-release-x64/dartkp-tsan-linux-release-x64/16/vm/dart/splay_test/13
https://dart-ci.appspot.com/log/vm-kernel-precomp-msan-linux-release-x64/dartkp-msan-linux-release-x64/16/vm/dart/splay_test/13
https://dart-ci.appspot.com/log/vm-kernel-precomp-asan-linux-release-x64/dartkp-asan-linux-release-x64/16/vm/dart/splay_test/13
bots are building with ninja -C out/ReleaseASANX64 -j200 -l64 runtime_precompiled.
Is it supposed to also pass create_sdk flag?
@rmacnak-google @athomas  Do you have any idea?

https://dart-review.googlesource.com/c/sdk/+/142804


Parallel Processing: Integrate Parallel Helpers Into Functions That Loop Or Groupby-Apply

[x] ts_features
[x] ts_summary
[x] anomalize
[ ] summarize_by_time - Not sure if we need to parallelize agg() function
[ ] apply_by_time
[x] future_frame
[x] pad_by_time - Implementing Cartesian Product (Vectorized Padding Technique)
[ ] augment_lags
[ ] augment_leads
[x] augment_rolling
[x] augment_rolling_apply
[ ] augment_expanding
[ ] augment_expanding_apply

Parallel Processing update - I've switched to using pathos because it handles lambda functions whereas concurrent futures ProcessPoolExecutor does not. https://github.com/uqfoundation/pathos


[SPARK-43944][CONNECT][PYTHON] Add string functions to Scala and Python - part 2

What changes were proposed in this pull request?
Add following functions:

replace
split_part
substr
parse_url
printf
url_decode
url_encode
position
endswith
startswith

to:

Scala API
Python API
Spark Connect Scala Client
Spark Connect Python Client

Why are the changes needed?
for parity
Does this PR introduce any user-facing change?
Yes, new functions.
How was this patch tested?

Add New UT.
Pass GA.

cc @zhengruifeng

also cc @beliefer

This is all done.

thanks, merged to master


Package info improvements

I moved all Python files into wikia/sparrow-app package to avoid conflicts when installing it as an package. Before it was installing sparrow modules (apps and common) in root of package directory which could cause potential naming conflicts with other packages.
Added some more metadata in setup.py.
We should do it as early as possible so we avoid problems when doing this in prod :-) This might affect deploytools and perhaps chef recipes.
@jcellary

And of course Jenkins is complaining since the paths has changed.


Feature: Shifting signal in GUI in y-direction

Sometimes, the signal has an offset in y-direction. The possibility to shift that signal (optimally in the GUI) would be helpful.

I am thinking about two options, both adding a line of buttons/textfields above the traceplot and below the accept/reject button.
Option A)
A button called "Baseline Correction" would subtract the average of the data before the TMS onset (corrected by onset_shift) and subtract from the trace. It additionally would overwrite the data stored in the cachefile, to keep it corrected on reload.
Option B)
A line identical to "onset shift", but called "vertical shift", initialized at zero and requiring manual setting.
Would you have a preference or do you think you will need both, i.e. the possibility to perform a manual y-shift in addition to baseline correction?

I prefer option A: Baseline Correction. Probably, option B is then not needed.