Native Polars support

Native Polars Support
This PR adds functionality to provide native Polars support into datacompy. This is more or less a direct port of the Pandas version but using Polars. There are some nuances (like no index) but for the most part there is a lot of parity between the two. This is to compliment and not the same as the Fugue version which will run the underly logic using Pandas when passing in a Polars DataFrame.

Also added in some docs, and general clean up of the README. It was a bit long and redundant with the detailed docs.
bumping up to version 0.11.0
Should be noted that this new functionality is experimental and might change in the future

Some performance metrics to consider (taken from the issue below):
Some initial benchmarking with Polars vs Pandas.

16 CPUs
64 GB RAM

Polars
----------------------------------------------------------------------------------------------- benchmark: 5 tests ----------------------------------------------------------------------------------------------
Name (time in ms)              Min                     Max                    Mean                StdDev                  Median                   IQR            Outliers      OPS            Rounds  Iterations
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_1000                  22.0263 (1.0)           40.8150 (1.0)           26.6252 (1.0)          4.4042 (2.00)          25.4531 (1.0)          5.5076 (1.81)          2;1  37.5583 (1.0)          20           1
test_100_000              125.3079 (5.69)         132.8317 (3.25)         128.6364 (4.83)         2.2016 (1.0)          128.5384 (5.05)         3.0454 (1.0)           8;0   7.7738 (0.21)         20           1
test_10_000_000        13,111.6890 (595.28)    13,571.3354 (332.51)    13,313.8029 (500.04)     143.4687 (65.16)     13,288.9818 (522.10)     230.0904 (75.55)         8;0   0.0751 (0.00)         20           1
test_50_000_000        73,678.5405 (>1000.0)   83,990.9534 (>1000.0)   81,052.3603 (>1000.0)  2,857.3016 (>1000.0)   82,544.7946 (>1000.0)  3,770.1957 (>1000.0)       5;1   0.0123 (0.00)         20           1
test_100_000_000      154,867.3404 (>1000.0)  172,853.2556 (>1000.0)  166,977.0828 (>1000.0)  6,251.3802 (>1000.0)  170,382.6524 (>1000.0)  8,664.7339 (>1000.0)       5;0   0.0060 (0.00)         20           1
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Pandas
The 100M run caused the kernel to die, so it is omitted from the testing.
--------------------------------------------------------------------------------------------- benchmark: 4 tests --------------------------------------------------------------------------------------------
Name (time in ms)              Min                     Max                    Mean              StdDev                  Median                 IQR            Outliers      OPS            Rounds  Iterations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_1000                  34.0919 (1.0)           89.0380 (1.0)           39.3168 (1.0)       13.3184 (1.10)          35.2189 (1.0)        1.2976 (1.0)           2;2  25.4344 (1.0)          20           1
test_100_000              239.1103 (7.01)         282.2044 (3.17)         247.6475 (6.30)      12.1546 (1.0)          243.1044 (6.90)       7.0099 (5.40)          3;3   4.0380 (0.16)         20           1
test_10_000_000        25,839.3843 (757.93)    26,444.5088 (297.00)    26,066.9272 (663.00)   191.5533 (15.76)     25,998.1581 (738.19)   315.2639 (242.96)        7;0   0.0384 (0.00)         20           1
test_50_000_000       135,741.7186 (>1000.0)  138,597.8106 (>1000.0)  136,727.2552 (>1000.0)  775.6511 (63.82)    136,540.1143 (>1000.0)  752.4071 (579.85)        4;2   0.0073 (0.00)         20           1
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Closes #257

Should be ready for review now!

Adding in some tweaks to help with cleaning up the code base using an ABC. Ref: #260

lazy query optimization throughout but it might be easier for me to PR into the branch because it would be a lot of little changes throughout.

Feel free to do that! If it is easier.

This PR is getting a bit big, so it might make sense to iterate on the Polars performance in quick follow up PRs as this is still experimental.

Marked an additional optional change. Based on my review I don't see functional problems so I think we can move ahead with the "merge first, optimize second" approach.

Yup, I'm assigned with the merge and then optimize. Would be good to just have a starting base to work off. Going to merge.

Just wanted to chime in here. This enhancement would be greatly appreciated to users like myself, who often need to filter a DataFrame via floating point comparisons. I know I could either use expressions like
df.filter((pl.col('feature')>value-0.0001) & (pl.col('feature')<value+0.0001)), but this is overly verbose and cumbersome especially when repeated often.
Or, I could use pl.DataFrame.join_asof in similar instances. However, there are at least 2 problems with this:

It requires having a DataFrame sorted by the column in question. This is problem overly expensive if one needs to successively filter by many different columns, and is again overly verbose for the basic logic of the problem of finding rows with floating point values close to a given value.
join_asof will find the nearest key, which is not the same as finding a key that is sufficiently close to a given value. In the latter case, for instance, it could be desirable to return no key at all of the nearest key is a whopping 0.1 greater.


How to debug @cuda.jit functions?

I use vscode remote ubuntu server to debug, but can't debug @cuda.jit function.

@cuda.jit functions are executed on GPU and can therefore be tricky to debug, especially because CUDA errors are not very explicit. Numba has a built-in debugging feature but I have never really tried it.
Bear in mind that during runtime, jitted functions are parsed by an interpreter, then converted to CUDA code which is then executed, which is why regular python debuggers may struggle.


Embedd an Excel Object inside PPT

Category
Enhancement
Question
Version
Please specify what version of the library you are using: 3.3.1
Please specify what version(s) of PowerPoint you are targeting: office professional plus 2013
Expected / Desired Behavior / Question
My requirement  includes adding an excel object generated inside the ppt slide and on click should open an excel object .
Observed Behavior
Currenty does not support embedding excel worksheet object inside ppt

I'm not 100% certain what you're looking for, but the insertion of Excel objects is not currently supported nor is it slated for development.


Why do we need to lock?

Hi! I don't understand why we need to wrap the core storage inside Arc<RwLock<>> (in MemStorage example).  I do understand what Arc and RwLock do, locking and exclusive write access, etc,  (so no need explanation), but why do we need an exclusive access? Doesn't each node have its own log storage? Or do nodes may access their log storage asynchronously from a several threads simultaneously?
#[derive(Clone, Default)]
pub struct MemStorage {
    core: Arc<RwLock<MemStorageCore>>,
}

If Lock is not required then why do you use Arc and RwLock? Looks strange and and confusing.
I am curious about the reason you use these two synchronization.

tests and explanation

What does it explain?
I have checked another implementation of the Raft (openraft), they also use Arc and Mutex. When I asked them why they use, they said the same thing: "Locking is not necessary, just for example".
Then, if it is not necessary, why do you use locking? It is not just a dummy field inside a struct or unused variable. When you use locking mechanism and acquire lock guards, people naturally think that you synchronise the access and and try to find the reason behind it in your code. I have spent entire night trying to find the reason, and you you simply "Lock is not required. MemStorage is just an example implementation for tests and explanation.". :-)

As far as I understand each node has its own log storage. Suppose a leader has been elected, and nodes starts to communicate. I also know that nodes constantly read from their log storage and update their log storage (execute command, etc). So, don't we need to synchronise log storage updates?

In Rust, you should utilize Sync and Send traits for thread safety consideration instead of locks. Both former traits implies how is a trait/struct used, lock is just an implementation details. Storage trait doesn't require Sync or Send, means it's completely OK to be implemented without Lock. However, raft-rs doesn't require a sync version storage, application that uses raft-rs may want one.

don't we need to synchronise log storage updates?

That's not what raft-rs concerns. Raft-rs focus on the algorithm part, other side effects like sending messages, persisting logs and replaying logs are exposed to application via ready function. It's up to application to decide whether write logs concurrently or not, sending messages using TCP or UDP, etc.

Thanks, got you. I think you should put more explanation regarding what part of raft you implement and what part is up to client. Storing in logs and reading from logs ARE also a part of the raft algorithm. I have been exploring both rust implementations (especially docs and examples), to be honest one is worse than another. At this point I have decided that implementing yourself from scratch is easier than trying to understand your implementation and “examples”. Sad but true. This is the case with entire Rust ecosystem.🙄


Matlab  - 2D Scattering Transform test-data

With the MATLAB scatnet.m, go take the tiles in the test dataset directory and run the 2-d morlet and gabor wavelets on them, output the result for those two functions. Then run the scattering transform to second order an output the coefficients.
We'll test the two wavelets and the scattering transform end-to-end with the result in 2-d.

Tommy, should be getting the test data put into the GitLab project today.  The 2D data is shown on slide 10 of this presentation:
http://qitech.biz/tech_papers/presentation_aps_dpp_18a.pdf
and the 1D data is shown on slide 17 of this presentation:
http://qitech.biz/tech_papers/presentation_aps_dpp_HEDSA_v1.pdf  (PDF)
https://www.dropbox.com/s/dkzqph5uwzfxgp6/presentation_aps_dpp_HEDSA_v1.mp4 (video)
You can find the work that I did with the MST, code and data at:
https://www.dropbox.com/s/ot79hpf5x6uy5ry/mst.tgz (code)
https://www.dropbox.com/s/0kfu1tmg3tuhahj/matlab_data.zip  (data)
The key code files are:
mst/snl_scatnet/genGausFamily.m  (generates the data)
mst/snl_scatnet/runMallat_onSimp_meg.m  (does the calculation)
This presentation that has a lot of the results from this analysis is:
http://qitech.biz/tech_papers/presentation_aps_dpp_17.pdf  (PDF)
https://www.dropbox.com/s/hpwbqe951ettn1j/presentation_aps_dpp_17.mp4  (video)
I have written a more comprehensive report on the 3 year research project.  I am awaiting the formal release and some edits from Will.  Will send you the link this week, when the report is finalized.  It includes a better display of the 2D data.

Tommy needs to be getting MATLAB plots and MAT data of 2D transforms of 3 Gorgon simulations and 2 experimental data.
Ben should put data for the 3 Gorgon simulations on Github.

Done.

Replaced previous images in blusky/datasets/2D_maglif/
Added rose plots and scattering coefficient data to blusky/datasets/2D_maglif/rose_plots


Add discorddn.github.io as discorddn.mod.land

[x] My submissions follows the Submission Rules
[x] I have read and accepted the Terms and Conditions

Sorry, I need to fix something


[AIEngine] Custom Feature Implement and some AI roaming/chase issues

@Sythivo
(it's me again lol)

Feature Implement

I haven't had any issues in a while but I wanted to implement a feature of my own and I did but I don't think I can call it a feature as it's just PathFinding to the Movement in Chase because it had no PathFinding and it can get stuck sometimes.
// The module I used for the PathFinding is ["SimplePath"] if you're aware of it.
On a unserious topic I don't think I'd be surprised if it was because of a small un-noticed mistake I made so I'm sorry if it is the case as it happens to me a lot.

Issue(s)

The AI after stopping chasing the Player walks to the nearest Points over and over again
If you don't understand, here's a example
Let's say we have 3 RoamPoints and 2 of them are near each other but the last one is far away
The AI just walks over to the 2 nearest RoamPoints in a infinite loop

Final

Overall the "feature" works decently except that as well as another bug;
Chasing/NotChasing events firing while chasing (I know we fixed this back then but that was when I didn't add the PathFinding Chase, this only happens with my "feature" for some reason)
The function I put is at line 350 or a bit below. (AIEngine Module)
And I just realized that Github does not support any Roblox related files, just great
Discord so I can send you the .RBXL testing place file over:
.0x7z20.

Just a important notice that I modified the AIEngine originally to my liking and this version that I will send over will be the unedited version that I forgot to put in.

GitHub should allow you to link urls or images.
Are you able to show the code?

I'll see when I have time

Ok I should be able to send it as the only main module was modified so I'll send whenever I can

@Sythivo
Sorry if I took a while, here

Now the code is too big to fit in one picture so here :
function Movement:PathfindMoveTo(target_vector : Vector3)         local AI = self.__ref::AI;         self.__ref.PathfindingMovement = SimplePath.new(AI.Character, self.__ref.PathAgentParams);         local Humanoid, RootPart = AI.Physical:GetHumanoidRoot();         if (Humanoid and RootPart and self.__ref.PathfindingMovement) then             local NewPath = self.__ref.PathfindingMovement;             local StopPathMovement = function()                 if (NewPath and NewPath._moveConnection) then                     NewPath:Stop();                 end             end             if (not NewPath or NewPath.LastError == "ComputationError" or NewPath.LastError == "TargetUnreachable" or not Humanoid or not RootPart or Humanoid.Health <= 0) then                 self.__ref.OnMovementFinished:Fire(false);                 StopPathMovement();                 if (FFlag.EngineDebuggingLevel >= 4) then                     print("[AIEngine(Pathfinding)] Error -> SimplePath failed");                 end                 return;             end             self.__ref.PathfindingMovementConnection = NewPath.Reached:Connect(function()                 if (FFlag.EngineDebuggingLevel >= 4) then                     print([AI(Pathfinding)] AI Reached Position< {target_vector});                 end                 StopPathMovement();                 self.__ref.OnMovementFinished:Fire(true);                 if (typeof(self.__ref.PathfindingMovementConnection) == "RBXScriptConnection") then                     self.__ref.PathfindingMovementConnection:Disconnect();                 end             end);             --// pcall function just incase             local DestinationResult, PathError = pcall(function()                 NewPath:Run(target_vector);             end);             return DestinationResult, PathError;         end         return;     end

I'm not too familiar with SimplePath. I would not be able to help much on that module, You could check on their own documentation.


When using @swc/helpers with @swc/core 1.3.79, the build output path has added node_modules.

Describe the bug
I have provided a minimal demo for reproduction in the following repository:
https://github.com/hi-otto/swc-1.3.79-bug
Input code
import test from '~/util/test';

class X {

}

console.log(test, X);

Config
{
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": true
    },
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./src/*"
      ]
    },
    "externalHelpers": true
  }
}

Playground link
https://github.com/hi-otto/swc-1.3.79-bug
Expected behavior
why 1.3.79 add node_modules before @swc/helpers
dist-1.3.78/index.js
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
import test from "./util/test";
var X = function X() {
    "use strict";
    _class_call_check(this, X);
};
console.log(test, X);

dist-1.3.79/index.js
import { _ as _class_call_check } from "node_modules/@swc/helpers/esm/_class_call_check";
import test from "./util/test";
var X = function X() {
    "use strict";
    _class_call_check(this, X);
};
console.log(test, X);

Actual behavior
No response
Version
1.3.79
Additional context
No response

Are you using windows?

We need some more integration tests. It works on swc testing system... I filed https://github.com/swc-project/swc/issues/7865

Are you using windows?

mac

Let's wait for https://github.com/swc-project/swc/actions/runs/5976742103

Ok

with v1.3.80 I'm facing ⠋  TSC  Initializing type checker...Error: Cannot find module 'src/app.module'


Ci tests update

-This will pass once the 32Khz fix is made and merged into main and then main merged into this
Updates test launcher script

script accepts 3 parameters now as follows:

device  under test in lower caps  eg:  max32655
device serial port serial eg: DT309ZDF
CMSIS dap serial :<PHONE_NUMBER>230423408230424312233

uses board_config.json to find devices instead of hard coded serial numbers

for BLE_datc/s connected test there is a short timeout period required to enter then pin
sometimes if flashing took too long the timeout would pass. Now the script flashes them at the same time
so that they start up closer to each other and have time to enter the pin.

I reverted the pal_timer changes, but I'm going to make those updates in another PR.


Wrong Content-Type when calling token api

I'm using oauth2 library with:
oauth2: 0.9.0
hackney: 1.6.6
auth server: google

elixir --version
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.4.0

Problem
When I try to get token with OAuth2.Client.get_token function I get failure from google OAuth server saying:
{"error" : "invalid_request"}

I debugged the request the we made from Elixir(hackney). it's like this:
accept: application/x-www-form-urlencoded
Content-Type: application/x-www-form-urlencoded, application/x-www-form-urlencoded, application/x-www-form-urlencoded, application/x-www-form-urlencoded
User-Agent: hackney/1.6.6
Host: <IP_ADDRESS>:8000
Content-Length: 307

auth_scheme=request_body&client_id=XXXX&client_secret=SECCCC&code=CODE&grant_type=authorization_code&redirect_uri=https%3A%2F%2Flocalhost%3A4443%2F%2Fo%2Foauth%2Fcallback

And as you see Content-Type is somehow wrong.
I tried to call google oauth token with only one application/x-www-form-urlencoded and application/x-www-form-urlencoded, application/x-www-form-urlencoded, application/x-www-form-urlencoded, application/x-www-form-urlencoded and looks like google doesn't accept the latter as valid Content-Type
I even tried to change ouath2 code and only send one content-type:
    headers = [{"content-type", "application/x-www-form-urlencoded"}]
    case :hackney.request(method, url, headers, body, req_opts) do
      {:ok, ref} when is_reference(ref) ->

However still hackney was sending two content type:
Content-Type: application/x-www-form-urlencoded, application/x-www-form-urlencoded
User-Agent: hackney/1.6.6
Host: <IP_ADDRESS>:8000
Content-Length: 307

Possible Fix
I tried to make a request using hackney 1.7.1 and looks like they fixed it on that version.
Is it possible to use new version of hackney in oauth2?

BTW I have to mention google changed API behaviour today, I've been using the same code past few days and it stops working since morning

I also ran this code from both versions and you can see the result here https://requestb.in/1dlgnti1?inspect
header =  [{"accept", "application/x-www-form-urlencoded"}, {"content-type", "application/x-www-form-urlencoded"}, {"content-type", "application/x-www-form-urlencoded"}]
:hackney.request(:post, "http://requestb.in/1dlgnti1", header, "request=data", [])

Fixed in #91


Gloria Roberts Information Changes

We need to change a few details for Gloria Roberts on the site.
We need to change the following:
•	Remove the “(Interim)” part on their title
•	Remove the “District appointee” identifier. If it has to be replaced we can replace it with “Governor Appointee”.
•	Make sure these changes are reflected in all Committees where Gloria is a part of.

Thank you!

@hancush can we look into this please? Thank you.

Hi @hancush . Thanks for removing the interim reference on Gloria Roberts' title. The site still shows that she is a  "District Appointee". Are we able to change this reference or remove it?

@neilarellano Yes, working on it.

Fixed via #1028.


bedtools: update options

Update bedtools makewindows
Also add file completion when subcommand completion is not coded.

Thanks, merged.


Missing Connector in doc

Under the 'Import the Solution' heading, step 4e, can you add HTTP Connector. It is missing from the list and is req for the 'Admin | Sync Template v3 (Custom Connectors)' flow. Thank you

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

ID: 9fe69498-a485-5379-97ff-53fbe029f11a
Version Independent ID: 5b3f9705-9e49-1575-4ae7-0293d12b739c
Content: Set up core components - Power Platform
Content Source: power-platform/guidance/coe/setup-core-components.md
Service: power-platform
GitHub Login: @manuelap-msft
Microsoft Alias: mapichle

I'm not sure I understand what you mean. You don't create connections for HTTP under Data > Connections. Although it is required in the DLP policy, which is mentioned in our pre-requisites, it is not a connection you create or set during Import.
Under connections you may find the HTTP with Azure AD connector, but that's not the one we are using.

Totally overlooked that info in pre-req’s!
On Thu, Feb 4, 2021 at 15:56 Manuela Pichler<EMAIL_ADDRESS>wrote:

I'm not sure I understand what you mean. You don't create connections for
HTTP under Data > Connections. Although it is required in the DLP policy,
which is mentioned in our pre-requisites, it is not a connection you create
or set during Import.
Under connections you may find the HTTP with Azure AD connector, but
that's not the one we are using.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/power-platform/issues/587#issuecomment-773598250,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD4YTN6GPBEBL5E3QBJOEPLS5MCWHANCNFSM4XDOHTRA
.

Great, thank you - closing this issue now but let me know if you have any additional questions, or find something in our setup instructions unclear!


Downloaded video and audio files are no longer automatically merged with 'ffmpeg', even when 'ffmpeg' is in the same folder/path as the downloaded video and audio files

As of recent, it seems video and audio files downloaded using 'lux' aren't automatically merged together by 'ffmpeg', even when 'ffmpeg' is in the exact same folder/path as the downloaded video's files.
The following is the error that gets thrown after the download is complete:
Merging video parts into 魔晶猎人 第四季 第3话 欲加之罪.mp4
Downloading https://www.bilibili.com/bangumi/play/ep113803/ error:
exec: "ffmpeg": cannot run executable found relative to current directory

github.com/iawia002/lux/utils.runMergeCmd
        /Users/iawia002/go/src/github.com/iawia002/lux/utils/ffmpeg.go:17
github.com/iawia002/lux/utils.MergeFilesWithSameExtension
        /Users/iawia002/go/src/github.com/iawia002/lux/utils/ffmpeg.go:40
github.com/iawia002/lux/downloader.(*Downloader).Download
        /Users/iawia002/go/src/github.com/iawia002/lux/downloader/downloader.go:673
github.com/iawia002/lux/app.download
        /Users/iawia002/go/src/github.com/iawia002/lux/app/app.go:325
github.com/iawia002/lux/app.New.func1
        /Users/iawia002/go/src/github.com/iawia002/lux/app/app.go:247
github.com/urfave/cli/v2.(*App).RunContext
        /Users/iawia002/go/pkg/mod/github.com/urfave/cli/v2@v2.6.0/app.go:322
github.com/urfave/cli/v2.(*App).Run
        /Users/iawia002/go/pkg/mod/github.com/urfave/cli/v2@v2.6.0/app.go:224
main.main
        /Users/iawia002/go/src/github.com/iawia002/lux/main.go:13
runtime.main
        /opt/homebrew/Cellar/go/1.20.5/libexec/src/runtime/proc.go:250
runtime.goexit
        /opt/homebrew/Cellar/go/1.20.5/libexec/src/runtime/asm_amd64.s:1598

This is very inconvenient, since it leaves separate audio and video files cluttering the folder you downloaded them into that you are forced to try and merge yourself, if you can or even know how to. This is especially irksome when downloading a large quantity of videos, like from a playlist.
In the past, having 'ffmpeg' in the same folder/path you are downloading videos to was all you needed, and 'lux' (or 'annie' as it was once known) would automatically use 'ffmpeg' to merge any file parts after the download was completed. I'm opening this issue in the hopes it can be looked into and corrected so that things can return to how they once worked.
Thank you for your time.

Try version v0.17.0
https://github.com/iawia002/lux/releases/tag/v0.17.0
At version 0.17.0, no issue on merging bilibili video and audio for me

Isn't that an older version?
Still, I can hold on to and try this older version next time I find myself wanting to use lux on places like bilibili, just to see if it'll work.
Mind, even if an older version does work like it's supposed to, that wouldn't be a fix to the issue going forward for newer versions.

Me too.


Add syntax to bind to properties instead of attributes

Description
Fixes #1322
Fixes #2530
Properties are set by using js_sys::Reflect. While it doesn't give much benifit today (they're still strings), it opens the door for more opportunities since we can now define specific types for properties. This will help with statically typed DOM, whenever that becomes a thing.
This PR also introduces new syntax, ~key="value" which can be used to forcefully set as properties.
class is set as always attribute, since it is not a property. Classes are stored in classList in DOM. Since they're always strings, it's not worth the extra JS calls to add to classList.
Checklist

[ ] I have reviewed my own code
[x] I have added tests

I am not sure whether making properties default is better than existing behaviour.

You're right, it's better to keep the option to the default as attributes and give the option to set as property
I made it use ~ as the token as : causes errors with parsing.  Available symbols are (space separated): !, $, \, ~ and "`" (GH won't let me put that as inline code. Everything else is either already taken by Rust or has some other meaning:

@ => used for dynamic tags
# => id selector
% => mod symbol
& => borrowing op
* => deref operator
. => class selector
: => causes parser error (thing="" :other="" results in parsing errors because the all the tokens after thing are considered part of assignment expression)

@WorldSEnder can you leave review here? It's blocked because of your review

Why did we choose to have the special syntax to remark explicitly setting a property, and not the attribution instead (as per #1322)? Or have I misread?
To me, the html! macro is more about manipulating the dom as in manipulating properties… The distinction between attributes and properties is overall quite confusing, and surprising to the Yew developer, and needing to explicitly address a property perhaps adds to that given the prevalence of Props elsewhere.

Why did we choose to have the special syntax to denote explicitly setting a property, and not the attribute instead (as per #1322)? Or have I misread?

For one, to conserve a bit of backwards compatibility. For example type-safety dictates that attributes must be stringly typed (AttrValue), but properties could (should?) allow any JsValue. So it's easier to introduce or change this part only for the new syntax later.
For two, because the current syntax gives us wiggle room. The current syntax without any qualifiers reserves to do secret tricks that match and mix attributes and properties and try to do "what you meant".
And third, because properties and attributes are just named differently. When typing out what looks like html, dashed casing like aria-autocomplete is used and it's not so simple to convert to the property name even if the IDL property is supported in the first place. Even if such a name transformation would happen at compile time, it's a lot of catch-up to play with new browser and accessibility attributes, for little gain. I think the default assumption is still that html! { } refers to attributes, for most users, since it looks like HTML, after all.

Why did we choose to have the special syntax to denote explicitly setting a property, and not the attribute instead (as per #1322)? Or have I misread?

For one, to conserve a bit of backwards compatibility. For example type-safety dictates that attributes must be stringly typed (AttrValue), but properties could (should?) allow any JsValue. So it's easier to introduce or change this part only for the new syntax later.
For two, because the current syntax gives us wiggle room. The current syntax without any qualifiers reserves to do secret tricks that match and mix attributes and properties and try to do "what you meant".
And third, because properties and attributes are just named differently. When typing out what looks like html, dashed casing like aria-autocomplete is used and it's not so simple to convert to the property name even if the IDL property is supported in the first place. Even if such a name transformation would happen at compile time, it's a lot of catch-up to play with new browser and accessibility attributes, for little gain. I think the default assumption is still that html! { } refers to attributes, for most users, since it looks like HTML, after all.

Thanks for the explanations. Perhaps the existing approach could be preserved but a new, complimentary, dom-focused macro introduced for properties. My main concern is the developer’s mental consideration of whether specifying a property or attribute is required. My assertion is that most devs don’t understand the difference between attributes and properties. Are these concerns shared?

EDIT: I would love to learn more about the interaction with custom elements. Do you happen to use them and can you share if the default should be different there? I think a lot of the arguments above apply to default elements shipped by the browser, but are they applicable to custom elements?

Custom elements as per Components? They are definitely dom-focused and more consistent with what I’m thinking of with a separate dom-focused macro.


Add tracking current position on map

What?
現在地に追従する機能追加
Why?
パネル側で追従する機能を実装したため
Screenshot or video
https://user-images.githubusercontent.com/13210107/146738957-a78182fd-ff65-450a-9252-2be36ea3ba3f.mp4

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: yusukefs
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

シークした瞬間には現在位置のトピックでメッセージが発されないらしく、再生ボタンを押さないと現在位置が更新されないことに気づきました。
可能であればまた後ほど修正したいと思います。

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: WatanabeToshimitsu, yusukefs
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Cross-Origin Resource Sharing    about riak cs [JIRA: RCS-161]

recently i am using riak and riak cs ,
and i happend to a problem ,
that is i want to upload a file directly to my database ,
but the brower has a problem ,you know it is Cross-Origin Resource Sharing,
i am here to ask help ,
how should i solve this problem ?

Agreed, I would also know how to solve this issue.

Dup with #581? It's just not supported yet 1.x and 2.0.


Interpret negative number as argument instead of flag

When passing negative number (eg -123) or string which starts with number (eg -123abc) as argument, kong returns unknow flag error.
IMO if string starts with - followed by a number kong should interpret it as an argument instead of a flag

Sorry, I meant to open issue in this repo: https://github.com/alecthomas/kong :P


Main icon is small

The main icon is 48x48 px. It needs to be at least 256x256 for the Gallery. Here’s a bigger version:

Fixed in #23


navigation.Page is nil for taxonomy pages (Hugo v0.128.2+)

Hi!
Since Hugo 0.128.2, it seems that the menu navigation is not working as it did before. To be specific, the pageRef cannot find pages by their output permalink. Here's a bit of my config.toml, where you can see my taxonomies and menu. Note that /articles and /photos are categories.
[permalinks]
  tags = '/tags/:title/'
  categories = '/:title/'

[menu]
[[menu.main]]
  name = '🧁 About'
  pageRef = '/about'
  weight = 1
[[menu.main]]
  name = '✉ Contact'
  pageRef = '/contact'
  weight = 2
[[menu.main]]
  name = '✏ Articles'
  pageRef = '/articles'
  weight = 3
[[menu.main]]
  name = '📸 Photos'
  pageRef = '/photos'
  weight = 4
[[menu.main]]
  name = '📖 Guestbook'
  pageRef = '/guestbook'
  weight = 5
[[menu.main]]
  name = '🌈 More'
  pageRef = '/more'
  weight = 6

Here's the code that fails:
{{ range .Site.Menus.main -}}
  {{ .Page.Permalink }}
{{ end }}

With the following error:
executing "partials/base/header.html" at <.Page.Permalink>: nil pointer evaluating navigation.Page.Permalink

From my tests, it seems that .Page is now nil for /articles and /photos, where it used to be correctly populated. The workaround is to just change it to /categories/articles and /categories/photos. That way didn't work before 0.128.2, but seems to be necessary now.
What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.128.2+extended darwin/arm64 BuildDate=2024-07-04T08:13:25Z VendorInfo=brew

Does this issue reproduce with the latest release?
Yes, it is a new issue since 0.128.2.

See #12638. There's a long story here and I think I introduced this when we got content adapters into the mix, but:

We cannot resolve /articles to /categories/articles. That would be ambiguous. You could possibly argue that we could do it in the menu setup, but I'm not going to complicate this further.
Note that articles (without a leading slash) would resolve to /categories/articles.

I'm going to close this as "will not fix". I do apologise if I broke something, it was not my intention (or, at least the intention was ... nobel).

@bep it's perfectly fine, I just didn't expect this coming from a patch release 😅. I would perhaps update the release notes to clearly mention this problem, as I did not find it very clear.
Nevertheless, thanks for you continuous work on Hugo!


Fix doge inputs value

Fixes #981

@hewigovens I also was not able to alight mock json, brutal 😂

So v2 is giving just correct data vs v1 ?. Small comment would be appreciated.

@kolya182 xpub api is v2 based, should work fine


test() does not support -w and -x options

These are sometimes useful and are not supported as of latest shelljs (v0.7.8):

-w file exists and write permission is granted
-x file exists and execute permission is granted

Usage:
require('shelljs').test('-x', '/bin/bash')
// => test: option not recognized: x

It can be implemented using fs.accessSync. Would you be interested in a PR?

@dundalek that approach SGTM as long as we can support Windows. We unfortunately had to drop a lot of chmod support because Windows handles modes very differently. Take a look at test/chmod.js for all the skipOnWin tests.
Feel free to send a PR with tests. Appveyor will verify if the feature works for Windows.

Yeah, good point. It would do nothing on windows, nevermind.

Maybe -w is ok? It seems to be allowed on Windows.


Added support for header-only style and preinstalled volk through CMake config packages.

As discussed extensively in the previous PR.
Quite a handful of files changed, so here's a quick overview:

volk.c and generate.py haven't changed.
volk.h only adds the optional include of volk.c
CMakeLists.txt has support for config installation (as non-default behaviour, to enable add_subdirectory without polluting the user project with install files)
the rest is 3 minimal test applications integrating volk in various ways through CMake, and the travis config for building all of them.

Would it be possible to keep the static library target, perhaps using smth like VOLK_HEADER parameter? As it stands this makes it impossible to just add volk as a CMake dependency and have it work - as your CMake example with add_subdirectory shows, you have to add VOLK_IMPLEMENTATION to one of your source files.

Yes, that's possible. We could additionally have what we had before, a "volk" static lib target, just with a way to add defines for build time.
The explicit-include way is a tad more powerful: it allows setting the define (i.e. deciding the platform integration method) not only at buildsystem level, but also at compile time. Also installing volk prior to project build time (vcpkg again) really only makes sense with the header-only style. But in the interest of backwards-compatibility we can nevertheless have both ways coexist.
I've made those changes in the branch and improved the tests to actually not compile when the platform defines were not passed through properly. Also I grew to dislike the parsing of volk.h in CMakeLists (having the version is valueable, though, requiring a min version of the vulkan headers in find_package(volk) actually works), so I changed generate.py to also configure the CMakeLists.txt.
"The CMake files now build two targets: volk and volk_headers. The first is a static library where platform defines can be set using VOLK_STATIC_DEFINES, the latter is for the header-only approach.

Refactored the tests to test all relevant situations, and added testing for whether setting the platform defines actually worked.
Added a bash script to run the test cases locally. The travis script now just calls that script.
Changed the Vulkan header version detection in CMakeLists.txt to be more in line with the volk approach: it is now written at generate time just like the volk sources.
Fixed a bug from trunk that could break the Win32 build (missing defined() in volk.h:27)"

Thank you! This looks great - it's a bit more complex, but there's two cleanly separated targets so that users can pick & choose whatever works best for them. Appreciate the perseverance :)


Adding "resolved" field into jira_issue table

Is your feature request related to a problem? Please describe.
I want to be able to know what the resolution date of an issue is to help calculate cycle time, when a bug was closed, etc
Describe the solution you'd like
To have the "resolved" field exposed
Describe alternatives you've considered
Currently using "updated" field. However updated is different from "resolved", as an update could mean changing of description, adding of labels, etc which is different from resolution date
Additional context
Information on the JQL field here

Thanks @jinhong- for using Steampipe 👍.
The use case looks extremely promising. We have opened a PR which adds the resolution_date column to the jira_issue table. It would be great if you could locally build the changes and check if it suffices your requirement.
Steps to check:

clone the steampipe-plugin-jira repo into your local by using the following commands

git clone https://github.com/turbot/steampipe-plugin-jira.git
cd steampipe-plugin-jira

Checkout to the PR branch

git checkout add-resolution-date-column-jira-issue-table

Run the make command

make

Run the steampipe query to get the issue resolution date

select title, resolution_date, status from jira_issue

Please let us know if it resolves your issue. 👍


Not able to create popover that opens at click and closes at mouseleave

Hello, thank's for the amazing library, I've just one issue.
I'm trying to create a popover that opens @click and closes on mouseleave on the popver or mouseleave the trigger.
I think this is not a weird requirement so probably I'm missing something.
Setting trigger to manual and setting a mouseleave listener on the popover content works great. But I'm not able to make the tooltip close if the user opens it and then never hovers it.
Demo to see what I mean https://jsfiddle.net/vmnwqaxu/

I was able to do it thanks to the community by doing this
https://jsfiddle.net/kLy9ahso/
Anyway I wonder if there is a better way


Announcements emails are send twice to tutors/editors

Describe the bug
As an editor of the EIST courses, I always receive the announcements emails twice.
To Reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
Only send announcement emails once to editors/tutors
Screenshots
No response
What browsers are you seeing the problem on?
Chrome
Additional context
No response
Relevant log output
No response

I think this happens because we have two courses with similar announcements, one for Garching and one for Heilbronn.
Did you double check that you received the exact same email with the same course name?

Yes, I did get two emails for Heilbronn and Garching each

Are you maybe listed twice in the course? For example as tutor and as editor?

We should definitely fix it and take a set-based union of all students, tutors, editors and instructors of the course before sending the emails to avoid potential duplicates. Should be relatively easy to implement if someone finds the corresponding source code

Duplicate of https://github.com/ls1intum/Artemis/issues/5246


Node classification with Node2Vec "Data Splitting" section inconsistent

Describe the bug
The "Data Splitting" section in Node Classification with Node2Vec claims to make a 75-25 split, however the code makes a 90-10 split. Also, the code has wrongly assigned train and test sets. It assigns 10% data to the train set and 90% to the test set.
To Reproduce
https://stellargraph.readthedocs.io/en/stable/demos/node-classification/node2vec-node-classification.html#Data-Splitting
Observed behavior
We split the data into train and test sets.
We use 75% of the data for training and the remaining 25% for testing as a hold out test set.
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.1, test_size=None)
Expected behavior
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75, test_size=None)
Environment
https://stellargraph.readthedocs.io/en/stable/demos/node-classification/node2vec-node-classification.html#Data-Splitting

You're entirely correct that the text and code are inconsistent here.
It looks like this was correct and consistent in the original form of the notebook (added in 7d14eb28ab3254aae2c8c64e70a9fc2357bb83af) https://github.com/stellargraph/stellargraph/blob/7d14eb28ab3254aae2c8c64e70a9fc2357bb83af/demos/node-classification/stellargraph-node2vec-node-classification.ipynb but was changed in https://github.com/stellargraph/stellargraph/commit/7a6742213e0e8765bc6b712f9783a13a80199abb with apparently no explanation.
There's a few options:

update the text to match the code (that is, "We use 10% of the data for training and the remaining 90% for testing as a hold out test set"). For example: https://stellargraph.readthedocs.io/en/stable/demos/node-classification/keras-node2vec-node-classification.html#Data-Splitting does 10-90 'properly'
update the code to match the text (that is, what you state). For example: https://stellargraph.readthedocs.io/en/stable/demos/node-classification/node2vec-weighted-node-classification.html#Comparing-the-accuracy-of-node-classification-for-weighted-(weight-==1)-and-unweighted-random-walks.
switch both to something completely different. For example: https://stellargraph.readthedocs.io/en/stable/demos/node-classification/attri2vec-node-classification.html#Data-Splitting does a 20-80 split

I'm inclined towards 2; potentially including updating those other examples that do splits other than 75-25 because I suspect at least the notebook from one steals the 10-90 split from the new weird notebook.
I'm happy to open a PR for this sometime later today or tomorrow, unless someone else gets to it first.


Disable extending

Hey, could you please add the option to disable extending?
In some case i want to use only @include directive. Well, we all noticed, that module just for getting HTML, then bemjson and bemdecl. So, excluding might help to reduce code of enb config (and time), cuz in other case we must use bemTechs.subtractDeps. I'm talking about in not all cases we need to have in decl:  page, i-bem and etc. I mean
<script src="/public/views/bundles/all-bem-stuff.js"></script>
<script src="/public/views/bundles/exactly-that-bundle.js"></script>
That make sense for using with laravel, though.
Thanks.

I'd like to do this but have no time. If somebody does this I'd merge it :)


Feature request: support for changing all file icons based on file path

[x] I'm sure this issue is not a duplicate.

Is it possible to support changing the icons of all files, regardless of the extension, given a glob?
I like the minimalistic feel of having the folder icons hidden and use the file icons as a visual cue instead.
Something like:

As it is, I dont have a way of keeping the index.js icon similar to that of the rest of the files inside the same glob.
I was hoping of being able to do something like:
  "vsicons.associations.files": [
    {
      "icon": "my-icon",
      "glob": [
        "./**/pages/meta/**.*",
      ],
    },
    {
      "icon": "my-other-icon",
      "glob": [
        "./**/pages/objects/**.*",
      ],
    },
  ],

I do feel this will raise some complexities like...

which setting should take precedence if we have a definition for a specific extension under a glob?
how will the glob work for user vs workspace settings.json?

...to list a few.

vscode does not support glob expressions for icon themes. Supporting it from our side is too much work for us for the time we have available. If anyone feels like giving it a try we are more then willing to accept a PR.


Falling behind in ticks

Once reaching a certain point (undetermined cause) in a world I am unable to run at 3x speed without falling behind in ticks.
This is not a significant milestone in play through, less than 1 year in.
Some details:

Happens when host/not host
Happens when connected as the only player in my own game
No desync is caused, just falling behind in ticks
2 settlements in 1 world
6-7 total pawns
5-6 Animals in settlements? (Is this an issue?)

PC specs: (This definitely shouldn't be the issue here considering how soon into the game this happens)

Version: 0.44
An example of the save which causes these issues is attached
CausesIssues.zip

@Qinusty Are you available to do a test run? I'd like to test it out myself together with you, and see what we can find out.

Testing the issue produced the following results:
We both hosted, when @Qinusty hosted, we started lagging behind at 3x times
When I hosted, I didn't have any issues, but @Qinusty started lagging behind badly. The only difference between our physical machines is that he is using an AMD processor, and I'm using an Intel processor. This test needs to be run again with someone else to see if AMD is to blame for this or not.

I'd like to point out that @Qinusty uses single-channel memory, which is well-known to cause issues with memory latency on AMD Ryzen platforms.

I've run tests with my pc, which also has a Ryzen, and Dual-Channel memory, and I have the same issue. This is a definite issue with AMD CPUs.

I'd like to point out that @Qinusty uses single-channel memory, which is well-known to cause issues with memory latency on AMD Ryzen platforms.

Well spotted @Anduin1357, I never noticed this :/ Fixed now, issue still continues as @SamboyCoding confirms.

Ok the mighty Ryzen is brought to its knees on this one, any causes people can think of?
Symptoms include, lag, slowing down, and the inability to go at 3x speed.
possible causes could include, thread maxed out for speed? cache too slow? bad board?
this almost seems like a hardware issue at this point but one thing I think could help is for amd users once we get the dedicated server layers that run on a seperate thread seeing if that helps them out.


LERT

do you have any model for this paper "line Segment detection using transformer without edges"

Hello, thanks for the feature request!
@GuoQuanhao @wutianyiRosun , could you evaluate this feature request and see if we can add this model?
@songxujay , if you're interested in develop this model for paddlevit, please let us know!


#615 doc: Getting started: add download jar file link.

I will fix all language doc,
but I can't find "mybatis-x.x.x.jar" in French.
fix #615

Good idea, thanks!
French version is not maintained at the moment.


Adds method to change the width of the grid lines.

It sounds like a good plan.

Updated! Please take a look, thanks.


this.reloader NPE on IE8

I know this won't be a huge priority to fix, but at least on IE8 (maybe later ones as well) including the client-side livereload.js triggers the following error on line 961:
'this.reloader' is null or not an object

Might just add a check before accessing that property, so old & buggy browser will fail quietly (e.g. just no livereload) instead of making noise.

The client-side LiveReload isn't something I plan to change. That's an upstream change. And I can't imagine with IE8 it'll get fixed anytime soon.


make test failed in<EMAIL_ADDRESS>

I meet a problem:make test failed in<EMAIL_ADDRESS>on openEuler sysytem.
Steps to reproduce the issue
[root@localhost spack-src]#make test
./tippecanoe -q -a@ -f -o tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat<EMAIL_ADDRESS>-z3 -Ethesum:sum -Etheproduct:product -Ethemax:max -Ethemin:min -Ethemean:mean -Etheconcat:concat -Ethecomma:comma -r1 -K100 tests/accumulate/in.json  < /dev/null
/tmp/geom.XXI6cOTO: Too many open files
make: *** [Makefile:92: tests/accumulate/out/-z3_-Ethesum@sum_-Etheproduct@product_-Ethemax@max_-Ethemin@min_-Ethemean@mean_-Etheconcat<EMAIL_ADDRESS>Error 1

Information on your system
[root@localhost spack-src]#spack debug report

Spack: 0.16.1
Python: 3.7.9
Platform: linux-openeuler20-aarch64
Concretizer: original

Why does CentOS8 pass the test but openEuler fail?
centos8：

openEuler:

An error is reported in the test case of make test. The ulimit -a command output shows that open files (-n) 1024 indicates that each user can open a maximum of 1024 files. The lsof -p pid | wc -l command output shows that the number of files is more than 5000. Therefore, an error is reported. Solution: ulimit -n 6000 #Set the value of open files.
spack cd<EMAIL_ADDRESS>. ../spack-build-env.txt
Make -j16 test.


Design proposal for implementing validation

The first commit is migrating the ValidatorFunc 's signature to return (bool, error) where bool would denote the success/failure (true/false) of a validation and error would denote a bug or an actual error during the execution of the vaildator.

The second commit is dedicated towards restructuring the project structure.
All the individual validators will be written as individual Go files inside pkg/validators/meta/validator_name.go (for say, metadata validator) or pkg/validators/cross/validator_name.go (for say, a cross validator). Basically, 1 Go file per 1 validator function.
I felt this would be apt because in the future we would be having a lot of validator functions.  Also, many validator function might rely on some helper/util functions which when all written in a single Go file would further convolute things.

Hence, each  individual Go file under pkg/validators/meta/ or pkg/validators/cross/ will represent a certain validator (and the util/helper function it relies upon). For example, this file
Hence, let's take a real-life situation. Say, an engineer comes and wants to add a new metadata-level validator in this project with the name ValidatorFoo
They would have to do just two things:

Go to pkg/validators/meta and create a file called validate_foo.go (or any other name).
the file and the Validator method would look something on the lines of this:

package meta

import (
	"github.com/mt-sre/addon-metadata-operator/pkg/utils"
)

func ValidateFoo(metabundle *utils.MetaBundle) (bool, error) {
	if someValidationFails {
		return false, nil
	}
        if someErrorHappens {
                return false, err
        }
	return true, nil
}

func someUtilFunction() {

}

And finally, they would have to go to pkg/validate/metadata_validate.go and just edit the GetAllMetaValidators() function to "also" return

		{
			Description: "Some description about this new foo validator",
			Runner:      meta.ValidateFoo,
		},

Here, the engineer/developer wouldn't even have to glance at any other line of code apart from the validator they are actually writing, hence, streamlining and simplifying contribution to this project to a great extent

@mayankshah1607 @sugarraysam Addressed all the comments in this PR.
I guess you folks can review this and merge it (Mayank) so that the parent PR can have these changes reflected in it :)


Token/Handler based event loop does not compose well

While the current API with Tokens to distinguish event sources and a single handler works well for applications, I don't think it composes well if used libraries, especially due to the static tokens and single handler per event loop.
I think a system like the GLib event loop works better in that regard, where you have an abstraction over event sources (GSource) that is not strictly tied to file descriptors (but can be), then attach those event sources to the event loop and register handlers/callbacks to the event source (not the event loop).
This allows you to
a) get rid of the readable/writable/message/timeout specialization on the handlers and event sources (the specific event source defines what it is that is waking it up, while the event loop only provides the machinery for allowing it to do that by e.g. adding a file descriptor to a fdset or just asynchronously waking it up). This opens up the possibility for many more different kinds of event sources.
b) allow libraries to add their own event sources to some event loop, and be able to handle events from them without the application being involved anywhere except for running that event loop.
Note that GLib also distinguishes between an event loop (GMainLoop) and its context (GMainContext), the former just being something to iterate the context while the context itself keeps track of all the event sources and allows polling them. That way you only usually pass around the context to libraries, and have the loop itself hidden away from them. Also it is possible to define a thread-default event context (via a push/pop mechanism on thread local storage), which then makes it unnecessary to explicitly pass around the context.
I'm not necessarily saying that the GLib model is the best solution to these problems, but it worked well in the past, composes better and is more generic.
For some more background see:
https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html
https://tecnocode.co.uk/2014/03/27/what-is-gmaincontext/
https://tecnocode.co.uk/2015/05/05/a-detailed-look-at-gsource/

This is an interesting idea, maybe not for mio but a thin wrapper around
mio. I haven't looked too closely at the code but iirc the loop handles the
different context types and resource types by using void pointers for
attachments and casting to structs that it and the user expect to exist.
How do you envision what this would look like with type and reference
safety in Rust?
On Mon, May 18, 2015, 2:55 AM Sebastian Dröge<EMAIL_ADDRESS>wrote:

While the current API with Tokens to distinguish event sources and a
single handler works well for applications, I don't think it composes well
if used libraries, especially due to the static tokens and single handler
per event loop.
I think a system like the GLib event loop works better in that regard,
where you have an abstraction over event sources (GSource) that is not
strictly tied to file descriptors (but can be), then attach those event
sources to the event loop and register handlers/callbacks to the event
source (not the event loop).
This allows you to
a) get rid of the readable/writable/message/timeout specialization on the
handlers and event sources (the specific event source defines what it is
that is waking it up, while the event loop only provides the machinery for
allowing it to do that by e.g. adding a file descriptor to a fdset or just
asynchronously waking it up). This opens up the possibility for many more
different kinds of event sources.
b) allow libraries to add their own event sources to some event loop, and
be able to handle events from them without the application being involved
anywhere except for running that event loop.
Note that GLib also distinguishes between an event loop (GMainLoop) and
its context (GMainContext), the former just being something to iterate the
context while the context itself keeps track of all the event sources and
allows polling them. That way you only usually pass around the context to
libraries, and have the loop itself hidden away from them. Also it is
possible to define a thread-default event context (via a push/pop mechanism
on thread local storage), which then makes it unnecessary to explicitly
pass around the context.
I'm not necessarily saying that the GLib model is the best solution to
these problems, but it worked well in the past, composes better and is more
generic.
For some more background see:
https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html
https://tecnocode.co.uk/2014/03/27/what-is-gmaincontext/
https://tecnocode.co.uk/2015/05/05/a-detailed-look-at-gsource/
—
Reply to this email directly or view it on GitHub
https://github.com/carllerche/mio/issues/173.

There is a significant limitation in Rust that makes this difficult, and
that is that there is no concept of a raw function pointer. There are only
closures where each is it's own type that implements the Fn* traits.
If such a raw fn pointer existed, this would be fairly trivial.  You could
supply a callback for each FD that you register with no additional runtime
overhead.
There is a way to do this if you treat each callback as a c style
function,  I personally would be for this being the lowest layer of mio,
with the Handler trait going a layer above which would be called by a
default callback if the user chose.
There is an example of how to trampoline from a c callback to a handler
trait in nathan7's http-parser (a wrapper around the joyent http lib)
On Mon, May 18, 2015, 8:12 AM Rick Richardson<EMAIL_ADDRESS>wrote:

This is an interesting idea, maybe not for mio but a thin wrapper around
mio. I haven't looked too closely at the code but iirc the loop handles the
different context types and resource types by using void pointers for
attachments and casting to structs that it and the user expect to exist.
How do you envision what this would look like with type and reference
safety in Rust?
On Mon, May 18, 2015, 2:55 AM Sebastian Dröge<EMAIL_ADDRESS>wrote:

While the current API with Tokens to distinguish event sources and a
single handler works well for applications, I don't think it composes well
if used libraries, especially due to the static tokens and single handler
per event loop.
I think a system like the GLib event loop works better in that regard,
where you have an abstraction over event sources (GSource) that is not
strictly tied to file descriptors (but can be), then attach those event
sources to the event loop and register handlers/callbacks to the event
source (not the event loop).
This allows you to
a) get rid of the readable/writable/message/timeout specialization on the
handlers and event sources (the specific event source defines what it is
that is waking it up, while the event loop only provides the machinery for
allowing it to do that by e.g. adding a file descriptor to a fdset or just
asynchronously waking it up). This opens up the possibility for many more
different kinds of event sources.
b) allow libraries to add their own event sources to some event loop, and
be able to handle events from them without the application being involved
anywhere except for running that event loop.
Note that GLib also distinguishes between an event loop (GMainLoop) and
its context (GMainContext), the former just being something to iterate the
context while the context itself keeps track of all the event sources and
allows polling them. That way you only usually pass around the context to
libraries, and have the loop itself hidden away from them. Also it is
possible to define a thread-default event context (via a push/pop mechanism
on thread local storage), which then makes it unnecessary to explicitly
pass around the context.
I'm not necessarily saying that the GLib model is the best solution to
these problems, but it worked well in the past, composes better and is more
generic.
For some more background see:
https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html
https://tecnocode.co.uk/2014/03/27/what-is-gmaincontext/
https://tecnocode.co.uk/2015/05/05/a-detailed-look-at-gsource/
—
Reply to this email directly or view it on GitHub
https://github.com/carllerche/mio/issues/173.

That's a good point, not sure how to actually express a model like this with Rust's type system. It would be a much more generically useful API though, and I would expect similar needs in other areas too (UI toolkits maybe?).

You should be able to have a trait for an event source like GLib's GSource, which additionally has a dispatch() method. And each specific type that implements the event source trait could have a set_callback() method with a specific callback type, which would then be called with whatever parameters required by the dispatch() method implementation.

What API would you suggest? I believe the problem is that if the event loop takes ownership of any memory, it will not be able to free it appropriately. For example, if a socket is closed explicitly, the event loop is never notified, so if the event loop owns any memory at that point, it will not get released.

When taking the library approach, a register(my_external_evented, readable,
edge, my_callback) -> token would have a counterpart
deregister(my_external_evented (or token))  so if someone explicitly
closes, they're also responsible to explicitly deregister.
Mio could also take advantage of an IO management layer that offers
functions such as connect and listen and close which
auto-registers/deregisters with the event_loop.
The challenge of doing that, though, is that reference ownership of the
event_loop and mutable members of the connection containers gets tricky.
(RefCell time :) )
On Mon, May 18, 2015 at 5:37 PM Carl Lerche<EMAIL_ADDRESS>wrote:

What API would you suggest? I believe the problem is that if the event
loop takes ownership of any memory, it will not be able to free it
appropriately. For example, if a socket is closed explicitly, the event
loop is never notified, so if the event loop owns any memory at that point,
it will not get released.
—
Reply to this email directly or view it on GitHub
https://github.com/carllerche/mio/issues/173#issuecomment-103219951.

I think the event source would own the socket (or whatever else triggers the events), and deregistering the event source (i.e. event source is owned by the event loop) from the event loop would destroy the event source (and thus its socket). So closing the socket goes together with removing it from the event loop.

You'd need to notify the event source to close the socket, though, which
might be fine, this means that the "business logic" needs a handle to the
event manager.. it's possible..
I have been writing, and re-writing (and re-writing)  an API that wraps mio
and provides the functionality you're talking about.   Let me know if this
makes sense:
What I've settled on is a Context trait which contains a means of
extracting an Evented trait and also a callback,  This gets registered into
the reactor event loop.
The context being a trait makes it rather flexible, it could just be a
callback container, or a big chunk of business logic, up to you.  I have
the prelim write-up here:
https://github.com/rrichardson/reactor
the context trait:
https://github.com/rrichardson/reactor/blob/master/src/context.rs
and assorted functionality which will eventually coalesce into reactor:
https://github.com/rrichardson/reactor/blob/master/src/reactor.rs
I guess I'm looking for feedback, here.  In this model, the user would call
reactor.close(mycontext) which would close the context.  They could also
call reactor.deregister(mycontext) which would remove it from the reactor
(literally move it out of the reactor and into the calling scope) but not
close the resources.
On Tue, May 19, 2015 at 10:07 AM Sebastian Dröge<EMAIL_ADDRESS>wrote:

I think the event source would own the socket (or whatever else triggers
the events), and deregistering the event source (i.e. event source is owned
by the event loop) from the event loop would destroy the event source (and
thus its socket). So closing the socket goes together with removing it from
the event loop.
—
Reply to this email directly or view it on GitHub
https://github.com/carllerche/mio/issues/173#issuecomment-103510246.

I'm going to close this as I don't think that there is currently anything actionable. It will probably be worth creating a new issue if this evolves.


040_Dinesh_contributions

Cancelling because pull request is empty. Please upload your python files and then raise the pull request again..


more data

I'm not good at C#, but I think I managed to squeeze something out.

Ok, not sure what's happening with the line endings... not able to fix it at all....

goo to merge?

go ahead!


[Bugfix] AutoTokenizer return list by default

By runing the opt-125m exmaples, we got a issue
│ /opt/conda/lib/python3.8/site-packages/auto_gptq/modeling/_base.py:149 in quantize               │
│                                                                                │
│   146 │   │   for example in examples:                                                           │
│   147 │   │   │   for k, v in example.items():                                                   │
│   148 │   │   │   │   print(k, v, len(v))                                                        │
│ ❱ 149 │   │   │   │   if len(v.shape) == 1:                                                      │
│   150 │   │   │   │   │   v = v.unsqueeze(0)                                                     │
│   151 │   │   │   │   example[k] = v.to(CUDA)                                                    │
│   152 │   │   │   try:                                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'list' object has no attribute 'shape'

That was caused by:
examples = [
    tokenizer(
        "auto-gptq is an easy-to-use model quantization library with user-friendly apis, based on GPTQ algorithm.")
]

which returns a {str: List} by default, by specific the return types of tensor, we can have a simple fix:
examples = [
    tokenizer(
        "auto-gptq is an easy-to-use model quantization library with user-friendly apis, based on GPTQ algorithm."
    , return_tensors="pt")
]

Hi, this isn't a bug I think, for the example code in here is compatible with the up-to-date code, but indeed not compatible with version that <=0.5.0. Thank you very much for point this out.


Jumping

I got the character to jump almost to the top of the screen.

This partially addresses #2.


THis thing is literally worse than repatch

and repatch is literally the worst thing, like, ever.
but hey, it got ONE PR

became a bit better since :)


Left menu bar isn't indicating its page

Team,
Left menu should indicate the specific title for this page but it doesn't

Best,
Youkhang.

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

ID: a9b49abf-d9b1-5fef-bea0-3502d62b6482
Version Independent ID: 9cdf91b1-8720-020b-b424-6cbe6e9df124
Content: Tutorial: Deploy a firewall with Azure DDoS Protection Standard
Content Source: articles/firewall/tutorial-protect-firewall-ddos.md
Service: firewall
GitHub Login: @asudbring
Microsoft Alias: allensu

@youkhi @youkhi Thanks for your feedback.
I have assigned the thread to the author @asudbring for further review.

Hi @youkhi, thanks for your feedback.  The article is in the TOC on the left under tutorials.

#please-close

Yes but that page isn't showing where it is located. Other tutorials are indicating its location well.
I just thought this may cause slight discomfort while reading our documents.


Exception Errno::ENETUNREACH isn't handled

Hey. I've error like this using geocoder 1.2.14
Errno::ENETUNREACH: Network is unreachable - connect(2) for "freegeoip.net" port 80
  from net/http.rb:879:in `initialize'
  from net/http.rb:879:in `open'
  from net/http.rb:879:in `block in connect'
  from timeout.rb:88:in `block in timeout'
  from timeout.rb:98:in `call'
  from timeout.rb:98:in `timeout'
  from net/http.rb:878:in `connect'
  from net/http.rb:863:in `do_start'
  from net/http.rb:852:in `start'
  from net/http.rb:583:in `start'
  from geocoder/lookups/base.rb:276:in `make_api_request'
  from geocoder/lookups/base.rb:226:in `fetch_raw_data'
  from geocoder/lookups/base.rb:177:in `fetch_data'
  from geocoder/lookups/freegeoip.rb:25:in `results'
  from geocoder/lookups/base.rb:47:in `search'
  from geocoder/query.rb:11:in `execute'
  from geocoder.rb:22:in `search'
  from geocoder/request.rb:9:in `location'

In lib/geocoder/lookups/base.rb:273 there's make_api_requests

Seems like you are rescuing only Timeout::Error
Do you acknowledge this as bug? Or it's supposed to be like that?
I can provide PR that fixes it but need some guidance how you would like it to be handled.

According to Ruby docs errno::ENETUNREACH - "no route to the network is present". Which is true, becasue freegeoip.net is down at the moment, but I don't think this is a reason to crash applications.
On master branch you have this issue also - https://github.com/alexreisner/geocoder/blob/master/lib/geocoder/lookups/base.rb#L273

Hi Damian,
Yes please create a PR for this that catches the error and throws one that
had a better error message. Maybe something like check if service is down?
Thanks!
On Monday, April 4, 2016, Damian Trojnar<EMAIL_ADDRESS>wrote:

According to Ruby docs errno::ENETUNREACH - "no route to the network is
present". Which is true, becasue freegeoip.net is down at the moment, but
I don't think this is a reason to crash applications.
On master branch you have this issue also -
https://github.com/alexreisner/geocoder/blob/master/lib/geocoder/lookups/base.rb#L273
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/alexreisner/geocoder/issues/1019#issuecomment-205302744

Yup, we could add something like
      rescue Errno::EHOSTUNREACH, Errno::ETIMEDOUT, Errno::ENETUNREACH
        raise Geocoder::LookupError

next to the
      rescue Timeout::Error
        raise Geocoder::LookupTimeout

in the https://github.com/alexreisner/geocoder/blob/master/lib/geocoder/lookups/base.rb#L273 . Would that be sufficient?

@jtomaszewski I think it's important to raise exceptions that indicate whether a request should be tried again as-is or needs to be modified. LookupError suggests that there was a problem processing the query, but those three errors are results of network/connectivity issues. Maybe we should add a Geocoder::NetworkError exception? @TrangPham: thoughts?

Agreed that it should be a different error. Geocoder::NetworkError sounds
good
On Friday, April 15, 2016, Alex Reisner<EMAIL_ADDRESS>wrote:

@jtomaszewski https://github.com/jtomaszewski I think it's important to
raise exceptions that indicate whether a request should be tried again
as-is or needs to be modified. LookupError suggests that there was a
problem processing the query, but those three errors are results of
network/connectivity issues. Maybe we should add a Geocoder::NetworkError
exception? @TrangPham https://github.com/TrangPham: thoughts?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/alexreisner/geocoder/issues/1019#issuecomment-210530410

Would it be possible to rescue and then try another service (or two) before raising the exception? How can Geocoder be temporarily reconfigured for another service?
begin
        _location = request.location
rescue Geocoder::NetworkError
        # here temporarily change Geocoder configuration to another service
        _location = request.location # try again
end

Hi @abatko
We've been thinking about the best way to implement a fallback in Geocoder for a while now. Here is an old diff that has one solution: https://github.com/alexreisner/geocoder/pull/746
@alexreisner What are your thoughts? How can we tackle fallbacks now/can we put together a road map for this?

@TrangPham @abatko yes, would like to get that working. See #351 for discussion. The solutions submitted so far have been (in my opinion) overly complicated, under-tested, and difficult to review, but I'd love to get fallback strategies working for the next minor release. Might require @TrangPham and I to collaborate on a solution as deep familiarity with the gem is needed.

Freegeoip has been down for days. I found geoip-db, and it was easy to create a quick temporary workaround:
begin
    _location = request.location
    _latitude = _location.latitude
    _longitude = _location.longitude
rescue Errno::EHOSTUNREACH, Errno::ETIMEDOUT, Errno::ENETUNREACH, Geocoder::NetworkError
    # primary service unreachable, try secondary...
    _page = Net::HTTP.get(URI('https://geoip-db.com/json/geoip.php'))
    _latitude = JSON.parse(_page)['latitude'].to_f
    _longitude = JSON.parse(_page)['longitude'].to_f
end

@abatko the problem is that geoip-db only show the IP for the origin of the request, and if you made this from your backend probably this won't be the IP of the cliente-side, in this case if you're using Heroku (for example) the IP always will be from the server and not from the customer outside the screen. I couldn't figure any option on the URL of geoip-db to search for a specific IPv4 address.

@patrickemuller Right! Thanks for pointing that out. I will have to return to this task.

I've run into this same problem due to the loss of Freegeoip.
Although I've moved to a different location service, is there an easy way to avoid a geocoded_by model from crashing if geocoder runs into a network error?
I use geocoded_by in my User model to display user locations. When Freegeoip went down, this prevented creating or updating any user records as geocoder was throwing the ENETUNREACH exception.
  geocoded_by :current_sign_in_ip do |obj,results|
    if geo = results.first
      obj.city, obj.country, obj.latitude, obj.longitude = geo.city, geo.country, geo.latitude, geo.longitude
      #obj.zipcode = geo.postal_code
    end
  end

I don't think wrapping a begin/rescue/end is possible here. Any suggestions of how best to handle geocoder exceptions within a model?

same problem here, will it affect other services of Geocoder?

@zia954 Sorry for getting back to you so late. Yes this error can occur on other services of Geocoder. It most likely means the the service was down when you were trying to query it.


migrate to GitHub Actions

Background
https://arstechnica.com/information-technology/2021/09/travis-ci-flaw-exposed-secrets-for-thousands-of-open-source-projects/

Definitely! GH Actions is the way to go.


[export] Add documentation for debugging and ensuring compatibility.

The rendered documentation is at https://jax--21976.org.readthedocs.build/en/21976/export/export.html#developer-documentation (for the export developer documentation, including compatibility) and https://jax--21976.org.readthedocs.build/en/21976/export/shape_poly.html#debugging (for the shape polymorphism debugging documentation)

The most important part to review is the process for ensuring compatibility: https://jax--21976.org.readthedocs.build/en/21976/export/export.html#ensuring-forward-and-backward-compatibility


migrate from v-repeat to v-for while using partial inside the loop

I have trouble migrating following code to Vue 1.0. I use 1.0.0-alpha.6 as a migration path.

	{{$key}} : <partial :name="'editor-'+param.type"></partial>

Vue setup
new Vue({
	el: 'body',
	data: {
		params: {
			paramA : {
				type: 'number',
				value: 42
			}
		},
	},
	partials: {
		'editor-number': '<input v-model="param.value" type="number">'
	}
})

as the v-for version throws warnings and an error i believe this to be a bug

sorry to necro, but it seems the issue is deeper. c.f.:

editor for {{$key}}

	<template v-for="input_type in schema[collection.type]">
		<partial :name="'editor-'+input_type"></partial>
	</template>

editor for {{$key}}

	<template v-for="input_type in schema[collection.type]">
		<partial :name="'editor-'+input_type"></partial>
	</template>

window.demo = new Vue({
	el: 'body',
	data: {
		document: {
			'collection#1': {
				"type": 'test_collection',
			}
		},
		schema : {
			test_collection: {
				"foo":"number",
			}
		}
	},
	partials: {
		'editor-number': '<input v-model="collection[$key].value" type="number"> {{collection | json}}'
	}
})

when outer loop is changed to v-for the inputs lose their value on blur

That's actually a separate issue, opening a new one in #1370.

can i use ionic components in vuejs? such as collection-repeat and mobile ui

@chenjie-cnooc I don't see how this is related to the topic, but no. Ionic depends on angular, and angular component directives are not compatible with vue and will require almost complete rewrite. The only thing you can reuse from ionic is CSS.


Dialog button broken

Dialog button broken with newer versions of electron. Need to re write how it's written to account for how it's done in newer versions

Decided to instead use '@electron/remote' and consider moving to a different framework in the future


Add undefinedReplacement option to diffJson

Fixes #155
Please, let me know if I need to change styling / rename undefinedReplacement to something more concise / anything else.

My apologies for distraction, it's indeed working with just options.
If I recall correctly, I was trying to keep signature of jsonDiff.diff(oldObj, newObj, callback) but now I see it is already handled at https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js#L6-L9

I've pushed a new commit with changes

@kpdecker Could you release a new version on npm, please?

Released in 3.2.0


socket: user space io handle invokes drain trackers immediately upon write

Fix use-after-free in user space IO handle where a drain callback may refer to a freed object (i.e. the connection on the other side of the internal listener, which may already have died). The solution employed herein is to call and clear the drain trackers on write(), since - as far as the handle being written to is concerned - we don't care about the write buffer as soon as it has been written to the peer's IO handle.
Signed off by: Eugene Chan<EMAIL_ADDRESS>Commit Message: socket: user space io handle invokes drain trackers immediately upon write
Risk Level: low (affects alpha feature only)
Testing: CI

@pianiststickman Build failure is legit: https://dev.azure.com/cncf/envoy/_build/results?buildId=137816&view=logs&j=8c169225-0ae8-53bd-947f-07cb81846cb5&t=4d0399a5-fd0d-5446-d022-32daa00183cc&l=590
/wait

It looks like gcc does not like overloaded virtual methods. https://dev.azure.com/cncf/envoy/_build/results?buildId=137870&view=logs&j=8bf29878-a4cc-50f7-4e84-2255e6fd4065&t=6d21c11b-b9a1-5233-0e60-ff2b96c1dac9&l=74 It looks like the solution is to pick a different name for the new move method. Maybe moveAndResetDrainTracking ?
/wait

I don't think it's that gcc inherently dislikes it, it's just that you have to override them all if you're going to override one of them in a subclass, and there's a convenience class out in test/mocks/buffer/mocks.h where I didn't add the additional overload. I guess clang doesn't warn for this.
I think the gcc check is passing now and the remaining failures are flakes?
/retest

This looks reasonable to address the Asan failure. I'm not sure what the purpose of this drain tracker is and why it's mis-aligned with the buffer data ownership. It looks like it's only used by h2 codec, but I don't recall why it's there.

It is only used in H/2 codec to track the number of frames that were written into the connection buffer. This number is checked against the limit to prevent flooding attacks using frames that are not subject to H/2 flow control. These trackers are released then buffer is written into the network connection object and this always happen before the H/2 codec is deleted.
Internal listener changes this, as the buffer slices written by H/2 codec are moved by the internal listener into the downstream connection buffer and are released when downstream connection drains the buffer. This can happen after the peer of the internal listener has been destroyed, leaving dangling pointers in tracker objects.


Completers list

Might be nice to list the brew commands needed to make all the autocompleters work.
Here's one:
$ brew install vagrant-completion

Done: https://github.com/mhulse/dotfizzles/wiki/Shell-completion


Distribution Mule Refactor

The Distribution Mule is in desperate need of a refactor to make it competitive with the other mules. I haven't yet decided on exactly what that means, but we really need to improve the params for the user experience and change the way it handles two-way trades.

Relates too https://github.com/Misunderstood-Wookiee/Mules-and-Warehouses-Extended/issues/6


Some lines in PEP 723 blocks trigger ERA001

Ruff (version 0.3.3) treats some lines from PEP 723 blocks as commented-out code.
Example:
# /// script
# requires-python = ">=3.11"
# dependencies = [
#   "requests<3",
#   "rich",
# ]
# ///

$ ruff check --select=ERA001 pep723.py
pep723.py:3:1: ERA001 Found commented-out code
pep723.py:6:1: ERA001 Found commented-out code
Found 2 errors.

Thanks for reporting. I agree that ERA001 should skip over these comments. This also brings up that ruff should probably support configurations in the script section, but we can track this separately

Wow, that was seriously speedy!


Move search panel to the bottom

Or at least make it configurable.
Maybe it's because I'm coming from Atom, but I feel like I need more horizontal space in search results.

#22322

Agree, move to bottom, or make configurable.


postgresql release

https://github.com/Azure/sdk-release-request/issues/3999

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-postgresql-flexible


⚠ Bofrost.lu has degraded performance

In ad971ff, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1422 ms

Resolved: Bofrost.lu performance has improved in 3f47344 after 7 minutes.


#92 LCOM2/3 via XML

as per #92
LCOM2:

LCOM2 is an attempt to address some shortcomings of the
original LCOM:
- LCOM gives a value of zero for very different classes
- Its definition is based on method-data interaction, which may not
be a correct way to define cohesiveness in the object-oriented world
- Very different classes may have an equal value
- As LCOM is defined on variable access, it's not well suited for
classes that internally access their data via properties
LCOM2 equals the percentage of methods that do not access a specific
attribute averaged over all attributes in the class. If the number
of methods or attributes is zero, LCOM2 is undefined and displayed
as zero. Values for LCOM2 are in the range [0, 1]. A low value indicates
high cohesion and a well-designed class. It is likely that the system has
good class subdivision implying simplicity and high reusability. A
cohesive class will tend to provide a high degree of encapsulation.
A higher value of LCOM2 indicates decreased encapsulation and
increased complexity, thereby increasing the likelihood of errors.

LCOM3:

LCOM3, like LCOM2, is an attempt to address some shortcomings
of the original LCOM:
- LCOM gives a value of zero for very different classes
- Its definition is based on method-data interaction, which may not
be a correct way to define cohesiveness in the object-oriented world
- Very different classes may have an equal value
- As LCOM is defined on variable access, it's not well suited for
classes that internally access their data via properties
LCOM3 values are in the range [0, 2], where 0 = "high cohesion",
1 = "no cohesion" (class should be split), and values >= 1 suggest
serious design flaws in the class, such as unused ("dead") attributes
or perhaps the attributes are accessed only from outside the class.
If there are no more than one method in a class, LCOM3 is undefined.
If there are no variables in a class, LCOM3 is undefined. An
undefined LCOM3 is displayed as zero.

Note about this PR:
I've taken the liberty to do a small refactor of Report by defining the "magic numbers" of mean and sigma as private constants. I also created a new constructor so that users can pass in just the skeleton, name, and parameters, without having to specify the mean and sigma (a common scenario).

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 11min)

Order was successfully finished: +15 points just awarded to @amihaiemil/z, total is +255

Payment to ARC for a closed pull request, as in §28: +15 points just awarded to @yegor256/z, total is +9055

The job #136 is now out of scope


[Android] React Native 0.66.* [fetch: Network request failed] [axios: Network Error] on file upload Similar to #28551

Description
When doing upload video recording sometimes (every 7 / 10) I got axios: Network Error on my Huawei P20 (works fine on Xiaomi Redmi Note 9 Pro). It is not persistent and seems like some race condition issues. And usually it does not work for the first time, but when forcing second upload file attempt works fine.
After adding XMLHttpRequest interceptor (to get java error). I got Stream Close error.
Seems like there are internal okhttp upload re-try and FileInputStream are closed on second retry.
Version
0.66.3
Output of react-native info
System:
OS: macOS 12.0.1
CPU: (8) arm64 Apple M1
Memory: 101.17 MB / 8.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 16.0.0 - /usr/local/bin/node
Yarn: Not Found
npm: 8.1.2 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.11.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.0.1, iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0
Android SDK: Not Found
IDEs:
Android Studio: 2020.3 AI-203.7717.56.2031.7621141
Xcode: 13.1/13A1030d - /usr/bin/xcodebuild
Languages:
Java: 11.0.11 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: ^17.0.2 => 17.0.2
react-native: ^0.66.3 => 0.66.3
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
const request = new XMLHttpRequest();

 request.onerror = function handleError(error) {
   console.log("xhr Network Error ", error);
 };

 request.onreadystatechange = function (e) {
   console.log("xhr upload complete this.readyState =" + this.readyState, e);
 };

 request.open("POST", uploadFileUrl, true);
 request.setRequestHeader("Content-Type", "multipart/form-data");
 request.send(formData);

Snack, code example, screenshot, or link to a repository
This code is used to debug network error by adding interceptor to the XMLHttpRequest
// https://github.com/facebook/react-native/blob/583471bc48ac45e09f6fb16bdb6fe7b1f588e996/Libraries/Network/XMLHttpRequest.js#L37
class XMLHttpRequestNetworkInterceptor {

  requestSent(/* id, url, method, headers */) {}

  responseReceived(/* id, url, status, headers */) {}

  dataReceived(/* id, data */) {}

  loadingFinished(/* id, encodedDataLength */) {}

  loadingFailed(id, error) {
    logger.error(
      {
        module: "api",
        message: "Loading failed with an error: " + error,
        debugMessage: "Error in XMLHttpRequestNetworkInterceptor.",
        data: {
          id: id,
          error: error
        }
      }
    );
  }
}

XMLHttpRequest.setInterceptor(new XMLHttpRequestNetworkInterceptor());

I faced on the same issue. It doesn't happen in all cases, but only on certain networks.
It seems to have something to do with this pr (#31084).
After downgrading OkHttp to V3, the problem was solved.

I faced on the same issue. It doesn't happen in all cases, but only on certain networks.
It seems to have something to do with this pr (#31084).
After downgrading OkHttp to V3, the problem was solved.

how to downgrading OkHttps version?


Real documentation, guides and examples

Autodocs is alright but we'll need real written docs when we want to release anything.
Update: This is basically just pending REST API functions being added.

sort of wip but subsumed by the release checklist


Debug mode does not set the DeadlockDetectionTimeout

What was changed

The debug mode now sets correctly the DeadlockDetectionTimeout after fixing coding error and it uses the same variable to detect the debug mode.
Why?

It's a bug and second the package private debugMode variable is set when the program is loaded while the other condition which reads after the new test environment can be inconsistent  if the test calls the os.SetEnv just before.
Checklist

Closes
N/A
How was this tested:
Manually.
Any docs updates needed?
N/A

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hrmm, that does indeed look like a bug. I was wondering why TEMPORAL_DEBUG was working for me though. After following the code, it appears that the DeadlockDetectionTimeout option just ends up being used inside the coroutine call where it forcefully overrides that value anyways when the env var is set,
Can you help me understand how the buggy DeadlockDetectionTimeout override w/ TEMPORAL_DEBUG issue that you fixed manifested for you? I'm showing debugMode would have overridden it later anyways. Or is this just a case of fixing the bug while there and the testsuite env-var-re-eval was the real problem?

In previous SDK version I didn't use the TEMPORAL_DEBUG I just simply set the workflowEnv.SetTestTimeout(5000 * time.Second) but after I migrated to the new v1.12.0 my unit test failed and when I tried to debug the same way It panic so I tried to investigate why the old  way not working. Next I called just os.SetEnv("TEMPORAL_DEBUG", "1") before I called the NewTestWorkflowEnvironment() function but it still resulted in panic. Then I noticed the  DeadlockDetectionTimeout so I set the environment TEMPORAL_DEBUG=1 to make sure DeadlockDetectionTimeout is set because my unit test was reaching that buggy line which resets to 1s.  Overall the debug didn't work as It did before. Now Looking the code without debugging, I can only spot one possible thing. It's the explicit worker option.
// os.SetEnv("TEMPORAL_DEBUG", "1")
testSuite := &testsuite.WorkflowTestSuite{}
workflowEnv = testSuite.NewTestWorkflowEnvironment()
workflowEnv.SetWorkerOptions(worker.Options{
    // Here the worker option is not nil so maybe the temporal didn't use the default
			BackgroundActivityContext: contextWithTestClient(context.Background()),
    // Now I realised I could have set it here
    //			DeadlockDetectionTimeout: "long enough",
})
workflowEnv.ExecuteWorkflow(workflow.ProcessOrderWorkflowV1, workflowParam)

Thanks! Merged.


Restrict access to the Transaction endpoints

Overview
The Transaction extension supports creating, updating, and deleting items. I assume we want to restrict these endpoints to the Tools team?
Tasks

[ ] Disable the Transaction extension in the AWS-hosted API
[ ] The AWS-hosted API should login to the database with read-only permissions
[ ] The make run-api command should still login to the database with read-write permissions.
[ ] See https://stac-utils.github.io/pgstac/pgstac/ for documentation on roles
[ ] Document in the README how to run the API locally for accessing the Transaction endpoints.
[ ] Deploy the database passwords to AWS Secrets Manager and document how to access them (in README)

If we can't require authorization for specific endpoints, perhaps we could provide a public API without the Transaction extension, and a private (Tools team only) API with the extension, and connect them to the same backend database?

I asked about this in https://gitter.im/SpatioTemporal-Asset-Catalog/Lobby. If I don't get any helpful responses and there doesn't appear to be a way to do this after further investigation of the STAC API spec and the stac-fastapi docs, maybe we can set up some sort of proxy API for managing authorization for specific endpoints?

I'm not seeing an obvious way to disable the Transaction Extension in an app that's already been created (we're using the provided pgstac app), but I asked about it in the Gitter channel.

After modifying the AWS-hosted API to log in as the pgstac_read user, I'm now getting a permission denied error for all /collections/* endpoints, even when making a GET request. I wonder if disabling the Transaction Extension would help?

I confirmed that:

the AWS-hosted API (connected to the database via the pgstac_read user) can access all of the non-Transaction endpoints, and that it cannot create or delete collections (though I didn't test the other Transaction endpoints).
the pgstac_read user has only the SELECT privilege for all of the _items_* tables and the collections table.
the local API (connected to the database via the postgres user) can create and delete collections (though I didn't test the other Transaction endpoints).

A relevant comment in the STAC gitter I'm putting here for posterity:

We have been demoing authentication & authorization layer as a dependency to a FastAPI app at one of the previous OGC code sprints. Find an example for pygeoapi at https://github.com/geobeyond/fastgeoapi/tree/develop

doesn't look like anything stable enough for us but might be worth looking at in more detail


removed static passwords per eng request

Updated main.tf to parameterize passwords due to hitting on a guardrail scan. Note that these resources are temporary for counting/testing purposes but good hygiene is desired.

@theopolis - Could I get a thumbs up if this will please your scanner?


What can we do about long labels on x-axis?

Germans love long words! Doing the horserace for the German election I used the standard term (Bundestagswahl) which is already too long. What can we do about it?

You can already increase the top margin if you want to accommodate the longer words, I think.

It's possible we should also auto-truncate words (i.e. Bundesta…) if they don't fit in the specified margin, but maybe we wait until users tell us they want this?

I think the margin is a good solution.


Do not mangle 'Credentials' object

Do not mangle the 'Credentials' object
fix #289

Codecov Report

Merging #298 into 2.x will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              2.x     #298   +/-   ##
=======================================
  Coverage   76.67%   76.67%
=======================================
  Files          39       39
  Lines         763      763
=======================================
  Hits          585      585
  Misses        178      178

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 c31bccd...ce79082. Read the comment docs.


FGSEA service

Description of new feature
What should the new feature do?  For visual features, include an image/mockup of the expected output.
Allow the FGSEA algorithm to be used as a service.

TODO requirements...
...

Motivation for new feature
Describe your use case for this new feature.
GSEA is an important piece of the algorithm.

@mikekucera, any outstanding requirements for this in particular?

No.

Ref: Reliability issues on Digital Ocean App Engine?


Add publish github action

Pull Request Test Coverage Report for Build 607

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.937%

Totals

Change from base Build 604:
0.0%

Covered Lines:
744

Relevant Lines:
757

💛  - Coveralls

Pull Request Test Coverage Report for Build 607

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.937%

Totals

Change from base Build 604:
0.0%

Covered Lines:
744

Relevant Lines:
757

💛  - Coveralls