Introduce TreeNodeMutator for rewriting TreeNodes in place, change optimizer to rewrite LogicalPlan in place - 10% faster planning time

Note this PR looks large, but it is mostly comments and changes of &plan to plan in tests
Which issue does this PR close?
Part of https://github.com/apache/arrow-datafusion/issues/9637 (based on some ideas from https://github.com/apache/arrow-datafusion/pull/9708). 🙏 @jayzhan211
closes https://github.com/apache/arrow-datafusion/pull/9768
Rationale for this change
See https://github.com/apache/arrow-datafusion/issues/9637
TLDR is that the optimizer currently copies LogicalPlans many times unnecessarily (I think it is quadratic if not worse in the number of tree nodes). This is both slow and requires many memory allocations.
Note we can do even better, but I want to keep the PR sizes as small as possible.
What changes are included in this PR?

Add in place mutate / Mutator APIs to TreeNode
Implement mutate for LogicalPlan (aka &mut LogicalPlan)
Rewrite Optimzier to use TreeNode API

I am trying to keep this PR relatively small, and I have other improvements in mind for follow on PRs (see below). This PR is now finally feasible thanks to the really nice TreeNode cleanup from @peter-toth  and @berkaysynnada in https://github.com/apache/arrow-datafusion/pull/8891
Are these changes tested?
Functionally covered by existing tests, and I measured performance using the benchmarks -- I see an mprovement of about 10% across TPCH queries.
Details

++ critcmp main optimizer_tree_node
++ critcmp main optimizer_tree_node
group                                         main                                    optimizer_tree_node
-----                                         ----                                    -------------------
logical_aggregate_with_join                   1.01  1287.8±105.61µs        ? ?/sec    1.00   1274.7±7.85µs        ? ?/sec
logical_plan_tpch_all                         1.00     17.3±0.16ms        ? ?/sec     1.00     17.3±0.14ms        ? ?/sec
logical_select_all_from_1000                  1.00     93.4±1.40ms        ? ?/sec     1.02     95.3±0.34ms        ? ?/sec
logical_select_one_from_700                   1.00    740.6±8.75µs        ? ?/sec     1.00   743.8±17.11µs        ? ?/sec
logical_trivial_join_high_numbered_columns    1.00   789.6±22.14µs        ? ?/sec     1.00   792.5±19.06µs        ? ?/sec
logical_trivial_join_low_numbered_columns     1.00   755.3±13.71µs        ? ?/sec     1.00   759.0±18.47µs        ? ?/sec
physical_plan_tpch_all                        1.11    133.8±0.87ms        ? ?/sec     1.00    120.7±0.70ms        ? ?/sec
physical_plan_tpch_q1                         1.15      7.7±0.15ms        ? ?/sec     1.00      6.7±0.05ms        ? ?/sec
physical_plan_tpch_q10                        1.10      6.3±0.05ms        ? ?/sec     1.00      5.7±0.04ms        ? ?/sec
physical_plan_tpch_q11                        1.09      5.0±0.03ms        ? ?/sec     1.00      4.6±0.03ms        ? ?/sec
physical_plan_tpch_q12                        1.08      4.1±0.03ms        ? ?/sec     1.00      3.8±0.03ms        ? ?/sec
physical_plan_tpch_q13                        1.09      2.7±0.03ms        ? ?/sec     1.00      2.5±0.02ms        ? ?/sec
physical_plan_tpch_q14                        1.05      3.4±0.02ms        ? ?/sec     1.00      3.3±0.02ms        ? ?/sec
physical_plan_tpch_q16                        1.12      5.3±0.04ms        ? ?/sec     1.00      4.7±0.04ms        ? ?/sec
physical_plan_tpch_q17                        1.11      4.9±0.04ms        ? ?/sec     1.00      4.4±0.03ms        ? ?/sec
physical_plan_tpch_q18                        1.11      5.4±0.04ms        ? ?/sec     1.00      4.9±0.03ms        ? ?/sec
physical_plan_tpch_q19                        1.06     10.1±0.09ms        ? ?/sec     1.00      9.5±0.07ms        ? ?/sec
physical_plan_tpch_q2                         1.14     12.2±0.09ms        ? ?/sec     1.00     10.7±0.10ms        ? ?/sec
physical_plan_tpch_q20                        1.14      6.4±0.05ms        ? ?/sec     1.00      5.6±0.04ms        ? ?/sec
physical_plan_tpch_q21                        1.11      9.5±0.08ms        ? ?/sec     1.00      8.6±0.18ms        ? ?/sec
physical_plan_tpch_q22                        1.10      4.7±0.04ms        ? ?/sec     1.00      4.2±0.03ms        ? ?/sec
physical_plan_tpch_q3                         1.08      4.2±0.04ms        ? ?/sec     1.00      3.9±0.03ms        ? ?/sec
physical_plan_tpch_q4                         1.09      3.3±0.02ms        ? ?/sec     1.00      3.0±0.03ms        ? ?/sec
physical_plan_tpch_q5                         1.08      6.1±0.04ms        ? ?/sec     1.00      5.6±0.04ms        ? ?/sec
physical_plan_tpch_q6                         1.05      2.0±0.02ms        ? ?/sec     1.00  1944.8±12.65µs        ? ?/sec
physical_plan_tpch_q7                         1.11      8.6±0.09ms        ? ?/sec     1.00      7.8±0.06ms        ? ?/sec
physical_plan_tpch_q8                         1.12     12.1±0.10ms        ? ?/sec     1.00     10.8±0.09ms        ? ?/sec
physical_plan_tpch_q9                         1.13      9.2±0.07ms        ? ?/sec     1.00      8.1±0.11ms        ? ?/sec
physical_select_all_from_1000                 1.13    684.2±1.45ms        ? ?/sec     1.00    606.5±1.42ms        ? ?/sec
physical_select_one_from_700                  1.00      4.2±0.03ms        ? ?/sec     1.01      4.2±0.03ms        ? ?/sec

Are there any user-facing changes?

Faster planning
Ability to rewrite  LogicalPlan in place using TreeNode API

Planned Follow Ons:
Here are follow on tickets that will improve things even more

[ ] Add API to OptimizerRule to rewrite in place (and avoid yet another copy)
[ ] Add an example of how to use the "in place tree write" API
[ ] Supporting rewriting Exprs in place in addition to LogicalPlan (implement TreeNodeMutator -- specifically ExprRewriter should be a big win)
[ ] API to support in place rewrites of UserDefinedLogicalPlan
[ ] Change other uses of TreeNodeRewriter to TreeNodeMutator (e.g. ExprRewriter, etc)

Update here is that I think this PR now has the basic code to do in-place updates of TreeNodes in general and LogicalPlans in particular 🎉
TODOs:

[ ] Run performance benchmarks to show this helps
[ ] Complete edge case implementations (DDL, user defined nodes), polish PR description

Follow ons:

[ ] File ticket for supporting rewriting Exprs in place (implement TreeNodeMutator -- specifically ExprRewriter should be a big win)
[ ] File ticket for: Better OptimizerRule API to support rewriting in place
[ ] File ticket for: API to support rewrites of UserDefinedLogicalPlan
[ ] File ticket for: change additional uses of TreeNodeRewriter to TreeNodeMutator
[ ] File ticket for: change additional uses of TreeNodeRewriter to TreeNodeMutator
[ ] File ticket for  an example of how to use the "in place tree write" API

Updated description with performance results (about a 10% improvement for this PR alone). I think we can squeeze a bunch more out of this approach with the additional changes to rewrite in place (will file follow on tickets).
Proceeding to get this PR ready for review

I wonder if it would make sense to split this PR into 2 parts as it seem to mix 2 very different ideas.

It introduces an in place mutation TreeNode API. First of all, I really like that API and I too think it can be faster than the current consume and procude style ones (TreeNode::rewrite(), TreeNode::transform_down_up()). But I think the only reason why it is faster is because only smaller references (e.g. &mut LogicalPlans) are stored on the stack during a transformation and not the original structures themselves (LogicalPlans). Otherwise the 2 APIs are very similar, there should be nothing that you can do with a &mut LogicalPlans but you can't do with an owned LogicalPlan.
It uses a trick in rewrite_arc to avoid copying Arcs. But this trick shouldn't require introducing the new API, it should simply work with changing the existing LogicalPlan::map_children().

So I don't think we need a new API for https://github.com/apache/arrow-datafusion/pull/9768. Don't get me wrong, I favour the new API but I would rather move that to a completely separate PR and slowly transform the code to using that in the future.
As for the new LogicalPlan methods (rewrite_inputs(), rewrite_subqueries(), rewrite_exprs(), ...) in this PR, the problem is that they use the new Transformed::and_then() method to iterate over sibling nodes in the tree (e.g. https://github.com/apache/arrow-datafusion/pull/9780/files#diff-b2431d53b487c80c797aecd88859229fb902f74bf888a598878386055b717bbcR188-R189 or https://github.com/apache/arrow-datafusion/pull/9780/files#diff-b2431d53b487c80c797aecd88859229fb902f74bf888a598878386055b717bbcR229-R230). But that's not correct as the new and_then() doesn't respect TreeNodeRecursion::Stop behaviour. We already have TransformedIterator::map_until_stop_and_collect() and TreeNode::try_transform_node() to chain transformations in such cases (see examples in Expr::map_children()). BTW, I'm trying to simplyfy those try_transform_node chained calls in https://github.com/apache/arrow-datafusion/pull/9876.

So how about this for a plan:

I'll make a PR that changes LogicalPlan::map_children to avoid copies if possible (which should be beneficial in many places in DataFusion)
I'll create a PR that changes the Optimizer to use a TreeNodeRewriter (rather than TreeNodeMutator) which will avoid even more copies after 1 is complete.

We can then compare the performance of the TreeNodeRewriter to this PR with TreeNodeMutator and decide and see if the additional TreeNodeMutator API is worth the extra API surface / migration.

Sounds very good to me, I'm really curious how much improvement the changes can bring.

Converting to draft as we work on this API so someone doesn't merge it accidentally

Per https://github.com/apache/arrow-datafusion/pull/9780#discussion_r1552005102 I think we can accomplish the same thing without a mutator at this time, so closing this PR


Issue running ./mfc.sh test on Phoenix

This issue is mostly the same as this one: https://github.com/MFlowCode/MFC/issues/143
Where when on an interactive node, I get the same error:
Error: Test tests/D79C3E6F: 1D -> bc=-1: Line count didn't match.

I've tried using different salloc commands, like -N 1 --ntasks-per-node=1 and -N 1 -n 1, but these doesn't seem to help. I have also tried using -b mpirun and -b srun, but both have problems.
I can successfully run a test from a login node, which submits the job some other way. It seems like  @henryleberre 's https://github.com/MFlowCode/MFC/pull/146 was supposed to fix this via OpenMPI, but the issue appears to be back (or maybe never completely worked in the first place... or I just didn't understand it).
This issue isn't mission-critical and I won't label it a "bug," but it seems like getting to the bottom of this more comprehensively will also be useful for others. Presumably, many are doing interactive testing.

@sbryngelson you can run it using the following commands:
salloc -N 1 -n 2 (Get 1 node with 2 ranks since one of the tests uses 2 ranks)
./mfc.sh test -b mpirun
I used this and got all the tests to pass
You cannot use srun inside an interactive node since this causes a contradiction with --ntasks-per-node parameter. And the reason why mpirun failed for you is because you launched srun initially, which can incorrectly create extra files in D folder (as it launches the job with more than 1 rank), leading to a line count mismatch. So if you do incorrectly launch it with srun once, you'd have to clear the data files before launching it with mpirun
So simply run rm -rf tests//D/ and rm -rf tests//p_all/ before running ./mfc.sh test -b mpirun and you should be good

Thanks @anandrdbz


Refresh: Rework First Use tutorial now the IMPORT TWEETS feature is gone

fixes https://github.com/crate/crate-tutorials/issues/29

thx for catching those! committed and rebased


feat(Lezer grammar): Add bin, oct and hex notation

This adds support for binary, octal and hexadecimal notation along with tests.
This also allows plus and minus signs after the e in scientific notation.

Very nice!


Bugfix: r->limit_rate does't work if limit_rate_set variable is not set

tengine引入patch: https://github.com/alibaba/tengine/commit/c99b0416c349da9783e55c4b5f4df3ee743bbab3

 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.


Problem with Aurora at startup with Razer Blackwidow chroma.

What are you experiencing an issue with?

[x ] Aurora
[ ] Aurora supported game, (Fill in the game)
[ ] Aurora Wrapper
[ ] Aurora Profile
[ ] Aurora supported device, (Fill in problematic devices)
[ ] Aurora Scripts
[ ] Aurora Updater
[ ] Aurora Lighting issue
[ ] Other, (Fill in another issue here)

What kind of an issue is it?

[ ] Crash
[ ] Performance problems
[ ] Visual bug
[ ] Localization issue
[ ] Enhancement suggestion
[ ] Device issue
[x ] Other, (Startup problem)

Expected behavior:
Aurora should start setting my lightning profile, overlying Razer's Synapse profile.
Actual behavior:
It will setup my profile (for example a fully red keyboard) but the layers are overlied by Razer Synapse's layer in an intermittent and discontinuos way. For a fraction of second it will show Aurora's layer, and for another fraction, it will show Synapse's layer continuosly.
How often does this problem occur?

This problem occurs... (sometimes)
Please describe the steps to reproduce this issue:
The issue can be reproduced by doing following steps:

Create a lightning profile
Save the profile
Restart pc and wait untill Aurora is fully started

What is the version of Aurora you are experiencing this issue with?

My version is... (v0.6.0b)
Does the previous version of Aurora have this issue?
The previous version, I'm not really sure which was, but it didn't have this issue, although it wouldn't load profiles correctly.
Please include any logs, screenshots, or files that are related to this issue:

Log: http://pastebin.com/LVBVt92f

I don't have a Razer keyboard to replicate this. But it sounds like an issue with Razer SDK, which is outside of Aurora's scope. Report this to Razer, if you can.

But it's really strange because I recently formatted my pc and with previous windows installation, with same aurora and Synapse version, there were no problems.
It's nothing too annoying considering that when it happens, if I just close Aurora from Task manager and restart it, the problem will not occur again, was just to know if this was a known bug.


inline "suggestions" or "descriptions" in VS environment that can't be removed

We have written the needed data into your clipboard because it was too large to send. Please paste.
Type: Performance Issue
It's been going on for over a month. When I declare a variable or a function, a colored box that I can't get rid of appears in between, for instance, "let letters" and "= Array.from(word);" and the box contains some kind of extraneous suggestion or description that your product thinks I want, like ": any[]" in the above example. I've gone through every extension and linting functionality I'm aware of in my VS, and have been unable to get rid of these things.
VS Code version: Code 1.71.2 (74b1f979648cc44d385a2286793c226e611f59e7, 2022-09-14T21:07:15.900Z)
OS version: Darwin arm64 21.6.0
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
2, 2, 2

Memory (System)
8.00GB (0.06GB free)

Process Argv
--crash-reporter-id 9e271b79-2471-42c3-9840-c75c30a7363a

Screen Reader
yes

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
   15	   131	 22877	code main
    0	    66	 22880	   gpu-process
    0	    16	 22882	   utility-network-service
    0	    90	 23263	   shared-process
    0	    16	 23309	     ptyHost
    0	     8	 75100	       /opt/homebrew/Cellar/zsh/5.8.1/bin/zsh (figterm)
    0	     0	 75113	         /opt/homebrew/Cellar/zsh/5.8.1/bin/zsh --login
    0	   197	 75031	   window (repeatingTranslate.js — appAcademy)

Workspace Info
|  Window (repeatingTranslate.js — appAcademy)
|    Folder (appAcademy): 126 files
|      File types: md(36) js(29) png(19) json(7) DS_Store(2) gitignore(1)
|                  prettierignore(1)
|      Conf files: package.json(3);

Extensions (23)

Extension
Author (truncated)
Version

simple-react-snippets
bur
1.2.7

npm-intellisense
chr
1.4.2

path-intellisense
chr
2.8.1

vscode-eslint
dba
2.2.6

vscode-npm-script
eg2
0.3.28

el-vsc-product-icon-theme
ElA
0.1.8

vsc-material-theme
Equ
33.5.0

vsc-material-theme-icons
equ
2.4.0

path-autocomplete
ion
1.22.1

RelativePath
jak
1.5.0

fluent-icons
mig
0.0.18

vscode-docker
ms-
1.22.1

remote-containers
ms-
0.251.0

material-icon-theme
PKi
4.20.0

material-product-icons
PKi
1.4.1

pyro-icons
pyr
1.0.0

vscode-thunder-client
ran
1.19.3

java
red
1.11.0

synthwave-vscode
Rob
0.1.14

bunker
sld
1.1.6

vscode-icons
vsc
11.19.0

fig
wit
0.0.6

material-theme
zhu
3.15.5

(5 theme extensions excluded)

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscorecescf:30445987
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30557514
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vscaac:30438847
vsclangdf:30486550
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyone:30548225
2144e591:30553903
i5d37513:30580093
pyindex848cf:30577861
40g7c324:30573242

Maybe these:
https://code.visualstudio.com/updates/v1_60#_inlay-hints-for-javascript-and-typescript
If not please paste a screenshot.
Also, it is unclear why you created this as a Performance issue.

That's totally them!! Only with the themes I like to use in my VS, these "hints" are utterly in the way (in RBE Matrix Skin Theme, for instance, they're bright yellow on an otherwise dark screen). I'll try to find and undo them in my settings right now, and if I do then I'll come close this issue. Many thanks!

 Why do I make my life so complicated?  Anyway, thanks! :)


When running app in safari browser, if you add feedback, it clears the code you have typed and also does not submit feedback properly

Buttons no longer seem to work at all on master branch. Wondering if this is why
(Seems to be triggering menu opening based on  const belongsToPopup = event['path'])


Source Url changed for Nhentai

Source information
NHentai 1.4.46
Source language
English, Multi,
Source new URL
https://nhentai.to/
Other details
Please update it quickly
Acknowledgements

[X] I have updated all installed extensions.
[X] I have opened WebView and checked that the source URL has not changed yet.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I will fill out all of the requested information in this form.

Up, this is vital lmao


Feat(addon): add more kustomize traits

What this PR does / why we need it:
add more kustomize traits
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
/cc @wonderflow @chivalryq

We don't need these traits now since we have envbinding to complete these features.
/close


Add toTrampoline to Try

This will allow multiple recursive algorithms defined in terms of Try to be executed concurrently on a single Thread.

Released in 2.0.0-FINAL


Update mol test playbook for consuming it in edpm-ansible jobs

In order to use ci-framework molecule base zuul jobs in edpm-ansible
project, We need to make the roles path and molecule config path
configurable using ansible vars in molecule-test.yml playbook.
It will help to override the roles_path with edpm_ansible roles
and test it via zuul jobs.
Here is the edpm-ansible pr [1] which uses the same.
[1]. https://github.com/openstack-k8s-operators/edpm-ansible/pull/154
This PR has:

[ ] Appropriate testing (molecule, python unit tests)
[ ] Appropriate documentation (README in the role, main README is up-to-date)

/approve


refactor: rename Trade keyword from TestTradeFactory.test.ts into Swap

Definition of Done:

Find all the Trade keywords and change them into Swap as it is more logical following the sex appeal of the project and avoid mismatching with a word that is (for most people) attached to negativity.

I can and will do this task

I think i pull request this task with https://github.com/blockful-io/swaplace-contracts/pull/56


added maker for svelte

Enable eslint and svelte-check linters for svelte

Do you have some example output from svelte-check that could be added/used with a test then?

1632317135621 START "/Users/dbarroso/workspace/example-repo"
1632317136952 ERROR "src/lib/SomeComponent/index.svelte" 2:11 "'\"svelte\"' has no exported member named 'nMount'. Did you mean 'onMount'?"
1632317136952 ERROR "src/lib/SomeComponent/index.svelte" 8:2 "Cannot find name 'onMount'. Did you mean 'nMount'?"
1632317136952 COMPLETED 10 FILES 2 ERRORS 0 WARNINGS 1 HINTS

I've added some test, and fixed the returning of makers, which should be the name, not the exe.
Please check if it still works for you.
(I've merged master to make the test simpler, and retriggered the build for flaky tests)

yeah, it works fine. Thanks for the help here :)


ODE Methods not fvar<T> compatible

Description
The ODE functors aren't compatible with fvar<T> inputs and fail to compile
Current Version:
v4.4.0

That's no surprise. They have never been designed to be able to handle that as higher order derivatives are not in scope for them. It's not impossible to do, but getting first order to work is already a big challenge...higher order isn't a lot better...

Do any of the implicit functions support fvars? I was under the impression that none of them did, and that this was semi-intentional

Implicit functions require bespoke methods to compute derivatives and it is often efficient to directly compute the vector-Jacobian product required for reverse-mode autodiff. It is also possible to write methods which directly compute Jacobian-vector products required for forward autodiff but there was no use-case in Stan. Beyond that, I suspect we can also derive methods which "directly" compute higher-order derivatives, e.g. by solving the right differential equation.
Technically, we have methods which compute the full Jacobian for ODEs (and once upon a time for algebraic solvers -- but this has been replaced with an adjoint method). The full Jacobian can then be contracted with a vector for either forward or reverse mode.
For ODEs, I think the RK45 and BDF methods require a linear solve, so a Jacobian is taken for the ODE RHS with respect to the input and this derivative is obtained via reverse mode ODE.
To corroborate @wds15  support for fvar is likely non-trivial, if technically feasible.
What is the motivation for using fvar in the ODE?

What is the motivation for using fvar in the ODE?

I've just running the new hessian() method in cmdstanr across a bunch of example models to check for higher-order compatibility, and the ODE methods were the main failures (among many others).
It would be great if they were compatible, even if they weren't very performant - so that post-processing applications which need Hessians/second-order derivatives would work.
But I recognise that it's likely a bunch of work so there's no pressure from me!


IMPORTANT! Security Vulnerability Detected in your Repository

Hey there!
We have detected a security vulnerability in your repository. Please contact us at https://github-scanner.com to get more information on how to fix this issue.
Best regards,
Github Security Team

This is malware: do not access, Ends up asking you to run some code which downloads and runs this malware https://www.virustotal.com/gui/url/875c0f954fe6f1cd78be37453e98fe50474c7e48ff55ab3be0a013b73560f3eb


Improve wording for catch-all routes

I found some paragraphs that seem to contradict each other in the routing documentation: https://ocelot.readthedocs.io/en/latest/features/routing.html

Ocelot’s routing also supports a catch all style routing where the user can specify that they want to match all traffic.
[...]
The catch all has a lower priority than any other Route. If you also have the Route below in your config then Ocelot would match it before the catch all.
[...]
0 is the lowest priority, Ocelot will always use 0 for /{catchAll} Routes and this is still hardcoded. After that you are free to set any priority you wish.
[...]
In the example above if you make a request into Ocelot on /goods/delete Ocelot will match /goods/delete Route. Previously it would have matched /goods/{catchAll} (because this is the first Route in the list!).

The behavior I'm seeing is closer to what the last paragraph describes, which is that order matters when no Priority is explicitly assigned.
What's the expected behavior? What's the default priorty for routes without a catch-all token?
PS I'm using Ocelot v13.5.2 and I'm unable to upgrade for technical reasons.

I did a little more digging and I think my problem is that this route is not prioritized as a catch-all route?
❌/goods/{catchAll}
Only this route gets de-prioritized:
✔/{catchAll}

If someone can please confirm my suspicion then I can create a PR for the documentation to explain Priority for open-ended path templates.

@sliekens
What's your PR number?

🆗 Steven, if you still believe this is an issue, then come back to us with PR. I agree this logic is quite unclear, and it will be hard to improve something in this Priority feature.
Maybe we could implement some advanced Priority route config validator adding more rules to FileConfigurationFluentValidator class.
For now, developers are able to change priority.
Please show us your strong intention to contribute, and we will reopen this issue.


Nil groups make panic in MatchData

Your operating system: sw_vers

ProductName:    Mac OS X
ProductVersion: 10.13.1
BuildVersion:   17B48

How did you install Goby: go get github.com/goby-lang/goby
Goby version: 0.1.3
The value of $GOBY_ROOT: /Users/kachick/gocode/src/github.com/goby-lang/goby

'b'.match(Regexp.new('(a)?'))

panic: runtime error: index out of range

Error messages

# goby -i
Goby 0.1.3 👺 🤠 😎
» 'b'.match(Regexp.new('(a)?'))
panic: runtime error: index out of range

goroutine 1 [running]:
github.com/goby-lang/goby/vendor/github.com/dlclark/regexp2.(*Capture).String(...)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/match_data.go:123
github.com/goby-lang/goby/vm.(*VM).initMatchDataObject(0xc4200b42c0, 0xc4201da000, 0xc42019c094, 0x4, 0xc42019c048, 0x1, 0x0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/match_data.go:123 +0x506
github.com/goby-lang/goby/vm.builtinStringInstanceMethods.func28.1(0xc4201360f0, 0xc42019e390, 0x1, 0x1, 0x0, 0xc42019e390, 0x0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/string.go:1063 +0x107
github.com/goby-lang/goby/vm.(*thread).evalCallFrame(0xc4201360f0, 0x480d1c0, 0xc4201c2360)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:63 +0x214
github.com/goby-lang/goby/vm.(*thread).startFromTopFrame(0xc4201360f0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:42 +0x61
github.com/goby-lang/goby/vm.(*thread).evalBuiltinMethod(0xc4201360f0, 0x480c8a0, 0xc4201c2200, 0xc4200ef980, 0x0, 0x1, 0xc4201be3c0, 0x0, 0x1, 0x4565223, ...)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:240 +0x3f8
github.com/goby-lang/goby/vm.glob..func25(0xc4201360f0, 0x1, 0xc4201c21e0, 0xc42011c540, 0x4, 0x4)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/instruction.go:487 +0x4d1
github.com/goby-lang/goby/vm.(*thread).execInstruction(0xc4201360f0, 0xc4201c21e0, 0xc42011c580)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:124 +0x70
github.com/goby-lang/goby/vm.(*thread).evalCallFrame(0xc4201360f0, 0x480d260, 0xc4201c21e0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:50 +0x38f
github.com/goby-lang/goby/vm.(*thread).startFromTopFrame(0xc4201360f0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/thread.go:42 +0x61
github.com/goby-lang/goby/vm.(*VM).startFromTopFrame(0xc4200b42c0)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/vm.go:269 +0x2f
github.com/goby-lang/goby/vm.(*VM).REPLExec(0xc4200b42c0, 0xc4201c6008, 0x1, 0x1)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/vm/repl.go:43 +0x78f
github.com/goby-lang/goby/igb.StartIgb(0x45654fb, 0x5)
        /Users/kachick/gocode/src/github.com/goby-lang/goby/igb/repl.go:230 +0xd23
main.main()
        /Users/kachick/gocode/src/github.com/goby-lang/goby/goby.go:29 +0x954

@saveriomiroddi While I checking the bug, I found that the following custom struct is used in MatchData struct:
type MatchDataObject struct {
	*baseObj
	captures  []string
	positions []int
	pattern   string // original regex
	text      string // original text
}

I'd like to change the struct to the following, by using the existing *regexp.Match
type Match = regexp2.Match
type MatchDataObject struct {
	*baseObj
	match *Match
}

The struct contains all attributes for regexp, including captures/position/pattern/text.
Actually, I tried the change locally, and confirmed it works fine and fixes the bug.
Is it OK for me to change as that?

Is it OK for me to change as those?

Absolutely. Good catch :laughing: I actually don't know how/why I missed that :smile:

In addition, I'd like to change the format of MatchData as follows, using 0: for the original text:
Is it OK for me to change as those?

Regarding those, @st0012 should answer, as it's a matter of design choice. I've followed the Ruby standard, which makes sense - the group 0 is not an individual capturing group as the others, that's why it has no 0: prefix.

@st0012 I'd send the PR if you're ok with 0: prefix.

Thank you!


[WIP] SFBUILD/F4BUILD - Vendor-independent build system for F4PGA

This is an update to #2225. I squashed everything into a separate branch since the commit history is quite long and chaotic and the branch was rebased by @mkurc-ant, no longer matching my local version which was based on Quicklogic's fork.
What is this?
sfbuild (not a final name) is a CLI tool written in Python that  serves as a frontend for executing flows. On the other hand, sfbuild aims to provide developers with an ability to easily add platforms and modify/extend flows in a vendor-independent way. The philosophy behind this tool is to generate and execute flows dynamically based on user and developer-provided configurations and metadata that descibes the tools utilized within the flow (think edalize wrappers on steroids).
How to use it?
Example usage:
sfbuild -v build -p XC7A35TICSG324-1L -t bitstream -Dsources=[counter.v] -Dsynth_log=synth.log -Dpack_log=pack.log -Dbuild_dir=build/arty_35 -Dxdc=[arty.xdc] -Vpart=xc7a35tcpg236-1 -Vtop=top

builds target bitstream using a list of source files (one entry: counter.v), arty.xdc as constraints, top being the name of a top module. Additionally it will create build/arty_35 directory to output all files and will produce logs from synh and pack stages. The target is XC7A35TICSG324-1L chip.
You can provide any depency with -D flag followed by a symbolic dependency name and a path or list of paths. In a similar manner, you can provide values with -V flag. You can learn more about differences between dependencies and values in a later section.
Alternatively the configuration can be provided through a JSON.
Ok, but how does it work and what does any of that mean?
sfbuild splits a flow into stages, where each stage represents an instance of a module. A module is similar to an edatool, from edalize in a sense that it wraps an external tool, but contains more metadata and has more complex configuration interface. Each module features a set of inputs and outputs which are represented by symbolic dependencies. A symbolic dependency is a name given to a file/set of files that play a particular role in the flow. By using symbolic dependencies instead of explicit paths, sfbuild is able to perform dependency resolution without requiring the user to figure any of the logic behind flow, as long as they are able to provide necessary dependencies.
In the example above, -t bitstream is a request for building a dependency whose symbolic name is bitstream. Requesting this dependency causes sfbuild to perform dependency resolution on stages associated with the target platform (xc7a50t). If there are any dependencies required for building bitstream that cannot be built, the user would be notified and would have to provide them explicitely. That's where the -Dsources=[counter.v]and  -Dxdc=[arty.xdc] come into play. Since EDA tools may have optional outputs, we can also provide sfbuild with explicit paths for dependencies to force their production. That's the case with -Dsynth_log=synth.log and -Dpack_log=pack.log. Finally, there are also optional inputs, which are dependencies that will be taken as an input for a stage when present, but if they are missing the flow would resolve anyway.
Dependencies are always meant to be files, so sfbuild can check for their existence and whether they are up-to-date (yes-there's modification tracking, to avoid unnecessary re-runs (can be disabled with --nocache flag). Because of that, any configuration/input for an EDA tool that is not a file (eg. a CLI option) is represented a a value. This works just like dependencies, but without tracking and allows passing dictionaries (eg. vpr_options).
On the developer side, all platforms are defined by their respective flow-definitions. Those are JSONS located under sfbuild/platforms. They instantiate a set of stages, default values, as well as choose parameters for constructing stages (Plenty of modules modules can be parametrized, which affects their I/O - something that's not possible with values/dependencies. See generic_script_wrapper for example).
About modules
Modules are stored in directories whose names follow the sf_<module_category>_modules.
There are essentially three stages of module's lifetime.

Instantiation - this is where the module is instantiated as a stage. During this phase the  module declares its inputs and outputs and their modes (dependency/value, required/optional/on-demand).
I/O mapping - this phase is used to generate default file names for module's output dependencies given file names and values at its input. This allows the user to skip naming any intermediate products and serves as a sort of promise on how the tool will act when executed.
Execution - in this phase the actual EDA tool or helper script is executed. If the outputs promised during I/O mapping were not produced the flow fails.

Quicklogic
Since the development was based o Quicklogic's fork, this won't work out-of-the-box with EOS-S3 and K4N8 platforms.
Aside from pulling Quicklogic changes, there are also other changes that need to be done in order to make it work with those targets and by that I mean resolving collisions between platform-specific scripts. F4PGA when installed for all families will overwrite some platform-specific scripts with their counter-parts that were meant to be used for another platform. If you resolve these conflicts by renaming the scripts to the name you can find in platform flow definitions (sfbuild/platforms), you should get an F4PGA installation that's compatible both with Xilinx and Quicklogic devices (at least when using sfbuild, the original wrappers will be broken).

Superseeded by chipsalliance/f4pga#530.


FuncAnimation support?

I've been going over the documentation for mpld3, and I can't figure out if I'll be able to update a plot embedded on my webpage using matplotlib's FuncAnimation. Is this possible, or will it be in the future?

No, mpld3 does not currently support matplotlib animations.


Disabling operations causes circular reference

I believe there is some issues with the current doc of disabling operations:

missing calls key:

resource.product:
    parent:    "api.resource"
    arguments: [ "AppBundle\Entity\Product" ]
    calls: # is missing
        -      [ "initCollectionOperations", [ [<EMAIL_ADDRESS>] ] ]
    tags:      [ { name: "api.resource" } ]

since the @resource.product service is registered in @resource.product.collection_operation.get and vice-versa it causes a circular reference.

It shouldn't cause circular reference error because of service lazy loading is enabled. Can you upload a not working example?

Using the api-plateform as a base, I changed the service declaration for the Book entity into the following:
    resource.book.collection_operation.get:
        class:     Dunglas\ApiBundle\Api\Operation\Operation
        factory:   [ @api.operation_factory, createItemOperation ]
        arguments: [<EMAIL_ADDRESS>"GET" ]

    resource.book:
        parent:    "api.resource"
        arguments: [ "AppBundle\\Entity\\Book" ]
        calls:
            -      [ "initItemOperations", [ [ ] ] ]
            -      [ "initCollectionOperations", [ [<EMAIL_ADDRESS>] ] ]
        tags:      [ { name: "api.resource" } ]

The error thrown is:
[Symfony\Component\Config\Exception\FileLoaderLoadException]
  Circular reference detected for service "resource.book.collection_operation.get", path: "resource.book.collection_operation.get" in . (which is being imported from "/path/to/my-api/app/config/routin
  g.yml").

  [Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException]
  Circular reference detected for service "resource.book.collection_operation.get", path: "resource.book.collection_operation.get".

Add public: false in the operation definition and it will work.
Thanks for reporting issues in the doc, I've just fixed them.


Attributes GEO  showing incorrect location

Thanks for taking the time for reporting an issue!
Describe what happened
GEO showing Tampa Florida, while I'm actually in Miami Florida.
Is it some specific configuration I have to add to show precise location?
For some users it showing correct location.

Hello @slatqh! Our SDK doesn't record location by itself (via GPS or network), geolocation is computed on the backend side based on the IP address of the incoming request from SDK side.
If you want to have more precise location you can attach your custom attributes for the current user which can be set via DdSdk.setUser call.
If you have more questions on the geolocation computation done by our backend, please open support ticket here.
Don't hesitate to re-open this issue if you have more questions.

@0xnm  thanks for clarifying!


LO - 3 - Alignments

identifying divergent sequences prior to alignment and their relationships (using k-mer based tree estimation)
using cogent3 to align, the app, memory, speed, parameters
quantifying alignment quality using dotplots showing alignment path between most divergent sequences
information plots, plotting gaps
Alignment.count_gaps_per_seq(induced_by, unique)
Alignment.omit_bad_seqs()

I have passed on some rough code to @fredjaya to document

Closing as contented related to this issue will be described in #40


added queue and stack implementation in java

Add your name in CONTRIBUTING.md

Add your name in CONTRIBUTING.md

ok

done, have a look @it now,
Thanks for the consideration.


proposal: context: add WithValues

What version of Go are you using (go version)?
1.10
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
linux
What did you do?
Consider the following standard HTTP Go server stack:

Middlewares that extract user credentials and request id from the headers and inject them to the http.Request context as values.
The http.Handler launches an asynchronous goroutin task which needs those values from the context.
After launching the asynchronous task the handler returns 202 to the client, the goroutin continues to run in background.

Problem Statement

The async  task can't use the request context - it is cancelled as the http.Handler returns.
There is no way to use the context values in the async task.
Specially if those values are used automatically with client roundtrippers (extract the request id from the context and inject it to http headers in a following request.)

Proposal
I suggest to add a function that combines values from two contexts - context.WithValues(ctx, values) or so.
An initial implementation is available here.
Discussion is available in golang-nuts forum

See also #19643. /cc @Sajmani @zombiezen @bcmills

Some values in the Context may have finite lifetimes after which they can no longer be used. (For example, when the End method of an OpenCensus Spans is called, it is flushed to the Exporters, and future annotations to the span will be lost.)
In such cases, you need something more than just to carry over the values: you need to filter out values that can no longer be used, or perhaps extend their lifetimes.
That sort of use-case doesn't seem to be addressed in this proposal.

I don't think WithValues needs to encode that filtering; that can be done
outside the context package. I think WithValues should have a somewhat more
restricted signature than is in the proposal: the second parameter should
have type context.Values, an interface that has only the Value method. Then
users can define their own filter as a Values implementation that passes
through only the allowed Value calls.
On Fri, Aug 10, 2018 at 2:00 PM Bryan C. Mills<EMAIL_ADDRESS>wrote:

Some values in the Context may have finite lifetimes after which they can
no longer be used. (For example, when the End method of an OpenCensus Span
s https://godoc.org/go.opencensus.io/trace#Span is called, it is
flushed to the Exporters, and future annotations to the span will be
lost.)
In such cases, you need something more than just to carry over the values:
you need to filter out values that can no longer be used, or perhaps extend
their lifetimes.
That sort of use-case doesn't seem to be addressed in this proposal.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/26691#issuecomment-412159666, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AJSK3Sr2PqPMk867ewvacDteeUmAK9vVks5uPcpJgaJpZM4VmQEQ
.

Some values in the Context may have finite lifetimes after which they can no longer be used. (For example, when the End method of an OpenCensus Spans is called, it is flushed to the Exporters, and future annotations to the span will be lost.)

@bcmills can you elaborate on the given example, for those who are not familiar with the code - as it seems to me, if there is an explicit call to End, you can override values with nil value. In the case of spans, I think that we will want to record calls, even after the handler was finished? So we could see related propagation of the request even in asynchronous task.
And generally, what sort of cases need filtering out values from the context?

it seems to me, if there is an explicit call to End, you can override values with nil value.

Overrides of context values are generally scoped to subtrees of the function call tree: context.WithValue produces an immutable entry in the tree.

In the case of spans, I think that we will want to record calls, even after the handler was finished?

Right, that's the problem: when End is called, the Span is flushed out to the log and nothing more can be recorded for it.

I'm sorry, I don't understand how spans are bad example here:

In the same manner that you you don't close channel twice, you should not sent spans twice - you'll get an error (for example, a span manager pointed by the context could hold a state).
As far as I can understand the same issue could arouse In the current design of spans - I can send them several times manually.
I guess that the common case is to have a middleware that will handle the spans, and it will remain unharmed with this change.

For long running tasks that were created from HTTP handlers - I think it is bad practice to create a new context for them, and it is important for them to know the context that they came from. The examples I gave demonstrate the need, and they don't have a solution currently in the standard library.

I guess that the common case is to have a middleware that will handle the spans, and it will remain unharmed with this change.

The middleware is exactly the point: at some point, that middleware needs to know when to flush the span, and at the moment the only reasonable signal it gets is “the next handler down the chain has returned”.

I guess that the common case is to have a middleware that will handle the spans, and it will remain unharmed with this change.

The middleware is exactly the point: at some point, that middleware needs to know when to flush the span, and at the moment the only reasonable signal it gets is “the next handler down the chain has returned”.

Maybe asynchronous task trace should not be the same as the handler itself trace. Maybe if you want to send spans from asynchronous task, you should create a new trace and send it when you are done?

Maybe if you want to send spans from asynchronous task, you should create a new trace and send it when you are done?

Yes, that's exactly my point: if the trace may be stored and accessed in the Values of a Context, then it is inappropriate to propagate those values to an asynchronous task.

This need can be satisfied outside the standard library, as you have. (https://github.com/posener/ctxutil/blob/master/values.go)
There are various things you might want to do to mix parts of two contexts. It's not clear which one is "right" if we're going to have a blessed mixer. Better for users who need a specific kind of mix to implement it themselves. This is why context.Context is an interface.

This is why context.Context is an interface.

Note that any context.Context implementation outside the standard library imposes an extra goroutine every time context.WithCancel or context.WithDeadline is called on it.
If we're going to press for folks to address these sorts of issues outside the standard library, we should probably make the standard library play more nicely with external implementations.


Don't share the same DBS object amongst multiple threads

Fixes #9221
Fixes #9253
Status
not-tested
Description
Instead of using a global cache of DBSReader, which are then shared between multiple threads, make sure each thread constructs its own DBSReader object (and then reuse it within the thread).
This PR also fixes how we evaluate whether the DBSReader object is pointing to the global instance or not (no need to make any calls to the server).
I wanted to get rid of this __dbses global variable:
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/WorkQueue/WorkQueueUtils.py#L30
but it would require substantial changes to the start policy algorithms. Given that only those are now using this global var, and they are sequential, I decided to let them be.
Is it backward compatible (if not, which system it affects?)
yes
Related PRs
no
External dependencies / deployment changes
Needs to be validated on both levels: global and local workqueue.

does this mean that the dbsapi is not really thread safe @yuyiguo @vkuznet ?

Yes, Jean-Roch. See this comment
https://github.com/dmwm/DBS/pull/610#issuecomment-503639476
where Valentin describes the problem.
I let them comment it further though.
Don't you see DBS problems on the Unified side? Or it catches an exception and silently retry?

test this please

Tests look good in my VM as well. I double checked the jenkins job configuration and I still don't get why those Rucio tests don't get reported as unstable...


[BUG] - Connect-AzureAD - Could not load assembly

Issue:
When attempting to use the Connect-AzureAD command I receive a message that it could not load file or assembly.

I am able to install and import the module just fine without errors.
Install-Module -Name AzureAD
Import-Module -Name AzureAD
Repair:
Have removed the module and reinstalled. Did not correct the issue.
Additional Context:
Running latest versions of:

VS Code 1.57.1
Powershell 7.1.3
powershell integrated extension v2021.6.2
AzureAD module.

can't understand how this issue is getting 0 traction. PowerShell 7 has been out for quite some time now we need at least an acknowledge response that compatibility is being addressed.

Thank you for your issue submission and apologies for the delayed response. Unfortunately, this appears to be a problem with the cmdlet and a support issue. Issues in this repo are for documentation issues. You can try one of the following links for additional help.
Microsoft Support: https://support.microsoft.com/
Azure AD forums: https://social.technet.microsoft.com/Forums/en-US/home?forum=windowsazureaditpro
Stack Overflow: https://stackoverflow.com/


Add docker-compose file for Swift 5.9 CI

Please note this is using jammy and not focal
Also I changed the docker-compose file for main to use jammy as well
@tomerd can you organise this please

@swift-server-bot test this please

@swift-server-bot test this please

@swift-server-bot test this please


clicknupload.net

Checklist

[x] I'm reporting a new site support request
[x] I've verified that I'm running youtube-dl version 2021.03.03
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that none of provided URLs violate any copyrights
[x] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

Single video: https://olive01.clicknupload.net:8080/d/uo57gbv7lryd7tr757g5tjqkdzmrhxhzdzhdx63iw52ouyplze5rw5xyr7hdiqxtwjl3d2zm/Love.Potion.No..9.1992.720p.WEBRip.x264.AAC-[YTS.MX].www.RapidMovieZ.com.mp4
single video: https://magenta01.clicknupload.net:8080/d/xs5qkz57lryd7tr75hg5v4aibhvemwe2qiih6hd5urcgc2se5bplgf3cdqa3jwroisdeeicc/Capital.In.The.Twenty-First.Century.2019.720p.BluRay.x264.AAC-[YTS.MX].www.RapidMovieZ.com.mp4
single video: https://dark01.clicknupload.net:8080/d/zk5we757lryd7tr753g4jncklybvr32e27ewmmlomur5gqb7qyogkdmiyen67vwyul7gati5/rent.boys.2011.subbed.720p.bluray.hevc.x265.rmteam.mkv
single video: https://pearl01.clicknupload.net:8080/d/3w5vgb57lryd7tr757g4lkapdm2ht46dyxsanflt7tdzank7sjv27drsb3uko2nt7yh3hpes/the.pollinators.2019.720p.web.hevc.x265.rmteam.mkv

Description

Clicknupload is a file hosting cloud. Most of the files are movies, series, applications. 4 example url is given. There are others too difference is olive01 part in url, it may be black01, violet01, pink01, red01 etc... And these generated links will expire 12hr after the link generation.

youtube-dl does not support sites dedicated to copyright infringement.

Oh.k.
By the way thanks.


[MERGE-CONFLICT #462] fixes logged out love issue

[MERGE-CONFLICT #462] #462 moves the onLove method, this pr edits the onLove method. Once #462 is closed this can be modifyed to fix the merge conflict.
Proforms a client side check to seee if the user is logged in before they love a post. if they arent logged in then they are moved to the secure site and the login window is popped up.

https://github.com/Ulydev/ludumdare/pull/1 is this code as a pull request against #462, if it gets merged this pr is unneeded.


Git issue #147 plus changes to some swift tests so they comply with f…

…indbugs
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

@paul-carron can you please also add a very simple test to com.ibm.stocator.fs.commom.unittests.StocatorPathTest ?

Hi @gilv, I've made a few updates to the code, added some unit tests and made a small change to the README.
Let me know if I've missed anything.

@paul-carron can you please fix the conflict? I will then merge it, thanks


路由切换时页面中fixed元素会闪一下

原因：由于transform动画导致切换路由时fixed失效，切换后fixed生效，导致产生位移现象。
请问，有什么好的处理方法吗？

If possible, try disabling or adjusting the transform animations in the page that might be causing the issue. Consider temporarily removing these animations during route transitions and then restoring them afterward.
Using will-change:
Use the CSS property will-change to inform the browser that an element is going to undergo changes, which might help optimize rendering. For example, add will-change: transform; to the styles of the fixed element.
Adjusting Positioning and Layout:
Try using alternative layout methods, such as absolute positioning instead of fixed positioning. Depending on the situation, different layout approaches might help avoid flickering issues.
Optimizing Page Performance:
Consider optimizing the performance of the page by reducing complexity and resource usage. This might help reduce flickering caused by animations.
Using Animation Callbacks:
If you are using JavaScript to control animations, try adding callback functions that ensure route transitions occur only after animations are completed.

https://vuejs.org/api/built-in-components.html#teleport

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days


Explore "Bridged mode" server

(Discussion forked from #54)
So here's an example of a problem here - try running HAP-NodeJS in bridged mode, add the bridge (which bridges a few sample accessories). Now you can do things like "Open the garage door" and it works behind the bridge.
However, now shut down HAP-NodeJS, remove/rename the GarageDoorOpener_accessory.js and restart the server. HomeKit doesn't "know" that the garage door is now gone. It still shows up in your HomeKit apps on your phone. And you can't Delete it yourself, because it was a bridged accessory. It's just sort of a zombie.

It looks like we need some kind of "cleanup" step on startup to un-register accessories associated with a bridge that aren't in the config.json. It looks like HomeKit has no way for a user to remove bridged accessories without removing the bridge. Removing the bridge each time we want to remove accessories might remove them from scenes, triggers, zones, and remove Siri names unless HomeKit uses the serial number or something to identify it rather than the bridge id.
Is there a way to remove an accessory with HAP?
I think every instance of homebridge needs to remember what devices it has registered and remove the ones that aren't in config.json only if the user explicitly asks for it with a command line flag, as the file might be simply unavailable when homebridge is restarted. Once we get a web interface we could have more specific workflows to deal with new devices, changing names, etc.

So it turns out that adding a new accessory creates an odd situation as well: a new accessory does magically "appear" in the list, but everything is now sort of "mixed up". The names of the accessories are all wrong (there are two thermostats, no garage door) even though the underlying services are correct. But Siri doesn't work with the newly-added Garage Door at all.
iOS does all the /accessories API on HAP-NodeJS periodically so it does seem like this should work. Either it hasn't been tested much or we're doing something wrong.

Perhaps this is not yet fully tested by Apple? Are there even any HomeKit bridges that are commercially available right now? What happens if you ask Siri to change the temperature on your "Garage Door"? :laughing: I doubt it is just some index off by one bug in HAP/iOS because in HAP-Nodejs the sTypes are not close. (40 and 4A) Could it be some type coercion bug causing 4A to become 40?

After more investigation I am focusing on accessoryID which is assigned on an increment-from-one basis in BridgedAccessoryController. I believe that this causes the bridged accessories to have unstable IDs - and I suspect HomeKit requires accessory IDs to be permanent.
Also I think this must be supported - I think that the reason that the concept of "bridge" exists in HomeKit at all is precisely because of devices like the Philips Hue bridge. Apple can't expect you to add hundreds of lights one by one, it has to be a one-shot thing. And the set of lights has to be dynamically updated because any normal user would expect to be able to install a new light in their home and have it "just work".

It also could be a bug that has been fixed in iOS 9. I don't have any devices with the beta right now unfortunately.

OK! I have some most excellent news :) It looks like, as long as the accessory representing the bridge itself is "1", the bridges accessory IDs can be anything, as long as the IDs of existing devices do not change when adding/removing devices.
I've just tested adding a single Bridge accessory (providing 5 bridged accessories) and then removing one and :boom: it magically disappears from the home. Then I can add a new one with a different ID and :boom: it appears magically.
I think this is definitely the way to go. You can just pair with the bridge once, and all other devices can be added or removed without the user having to lift a finger.

That is great! :smile:
If the ID must be "1" how can you have multiple bridges in one HomeKit database? (Multiple houses/bridges for different platforms)

The ID is local to the HAP accessory server - really it's all hidden behind a single GUID that looks like a MAC address.

Cool! I am excited to never lookup the pairing code again! :laughing:

OK one thing I just thought of. It could be that when Apple describes the limitations of not allowing bridged devices that "control the home", they mean that they may allow local (over wifi) control but not "remote control" of these devices via Apple TV. It would be good to test this - although I guess most people might not want this anyway. As in, "oops, Siri opened my garage door from the plane and now I've lost signal..."

It sounds like the definition of HomeKit bridge devices is being muddied. In HomeKit, a 'bridged' device is one that does not natively support HomeKit, and is in fact being bridged by a hub that does support HomeKit. "Support" here meaning it's a licensed hub with a HomeKit chip.
So, Insteon has a selection of devices it already supports, but none of them are native HomeKit devices. But since they talk to the Insteon hub, the hub then gets HomeKit support and advertises them on their behalf. So the hub (the bridge) is the actual HomeKit device. Its these unsupported (non HomeKit) devices that control the home (locks, thermostats, garage doors) that are not allowed. Insteon is not allowed to bridge them. Insteon is not allowed to make them available to HomeKit.
Any native HomeKit garage door, thermostat, lock, can be accessible from anywhere.
PLEASE excuse me if I'm speaking the obvious, lol. Especially seeing we're all talking on this repo, and even more specifically, this thread.

Yes I believe you're correct - but having just successfully controlled a lock, garage door, thermostat, etc. from behind a HAP-NodeJS bridge, I think your earlier suggestion is correct that this limitation is purely in licensing and not (currently) a technical restriction imposed by iOS.
The next question then is, how confident are we that Apple won't impose this restriction later?

The next question then is, how confident are we that Apple won't impose this restriction later?

Well they could lock us out with encryption for the WHOLE project just as easy right? lol. I mean I thought there was a promise of that from the get go. So we're lucky HAP-NodeJS got this far right?
#yolo

Good point. Onward then!

I think it may be harder for them to lock us out of HomeKit because there are going to be a ton of IOT devices using this protocol. Unless they come up with some standardized firmware update process for hardware manufacturers to use. An App Store for firmware.

I think it may be harder for them to lock us out of HomeKit because there are going to be a ton of IOT devices using this protocol. Unless they come up with some standardized firmware update process for hardware manufacturers to use. An App Store for firmware.

Yup yup. My favorite kind of limitation. :)

OK - I just submitted a PR with bridge support. Not my prettiest code ever, if I'm honest, but I tried it with my two Hue bridges (with a minor change I'm sure we can fight about / remove!) and it worked great.
No more hundreds of pins to enter! :)

On a plane at the moment and just catching up with this thread.... as far as I can see from playing with the accessory simulator, there really is no limitation on accessories that can be bridged. If anything, for this project, it's likely a performance benefit using a bridge as it spawns fewer server / transport processes (as bridged accessories share the transport with the parent bridge).
Interestingly, the simulator supports services on the bridge itself, which HAP-NodeJS doesn't. I can't see a real-world situation that'd logically use that though.
Honestly I'm surprised that we haven't seen a "takedown" notice from Cupertino yet though. What I suspect we will see in the future is the mandated signature during pairing for supporting HomeKit accessories (note the popup we get now saying "Not tested with HomeKit" or similar?). That'll make awesome projects like this moot anyway.... :(

I'm running iOS 9 beta 4 and everything is working. At least the lights. I've created some scenes with Siri and it seems to work well.
The one thing that would be fun is to figure out how to clone the thermostat

Bridged mode is now supported by default.


Update kind-projector to 0.11.1

Updates org.typelevel:kind-projector from 0.11.0 to 0.11.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "kind-projector" } ]

labels: library-update, semver-patch

Codecov Report

Merging #374 (211561a) into master (43bfbdc) will increase coverage by 0.34%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #374      +/-   ##
==========================================
+ Coverage   62.84%   63.19%   +0.34%
==========================================
  Files          38       38
  Lines        1281     1266      -15
  Branches        8        5       -3
==========================================
- Hits          805      800       -5
+ Misses        476      466      -10

Impacted Files
Coverage Δ

core/src/main/scala/laserdisc/laserdisc.scala
64.51% <0.00%> (-4.06%)
:arrow_down:

core/src/main/scala/laserdisc/protocol/RESP.scala
91.26% <0.00%> (-0.07%)
:arrow_down:

cli/src/main/scala/laserdisc/cli/CLI.scala
0.00% <0.00%> (ø)

...src/main/scala/laserdisc/protocol/SortedSetP.scala
0.97% <0.00%> (+0.02%)
:arrow_up:

core/src/main/scala/laserdisc/protocol/GeoP.scala
86.61% <0.00%> (+0.60%)
:arrow_up:

...e/src/main/scala/laserdisc/protocol/ClusterP.scala
68.91% <0.00%> (+1.36%)
:arrow_up:

...e/src/main/scala/laserdisc/protocol/Protocol.scala
100.00% <0.00%> (+5.00%)
:arrow_up:

.../scala/laserdisc/protocol/LenientStringCodec.scala
66.66% <0.00%> (+16.66%)
:arrow_up:

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 43bfbdc...211561a. Read the comment docs.


Add Dark theme Version.

I do not like how the theme currently is based on the light theme, as such I would like a Dark Version of it where basically everything would properly be transparent (even all of the tabs the side of VS which is "Server Explorer", and "Toolbox"), Also it would be nice if the Solution Explorer could be transparent on the back of it as well to see the image from the main part of it through it, but that is probably not possible at the moment.

you might want to try this
And, there are ways to make such themes yourself


torchaudio

Nice work.
But it seems there're already resample implemented by conv1d in pytorch's official torchaudio
Is there any necessary to implement it again?

First this project is a DSP hobby, so I'm quite happy to reimplement things that already exists.
From your question I decided to run a quick comparison. First in terms of speed, torchaudio seems to be slower, at least on CPU. I guess it is because it does multiple calls to conv1d followed conv_transpose1d, while julius has a single call to conv1d. I will open up a bug report to torchaudio on that issue.
from torchaudio.compliance import kaldi
import torch
import julius
x = th.randn(1, 44100 * 10)
rolloff = 0.99  # lowpass filter freq used by torchaudio
zeros = 6  # use the same number of zero crossing as torchaudio
for from_sr, to_sr in [(5, 7), (7, 5)]:
    print("comparing for", from_sr, to_sr)
    %timeit kaldi.resample_waveform(x, from_sr, to_sr)
    %timeit julius.resample_frac(x, from_sr, to_sr, rolloff=rolloff, zeros=zeros)
    yt = kaldi.resample_waveform(x, from_sr, to_sr)
    yj = julius.resample_frac(x, from_sr, to_sr, rolloff=rolloff, zeros=zeros)
    print(torch.norm(yt - yj))

comparing for 5 7
32.4 ms ± 309 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
4.46 ms ± 44.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
tensor(8.7085e-05)
comparing for 7 5
12.9 ms ± 323 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
2.83 ms ± 43.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
tensor(5.1333e-05)

Julius implementation is also shorter in terms of code.

Bug report opened https://github.com/pytorch/audio/issues/1057

Great, I agree that we can learn a lot to reimplement something, and it would be even better as share your idea to benefit the whole community.

Great, I agree that we can learn a lot to re-implement something, and it would be even better as share your idea to benefit the whole community. Thank you.

The implementation from julius is now part of Torchaudio: https://github.com/pytorch/audio/pull/1087 :)

The implementation from julius is now part of Torchaudio: https://github.com/pytorch/audio/pull/1087 :)


Add autocorrect to TimeZone cop

Add autocorrect to TimeZone cop.
Uses .in_time_zone when possible and .zone when not.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] ~Commit message starts with [Fix #issue-number]~ (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Thanks!


iOS sdk 15 and Square Register

Hi,
I have a filemaker file that was converted to an ios app through the ios app sdk filemaker and I was able to set up the app to switch to the square register app on the same ipad when it did a transaction. Everything was working well until I had to update the ios of the ipad from 9 to ios 10. So in order for the filemaker file app to work on ios10 I used the ios app sdk 15 that converts the filemaker file to an app that will work with ios 10 ipads. After doing this the app now is not able to switch to the square register app from the filemaker app. I get an error "No call back url specified". I never had any errors in the earlier version so am wondering if this has to do with the ios app sdk 15 changes or anything else? in my square register account I have specified the bundle id of the filemaker app, and the url scheme which is fmp for filemaker. Since its a native api not a web api I did not have to put a call back url.
and in the xcode settings for the filemaker app I have added the url scheme as fmp and also the bundle id of the app. I have also added in the filemaker app the following code that is sent to square register through the open url function ...
"square-commerce-v1://payment/create?data={
"amount_money": {
"amount": " & $payamt & “,
"callback_url": “fmp",
"currency_code": "USD"
},
"client_id": "application-id”,
"version": "1.2",
"notes": "" & $reqno & "",
"options": {
"supported_tender_types": [
"CREDIT_CARD"
]
}
}”
in the above code previously I never had the call back url added and it worked perfect, but is that something I may need to add now?
and the application id is of course the application id from the square register account's app settings.
also above the version was previously 1.0 which I changed to 1.2 now - and the whole of the code above I converted to percent encoded text while sending it.
Please anyone let me know if you have similar issues.
Thanks!

HI!
This doesn't seem to be an issue with the SDK, but more of an request for help. Would you mind asking on Stack Overflow? If you tag it with the square-connect tag, someone on our team will help you out.
Thanks!


SAM-1074: Fixing audio recording type submission deletion

Fix is very straight forward. Tested locally. Fixed. Please merge to resolve the issue reported by @Molly Kelsey in Jira SAM-1074

LGTM


Issues with paths with spaces

I'm thinking we have some serious issues with respect to safe usage of incoming user data. This seems we're asking for trouble with injection attacks.

@olsonanl would you describe what is happening in more detail? Did you add space in the path? Is it at the end or in the middle?

Look at the directory name - "SPACE DIR"

It's still doing it, btw.

Looks like this didn't have anything to do with spaces--a function just wasn't being called properly.  Fixed in latest PR.
https://github.com/PATRIC3/p3_web/pull/493/commits/a9a00f94e34d1137957164792da49ff304ddfdd7#diff-9a563bd8704b4d7dc42a4aa376df80aaR117

OK, cool. It apparently manifested itself in paths with spaces though.

Should have been any contigs, as far as I could tell.


runtime-name

Codecov Report

Merging #102 (ee80708) into main (c37b4ce) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #102   +/-   ##
=======================================
  Coverage   25.13%   25.13%
=======================================
  Files           1        1
  Lines         187      187
=======================================
  Hits           47       47
  Misses        134      134
  Partials        6        6

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 c37b4ce...ee80708. Read the comment docs.


UNCERTAIN LABEL:  StreetName

usaddress.tag('200 JOHN W HOOVER PKWY BLDG 1')

You're getting this because the parser is uncertain if the "W" is part of the name or the directional "West". Try using the tag_mapping option.
Check out tag_mapping at https://usaddress.readthedocs.io/en/latest/
With the tag maps used in the example, you'd get the following parsed address: (OrderedDict([('address1', '200 JOHN W HOOVER PKWY'), ('address2', 'BLDG 1')]), 'Street Address')


validation: title-missing-fixes-18

Docs Build status updates of commit 95d2a72:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/KeyTerms.md
:bulb:Suggestion

Details

Skype/UCWA/resumeAudioVideo_ref.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/PTVideoOutgoingP2P.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/troubleshooting/auth/AADAuth-IESecurityZones.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/troubleshooting/troubleShooting.md
:bulb:Suggestion

Details

Skype/Trusted-Application-API/docs/KeyTerms.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/resumeAudioVideo_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/PTVideoOutgoingP2P.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/troubleshooting/auth/AADAuth-IESecurityZones.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/troubleshooting/troubleShooting.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@lindalu-MSFT
The Content & Learning team is fixing build validation errors on docs.microsoft.com for the rest of H2. This will eliminate potential accessibility, security, and usability issues. This PR includes only build validation fixes and does not change other content. Please review within five business days and merge or comment in the PR with any changes you’d like to see. Thank you!

Docs Build status updates of commit a98340c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Skype/Trusted-Application-API/docs/KeyTerms.md
:bulb:Suggestion

Details

Skype/UCWA/resumeAudioVideo_ref.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/PTVideoOutgoingP2P.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/troubleshooting/auth/AADAuth-IESecurityZones.md
:bulb:Suggestion

Details

Skype/WebSDK/docs/troubleshooting/troubleShooting.md
:bulb:Suggestion

Details

Skype/Trusted-Application-API/docs/KeyTerms.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/UCWA/resumeAudioVideo_ref.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/PTVideoOutgoingP2P.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/troubleshooting/auth/AADAuth-IESecurityZones.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

Skype/WebSDK/docs/troubleshooting/troubleShooting.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Remove spaces from url using regex

This solves the app crash when submitting a faulty url. I know it is a bit hacky. I will submit a better solution which matches the url as a whole with the standard formats.
Solves #1377

Have a look at #1982 that solves the issue (for learning purposes).
Several comments on your code:

try to not reuse variables ('url' in this case)
add tests to prove your solution works
if you've added the test you would have seen your approach fixes only the first whitespace occurrence

Thanks for your efforts. Please, continue contributing ;)

Yeah that solution seems to be way more efficient. Im sorry I missed that global specifier in the solution. Thanks for looking over and pointing it out.


what is the usage of api.ts

it's an example of a service.
In the starter it doesn't do much, it's just to demonstrate how to use a service, you can change it to anything you want :-)
For example: it could make XHR requests for you.

thx


Broswer window resizing causes text to move outside position

Maybe use a Flexbox?

Mentor Approved

Related to #46.


uvision - fix INC dir

The path for INC might be with spaces, uvision does not handle it well,
thus wrapping around ""
Tested with uvision installed in "Program Files" folder

@bridadan @sg-


Minor change in recommendation.

Minor change to make recommendation exact same for Windows and Lnux

Hi @AnunayTiwari, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

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

TTYL, AZPRBOT;

@AnunayTiwari : Thanks for your contribution to the Azure documentation! The author, @mumian, has been notified to review your proposed change.

#sign-off


adus.sh : symlink resloution for "CWD"

The program wasn't able to resole symlink; it can cause trouble if binary is symlinked to another directory.
I tested it on Fedora 21.

Ok. Makes sense. I'll merge your pull request.


adjust server config link

People wanting to know more about server configuration are probably better directed to the general sysadmin page than the overview. Staged at http://www.openmicroscopy.org/site/support/omero5.1-staging/developers/Server/Properties.html.
--no-rebase

Agreed. I don't think you need 'index' though, just /sysadmins/ should work.
Looks like this page maybe needs further updates - I see mention of 4-beta above!

@hflynn: That link doesn't seem to work for me locally, I don't know why not.

Ah sorry, must be only url links rather than the internal doc links that work that way.

Possibly simply remove that first sentence/paragraph altogether?

Yes, I think the whole section can go. Also maybe helpful to add a link to http://www.openmicroscopy.org/site/support/omero/sysadmins/config.html ?

:+1: Looks good, merging now. Can you rebase to dev_5_0 for tidiness sake please?


Bug: Using Chrome to interface with HTTP server causes blocking of other HTTP traffic

This is a little bit of an arcane bug, so exact steps to reproduce
Steps to reproduce:

Start NeewerLite-Python using NeewerLite-Python.py --cli --http
Send HTTP request using curl http://localhost:8080/NeewerLite-Python/list -v
Verify that the request completes
Visit http://localhost:8080/NeewerLite-Python/list in Chrome
Verify that the page loads
Send another HTTP request using curl http://localhost:8080/NeewerLite-Python/list -v
See that the request hangs
Refresh Chrome page
See that the curl request completes
Hit Ctrl + C in the NeewerLite-Python process
See that NeewerLite-Python does not immediately quit
Refresh the Chrome page
See that NeewerLite-Python quits

My (completely unfounded) guess is that it might be related to connection keep-alive or something like that in Chrome, but then again, I'm just making wild guesses here.

This one's definitely arcane, and I checked through a few forum posts of people having the same issue with Chrome-based requests, but I think I have a solution.  I changed the HTTP server implementation from a single-threaded BaseHTTPServer to a threaded ThreadingHTTPServer (the documentation even suggests this for clients that make multiple open requests) -

This is useful to handle web browsers pre-opening sockets, on which HTTPServer would wait indefinitely.

And changed the asyncio loop routine in the HTTP processor to create a new event loop for requests (as the "main" event loop doesn't exist in the separately created new threads) - everything seems to be running fine with those changes, but I want to test it in a few more situations before pushing a live commit.

OK, I've uploaded the latest commit - this changes the HTTP server implementation from BaseHTTPServer to ThreadingHTTPServer, which allows multiple connections (I was testing it on Firefox and Chrome simultaneously on Windows, and on the both of them and Safari on Mac, with no HTTP hangups or application hangs on either), along with a few other changes to make this setup play nicely with how NeewerLite-Python/asyncio processes the commands.

I'm going to close this one out too @DanielBaulig as it's been a week - all is fine now in my testing using multiple browsers at the same time, but feel free to reopen if you come across an issue with this!


initial commit for module 12

Added Examples file, which was not in the previous repo.
Sometime we should change the filename for the Examples to be consistent with with earlier modules.  But I don't have time to do that today; if somebody else wants to do it, feel free.

(Adding @jon-bell as a reviewer since he knows about this stuff)

Sorry, I don't have much time this week (working on IP2....) - but if there is something focused I can take a look at and provide fast feedback on let me know!


Task-based connectivity analysis for functional NIRS data

Project info
Title:
Task-based connectivity analysis for functional NIRS data

Project lead:

Borja Blanco, twitter.com/borja_blanco4
Irene Arrieta, twitter.com/irenearrieta3
Project collaborators:

César Caballero-Gaudes, twitter.com/CaballeroGaudes Mattermost: @CesarCaballeroGaudes
Eneko Uruñuela, twitter.com/eurunuela  Mattermost: @eurunuela
Registered Brainhack Global 2020 Event:

Brainhack Donostia 2020, San Sebastián-Donostia
Project Description:
The aim of this project is to learn, comprehend and implement implement two types of task-based connectivity analyses for functional near infrared spectroscopy (fNIRS) data, namely generalized psycho-physiological interactions (gPPI) and Dynamic Causal Modelling (DCM). These approaches will be evaluated in fNIRS data collected in 4-month-old infants while they listened to forward and backward speech sentences during sleep. Coding will mostly be in MATLAB (similar to the main programs for fNIRS data analysis), although implementation in Python can be explored.
Data to use:

Datasets to work with will be available in project's GitHub repo (see next).
Link to project repository/sources:
https://github.com/borjablanco/BHDonostia_2020_fNIRS
Goals for Brainhack Global 2020:

The goals of the project will be split into two different parts and days.
Days 1-3:

Implement gPPI algorithms based on the current implementation using Parametric Empirical Bayes estimation available in SPM12, and adapt this formulation to deal with the fNIRS data structure. Moreover, alternative implementation of the deconvolution algorithm based on stability selection will be explored also based on current code available in Matlab. Milestone: Compute gPPI at the channel-level and global-level for several datasets.

Days 4 and 5:

Learn and understand the implementation of DCM for fNIRS available in SPM12 (see chapter 46 of SPM12 manual, and related articles).
Using the gPPI results, formulate and implement different models within the DCM framework.
Milestone: Perform DCM data analysis in several datasets and interpret the results. Comparison between gPPI and DCM.

Good first issues:

Recommended Readings:
gPPI:

Gitelman, D.R., Penny, W.D., Ashburner, J. and Friston, K.J., 2003. Modeling regional and psychophysiologic interactions in fMRI: the importance of hemodynamic deconvolution. Neuroimage, 19(1), pp.200-207. https://doi.org/10.1016/S1053-8119(03)00058-2
McLaren, D.G., Ries, M.L., Xu, G. and Johnson, S.C., 2012. A generalized form of context-dependent psychophysiological interactions (gPPI): a comparison to standard approaches. Neuroimage, 61(4), pp.1277-1286. https://doi.org/10.1016/j.neuroimage.2012.03.068
Hassanpour, M.S., Eggebrecht, A.T., Peelle, J.E. and Culver, J.P., 2017. Mapping effective connectivity within cortical networks with diffuse optical tomography. Neurophotonics, 4(4), p.041402. https://doi.org/10.1117/1.NPh.4.4.041402
Gerchen, M.F., Bernal‐Casas, D. and Kirsch, P., 2014. Analyzing task‐dependent brain network changes by whole‐brain psychophysiological interactions: A comparison to conventional analysis. Human brain mapping, 35(10), pp.5071-5082.  https://doi.org/10.1002/hbm.22532

DCM:

Tak, S., Kempny, A., Friston, K.J., Leff, A.P. and Penny, W.D., 2015. Dynamic causal modelling for functional near-infrared spectroscopy. Neuroimage, 111, pp.338-349. https://doi.org/10.1016/j.neuroimage.2015.02.035
Bulgarelli, C., Blasi, A., Arridge, S., Powell, S., de Klerk, C.C., Southgate, V., Brigadoi, S., Penny, W., Tak, S. and Hamilton, A., 2018. Dynamic causal modelling on infant fNIRS data: A validation study on a simultaneously recorded fNIRS-fMRI dataset. NeuroImage, 175, pp.413-424. https://doi.org/10.1016/j.neuroimage.2018.04.022
Chapter 46 of SPM12 Manual. https://www.fil.ion.ucl.ac.uk/spm/doc/spm12_manual.pdf

Skills:

Knowledge of Matlab
Familiar with fNIRS data preprocessing and analysis
Certain knowledge of brain function and neuroscience
Motivation to learn about functional and effective connectivity analysis

Communication channels:

https://mattermost.brainhack.org/brainhack/channels/bhd2020_fnirs_task_connectivity

Project Submission
Submission checklist
Once the issue is submitted, please check items in this list as you add under ‘Additional project info’

[ ] Link to your project: could be a code repository, a shared document, etc.
[ ] Goals for Brainhack Global 2020: describe what you want to achieve during this brainhack.
[ ] Flesh out at least 2 “good first issues”: those are tasks that do not require any prior knowledge about your project, could be defined as issues in a GitHub repository, or in a shared document.
[ ] Skills: list skills that would be particularly suitable for your project. We ask you to include at least one non-coding skill. Use the issue labels for this purpose.
[ ] Chat channel: A link to a chat channel that will be used during the Brainhack Global 2020 event. This can be an existing channel or a new one. We recommend using the Brainhack space on Mattermost.

Optionally, you can also include information about:

[ ] Number of participants required.
[ ] Twitter-size summary of your project pitch.
[ ] Provide an image of your project for the Brainhack Global 2020 website.

We would like to think about how you will credit and onboard new members to your project. If you’d like to share your thoughts with future project participants, you can include information about:

[ ] Specify how you will acknowledge contributions (e.g. listing members on a contributing page).
[ ] Provide links to onboarding documents if you have some:

Thank you so much for submitting this project @CesarCaballeroGaudes !
I see you have two things missing on your checklist that are required for the project to be submitted:

Link to your project: could be a code repository, a shared document, etc.
Chat channel: A link to a chat channel that will be used during the Brainhack Global 2020 event. This can be an existing channel or a new one. We recommend using the Brainhack space on Mattermost.

I think we can publish the project to the website once these two points are done.
Thank you! 🙌🏻

Here is the logo for the project

Hey @SamGuay , this one's ready too. I thought the web_ready label triggered the action but maybe not?
Also, how do we make the logo appear on the website?
Thanks!

Also, how do we make the logo appear on the website?

Love the pic! If you want to add a picture, simply edit your issue and paste the picture somewhere in there, the regex will find it!
If it were me, I'd add it somewhere at the top. Maybe I should add a note into the template for the picture.

I thought the web_ready label triggered the action but maybe not?

Eventually it will. Right now it is human action and not a GH action :sweat_smile:.

Thank you @CesarCaballeroGaudes
Logo is ready. Could you please publish it @SamGuay ?

Dear @CesarCaballeroGaudes I just wanted to ask whether would you like to continue your projects throughout the upcoming 3 weeks time of Brainhack Global events or would you be available to the contributions? We would be happy to see contributions from other locations to your project still going, but sure based on your availability and so on. So just wanted to raise your attention to the possible interactions might be happening and ask again your current position accordingly if we get any question regarding your project.
Thank you very much for your contribution and amazing project throughout Brainhack Donostia :hugs: 🚀

Yes, we would welcome anyone in the project!!

Perfect! We will make the announcement accordingly. In the meantime,  it might be better to register with one of those events their dates listed below that suits with your own schedule, and then run your project under those events It might just help with the advertising and getting attention from those event attendees too. Please let us know your decision on that then we will change the event label for you to make people from that event location especially to find you. Does that sound alright to you?  Here are the events
|9 Dec - 11 th Dec, 2020 | Brainhack Pittsburgh|
|1stDec - 3rd Dec, 2020 | Brainhack Ankara|
|30th Nov - 11th Dec, 2020 |Brainhack Marburg|
|2nd Dec - 4th Dec, 2020 |Brainhack Ontario|
|2nd Dec - 4th Dec, 2020 |Brainhack Marseille|
|6th Dec - 11th Dec, 2020 |Brainhack Princeton|
|11th Dec -13th Dec, 2020 |Brainhack NY|
|12th Dec -13th Dec, 2020 | Brainhack DC|
|12th Dec - 18th Dec, 2020 | Brainhack Growth Chart Translation - Beijing - Nanning|
|14th Dec to 16th Dec, 2020 |Brainhack Padova: Diversity Inter-individual variability in cognitive and clinical neuroscience: signal or noise?|
I will also make the announcements again at the main Mattermost channels to attract people to your projects. Thank you so much for your contribution indeed. It is really nice of you and hope you get nice interactions again :hugs:


Can not open Grabber( 7.3.0 ) on macOS 10.15

Steps to reproduce
1.Open the Grabber.app
Context
Just updated the app, and then the app can't be opened.
" No source found. Do you have a configuration problem? "
Log:
[16:29:09.356][Info] Temp directory purged of 0/0 files (0 failed)
[16:29:17.382][Info] New session started.
[16:29:17.383][Info] Software version: 7.3.0.
[16:29:17.384][Info] Software CPU architecture: x86.
[16:29:17.384][Info] Computer CPU architecture: x86_64.
[16:29:17.384][Info] Qt CPU architecture: x86_64.
[16:29:17.384][Info] Computer platform: macOS 10.15.
[16:29:17.384][Info] Path: /Applications/Grabber.app/Contents/MacOS
[16:29:17.385][Info] Loading preferences from /Applications/Grabber.app/Contents/MacOS/settings.ini
[16:29:17.385][Info] Temporary path: /private/var/folders/q0/zqg1zrrn7djd2n8ny4yl6nzr0000gn/T/Grabber
[16:29:17.385][Info] SSL libraries: Secure Transport, macOS 10.15
[16:29:17.387][Info] Setting language to 'English'...
Screenshots
Screenshot
System information

OS: macOS10.15.5
Grabber version: 7.3.0

Additional context
Version 7.2.1 is perfect all the time.

I have the same issue. V7.2.1 works fine but V7.3.0 doesn't.

Same here, I literally just spent a whole 2 minutes having to allow all the files in it, and then I get that notification

same issue on mojave as well will revert back to 7.2.1 for the time being

Since version 7.3.1 is released and worked OK, This issue is closed.

I guess it must have been related to the packaging scripts not properly including the source files.
Glad to hear the work I did on the packaging script fixed the issue. 😄


Add database model for messages

The current session based implemention for messages is insufficient to support required functionality - most notably persistence on refresh.

Create a BroadcastMessage model class that stores message text and timestamp.
Update kafka_consumer admin command to populate messages into the BroadcastMessage table and to prune old messages from the list.
On index page load, populate the Kafka message feed with all (or a default time window) of saved messages.

Not considered part of this issue but this implementation will also support auto-population of the message feed in the UI as it can support polling for messages newer than a given timestamp.

Opps, I missed this one:

Add htmx magic to the input field. Something like: hx-get="/messages_endpoint/" hx-target="#message-feed" hx-swap="outerHTML".


Team-communication: Broadcast

Is your feature request related to a problem? Please describe.
Currently, there exists no documentation on how to use the broadcast functionality of the team-comm.
Describe the solution you'd like
I propose two solutions how to resolve this:

Document how to "calculate" the broadcast IP for the current event in the config YAML.
Clarify the three communication modes (loopback, specific IP, broadcast IP) by using toggle flags in the YAML, and introduce a method to automatically "calculate" the broadcast IP from the current Wi-Fi network.

Done in https://github.com/bit-bots/humanoid_league_misc/pull/145


Err 403 on ajax relation request when editing a model

Version information

Laravel: v6.7
Voyager: v1.3.x-dev
PHP: 7.4.0
Database: MySQL 8.0.18

Description
Bread editing of a model.
When clicking on the dropdown to select the related model for the association (belongs_to in my case), the dropdown displays message The results could not be loaded.
When inspecting the request, it appears that it results in a 403.
The URL is http://localhost:8000/admin/text-blocks/relation?type=text_block_belongsto_socket_relationship&method=edit&page=1
The results are correctly loaded on model creation.
Steps To Reproduce
Steps to reproduce the behavior:

Create a bread with a belongs_to relationship
Insert a record for that model: select the related model in the dropdown
Edit the newly created model
Open developer tools of your browser, network tab, filter only XHR
Click on the dropdown to select the related model
See message "The results could not be loaded" and the XHR 403 response in the debug tool.

Expected behavior
The same results should be displayed when creating and editing a model.
Screenshots

Make sure Scope you just added is not the one causing the problem then you can try if this fixed it #4539.
But I think the problem I solved there was on add not on edit :thinking:
If that doesn't work please post your BREAD configuration.

It did not work in the first place, before I set up the scope with a custom controller. Disabled it to be sure, but the problem does not come from that custom controller.
Here's my bread configuration:
{
  "model": "App\\Socket",
  "table": "sockets",
  "type": "belongsTo",
  "column": "socket_id",
  "key": "id",
  "label": "name",
  "pivot_table": "banners",
  "pivot": "0",
  "taggable": "0"
}

Should I post the migrations of the model and the related one?

Nope the problem is app.js, check my previous comment update.

OK. I'll try that. Just need to know how to compile it. I think I've seen something about that, whether in an issue or in the documentation, can't figure out...
Do I need to compile it in the vendor dir, or will it be in my resources dir?

inside vendor/tcg/voyager
npm install
npm run prod

Before passing to next release remove voyager folder so you won't carry on all dependencies that need to be installed to compile assets.

I suppose next time the package will be updated via Composer, app.js will be fixed, so I won't have to do this again?

Had to clear cache then it's ok.
Thanks!

I suppose next time the package will be updated via Composer, app.js will be fixed, so I won't have to do this again?

Right

I have this version information:
Laravel: 7.0
Voyager: v1.4.x
PHP: 7.4.6
Database: MySQL 5.7.24
With exactly the same problem. I had checked the VoyagerBaseController and found that the request is not carrying the id. Is the app.js of this voyager's version ok?

I have follow the
npm install npm run prod
but still have the problem:
relation?type=item_belongsto_item_relationship&method=edit&page=1 403 (Forbidden)
(anonymous) | @ | VM129:1   | send | @ | voyager-assets?path=js%2Fapp.js:1   | ajax | @ | voyager-assets?path=js%2Fapp.js:1

Problem solve by clear browser cache.

If problem exists only on "add" page, and field works correctly on "edit" page of existing item the problem is:
Possible, your model return 0 in "id" attribute instead of null.