Watch for gamma table interference from external app

The app checks if the gamma table peak value looks as expected whenever there is a brightness change. If this is not the case at least three times, an alert is shown with an offer to disable gamma table control.
closes #692

Oops I ruined the approved review, sorry (updated screenshot). :)


chore: fix several compile errors with downstream repos.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 22.33%. Comparing base (4eadc2e) to head (d4edb0f).
Report is 43 commits behind head on main.

Additional details and impacted files

@@             Coverage Diff             @@
##             main    #4196       +/-   ##
===========================================
- Coverage   46.45%   22.33%   -24.13%
===========================================
  Files         173      203       +30
  Lines       16171    18405     +2234
===========================================
- Hits         7512     4110     -3402
- Misses       8659    14295     +5636

see 104 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

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


Add support for Python 3.11

Currently when using pip or poetry to install awswrangler, I am getting:

awswrangler (2.17.0) requires Python >=3.7.1,<3.11

Describe the solution you'd like
I would like teo able to install awswrangler on Python 3.11

Duplicate of https://github.com/aws/aws-sdk-pandas/issues/1714


FR: Provide Stronger Type Checking for createUser() and updateUser() Methods in Auth

These methods currently accept arbitrary collections of properties. It is better to support a more strongly typed signature. For example:
UserRecord createUser(req?)
where req is a type defined as follows:
export type CreateRequest {
  public uid: string
  public displayName: string
  public emailVerified: bool
  ...
}

Fixed.


Adding retry attempts for data generation scripts

Chun,
Can you please take a look?

Chun, as discussed in person, I made the changes you suggested. Will also have someone else take a look at it and then merge it.


Make arrow() follow correct draw order

Right now arrow() uses a 2D annotation to draw the line, which causes it to always be drawn on top of other 3D objects. This is a problem if the arrow is supposed to be underneath.
Instead, 2D annotation should only be used for the arrow head, and the line should be drawn using plot3(). Care must be taken to ensure the line doesn't overlap with the tip of the arrow head (see angle_arc.m).

Fixed in efdb0c2bd6213eee0b0a7a4bb6f4ab2d3d8a54a5


Make Theme a UbiquitousInheritedWidget

In https://github.com/flutter/flutter/pull/102336 we introduced the idea of the _UbiquitousInheritedWidget for Directionality which makes a tradeoff between faster build performance versus worse update performance.  I think we should consider moving Theme over to UbiquitousInheritedWidget as well.  All my other attempts to increase the speed of InheritedWidget have not panned out.
Reasons for migrating Theme:

Theme.of is the second most used caller of dependOnInheritedWidget in build_bench.dart
customer:money is seeing 16.7ms in Theme.of at startup, which isn't huge but is an easy win.
InheritedWidgets are consistently showing up as performance bottlenecks across different attempts to profile.
Profiling Flutter Gallery and clicking through the Material pages also identified Theme as the most used InheritedWidget.
Theme's scope is so large, that changing one thing will likely cause may widgets to reload anyway (lowering the price difference in the update algorithm)
Theme data probably isn't changing all that often anyway.

My major misgiving about doing this though is that it would require making UbiquitousInheritedWidget part of the public API which might confuse authors of InheritedWidgets.  I can't think of an alternative unless we wanted to duplicate the declaration.  We could potentially transition it to a flag in InheritedWidget instead of a subclass.  I'm not sure if that's more desirable.
What do you think @goderbauer @jonahwilliams ?

I'm not so against the idea of making this a public API, provided that we extensively document the trade-offs that one makes with it. Is theme not capability of partial updates via the aspect API?

I have some reservations... One of them is the confusion between having both UbiquitousInheritedWidget and InheritedWidgets as part of the public API. That just makes a core mechanism of the framework more confusing (and less predictable) even with extensive documentation.
Also, with Directionality it was very clear that it would virtually never change while an app was running. I don't know how static the theme is in a real-world app. Wouldn't that change more frequently, e.g. when you switch from/to dark mode? We also now support user-defined theme extensions [1] that could potentially require more frequent updates that we don't have control over in the framework...
/cc @HansMuller
[1] https://master-api.flutter.dev/flutter/material/ThemeExtension-class.html

Wouldn't that change more frequently, e.g. when you switch from/to dark mode?

I don't know the numbers off the top of my head but let's say update time goes from 10ms to 100ms.  Thats 90ms extra you pay when you change to dark mode, but the cost of the bookkeeping when making the widget is a price the widget pays anytime it is built regardless.  For all the users that don't change the dark mode, it's a boon.  For those that do, it's not a huge cost.
My estimation is that this will always be a good tradeoff unless the data will change more than once a second for InheritedWidgets that have >10 dependencies.

We also now support user-defined theme extensions [1] that could potentially require more frequent updates that we don't have control over in the framework...

Thanks.  I'll look into it, that might change the math.

Is theme not capable of partial updates via the aspect API?

Theme could be redefined with InheritedModel which would allow dependencies to be created on aspects of ThemeData, however to get the benefit we'd have to update all of the Theme.of() call sites. That doesn't seem practical.

@goderbauer

We also now support user-defined theme extensions [1] that could potentially require more frequent updates that we don't have control over in the framework...

It looks like ThemeExtensions have to be const, right?  So changes shouldn't be a problem.

I have some reservations... One of them is the confusion between having both UbiquitousInheritedWidget and InheritedWidgets as part of the public API. That just makes a core mechanism of the framework more confusing (and less predictable) even with extensive documentation.

Yea, same.  Some options are:

Document it -- not a perfect solution
Switch it to a named parameter to InheritedWidget.  -- I think this is a bit less confusing since it doesn't add a new entry point to how to use the code, just an extra parameter.  It does, however, put the option at the forefront of usage.
Duplicate the private declaration in a different file -- Not ideal, but keeps it private
Make all InheritedWidgets a UbiquitousInheritedWidget -- This may be a bit tricky because of the optional aspects that can be stored with dependencies in InheritedWidget that isn't supported with UbiquitousInheritedWidget.  We'd have to do a lot of testing.  We would have to accept that, at a minimum, some hypothetical use-case would be worse.

Would it help if I gave a real number to the changing to dark mode performance difference?  This is roughly the difference in the algorithm we ended up with just to be clear:
current
class InheritedWidget {
  void notifyDependencies() {
    for (var dependent in _dependencies.keys()) {
      dependent.notify();
    }
  }
}

proposed:
class InheritedWidget {
  void notifyDependencies() {
    for (var child in this) {
      _notify(this, child);
    }
  }
  void _notify(InheritedWidget caller, List<Node> node) {
    if (node.dependsOn(caller)) {
      node.notify();
    }
    for (var child in node) {
      _notify(caller, child);
    }
  }
}


feat(s2n-quic-core): BBRv2 network model and congestion state

Description of changes:
This change implements the BBRv2 data rate network model, data volume network model, and round counting mechanism described in draft-cardwell-iccrg-bbr-congestion-control-02 §2.9.1, §2.9.2 and §4.5. I've also added a congestion::State struct for tracking some additional state needed.
Call-outs:
I'm not sure if data_volume::Model::max_inflight and data_volume::Model::quantization_budget will remain where they are, so I've held off on adding tests for those. I added a TODO for now.
Testing:
Added unit tests
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Overall nice uses of WindowedFilter and Counter types. Makes nicer to reason about!


Refactor www/googlemaps-cdv-plugin.js

I'm submitting a ...  (check one with "x")

[ ] question
[ ] any problem or bug report
[ ] feature request
[x] contribution

If you choose 'problem or bug report', please select OS:  (check one with "x")

[x] Android
[x] iOS

I'd like to refactor www/googlemaps-cdv-plugin.js as it contains a lot of complicated logic. That logic is really hard to understand, also I see there are some code duplication which adds in size in resulting app bundle (js evaluation take time especially at 1st boot).
Why?

this will improve codebase, thus it will be easier to make contributions
this will decrease amount of js code, so app will load faster
this will allow to remove redundant/dead code
this will allow to write unit tests for almost every file in the plugin
this will allow to refactor some recursive calls with loops (loops are faster than recursion in JS)

What I eventually plan to do is to split that logic between 3 objects:

MapFactory - responsible for Map creation, will be used instead of massive logic in getMap function
MapsApi - easy interface to make native API calls to GoogleMaps related plugins (this will encapsulate Command queue mechanism). This interface I plan to build based on promises
DomObserver - object which will walk over DOM elements and collect their rects, zIndex, etc and watch when they changed

I started to do this in my fork, so you are welcome to check the first results here. This is the initial refactoring.
Currently what I ended up with is in https://github.com/stalniy/cordova-plugin-googlemaps/tree/refactor/map . This is still not final version but very close to that. Currently I'm testing every usecase from v2.0 demo repo.
Let me know whether you interested in merging this into core project!
Thanks for awesome plugin!
P.S.:  also I'd like to remove existing polyfills from the project and just add a note that this project requires that polyfills on older webviews. This will allow people to choose whatever polyfill library they like :) Also this will decrease the resulting js size of the plugin. Obviously this may be discussed in a separate ticket

Thank you for offering the cleanup code.
I understand what your point is.
The reason of the messy code is I created is through tons of experiments.
I guess the current code is stable.
As far as I tested on bunch of projects, bunch of frameworks, the code is fine.
(Well, you have it that the code has problem with ionic tab on another ticket. Please share an example project on github)
Let's do clean up. I will check your current code, let me take time.

Thanks for review!
I will go through each case and will try to explain why I did this:
case: background
location: https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L124
Description:
The background-image and background-color are more specific versions of background, using background you can specify everything, and by specifying background css property you reset background-image and background-color as well. This behavior works at least in desktop browsers and should work in mobile browsers as well. Check this fiddle to test
Also transparent is the same as rgba(0,0,0,0) but more ancient :) In the current codebase you specified black color with zero transparency, so it's transparent.

case: document.body.offsetHeight;
location: https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L146
//setTimeout(function() {
  // Webkit redraw mandatory
  // http://stackoverflow.com/a/3485654/697856
  document.body.style.backgroundColor = "rgba(0,0,0,0)";
    //document.body.style.display='none';
    document.body.offsetHeight;
  //document.body.style.display='';
//}, 0);

Description
I removed this just because in stylesheet we already have a CSS rule which sets transparent background to body. That's why I removed it

case: null pointer error
location
https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L219
-      if (scrollEndTimer) {
-        clearTimeout(scrollEndTimer);
-      }
+    document.body.addEventListener("scroll", function() {
+      clearTimeout(scrollEndTimer);

Description:
Could you please try to remember the use case and I will test it. According to my experience in web development it's safe to pass non-existing timerId in clearTimeout and it should just ignore the call. Also this is what MDN says - https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout#Notes

case undefined error on Android 4.4
location https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L288
Description:
Fair enough, will revert. Thanks for pointing out!

case : android back button
location
https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L605
Description
Fair enough. I suggest to move this into separate plugin function and ask people to call that function if they don't use Ionic or don't register backbutton event handler. I think this kind of overrides may be tricky and it would be good not to do this if possible.
So, eventually users of the plugin should run this code, if they don't use ionic
document.addEventListener('backbutton', plugin.google.maps.handleHistory);

What do you think? Cons of this is that it will be a breaking change, but I guess it should not affect majority of users (suspecting that almost everybody uses Ionic). PROS are less magic and webview will execute only what application needs

case: code flow is changed
location https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-48ad1d52e6acef24cc4b997847d030b1L751
Description:
Strange, probably I started refactoring before the change was introduced for children. Anyway will revert.

case: var options = options || {}; is always {}
location: https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-293844d2cb003f5cd238a4a4f205358cR39
Description:
Fair enough, will fix it. I believe that reassigning function arguments leads to confusion and it's harder to follow logic, thus I created a separate variable (it should be var options = params || {}).

** case**: code is changed
location: https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-293844d2cb003f5cd238a4a4f205358cR42
-  if ((containMapCnt > 0 || isMapChild || domPositions[elemId].pointerEvents === "none") && element.children.length > 0) {
+  if (hasMaps || isForce || position.isMap || position.pointerEvents === "none") {

Description:
In my testing from refactor/map branch HTMLInfoWindow worked ok. I will double check this and will explain this change in the next case, as they related.

case: var children = element.getElementsByTagName('*');
location: https://github.com/mapsplugin/cordova-plugin-googlemaps/compare/660b7a3...stalniy:refactor/map-pr?expand=1#diff-293844d2cb003f5cd238a4a4f205358cR43
description:

dom.children property contains only DOM elements.
element.getElementsByTagName('*') returns everything, including not necessary tags such as , and it includes all child elements. This breaks the DOM hierarchy tree of the native side.
(I guess you don't understand how the maps plugin detect the touch currently)

Both contains only DOM elements, also both contains SVG elements (created a small fiddle to prove that - https://jsfiddle.net/qxskzc68/6/). element.getElementsByTagName('*') does not return comments, text nodes, and other non-HTMLElement nodes. So, it works the same way as children but returns all children even nested.
This allows to get rid of recursion and speed things up a bit. The refactored code does exactly the same thing as in your codebase. The codepen which proves that - https://codepen.io/Stotska/pen/XZVpgM . I'm a bit simplified the task in codepen (just gather element ids) but you can see that the eventual result is the same.
Let me know if you have other questions!

I will reply each ones tomorrow, but I reply the last one.
The v2.x needs to keep element orders and hierarchy. element.getElementsByTagName('*') does not keep them.
Did you read the native code?

hierarchy is kept by the function and according to this SO answer the order is also kept - https://stackoverflow.com/questions/4954003/order-of-the-elements-returned-using-getelementsbytagname
Otherwise codepen wouldn't work because I compare 2 structures using JSON.stringify, if they produced different order then JSON structures would be different.

Until the plugin v2.1.x, the maps plugin checks the position, size and z-index (etc) of all html elements.
However this approach has some problems.
I re-studied the z-index property mechanism and implement it with MutationObserver.

javascript side
From the maps plugin v2.2.x, the plugin checks the HTML elements that are highest z-index values at the local.
For example, this is the DOM tree of ionic framework that has multiple pages.
This plugin just needs to detect the click point is on map div or not.
Thus, plugin checks only the html elements that contain maps in tree hierarchy.
Other elements are ignored.
This is basic code flow.

native side
In the native side, the maps plugin needs to find the elements that highest z-index value at the time.
Since overflow and pointer-events properties are affect to touch action, the native code also needs to consider these values.
The z-index values are depends on the hierarchy from <body>, so the native code searches from <body>.
That's why traceDomTree needs to inspect recursively. getElementsByTagName(*) returns all html elements that child elements.

Thanks a lot! Now I see where I was wrong. Great :) will change that code

Ok, next.
The background property.
The webview must be transparent anytime.
Anytime means anycase.
Even if the developer specified background: red !important in other place.
So, how about this case?
This was actual example in the past.
(plugin css  **faster added styles**)
.ion-content {
  background: transparent !important
}

(developer css  **later added styles**)
.ion-content {
  background: red !important
}

You need to consider failover when you create your code for public code.
If you just create your code for yourself, background: transparent !important is enough.
But the other people might do different approach for various ways.
So the above case, the people who can not see the map, they report it's bug.
(I say again, this was actual case in the past)
That's why you need to consider failover anytime.

So, if the plugin defines three ways, even the another style overrides the background property, the background-color and the background-image properties take over.
(plugin css  **faster added styles**)
.ion-content {
  background: transparent !important
  background-color: transparent !important
  background-image: url()  !important
}

(developer css  **later added styles**)
.ion-content {
  background: red !important
}

And reason of rgba(0,0,0,0) instead of transparent is some old Android webview did not recognize the transparent.
I don't remember which one , and I think this one is older than Android 4.4, but it was a bug of webview.

case: document.body.offsetHeight;

I removed this just because in stylesheet we already have a CSS rule which sets transparent background to body. That's why I removed it

Did you read this url? http://stackoverflow.com/a/3485654/697856

Could you tell me what this code is for?
var SUPPORTS_PASSIVE = false;
document.createElement("div").addEventListener("test", function() {}, {
  get passive() {
    SUPPORTS_PASSIVE = true;
    return false;
  }
});

I have been reading your code, but your code is too optimized from the current master code.
(I agree the current master code is messy)
In order to understand your code, I will merge your code part by part.

Could you tell me what the reason?
- if (!cordova) {
+ if (typeof cordova === 'undefined') {

And it seems you remove this code.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/a0e3dbb74d16e43784c7d8c8756ae3a569429f41/www/googlemaps-cdv-plugin.js#L87-L116
Could you tell me the reason for removing the code, or just you haven't implemented yet?
The reason I implement this code is to prevent changing the zoom scale in browser side.
If user change the zoom scale, the plugin positioning becomes too difficult.
That's why I stick the zoom scale.
If you have your opinion, please tell me it. If no reason, please keep it.

Regarding of the MapsApi.js, it seems you don't understand how queue work....

I know, that's why I started this dialog. I will recheck all your comments and will reply on weekend. Currently a bit busy at office.
Will try to fix and correct stuff to work properly :)

I will split the code of googlemaps-cdv-plugin.js, and add some comments to understand.

@stalniy if you're interested, I'm currently also working on rewriting this plugin: https://github.com/BeMyEye/cordova-plugin-googlemaps
my goal is to remove everything that is done by this plugin automatically, because this plugin is sooooooo CPU and memory-intensive that it's totally unusable
it's still work in progress, but if you're interested, let me know and I can give more information

@cvaliere I can not merge your code, because you remove necessary code a lot.

@cvaliere I'm very interested in :) I actually would suggest to work together on this and create refactoring plan which needs to be approved by @wf9a5m75

The most problem of you guys is that you guys only test for simple case.
But more complex cases, such as multiple pages using ionic or framework7, or the apps that have lots of elements, you guys code do not work.
(If you tested, you can't remove the important code)

@wf9a5m75 I don't expect you to merge my code. I will maintain my own fork, because your goal is to do everything automagically, whereas mine is to keep high performance in my app.
@stalniy my fork is now fully functional. I've written a README that explains how the official plugin works, what I removed from it, and what are the differences. If you're interested or have any question about it, I'm happy to talk about it. I'm convinced that we can still improve a lot the performance of this plugin, and deduplicate a lot of code.

Ok, please talk on the forked repo, not here.

And please open the possibility for talking there as the issues section is not present there :)

Sorry for other people. I post a little noisy comment.

@cvaliere I decided to prohibit to use this plugin from the next version, because you flame this plugin with fake information.
https://github.com/BeMyEye/cordova-plugin-googlemaps#what-the-official-plugin-does-automatically-and-is-really-not-ok
As I wrote above, the map plugin does not check all html elements anymore from v2.2.0.

resize the Maps every 250ms (Android, ResizeTask) or 100ms (iOS, redrawTimer)

Can you read the code flow? The maps plugin stops the timer thread when no changes are occurred in WebView (although you remove the code).
From my view, you don't really understand how this plugin work. And you also blamed me a lot in the past.
That's why I added an condition in the license file of this plugin.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/ef954fa22b74434226acf8b9312b2ec34bfbb4e4/LICENSE#L203-L206
Since you already have a forked repo, you can modify or maintain the code.
However, you can not copy the code from this repo anymore.
I recommend you should create new plugin from scratch.

@stalniy Regarding of the back button, you overlook the code of this line.
    function onBackButton(e) {
      common.nextTick(putHtmlElements);    <------ here
      if (anotherBackbuttonHandler) {
        // anotherBackbuttonHandler must handle the page moving transaction.
        // The plugin does not take care anymore if another callback is registered.
        anotherBackbuttonHandler(e);
      } else {
        cordova_exec(null, null, 'CordovaGoogleMaps', 'backHistory', []);
      }
    }
    document.addEventListener("backbutton", onBackButton);

Since the maps plugin does not have the all HTML element position and size, the maps plugin needs to check quickly when you press the Android back button.
For example, this is good example to understand.
https://github.com/battika/ionic-gmaps-test

When you launch the application, the plugin checks only necessary html elements.

From JS side to the native side, send these information. pgm994053879960 is <page-home> element.

When you open the second page,
although the DOM elements in the first page keeps the __plugindomid attributes, these elements are not checked, because <page-home> is display: none.

Thus, the plugin checks only under the elements of <page-second>.

If you tap the Android back button with this status, what the plugin should next?

Of course, the maps plugin needs to recognize the <page-home> again.
But how? When?
Cordova notifies the event only with backbutton event. But here is the point.
Cordova allows only one event listener for the backbutton event.
If you doubt me, try this code without this plugin.
document.addEventListener('backbutton', function() {
  alert("listener1");
});

document.addEventListener('backbutton', function() {
  alert("listener2");
});

I guess the reason is the developer want to display an alert before existing the app sometimes, such as Exit? [yes] | [no]
What would be occurred if the multiple event listener receive the event? Probably lots of troubles.

How about if the maps plugin does not receive the event, when should the plugin recheck the DOM tree?

Since the ionic will delete <page-second> element, the MutableObserver will be receive the event.
But if the maps plugin checks the DOM tree every time when remove-nodes event occurred? It's bad performance.
The maps plugin should do removing the cache information only when the remove-nodes event is occurred.
Thus, the backbutton is the perfect timing.

So, the app developer wants to use the backbutton event, but this plugin also needs to know the event, but Cordova allows only one event listener.
The solution I figured out is to wrap the addEventListener.
(Well, Cordova itself takes the same approach)
    var anotherBackbuttonHandler = null;
    function onBackButton(e) {
      common.nextTick(putHtmlElements);    // <--- super important!
      if (anotherBackbuttonHandler) {
        // anotherBackbuttonHandler must handle the page moving transaction.
        // The plugin does not take care anymore if another callback is registered.
        anotherBackbuttonHandler(e);
      } else {
        cordova_exec(null, null, 'CordovaGoogleMaps', 'backHistory', []);
      }
    }
    document.addEventListener("backbutton", onBackButton);

    var _org_addEventListener = document.addEventListener;
    document.addEventListener = function(eventName, callback) {
      var args = Array.prototype.slice.call(arguments, 0);
      if (eventName.toLowerCase() !== "backbutton") {
        _org_addEventListener.apply(this, args);
        return;
      }
      if (!anotherBackbuttonHandler) {
        anotherBackbuttonHandler = callback;
      }
    };

Then when you tap the Android backbutton, the maps plugin re-check the DOM tree quickly.

Okay, well, what would be occurred if you remove the event handler code?

Well, it's no problem if ionic app.
What?
Because the maps plugin observes class and style attributes.
      observer.observe(document.body.parentElement, {
        attributes : true,
        childList: true,
        subtree: true,
        attributeFilter: ['style', 'class']
      });

The example case, @battika executes map.setDiv('map_canvas') in the home page when ionic notifies the ionViewDidEnter event.
  ionViewDidEnter() {
    console.log('HomePage: ionViewDidEnter()');
    if (!this.firstLoad) {
      this.map.setDiv('map_canvas');
    } else {
      this.firstLoad = false;
    }
  }

In that case, map.setDiv() statement adds the _gmaps_cdv_ class to the parent elements of the map div.
But how about if no attributes change, no elements are removed, but change the zIndex of the elements like this?
Well, the framework7 takes this approach.
document.getElementsByTagName("page-second")[0].style.zIndex = 100;
document.getElementsByTagName("page-home")[0].style.display = 1;

In that case, MutableObserver does not tell the event to the plugin code.
Thus, the plugin does not do anything when you tap on the Android backbutton, then tap on the app might not work.

That's why this plugin needs to handle the backbutton event.

Next, parseBoolean.
Regarding of this comment, the parseBoolean is a monkey code.

A lot of useless "utility" methods. For instance, parseBoolean, which transforms "true" and 1 to true and is called every time you use a method which has a boolean parameter. Just in case you code like a monkey.

https://github.com/BeMyEye/cordova-plugin-googlemaps/blob/225ddee9ba2148896526e10991e9a3a9ebce2cc5/README.md#other-small-things
Well, I don't create this function if all JS developers put the correct value.
Some JS developers create overlays with the values from their database directly.
For example, I see like a below code for many times.
getRestaurants().then(function(locationList) {
   for (var i = 0; i < locationList.length; i++) {
      map.addMarker(locationList[i]);
   }
});

Well, if locationList contains like this, what would be occurred?
locationList = [
  {
     "position": {"lat": 35.11, "lng": 137.12},
     "draggable": "true"
  },
 ...
];

In that case, "draggable" is string, but the native code expects boolean, then Android app would be crashed.
    if (opts.has("draggable")) {
      markerOptions.draggable(opts.getBoolean("draggable"));
    }

After that, the JS developer tells me My android app crashes!
Am I kidding you? No, it's serious. I saw many times like a this case.

I don't matter to spend my time if the issue is really of this plugin, but spending for my private time for debugging other people problem is not welcome.
However I can not detect what the problem is, without reproduce the issue.
(That's why I ask to share the code on git repo)
That's why I created the parseBoolean function even it's monkey code.

Of course, if there is no parseBoolean, the browser saves the cpu a little.
But is that really big change?
Technology is faster.
You know what iPhoneX is almost the same as MacMini.
How about older Android? How many percentage of Android 4.3 (no longer supported though)?
Almost gone.
https://developer.android.com/about/dashboards/index.html

You won't feel the gap except if you want to try markers tons of markers.

So, my highest priority is to work the plugin safely as much as possible.
In order to archive that, I prefer small monkey code than spending my private time for other people debugging.

Hi @wf9a5m75
I think that you did is awesome! Despite the fact that there is a room for improvements, I wouldn't be able to suggest them if you didn't create this plugin.
Also I know that I don't understand the whole picture. That's why I stopped my refactoring and decided to ask for your help (guidance) in this job.
@cvaliere, I don't think that blaming somebody will help you to create a better software. And I'd recommend to work In cooperation with others to create awesome things. Isn't this how Open Source was created or how vendors of browsers decided to standardize JS and web?
Let's be polite guys as we are from different cultures and may do mistakes in phrases, words or meanings when we talk using not our native language.

@wf9a5m75 I plan to spend some time today looking into your comments and fixing them. Thanks for the guidance, your work and patience!

@stalniy I opened the "Issues" section on my fork
I totally agree about the Open Source spirit. As a matter of fact, if I'm talking about my fork, it's precisely because I spent literally weeks reverse-engineering this plugin and finding ways to improve it, and I want to give this time back to the open-source community for those who are interested with performance.
Though, it doesn't mean that we have to blindly say that this plugin is "awesome", because the truth is, it really isn't. The problem is, almost no one knows how bad this plugin is, because at first glance, it just works! It's only when you realize that your app has become really slow and CPU-intensive, and you start to wonder why, that you figure out this is because of this plugin.
If you don't believe me, despite my explanations (https://github.com/BeMyEye/cordova-plugin-googlemaps#why-the-official-plugin-is-not-good), you can make the test yourself: launch your app in a simulator and run a Performance test. You'll see how much CPU is taken by the plugin, it's almost crazy.
I don't blame @wf9a5m75, and I don't think I'm being impolite with him. I have just documented everything that this plugin does behind your back, that is documented nowhere else, and which explains why this plugin is, sorry for the word, bad.
I would be happy to cooperate on this main repository, but @wf9a5m75 and I have already a long history (several years!) of me proposing my help and him constantly refusing. That's why I decided to have my own fork. But @wf9a5m75, if you're willing to work together on a performant version of your plugin, I'm always open to it :)

@stalniy Thank you for waiting long days.
I refactored the most spaghetti file googlemaps-cdv-plugin.js.
The main part of it is now CordovaGoogleMaps.js.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/multiple_maps/www/CordovaGoogleMaps.js
In order to help understanding the code flow, I added lots of comments.
If you are still interested for refactoring, please try it.

Since the refactoring is done at once, I close this thread. But please send a new pul request with improvement. I really appreciate for your help.


[BUG] GetApiAsync throws exception when the api doesn't have a service url

Library name and version
Azure.ResourceManager.ApiManagement 1.0.1
Describe the bug
There's a bug in the deserialization code of the SDK whereas the api returns a 200 response that looks like this:
"id": "/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{apim-name}/apis/{api-name}",
  "type": "Microsoft.ApiManagement/service/apis",
  "name": "{apim-name}",
  "properties": {
    "displayName": "{DisplayName}",
    "apiRevision": "1",
    "description": "",
    "subscriptionRequired": true,
    "serviceUrl": "",
    "path": "{path}",
    "protocols": [
      "https"
    ],
    "authenticationSettings": {
      "oAuth2": null,
      "openid": null
    },
    "subscriptionKeyParameterNames": {
      "header": "Ocp-Apim-Subscription-Key",
      "query": "subscription-key"
    },
    "isCurrent": true,
    "apiRevisionDescription": "",
    "apiVersion": "",
    "apiVersionDescription": ""
  }
}

and the library throws this exception: An exception of type 'System.UriFormatException' occurred in System.Private.CoreLib.dll but was not handled in user code
Invalid URI: The URI is empty
Stack Trace:
Unhandled exception. System.UriFormatException: Invalid URI: The URI is empty.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions)
   at System.Uri..ctor(String uriString)
   at Azure.ResourceManager.ApiManagement.ApiData.DeserializeApiData(JsonElement element)
   at Azure.ResourceManager.ApiManagement.ApiRestOperations.GetAsync(String subscriptionId, String resourceGroupName, String serviceName, String apiId, CancellationToken cancellationToken)
   at Azure.ResourceManager.ApiManagement.ApiCollection.GetAsync(String apiId, CancellationToken cancellationToken)
   at Azure.ResourceManager.ApiManagement.ApiManagementServiceResource.GetApiAsync(String apiId, CancellationToken cancellationToken)

Expected behavior
The call should succeed
Actual behavior
The call throws exception
Reproduction Steps
1: Create an apim service
2: Create an api without a backed service
3: use the SDK to get the api
Here's the wrong check: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/apimanagement/Azure.ResourceManager.ApiManagement/src/Generated/Models/ApiData.Serialization.cs#L336-L344 The code looks for a null string but the api call returns an empty string.
Environment
No response

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hi @ilmax , Thank you for using Azure SDK for .NET.
The issue has been fixed in the latest package. Please take a look.

Hi @HarveyLink,
In which package has this been fixed? I'm using 1.1.0-beta.1 and am still experiencing the same exception.


import map generator, Resolver.analyze fails on valid JS syntax

playground
This is the file that it fails on:
<EMAIL_ADDRESS>with error:
Error:
  `;
>
  ^
  undefined

Error parsing https://unpkg.com/three@0.157.0/src/renderers/shaders/ShaderChunk/default_fragment.glsl.js:6:1
    at Resolver.analyze (17f28187.js:14:22696)
    at async 17f28187.js:46:3491
    at async TraceMap.getTraceEntry (17f28187.js:46:3726)
    at async TraceMap.visit (17f28187.js:43:430)
    at async 17f28187.js:43:1203
    at async Promise.all (/index 5)
    at async TraceMap.visit (17f28187.js:43:1148)
    at async 17f28187.js:43:1203
    at async Promise.all (/index 9)
    at async TraceMap.visit (17f28187.js:43:1148)

Turns out this was an issue with the generator application itself, and fixed via a dependency update in https://github.com/jspm/generator.jspm.io/commit/9bd1da220156a5c6c90827f9c6c9b91c5e05c98d.


Eventhough the read_mode was Master_slave, the read queries are not going on the master node.

We have below redisson config, where readMode was made as MASTER_SLAVE, still the read queries are not going to the master node of the cluster but it's behaving as SLAVE on reads.
Below is the method being used from Redisson client library.
private RedissonClient redissonClient;
status = redissonClient.getBitSet(bitKeyName).get(bitIndex);

Below is the client config:
clusterServersConfig:
  idleConnectionTimeout: 10000
  connectTimeout: 10000
  timeout: 3000
  retryAttempts: 3
  retryInterval: 500
  failedSlaveReconnectionInterval: 3000
  failedSlaveNodeDetector: !<org.redisson.client.FailedConnectionDetector> {}
  password: null
  subscriptionsPerConnection: 5
  clientName: null
  loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
  subscriptionConnectionMinimumIdleSize: 1
  subscriptionConnectionPoolSize: 50
  slaveConnectionMinimumIdleSize: 24
  slaveConnectionPoolSize: 64
  masterConnectionMinimumIdleSize: 24
  masterConnectionPoolSize: 64
  readMode: "MASTER_SLAVE"
  subscriptionMode: "SLAVE"
  nodeAddresses:
    - "redis://<host-url>:6379"
  scanInterval: 1000
  pingConnectionInterval: 30000
  keepAlive: false
  tcpNoDelay: true
threads: 16
nettyThreads: 32
codec:
  class: org.redisson.client.codec.StringCodec
transportMode: "NIO"

Can you pls help here asap? this is happening on the production.

@mrniko Can u pls help here?

Which Redisson version?

Unable to reproduce it with code below.


Personalize label of search box

Use the name of the repo (INVENIO_THEME_FRONTPAGE_TITLE) instead of invenioRDM.

Fixed by using the INVENIO_THEME_SITENAME env variable.


Use agg backend to fix the RecursionError with Python 3.6 when creating many matplotlib figures. Also faster.

Coverage increased (+0.05%) to 86.196% when pulling baf342a6aa31b54b544db87e30f518303a53f5b3 on matplotlib into 3e566b5525f098edd1c86e18dc5232a3078cd7cd on master.

Coverage increased (+0.05%) to 86.196% when pulling baf342a6aa31b54b544db87e30f518303a53f5b3 on matplotlib into 3e566b5525f098edd1c86e18dc5232a3078cd7cd on master.

Coverage increased (+0.05%) to 86.196% when pulling baf342a6aa31b54b544db87e30f518303a53f5b3 on matplotlib into 3e566b5525f098edd1c86e18dc5232a3078cd7cd on master.

Coverage increased (+0.05%) to 86.196% when pulling baf342a6aa31b54b544db87e30f518303a53f5b3 on matplotlib into 3e566b5525f098edd1c86e18dc5232a3078cd7cd on master.


Create notebook example of fforma

Steps:

Create notebook example hello_fforma of using fforma package (similar to hello_divinity)
Make a pull request at timeseries-notebooks

Just a comment that we might not be ready for this as smooth support for global forecasting tricks isn't really there.


cmd/compile: Go 1.18 (types2 typechecker) doesn't report "channel element type too large"

One error message that we are not reporting in Go 1.18 is at least one kind of "channel too large" error.  In particular, see test/fixedbugs/issue42058a.go and test/fixedbugs/issue42058b.go.  In Go 1.17 or -G=0 mode, we give errors like:
fixedbugs/issue42058a.go:9:7: channel element type too large (>64kB)
fixedbugs/issue42058a.go:13:7: channel element type too large (>64kB)

but no errors in Go1.18 default mode (which is why those tests are currently disabled in run.go).  This is for statically declared channels whose element are too large.
Looks like there is a separate just-reported issue #49767 for Go 1.17.2 and Go 1.18 that causes a compiler crash when a channel with a too-large element size is created via make and a channel type literal.
@griesemer @findleyr
Definitely fine for after beta1.

@griesemer this may help you debug this issue
on the tips
The nod of CHANARGS is nil which causing an internal error "bad type [65536]byte".

@danscales This is really a compiler/runtime specific error. There's several ways how this could be fixed:

The type checker (types2) could have additional configuration information such as max. channel size and use it to report an error if necessary.
The type checker is provided a size computation function by the compiler that may return an error as needed. This would be a variant of option 1.
The compiler (noder) could do the type specific check instead.

At the moment I lean towards option 3 because the type-checker doesn't really care for type-checking and certainly couldn't hardwire the limit.


Setup Analytics

We can use the analytics package for chrome extensions

https://github.com/GoogleChrome/chrome-platform-analytics


Throttle less important chat messages

Context: here.
Smokey is busy posting unimportant messages like

Conflicting feedback across revisions: current, #1
Conflicting feedback across revisions: current, #1
[...]
Conflicting feedback across revisions: current, #1
Conflicting feedback across revisions: current, #1
Conflicting feedback across revisions: current, #1

while there's a report waiting, which took more than a minute of waiting to be posted. In the end it wasn't posted at all due to a reboot.

I'll take a look at this in a few days and hopefully come up with a fix, after coping with my homeworks and assignments.


Created & Edited Tutorial for Connecting to UIC WiFi

Created a barebones tutorial article on how to connect to UIC's WiFi on Linux.
All of my information is sourced from the following UIC article on connecting to it via Android:
https://help.uillinois.edu/TDClient/37/uic/KB/ArticleDet?ID=915

Looks good. Would be epic to have a GNOME screenshot too since thats (unfortunately) the default DE in a lot of places.

If you could rename your markdown file to something simple like just wifi.md that would make the final URL be lug.cs.uic.edu/wifi. Right now the article would be at the URL lug.cs.uic.edu/UIC-WiFi which is harder to remember/type/spread

Didn't see these until now - will definitely rename the markdown file, will hopefully get the GNOME desktop screenshot by this weekend.

woah tysm for making this article! i've been wanting it since the start of the semester lol
just fyi, when you renamed the markdown file you actually duplicated it on accident, once you remove it and add your other screenshot it looks good to merge :D

Finally added the GNOME desktop screenshot alongside the KDE screenshot (very swiftly, I know)
Also, thank you for pointing out that I copied the markdown file instead of just renaming it, removed the original markdown file, leaving only wifi.md :)

lgtm! thank you so much :D


warning: Plug.Conn.get_session/2 defined in application :plug is used by the current application but the current application does not depend on :plug.

Running on:
$ elixir --version
Erlang/OTP 23 [erts-11.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]

Elixir 1.11.3 (compiled with Erlang/OTP 21)

$ mix compile
Compiling 3 files (.ex)
warning: Plug.Conn.get_session/2 defined in application :plug is used by the current application but the current application does not depend on :plug. To fix this, you must do one of:

  1. If :plug is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs

  2. If :plug is a dependency, make sure it is listed under "def deps" in your mix.exs

  3. In case you don't want to add a requirement to :plug, you may optionally skip this warning by adding [xref: [exclude: [Plug.Conn]]] to your "def project" in mix.exs

  lib/navigation_history/helpers.ex:13: NavigationHistory.Session.fetch_paths/2

warning: Plug.Conn.put_session/3 defined in application :plug is used by the current application but the current application does not depend on :plug. To fix this, you must do one of:

  1. If :plug is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs ref: [exclude: [Plug.Conn]]] to your "def project" in mix.exs

  lib/navigation_history/helpers.ex:24: NavigationHistory.Session.save_paths/3

Generated navigation_history app

Maybe it's because mix.exs has set defp deps do ... as private? This is unusual, no?

hi :) any updates?


allOf operator and ajv-keywords support

Hi, thanks for this library.
I noticed that FromSchema utility does not work with ajv-keywords such as transform: ['trim'] for example. Seems like a bug to me.

Code to reproduce:
export const schema = {
  type: 'object',
  properties: {
    prop1: {
      type: 'string',
      allOf: [
        {
          transform: ['trim'],
        },
      ],
    },
  },
  required: ['prop1'],
  additionalProperties: false,
} as const;

type Schema = FromSchema<typeof schema>;

@svsool Thanks for the heads up. JSON-schemas are extendable, so yes, FromSchema should accept custom properties.
Modifying this as we speak.

@svsool Should be solved in 2.5.5, can you confirm this ?
Solved by https://github.com/ThomasAribart/json-schema-to-ts/pull/85

it works, thank you!

hey @ThomasAribart, unfortunately seems to be broken with json-schema-to-ts 3.7.2, TypeScript 5, and JSONSchema7:

this is package.json:
{
  "name": "schema-repro",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "ts": "tsc --project ./tsconfig.json --noEmit"
  },
  "devDependencies": {
    "@tsconfig/esm": "^1.0.2",
    "@tsconfig/node18": "^1.0.1",
    "@tsconfig/strictest": "^2.0.0",
    "json-schema-to-ts": "2.5.2",
    "typescript": "^5.0.3"
  }
}

and types.ts:
import type { FromSchema } from 'json-schema-to-ts';

export const countryCode = {
    type: 'string',
    allOf: [
        {
            transform: ['trim'],
        },
        {
            minLength: 2,
            maxLength: 3,
        },
    ],
} as const;

export type CountryCode = FromSchema<typeof countryCode>;

run yarn ts to reproduce

Thanks @svsool ! Gonna have a look at it 👀

@svsool Should work in 2.8.0 with the new ExtendedJSONSchema and FromExtendedSchema:
type Extension = {
  transform: string[];
};

export const countryCode = {
  type: "string",
  allOf: [
    {
      transform: ["trim"],
    },
    {
      minLength: 2,
      maxLength: 3,
    },
  ],
} as const;

export type CountryCode = FromExtendedSchema<Extension, typeof countryCode>;
// => string

thank you @ThomasAribart 🙏

@ThomasAribart Hey 👋 This is unfortunately broken again in 2.12.0 as well as 3.0.0. Using your example


Godot's Modulo doesn't work with negative numbers

Godot version:
Godot Engine v3.2.3
OS/device including version:
GeForce GTX 1060 6GB/PCIe/SSE2
Ryzan 5 3600XT
Windows 10
OpenGL ES 3.0
Issue description:
Trying to get a mod of any negative number appears to just give -1.
If you try to do this in python it'll return what you want it to return.
Godot:
-1%3  -> -1
Python:
-1%3  -> 2
Steps to reproduce:
put this in your ready function. Than run
print(-1%3)
Minimal reproduction project:
Not required

GDScript modulo is internally using the C/C++ implementation of modulo. The wrapi/wrapf functions are originally designed to avoid this problem. If you really sure that need to be changed (I pretty sure the Python approach using more complicated logic and slower than C++) you need to create a proposal in https://github.com/godotengine/godot-proposals

Trying to get a mod of any negative number appears to just give -1.

There is no standard mathematical definition for modulo with negative numbers, different programming languages implement it in different ways. Godot C implementation, which is "When integers are divided, the result of the / operator is the algebraic quotient with any fractional part discarded. If the quotient a/b is   representable, the expression (a/b)*b + a%b shall equal a."

I pretty sure the Python approach using more complicated logic and slower than C++

It is. On x86 / x86-64 it's a single instruction for both / and %.

There's fposmod built-in function that should behave exactly like Python modulo: print( fposmod( -1, 3 ) ) ⇾ 2.

Ok, that makes sense. I'll use the fposmod, thanks :D


flash export swf error

[Start]
[Document] '1400479.fla' conversion started...
The following JavaScript error(s) occurred:
At line 889 of file "FTMain.jsfl":
The function unlockAllElements() is currently unavailable.

Hello!
Can you provide me your Adobe Flash/Animate version and ".fla" source?
Without that information, I have no chance to understand what's wrong there.
P.S.
You can send the .fla file to my email to prevent showing it in public.

Email has been sent。


Install apt-transport-https before apt-get update

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/debian9/sdk-current
Operating System: Linux Debian 9 - x64
Hi Microsoft team,
Following the install instructions, I encountered an issue where apt-get install dotnet-sdk-3.0 would not work, due to apt-get update not getting the package information, due to:
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?

Could you please change the order of the lines in the install instructions to the following, so the error does not happen?
apt-get install apt-transport-https
apt-get update
apt-get install dotnet-sdk-3.0

Thanks.

We rearranged this due to the opposite suggestion at https://github.com/dotnet/core/issues/3432, but moving the update line rather than adding a new one was a mistake IMO. We have an internal issue tracking changing this to have both updates to catch all scenarios--universe being newly activated and the system being unable to use the https feed without apt-transport-https.
The plan is:
sudo add-apt-repository universe
sudo apt-get update # In case you didn't have universe enabled.
sudo apt-get install apt-transport-https
sudo apt-get update # Get the Msft repo into behind an https url.
sudo apt-get install dotnet-sdk-3.0

I suppose in the Debian case it would be:
sudo apt-get update # In case you have never updated your repos. (E.g. Docker container.)
sudo apt-get install apt-transport-https
sudo apt-get update # Get the Msft repo into behind an https url.
sudo apt-get install dotnet-sdk-3.0

This has been resolved in code; please close once changes have deployed to the site.

Change is live

Thanks! And thanks @cidermole for this detailed report.


(77, -3) grab-objects

Avatar attach without offset in Godot (half a box is under the floor)

Fixed


pip install error

I am using pip install but I have a problem :

In setup.py,  module "extensions" has not been defined.
This problem may be related to the PythonWrapAPI but I don't know how to fix it.
Another problem I have is, after I delete the above-mentioned line, pip install passed, but locomotion:A1GymEnv-v1 is still not registered with Gym.
Thank you for your help.

Thanks for catching! The extensions were used when I had a different MPC module implemented in C++. For the current version it's not required. I simply forgot to delete it.
This PR should fix it.

Thanks for catching! The extensions were used when I had a different MPC module implemented in C++. For the current version it's not required. I simply forgot to delete it.
This PR should fix it.


[references] twitter + joinedin

https://twitter.com/movetodevnull/status/1102604716381519874

https://twitter.com/benjamincremer/status/1102637868193861632

https://twitter.com/icanhazstring/status/1102623167066050560

https://pronovix.com/blog/drupal-9-automated-deprecated-code-removal-proof-concept

https://joind.in/event/dutch-php-conference-2019/refactoring-huge-legacy-php-applications---from-100-hours-to-minutes

https://www.reddit.com/r/PHP/comments/buqfhf/symfony_430_released/epigzsi/

https://www.reddit.com/r/PHP/comments/buqfhf/symfony_430_released/epg1eey/

https://www.reddit.com/r/PHP/comments/buqfhf/symfony_430_released/epg8rb0/


TypeScript: use .ts instead of .tsx

This is a
[x] bug
[ ] feature request
[ ] documentation change
[ ] build/deploy enhancement request
Description:
Steps to reproduce (in case of a bug):

@souvikbasu I couldn't able to find a solution for this. I am moving out to other issues

Parking this issue for now


Link to file with multiple level 1 heading show as "ambiguous"

I have the practise to set the title in the yaml-header and use multiple level one headings in the document. I pretty sure this is the issue, when I reduce the number of level one headings, the warning goes away.
I did not find any setting like offsetting the heading by one, or even ignore this warning.
Is there a way to remove this warning?
Thank you very much, except of this I really do enjoy using this LSP

The diagnostics function of marksman can be disabled directly if you doesn't mind the absence of marksman's other link diagnostics prompts. Such as:
-- in your nvim's config file
local lspconfig = require("lspconfig")
lspconfig.marksman.setup{
  handlers = {
    ["textDocument/publishDiagnostics"] = function() end
  }
}

@Hirschiii this is something that came up a few times. I need to figure out how to make the UX consistent including how to tie this to the completion style, e.g.:

when completion.wiki.style = title-slug Marksman would expect only a single level-1 header that is also the name of the doc,
when completion style is file-based, it will only use file names and leave the headers to mark sections of the document.
adding support for yaml front-matter as another source of 'titles' (as a feature it'll have to work with rename refactor)

Currently, Marksman uses both file names and level-1 headers to figure out the ID of a document, which I understand is suboptimal.
@bearv5 nice workaround!

I'm also in the club of using multiple level 1 headings in a markdown document.
I've set my config to
[completion]
wiki.style = "file-stem"

but I'm still getting "Ambiguous link to document" for any link to a file with more than one h1.  Am I misunderstanding this, or with "file-stem" a vanilla link such as [[my doc]] should unambiguously link to the file my doc.md regardless of the heading content within the file?  I'm more than happy just to write [[my doc#heading]] for those times I want to link to a specific heading (which i also do, so love this flexible approach).

@wardw I'm planning to make the h1 header == title configurable, starting with some preliminary work in #364. But I think in the next release, you'll be able to say in .marksman.toml something like:
[core]
title_from_heading = false

And then H1s will be treated like regular headings (it will also affect the default completion style for wiki links).

I think this should be addressed in 2024-12-04. Please, report if something doesn't work as expected.


Unable to start the application- on Ubuntu 16.04 - Node : 7.2 - NPM - 3.10

I cloned the application and did npm install, unable to start the application
Ubuntu 16.04 - Node : 7.2 - NPM - 3.10
Below is the error message
Error: watch /home/suryaprakash/angular-seed-master/src/client ENOSPC
at exports._errnoException (util.js:1022:11)
at FSWatcher.start (fs.js:1305:19)
at Object.fs.watch (fs.js:1330:11)
at createFsWatchInstance (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:37:15)
at setFsWatchListener (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:80:15)
at FSWatcher.NodeFsHandler._watchWithNodeFs (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:228:14)
at FSWatcher.NodeFsHandler._handleDir (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:407:19)
at FSWatcher. (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:455:19)
at FSWatcher. (/home/suryaprakash/angular-seed-master/node_modules/chokidar/lib/nodefs-handler.js:460:16)
at FSReqWrap.oncomplete (fs.js:111:15)
npm ERR! Linux 4.4.0-57-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "serve.dev"
npm ERR! node v7.2.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>serve.dev: gulp serve.dev --color --env-config dev
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>serve.dev script 'gulp serve.dev --color --env-config dev'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the angular-seed package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp serve.dev --color --env-config dev
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs angular-seed
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls angular-seed
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/suryaprakash/angular-seed-master/npm-debug.log

ENOSPC means that the drive is full (maybe no space in tmp?).
Take a look at this answer in [stackoverflow])http://stackoverflow.com/a/32600959/1106382).

Thank you


Fix 🦶🔫: Validate visitNonNull arguments

I often find myself shooting myself in the foot passing the wrong Cursor to visitNonNull.
This is a very easy mistake to make and often leads to quite a bit of confusion.
This fixes that by validating that a parent cursor is being passed, not the current cursor.
Signed-off-by: Jonathan Leitschuh<EMAIL_ADDRESS>
What's changed?

Adds a bit of sanity validation to visitNonNull(Tree tree, P p, Cursor parent)
AFAIK this method is really only called when composing one visitor of another visitor, and
isn't called in the hot-path for normal LST tree traversal.
What's your motivation?

Reduce how often I and other's new to OpenRewrite make the mistake of passing the Cursor for the tree, instead of passing the parent cursor.
Anything in particular you'd like reviewers to focus on?

Anyone you would like to review specifically?

Have you considered any alternatives or workarounds?

Any additional context

Checklist

[ ] I've added unit tests to cover both positive and negative cases
[ ] I've read and applied the recipe conventions and best practices
[ ] I've used the IntelliJ IDEA auto-formatter on affected files

@sambsnyd want to take a look at this too?


ARROW-3661: [Gandiva][GLib] Use "_" as word separator in constant name

@shiro615 Can you review this?

Codecov Report

Merging #2881 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2881      +/-   ##
==========================================
- Coverage   87.58%   87.57%   -0.02%
==========================================
  Files         412      412
  Lines       64036    64036
==========================================
- Hits        56084    56077       -7
- Misses       7882     7885       +3
- Partials       70       74       +4

Impacted Files
Coverage Δ

go/arrow/math/int64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/memory/memory_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/float64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/math/uint64_avx2_amd64.go
0% <0%> (-100%)
:arrow_down:

go/arrow/memory/memory_amd64.go
28.57% <0%> (-14.29%)
:arrow_down:

go/arrow/math/math_amd64.go
31.57% <0%> (-5.27%)
:arrow_down:

go/arrow/math/float64_amd64.go
33.33% <0%> (ø)
:arrow_up:

go/arrow/math/int64_amd64.go
33.33% <0%> (ø)
:arrow_up:

go/arrow/math/uint64_amd64.go
33.33% <0%> (ø)
:arrow_up:

cpp/src/arrow/csv/column-builder.cc
97.1% <0%> (+2.17%)
:arrow_up:

... 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 059e2d0...73a3c50. Read the comment docs.


Simpler Case usage

To simplify the current example we can have a method to convert Case instance into a dictionary that could be passed into requests.request.
@schema.parametrize()
def test_no_server_errors(case):
    response = requests.request(**case.as_requests(BASE_URL))
    assert response.status_code < 500

it will save some keystrokes and will make the test shorter. Also, it could be a method on the Case that will include a network call via requests or urllib:
@schema.parametrize()
def test_no_server_errors(case):
    response = case.call(BASE_URL)
    assert response.status_code < 500

Done in 08f0971db49557ac2e1f46a36725ed03021aff9f


add misc setup docs and workflows

copied over various common workflows and initialization files from rollkit.
with the new auto request workflow, we shouldn't need a CODEOWNERS file as that is covered in the auto request workflow. The auto request won't run until this PR is merged.

NOTE: i expect most of the workflows to fail right now until the initial code is pushed as which point we can start fixing the workflows.

We are checking lints against Go version 1.20, which might have a conflict with rollkit.


How can i send soap headers

I am unable to pass following authentication credentials in soap headers.
  <soap:Header> 		<UserSessionCredentials xmlns=""> 			<UserId>int</UserId> 			<clientId>string</clientId> 			string 		</UserSessionCredentials> 	</soap:Header> 	<soap:Body> 		<GetSaveTemplate xmlns=""> 			<templateName>string</templateName> 		</GetSaveTemplate> 	</soap:Body>
Also when i am trying to send headers in $service->header($namespace, $name, $data), its returning following error:
Server was unable to process request. ---> Object reference not set to an instance of an object.
Any kind of help would be really appreciated.

Hello @notfalsedev and Team,
This library is really useful, but i am sort of stuck with this small part. Can you please help me here.

<?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">   <soap12:Header>     <ClientHeader xmlns="http://retailexpress.com.au/">       <ClientID>id</ClientID>       <UserName>username</UserName>       <Password>password</Password>     </ClientHeader>   </soap12:Header>   <soap12:Body>     <CustomerGetDetails xmlns="http://retailexpress.com.au/">       <CustomerId>1</CustomerId>     </CustomerGetDetails>   </soap12:Body> </soap12:Envelope>
`
serviceName : what ever you want to set
$wsdl='https://www.domain.com/service.asmx?WSDL';
$this->soapWrapper->add('serviceName', function ($service) use ($wsdl) {
$service
->trace(true)
->wsdl($wsdl)
->header('http://retailexpress.com.au/','ClientHeader',['ClientID' =>'id','UserName'   => 'username', 'Password'     => 'password'])
              ;
         dump($service);

    });

$this->soapWrapper->client('serviceName',function($client){
echo 'Functions';
dump($client->getFunctions());
// echo'call';
    $response = $client->call('CustomerGetDetails',[]);
    dd($response);
});

`


[SP-3198][PDI-13754] LDAP Input Step - Using variable for "Trust store path"

[SP-3198][PDI-13754] LDAP Input Step - Using variable for "Trust store path"
-added resolving variable for trust store path
-added resolving and decoding variable for Trust store password
-added tests

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/ldapinput/LdapSslProtocol.java
  test/org/pentaho/di/trans/steps/ldapinput/LdapSslProtocolTest.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change: -7.14%:small_red_triangle_down:
Complexity Change: -7.69%:small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.28%:small_red_triangle_down:
Line Change: -3.95%:small_red_triangle_down:

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change: -2.56%:small_red_triangle_down:
Complexity Change: -1.57%:small_red_triangle_down:
Instruction Change: -.17%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapinput.LdapSslProtocol

Instruction Change: -.14%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change:  + 1.18%
Complexity Change:  + 1.35%
Instruction Change:  + .18%
Line Change:  + .53%

org.pentaho.di.trans.steps.randomvalue.RandomValueMeta

Branch Change:  + 2.17%
Complexity Change:  + 2.17%
Instruction Change:  + .15%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change: -.53%:small_red_triangle_down:

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Branch Change:  + .30%
Complexity Change:  + .18%
Instruction Change:  + .13%
Line Change:  + .08%


Report Template download link does not work

The download link for the "CQD Teams Auto Attendant & Call Queue Historical Report Template" in this doc does not work (https://aka.ms/TAPAACQAnalytics). It redirects to https://www.microsoft.com/en-gb/?ref=aka.

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

ID: cff4fb5a-c48b-4864-1bd7-3f933e2983ed
Version Independent ID: f7e81551-61c6-3595-db92-59dfb1da5506
Content: Using CQD Power BI report to view Auto Attendant & Call Queue Historical Report - Microsoft Teams
Content Source: Teams/CQD-teams-aa-cq-historical-report.md
Service: msteams
GitHub Login: @CLYVR
Microsoft Alias: colongma

Hi Tim - thanks for your message.  I've verified the link and it does resolve to the correct location and the power bi file downloads.   Please try again and let me know and if it doesn't work for you I can provide you with another link.

Hi Tim.  I just found out there was a problem with the link earlier and one of my team members has fixed that.  Apologies for any inconvenience.  Please try again and let me know if you encounter a problem.

Hi Colin. Thanks for the update. I am able to access the download link now
and can confirm that it works. I had tried from 2 machines on different
networks earlier, so I was pretty sure the link wasn't working.
All the best,
Tim Read
On Thu, 5 Nov 2020 at 15:48, Colin Longman<EMAIL_ADDRESS>wrote:

Hi Tim. I just found out there was a problem with the link earlier and one
of my team members has fixed that. Apologies for any inconvenience. Please
try again and let me know if you encounter a problem.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/6142#issuecomment-722462063,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFCCZADCBYJEL5IENYETJOLSOLCOBANCNFSM4TLIEERQ
.

Appreciate the response.  If the reports in the template have "Preview" or "TAP" in the titles that is being addressed.  It is the GA template.

@gtimread The issue is being closed since your question seems to be answered. Feel free to re-open this issue if you feel that it hasn't been answered or that there are further suggestions to improve the documentation itself.
Thanks


Render { Rich text with BBCode Content}

Hey there! I just discovered this and it seems pretty cool!
So far the biggest thing throwing me off is that when I run the game in the console, it displays all the content nodes without showing the content:

I know I can export the game to the browser, but to test it quickly it would be nice to be able to render that in the console.
I see that you have a brief that you can show in the console, but maybe it could be a checkmark in the settings to "show full content"?

I just opened up the source and realized that the brief text has the same issue if you actually add content. It doesn't display it, it just renders it as { Rich text with BBCode Content }. This looks like a simple bug. I'll see if I can figure it out.

Hello @zicklag
This was definitely a bug, now fixed. Thank you for pointing to it.


snippet suggestion does not appear when use specific prefixes

Issue Type: Bug

add to the ~/.config/Code/User/snippets/r.json file:

     "assignment operator": {
        "prefix": ["<-", "="],
        "body": [
			"<- "
		],
        "description": "assignment operator"
    },
    "magrittr pipe": {
        "prefix": ["%>%", ">"],
		"body": [
			"%>%",
			"\t$0"
		],
        "description": "magrittr pipe"
    }

open .r file and type <, = or > - snippet suggestion does not appear, but if press Ctrl+Space it is in the dropdown list.
type - or % and snippet suggestion appears automatically, without Ctrl+Space.

note: strange, that for javascript.json prefix < works, but > does not.
VS Code version: Code 1.50.1 (d2e414d9e4239a252d1ab117bd7067f125afd80a, 2020-10-13T14:44:48.716Z)
OS version: Linux x64 5.4.0-52-lowlatency

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (12 x 3200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: unavailable_offvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 0

Memory (System)
15.57GB (1.65GB free)

Process Argv
--no-sandbox --crash-reporter-id 0bfd8309-f876-4390-99c3-dddd9b122049

Screen Reader
no

VM
0%

DESKTOP_SESSION
xfce

XDG_CURRENT_DESKTOP
XFCE

XDG_SESSION_DESKTOP
xfce

XDG_SESSION_TYPE
x11

Extensions (47)

Extension
Author (truncated)
Version

vscode-browser-preview
auc
0.6.7

unique-lines
bib
1.0.0

file-properties-viewer
bru
0.5.0

npm-intellisense
chr
1.3.1

regex
chr
0.2.0

vscode-translate
chu
0.1.5

vscode-quick-select
dba
0.2.9

apt-source-list-syntax
dei
0.1.5

gitlens
eam
10.2.2

vscode-npm-script
eg2
0.3.13

auto-close-tag
for
0.5.9

auto-rename-tag
for
0.1.5

code-runner
for
0.11.1

shell-format
fox
7.0.1

seito-openfile
Fr4
1.8.7

vscode-pull-request-github
Git
0.20.1

shortcuts
giz
0.0.1

name-that-color
gui
0.1.2

rest-client
hum
0.24.3

r
Iku
1.5.2

reg
ion
1.0.1

AWK
lug
0.0.2

python
ms-
2020.10.332292344

cpptools
ms-
1.0.1

powershell
ms-
2020.6.0

vscode-github-issue-notebooks
ms-
0.0.57

debugger-for-chrome
msj
4.12.11

reload
nat
0.0.6

linesinfostatusbar
pet
0.0.3

vscode-css-peek
pra
4.0.0

bracketeer
pus
1.3.1

vscode-data-preview
Ran
2.2.0

r-lsp
REd
0.1.11

LiveServer
rit
5.6.1

color-manager
roy
0.6.1

csspreview
san
1.0.4

trailing-spaces
sha
0.3.1

vscode-scheme
sjh
0.4.0

code-spell-checker
str
1.9.2

code-spell-checker-russian
str
0.2.8

code-spell-checker-spanish
str
1.0.6

open-in-new-instance
syd
1.2.1

open-window-tab-context
tak
1.4.2

pdf
tom
1.1.0

autocomplate-shell
tru
0.1.1

vscodeintellicode
Vis
1.2.10

open-in-external-app
YuT
0.2.1

Yes - quick suggestions (suggestions as you type) only appear when typing at word ends not when typing arbitrary characters. This is done to prevent unwanted showings of the suggest widget

as-designed?! really?!!
javascript file (just pressed <, not pressed ctrl+space):

r file (just pressed <):

r file (pressed ctrl+space):

are these different behaviors really intended from by design?!! why?!!

why?!!

because < is a trigger character for JS

because < is a trigger character for JS

trigger to what?
I can create snippets for trigger characters only?
if so, where can I see the entire list of trigger symbols?


Add a parameter for proxy support

This pr adds one parameter to pass over proxy information when we create an AMQP connection over a web socket.

@ramya-rao-a  I was thinking to give this parameter name as "webSocketOptions" but there was already a parameter "webSocketOptions" inside "connectionOptions". That's why I used only "socket".

webSocketConstructorOptions?

@ramya-rao-a What do you think about "webSocketInstanceOptions"?

I prefer webSocketConstructorOptions to InstanceOptions fwiw (says more directly where the options get passed to).

@ShivangiReja As discussed offline, close this PR and avoid making changes to the proxy branch as it is being used for testing.
Create a new branch from master with the planned changes instead


Complete migration from Date to Temporal API

What's your idea?
The Temporal API proposal is currently in stage 3, where stage 4 decrees it’s support in all major browsers. We have already began our migration in #391 using a JS polyfill library. Other aspects of our frontend still use the original native JavaScript Date API and need to be updated to be in terms of the Temporal API, however.

Closing as wontfix, based on the current Temporal roadmap: https://github.com/js-temporal/temporal-polyfill#roadmap.


Legion: uninitialized data error

I'm seeing the following error in S3D:
[0 - 1554c806a000]   93.994331 {5}{runtime}: [error 68] LEGION ERROR: Region requirement 5 of operation HandoffToMPITask (UID 107293, provenance: s3d.rg:2607) in parent task main (UID 2) is using uninitialized data for field(s) 101,102 of logical region (44,14,14) with read-only privileges (from file /lustre/scratch/vsyamaj/legion_s3d_tdb/legion/runtime/legion/legion_ops.cc:1748)
For more information see:
http://legion.stanford.edu/messages/error_code.html#error_code_68

The handoff task is taking a rank level partition and there is a fill on the subrank level partition for this region, there are also leaf tasks with read write privileges on those fields that execute fine before the handoff task, so the handoff task should work. I was able to work around this error by adding a rank level fill, but that should not be necessary.
I will try to find a reproducer for this.

If you're detaching then that will set the region state back to "uninitialized". I would be very surprised if Legion is incorrect in its diagnosis about doing an uninitialized read.


Authorisation Dropdown background color fix

Dropdown Code block Has Contrast Issue in Dark Mode #231

Updated so that the dropdown color is changed only when toggeled


AWS scheduler version update issue

Hi,
I have an AWS instance scheduler that was set up in 2018, and it's still running, but in the last few weeks, we are seeing issues where the scheduler is randomly sending STOP API calls after sending START API calls to the EC2. The issue is completely random and its doesn't have a fixed pattern. On consulting AWS support, they informed me it's a known issue and that updating the scheduler to the latest version will resolve the issue.
Thus I downloaded the latest CFN template and tried to update the existing CFN, while updating I saw the following resources were deleted, modified, and added. I'm entirely sure of the risk at hand here.
Resources being deleted,
ConfigTableAutoScalingReadTarget
ConfigTableAutoScalingWritePolicy
ConfigTableAutoScalingWriteTarget
ConfigurationTableAutoScalingReadPolicy
SchedulerDynamoDBScalingRole
SchedulerInvokePermission
Resources being modified,
ConfigTable
InstanceSchedulerSnsTopic
Main
SchedulerConfigHelper
SchedulerLogGroup
SchedulerPolicy
SchedulerRole
Resources being added,
EC2DynamoDBPolicy
Ec2PermissionsB6E87802
InstanceSchedulerEncryptionKeyAlias
InstanceSchedulerEncryptionKey
MaintenanceWindowTable
SchedulerRDSPolicy2E7C328A
SchedulerRoleDefaultPolicy66F774B8
Could you please answer my following queries,

Is the delete, modify and add expected?
will my existing dynamoDb table be overridden because I have multiple schedules and period setup.
Is there a better way to do it? or is it better to build the scheduler from scratch?

FYI, my current scheduler setup is 9 versions behind the latest version. also, my scheduler is deployed in the root account and the instances are in the child account, and there are around 500 instances that use this scheduler thus I'm being very cautious.

@gshetty437

Is the delete, modify and add expected, -- the delete section has resources that are currently not part of the latest version of the solution i.e the solution doesn't manage any auto scaling groups, so unsure how these resources have been part of your template. Add and modify are expected.

will my existing dynamoDb table be overridden because I have multiple schedules and period setup. -- no the solution will retain the data, unless the key=value structure of the older version is completely different to what is being setup in the latest version, either way its just safe to take a back up of the schedules.

Is there a better way to do it? or is it better to build the scheduler from scratch? Can you create a new stack with the latest v1.4.0 version and copy the dynamoDB schedules to this new stack and disable active scheduling on the older stack. It's the safest option.


feat(hub): add implementation for policy hub

Description
Implementation of the policy hub api
Why
To have a central policy hub
Issue
N/A - Jira Issue: CPLP-3362
Checklist

[x] I have followed the contributing guidelines
[x] I have performed IP checks for added or updated 3rd party libraries
[x] I have created and linked IP issues or requested their creation by a committer
[x] I have performed a self-review of my own code
[x] I have successfully tested my changes locally
[x] I have added tests that prove my changes work
[x] I have checked that new and existing tests pass locally with my changes
[x] I have commented my code, particularly in hard-to-understand areas

@Phil91 as this a mighty PR and you're a committer and this not an outside contribution, could you please open a new PR with the feature branch maintained in the TX GH org?

@Phil91 as this a mighty PR and you're a committer and this not an outside contribution, could you please open a new PR with the feature branch maintained in the TX GH org?

@evegufy done. recreated the PR for the new branch, see #5 . Therefor i will close this PR


Api 8148 jest upgrade only

Please add a description and a link to the original story.

I added a description, because I needed to start a branch that would conflict with this one.


Creating separators in prefabs doesn't seem to work

Hi,
I'd like to create separators in my prefabs (as they can get pretty complex), but it doesn't work with Hierarchy 2. Whenever I try, nothing happens, and the separator is instead created in the main hierachy. Is there a way to make it work please?
Thank you!

It's by design.
https://github.com/truongnguyentungduy/hierarchy-2/blob/27774bfc54ef3800bbfc91b3a0826b97c20c717f/Assets/Hierarchy 2/Editor/HierarchyEditor.cs#L558
But, you can try to remove the "rowItem.isRootObject" condition. it might also require a little tweaking somewhere.


"Saving to Excalideck file failed" error on Brave browser

Here is the full error on the console:
react-dom.production.min.js:216 TypeError: Cannot read properties of null (reading 'name')
    at usePersistentExcalideckEditorState.ts:91
    at ki (react-dom.production.min.js:158)
    at Si (react-dom.production.min.js:159)
    at Object.useState (react-dom.production.min.js:174)
    at Object.P (react.production.min.js:23)
    at _o (usePersistentExcalideckEditorState.ts:26)
    at Co (index.tsx:15)
    at bi (react-dom.production.min.js:157)
    at nl (react-dom.production.min.js:180)
    at is (react-dom.production.min.js:269)
kl @ react-dom.production.min.js:216
El.n.callback @ react-dom.production.min.js:216
ja @ react-dom.production.min.js:131
Ml @ react-dom.production.min.js:220
Zs @ react-dom.production.min.js:259
b @ scheduler.production.min.js:18
aa @ react-dom.production.min.js:122
Ws @ react-dom.production.min.js:252
Is @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
b @ scheduler.production.min.js:18
aa @ react-dom.production.min.js:122
sa @ react-dom.production.min.js:123
la @ react-dom.production.min.js:122
Cs @ react-dom.production.min.js:237
Vi @ react-dom.production.min.js:170
saveToFile @ usePersistentExcalideckEditorState.ts:86
async function (async)
saveToFile @ usePersistentExcalideckEditorState.ts:70
onClick @ index.tsx:22
tt @ react-dom.production.min.js:52
lt @ react-dom.production.min.js:52
(anonymous) @ react-dom.production.min.js:53
Hr @ react-dom.production.min.js:100
Fr @ react-dom.production.min.js:101
(anonymous) @ react-dom.production.min.js:113
Ye @ react-dom.production.min.js:292
(anonymous) @ react-dom.production.min.js:50
Gr @ react-dom.production.min.js:105
fn @ react-dom.production.min.js:75
dn @ react-dom.production.min.js:74
b @ scheduler.production.min.js:18
aa @ react-dom.production.min.js:122
Ke @ react-dom.production.min.js:292
cn @ react-dom.production.min.js:73
usePersistentExcalideckEditorState.ts:101 TypeError: Cannot read properties of null (reading 'name')
    at usePersistentExcalideckEditorState.ts:91
    at ki (react-dom.production.min.js:158)
    at Si (react-dom.production.min.js:159)
    at Object.useState (react-dom.production.min.js:174)
    at Object.P (react.production.min.js:23)
    at _o (usePersistentExcalideckEditorState.ts:26)
    at Co (index.tsx:15)
    at bi (react-dom.production.min.js:157)
    at nl (react-dom.production.min.js:180)
    at is (react-dom.production.min.js:269)

Hey @pomdtr , thanks for reporting the issue.
This is probably due to Brave not supporting the File System Access API, specifically returning a FileSystemHandle after saving the file. If this is the case, the file should actually have still been saved to your computer (the library used to save the file falls-back on other APIs when the File System Access one isn't available), but Excalideck then wasn't able to keep its handle for future save operations.
This error occurs in Firefox and Safari as well, and should be fixed there too.

The fix btw involves adopting a fallback strategy for browsers not returning the FileSystemHandle. It could be as simple as setting to null the fileSavingState and openFileHandle properties of the PersistentExcalideckEditorState, but maybe something else needs to be done. Also, it might be desirable to inform the user to use Chrome/Chromium/Edge, or the upcoming desktop app, for a better UX.


Can an Azure Container Instances container group be automatically assigned a new IP address after a restart NOT triggered by human interaction?

Under "Other limitations", the documentation states that "If your container group is configured with an IP address, that IP address can change when the container group is restarted."

Does this apply to restarts triggered by the container group's "Restart policy"? E.g. if an application on a container in my container group runs out of memory and crashes, and the container group automatically restarts, could the container group be assigned a different IP address than before the crash?
Does it apply to restarts triggered by data center rack failure?
Does it apply to any other type of restarts which are not restarts manually triggered in the Azure Portal or other API?

I use Container Instances in a virtual network with private subnet. Not sure if this is relevant, but mentioning it just in case.
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-virtual-network-concepts#other-limitations

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

ID: 8c7387c7-c5ea-584a-1463-eeb562b2cf4d
Version Independent ID: 798fcb07-735e-c79f-6ede-485c671d2364
Content: Scenarios to use a virtual network - Azure Container Instances
Content Source: articles/container-instances/container-instances-virtual-network-concepts.md
Service: container-instances
GitHub Login: @macolso
Microsoft Alias: macolso

Thanks for the question, I'll take a look.

Assigning this to author so the doc can be updated.

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. Though the scope of our feedback channel here on GitHub covers specific documentation fixes, we can help redirect you to the right support channel to get an answer to your question: [reference to alternative product/service or community endpoint]. Because this issue does not relate to documentation, we are closing this issue. #please-close


Error calling the Ollama

Bug description
I tried to run this code:
from adalflow.core import Generator, ModelClientType, ModelClient
generator = Generator(
model_client=ModelClientType.OLLAMA(host = "<IP_ADDRESS>:11434"),
model_kwargs={
"model": "llama3.2",
},
)
llm_response = generator.call(prompt_kwargs={"input_str": "Hi"})
Then I got this error:
Error calling the model: internal error - server connection terminated
internal error - server connection terminated

Description: internal error - server connection terminated

What version are you seeing the problem on?
0.2.6

How to reproduce the bug
I tried to run this code:
from adalflow.core import Generator, ModelClientType, ModelClient

generator = Generator(
   model_client=ModelClientType.OLLAMA(host = "<IP_ADDRESS>:11434"),
   model_kwargs={
   "model": "llama3.2",
},
)
llm_response = generator.call(prompt_kwargs={"input_str": "Hi"})

Error messages and logs
Error calling the model: <TITLE>internal error - server connection terminated</TITLE>

internal error - server connection terminated

Description: internal error - server connection terminated

Environment

OS: [e.g., Linux, Windows, macOS]
Linux

More info
No response

@liyin2015

@ngocuyen1207
its working fine. I believe you didnt setup the ollama server in your local at  "<IP_ADDRESS>:11434"
You need to setup the server locally first
install ollama
curl -fsSL https://ollama.com/install.sh | sh
serve it locally
ollama serve
pull desired model to local
ollama pull llama3.2:1b
check end point
 curl http://<IP_ADDRESS>:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt":"Why is the sky blue?"
}'

Now run below
from adalflow.components.model_client import OllamaClient

generator = Generator(
   model_client=ModelClientType.OLLAMA(host = "<IP_ADDRESS>:11434"),
   model_kwargs={
    "model": "llama3.2:1b",
    "stream": False,
},
)

llm_response = generator.call(prompt_kwargs={"input_str": "why is sky blue"})
print(llm_response)


Bosh leaking functions between templates

For context https://github.com/cloudfoundry/capi-release/issues/141
Bosh is leaking functions between templates on master. I think we are often reusing evaluation contexts after this PR https://github.com/cloudfoundry/bosh/pull/2147/files It isn't clear if we were leaking functions before that time. It might be worth investigating.

Seems like the change which introduced usage of yaml_escape in the template of capi-release/jobs/cc_deployment_updater/templates/cloud_controller_ng.yml.erb was one in summer of 2018: https://github.com/cloudfoundry/capi-release/commit/3cdbcb87ec9ac5ad6b7e62f06b712d8bad352218
Deploying this release seems to have worked ever since, so it is likely that PR #2147 didn't introduce this behavior.

Just for kicks, I reproduced the issue on 268.2.0 and it is still there, so looks like you are right, it isn't #2147. I don't understand the exact mechanism for how these functions are escaping, I would think they should be defined in the EvaluationContext, and those weren't re-used before the PR, so they must be defined somewhere else.


Adds message handler options to azure topic and queue receivers and adds new factory extensions methods

The classes AzureServiceBusTopicReceiver and AzureServiceBusQueueReceiver will have a new constructor overload with a options parameter object.
The options class will have the following properties:

MaxConcurrentCalls - number of maximum concurrent calls
MaxAutoRenewDuration - subscription's maximum renew duration
ExceptionReceivedHandler - function callback to be called each time new exception ocurrs

The factory class will have two new extension methods to create new instances of AzureServiceBusTopicReceiver and AzureServiceBusTopicReceiver with the following extra parameters:

maxConcurrentCalls
maxAutoRenewDuration
exceptionReceivedHandler

Apologies for a lot of changes - I always wanted to refactor the part around topics and queues as they are incredibly similar, so moved everything to a base class. I've also added docs how to customise it, please let me know your thoughts.


Document proper way to scale LAS intensity

Hi,
I'm working with intensity-only LAS files.  An example lasinfo is below.  In this example, the intensity range is 0-6559.  I can't seem to run PotreeConverter correctly to see the correct intensity range - no matter what I do, it's always mostly pure white.
Here's my latest attempt:
./PotreeConverter --source ~/testdata/myfile.las -o ~/testdata/potree --output-attributes INTENSITY --material INTENSITY -r 6559 -p myfile
Result:

From other posts, it seems '-r 6559' should be correct, although I get basically the same result with or without it.  Thoughts?  The result seems like the 0-6559 is being clipped into e.g. an 8-bit value.
Thanks,
-Ryan
EXAMPLE LASINFO:

reporting all LAS header entries:
file signature:             'LASF'
file source ID:             0
global_encoding:            0
project ID GUID data 1-4:   00000000-0000-0000-0000-000000000000
version major.minor:        1.1
system identifier:          ''
generating software:
file creation day/year:     0/0
header size:                227
offset to point data:       229
number var. length records: 0
point data format:          1
point data record length:   28
number of point records:    61706810
number of points by return: 60667636<PHONE_NUMBER>0 3028 234
scale factor x y z:         0.01 0.01 0.01
offset x y z:               -0 -0 -0
min x y z:                  6064062.48 2104846.14 -934.91
max x y z:                  6065824.44 2107092.16 575.51
the header is followed by 2 user-defined bytes
reporting minimum and maximum for all LAS point record entries ...
X           606406248  606582444
Y           210484614  210709216
Z              -93491      57551
intensity           1       6559
return_number       1          5
number_of_returns   1          5
edge_of_flight_line 1          1
scan_direction_flag 0          0
classification      0         11
scan_angle_rank     0         90
user_data           1          2
point_source_ID     0         10
gps_time 518.043081 5239.580096
number of first returns:        60667636
number of intermediate returns: 42512
number of last returns:         60661221
number of single returns:       59664559
overview over number of returns of given pulse: 59664559 1921362<PHONE_NUMBER>4 1178 0 0
histogram of classification of points:
2749406  never classified (0)
22577634  rail (10)
36379770  road surface (11)

Did you ever get a solution to this problem?  I have tried using las2las to scale my intensity values between 0-256 and still all white.....

Hmm that's what I'm doing too, and it works:
las2las -i <input file> -o scaled.las -scale_intensity <scale to 256> PotreeConverter -i scaled.las -o <outpath> --material INTENSITY --output-attributes INTENSITY


fix https://github.com/Microsoft/vcpkg/issues/11.

related to my PR: https://github.com/Microsoft/vcpkg/pull/63 (closed by me)
/ports/glew/portfile.cmake is hard code to "Win32", I defined the BUILD_ARCH to fix this.

Hi @sdcb, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, MSBOT;

Will that work with ARM as well ?

Yes, and no.
ARM BUILD_ARCH is same as TRIPLET_SYSTEM_ARCH, so it won't block arm-uwp.
But glew_shared14.vcxproj does not have a ARM configuration, so it cannot compile, should we create another issue for ARM (for different cause)?

I think there should at least be an explicit error message displayed.
Actually, it fails but there is no information saying why it failed. Even the log files are empty.

@sdcb, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Added a cmake FATAL_ERROR message "ARM is currently not supported.", is that acceptable?

Looks great to me, nice job!


Use NVTOOLSEXT_PATH to search nvToolsExt on Windows

Use NVTOOLSEXT_PATH instead of CUDA_PATH to find nvToolsExt on Windows. https://github.com/pfnet/chainer/blob/f13c41ac6111407710d4e3873c65b76199249378/chainer_setup_build.py#L45

Resolved in CuPy, so closed it.

Seems to be resolved in https://github.com/chainer/chainer/pull/2423


Unexpected output when lambda layers are used in a for loop

Click to expand!
Issue Type
Bug
Source
binary
Tensorflow Version
2.9
Custom Code
Yes
OS Platform and Distribution
Windows 10 x64
Mobile device
No response
Python version
3.8
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
The attached code should produce an output that is equal to the input.  All it does is take the input vector, split it, and reconcatenate it.

Standalone code to reproduce the issue
import tensorflow as tf
from tensorflow.keras import layers, models

test_input_data = tf.expand_dims(tf.linspace(0.0, 1.0, 6), axis=0)

input_layer = layers.Input(batch_shape=(1, 6))

outputs = []
for i_channel in range(6):
    print(f'Initialising layer that should extract element #{i_channel} - (expecting {test_input_data[0, i_channel]})')
    outputs.append(layers.Lambda(lambda c: c[..., i_channel])(input_layer))
cat_outputs = layers.Concatenate()(outputs)

model = models.Model(inputs=input_layer, outputs=cat_outputs, name='repro_model')

y = model(test_input_data)

print(y)

Relevant log output
Initialising layer that should extract element #0 - (expecting 0.0)
Initialising layer that should extract element #1 - (expecting 0.20000000298023224)
Initialising layer that should extract element #2 - (expecting 0.4000000059604645)
Initialising layer that should extract element #3 - (expecting 0.6000000238418579)
Initialising layer that should extract element #4 - (expecting 0.800000011920929)
Initialising layer that should extract element #5 - (expecting 1.0)
tf.Tensor([1. 1. 1. 1. 1. 1.], shape=(6,), dtype=float32)

Do you expect instead an output like this one?

import tensorflow as tf
from tensorflow.keras import layers, models

test_input_data = tf.expand_dims(tf.linspace(0.0, 1.0, 6), axis=0)

input_layer = layers.Input(batch_shape=(1, 6))

outputs = []
for i_channel in range(6):
    print(f'Initialising layer that should extract element #{i_channel} - (expecting {test_input_data[0, i_channel]})')
    outputs.append(layers.Lambda(lambda c, i_channel=i_channel: c[..., i_channel])(input_layer))
cat_outputs = layers.Concatenate()(outputs)

model = models.Model(inputs=input_layer, outputs=cat_outputs, name='repro_model')

y = model(test_input_data)
print(test_input_data)
print(y)

See:
https://docs.python.org/3/faq/programming.html#why-do-lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result
In case you are curious to learn more:
https://eli.thegreenplace.net/2015/the-scope-of-index-variables-in-pythons-for-loops/
/cc @mdanatg

That's exactly it.  I was not aware of this "feature", thanks for the helpful links!

P.s. take care if/when you will work in graph mode with your initial syntax.
We are working on fixing/align it https://github.com/tensorflow/tensorflow/issues/56089