package test failed when call has_cxxfuncs()

Xmake Version
2.7.7
Operating System Version and Architecture
Ubuntu 20.04
Describe Bug
A lot of packages use has_cxxfuncs() to test packages.
The impl of has_cxxfuncs invoke sandbox_core_tool_compiler.load(sourcekind, opt):compile(sourcefiles, objectfile, opt).
But that compiler cannot find sdk headers(e.g. #include ) when I perform cross compilation via llvm.
Expected Behavior
has_cxxfuncs run successfully
Project Configuration
-- contains msvc windows kit
add_repositories "myrepo https://test/cpp-repo.git"

if os.host() == "linux" then
  ------------ sdk ------------
  set_config("sdk", "/usr/local")

  -- sdk toolchain
  set_toolchains "llvm"
  set_defaultplat "windows"
  add_requires("msvc", "windows_kit")
  add_packages("msvc", "windows_kit")
  ------------ sdk end ------------
end

add_requires "spdlog"

target "test"
set_languages "c++20"
add_defines("_UNICODE", "UNICODE")
add_defines("_WIN32", "_AFXDLL", "_WINDOWS")
add_defines("SPDLOG_USE_STD_FORMAT")
add_files "src/*.cpp"

Additional Information and Error Logs
/home/shaq/.xmake/packages/s/spdlog/v1.11.0/4b75562d880f41e796ba90ae99029422/include/spdlog/details/null_mutex.h:6:10: fatal error: 'atomic' file not found
#include <atomic>
         ^~~~~~~~
1 error generated.
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:913]:
    [@programdir/modules/core/tools/gcc.lua:718]: in function 'catch'
    [@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
    [@programdir/modules/core/tools/gcc.lua:659]:
    [C]: in function 'xpcall'
    [@programdir/core/base/utils.lua:280]:
    [...amdir/core/sandbox/modules/import/core/tool/compiler.lua:82]: in function 'compile'
    [@programdir/modules/lib/detect/check_cxsnippets.lua:218]:
    [C]: in function 'xpcall'
    [@programdir/core/base/utils.lua:280]: in function 'trycall'
    [@programdir/core/sandbox/modules/try.lua:117]: in function 'try'
    [@programdir/modules/lib/detect/check_cxsnippets.lua:212]:
    [...make/repositories/xmake-repo/packages/s/spdlog/xmake.lua:68]: in function 'script'
    [...dir/modules/private/action/require/impl/utils/filter.lua:125]: in function 'call'
    [...dir/modules/private/action/require/impl/actions/test.lua:41]:
    [.../modules/private/action/require/impl/actions/install.lua:366]:
    [C]: in function 'xpcall'
    [@programdir/core/base/utils.lua:280]: in function 'trycall'
    [@programdir/core/sandbox/modules/try.lua:117]: in function 'try'
    [.../modules/private/action/require/impl/actions/install.lua:287]:
    [...modules/private/action/require/impl/install_packages.lua:479]: in function 'jobfunc'
    [@programdir/modules/private/async/runjobs.lua:232]:
    [C]: in function 'xpcall'
    [@programdir/core/base/utils.lua:280]: in function 'trycall'
    [@programdir/core/sandbox/modules/try.lua:117]: in function 'try'
    [@programdir/modules/private/async/runjobs.lua:218]: in function 'cotask'
    [@programdir/core/base/scheduler.lua:404]:

If you want to compile packages for the windows platform, you can only use the default msvc toolchain on windows.
If you want to cross-compile or switch toolchains to compile packages, you have to switch to the cross platform. And make sure that the required packages support the cross platform.
Or you can use the mingw platform and toolchain to compile them.

I am compiling windows application in my linux env. And I am using llvm toolchain + msvc abi/std libraries.
Base on:
  set_config("sdk", "/usr/local")
  set_toolchains "llvm"
  set_defaultplat "windows"

I tink I have configed cross compile toolchain via llvm(I don't use mingw to avoid multiple installation for different target platform)
The thing is that these corss compile works pretty well when I am depends on all packages which have no has_cxxfuncs() invocation.

set_defaultplat "windows"

it is only for msvc on windows. you should use cross platform.

I have check the llvm toolchain related source code:
As I know -target x86_64-pc-windows-msvc is the flag for cross compile windows target.
It requires toolchain:is_plat("windows"). Thats why I put set_defaultplat "windows" instead of set_defaultplat "cross".

Not just this one place, windows and msvc are deeply bound so that good optimisations can be made for windows packages, such as pre-compiled package support, and rigorous testing of various configuration permutations such as vs_runtime/static/shared on the ci. Various patches are also added to each package to support msvc.
As a result, xmake does not allow switching between toolchains on the windows platform, which adds more uncertainty to all the windows packages on xmake-repo than I have to maintain, and makes the package configuration script more complex, as it has to do various specific patches on the windows platform for different toolchains.
Also, xmake currently only passes toolchain information to the internal build scripts for the cross platform.
So, please don't switch toolchains on windows. If you have to do so, I will not do anything to support it.

So the toolchain config (e.g. xmake f --syslinks) will not pass to 3rd part package(added via add_requires) build.
3rd part package build is completely encapsulated in it's own package script.
Package user can only do limited config which exposed by package mantainer.
Am I right?

???
only pass --toolchains/set_toolchains to packages for cross platform (-p cross).
--syslinks is always not passed to packages, whether cross-compiled or not. Package builds are completely independent from the current project build.

Toolchain, which can be specified by --toolchains, is used by both project targets & deps package build.
While project level config, e.g. --syslinks is only used by project targets.
So if I need to switch compiler runtime library, cpp runtime library, cpp std library, I need to config them individually for project targets & deps package.

I sorry for the misleading.
I  take configuration of compiler runtime library, cpp runtime library, cpp std library as sdk level config.
sdk = toolchain + compiler runtime library, cpp runtime library, cpp std library
Something, I mix phrasing sdk & toolchain.

? No matter how you do it, you must use the -p cross platform whenever you use the cross-compilation toolchain.

Ok, got it.


Eloquent whereIn doesn't work with Dynamic Scopes on NULL

Laravel Version: 5.8.33
PHP Version: 7.3.5

Description:
$posts = Auth::user()->posts()->filter($request->except('_token'))->get();
This works in Controller, query.bank contains values NULL, 1, 2, 3. Posts of which bank is NULL are returned.
if ($request->has('query.bank')) {
    $posts = $posts->whereIn('bank', $request['query']['bank']);
}

This doesn't work in Post model as a Dynamic Scope, posts of which bank is NULL are not returned.
public function scopeFilter($query, $params) {
    if (request('query.bank', false)) {
        $query->whereIn('bank', request('query.bank'));
    }
    return $query;
}

Please log the executed queries.

Looks absolutelly the same.
In Controller:
select * from postsinner joinpost_useronposts.id=post_user.post_idwherepost_user.user_id= ? andbank in (?, ?)
In Model:
select * from postsinner joinpost_useronposts.id=post_user.post_idwherepost_user.user_id= ? andbank in (?, ?)

This also doesn't work in Post model as a Dynamic Scope
 $query->when(request('query.bank', []), function ($query, $params) {
    return $query->whereIn('bank', $params);
});

Neither of these queries can work. SQL doesn't support null values in WHERE IN clauses.
You need to add ->orWhereNull('bank') when $params contains null.

So why the first one works..? :) From Controller it shows me also results with nullabne bank key.
What's more, I cannot use orWhereNull because of multiple when clauses.

So why the first one works..?

I don't see how the query could possibly work.

What's more, I cannot use orWhereNull because of multiple when clauses.

https://laravel.com/docs/queries#parameter-grouping

What's more, I cannot use orWhereNull because of multiple when clauses.

https://laravel.com/docs/queries#parameter-grouping

Ok, now done like this:
$query->when(request('query.bank'), function ($query, $params) {
    return $query->where(function ($query) use ($params) {
        $query->whereIn('bank', $params);

        if (in_array(null, $params)) {
            $query->orWhereNull('bank');
        }
    });
});

Probably can be closed, not a bug.. just my misunderstanding of principles.


Add unit conversion element and unit detection helper code

Once text is highlighted, determine whether it's a non-metric unit, convert to metric unit and display the conversion in the popup.

#13


VGA Glitches

Note: This is probably not related to #26, since I'm dealing with all of VGA.
VGA is kind of glitchy:

Steps for reproducing problems:
1a) Open Windows 95. (it's glitchy, downloaded from here: http://www.mediafire.com/download/85w636eic9sv12h/W95.rar since I'm lazy)
2a) Open any application. I just opened IE3 since I wanted to see how Internet Explorer looked like in 1995.
1b) Open Windows 98
2b) Open the MS-DOS prompt

I guess it is a feature, also Windows glitches.

I guess it is a feature
This doesn't happen in Bochs or any other x86 emulator

First of all – pretty cool that Windows 95 works at all. It's one of the versions I didn't test. I might put it one the website at some point.
Indeed our vga implementation isn't great. It's better to use a driver that supports vbe, which is implemented correctly, faster and supports bigger resolutions. A driver for Windows can be found here: http://www.navozhdeniye.narod.ru/vbe9x.htm (the same driver is used on Windows 98).
I'll leave this issue open since we might want to fix this at some point (for DOS games or so).

I think it may be due to how it handles 16-colored programs and operating systems.
Windows 2.03 has some bad graphical glitches as shown here.

Yeah... I tried Windows 2 but it's weird like that too.
Did anyone try Windows 3.11 or "Windows 3.X for Workgroups"?
But most of the operating systems I used look good, though.

Yeah, most operating systems I've tried seem to be rendered fine, it's Windows that seems to have issues. Windows 98 is rendered perfectly fine though. I tried to boot Windows Me, but I am greeted by a "KRNL386.EXE" error. Safe mode seems to lock up after the initial "Windows is running in Safe Mode" message box, but it does start. It doesn't seem to have graphical glitches though. I will try a different combination in Bochs later and see if I can get it to load.
As for Windows 3.x, I have not had luck with getting Windows 3.1 to start. It displays the splash screen, but never gets past it. I have not tried Windows 3.0 or Windows 3.11 for Workgroups yet.

Looks like this is fixed here: https://github.com/ErnWong/v86/tree/dev-vga
@ErnWong I can't wait to see a PR!

FYI, my upcoming PR only fixes some vga write modes, so it won't fix the ms-dos prompt glitch when used with the vbe driver unfortunately :worried: But at least, if you want ms-dos prompt working, you can remove the vbe driver to get the ms-dos prompt semi-usable (it still has some interesting non-graphical bugs though - the cursor jumps around to all sorts of weird places - that'll be a topic for another day)

FYI, my upcoming PR only fixes some vga write modes, so it won't fix the ms-dos prompt glitch when used with the vbe driver unfortunately 😟

Note that the bug is in the vbe driver, not in our emulation, so don't look for it. I'll see if Windows looks good enought in the old vga mode and, if yes, remove the vbe driver.

This is now fixed. The buggy vbe driver has also been removed in favour of the standard vga driver, MS-DOS prompt is working now. Please test: http://copy.sh/v86/?profile=windows98


[Fix] Set max extent

Description
This PR fixes an issue in Set max extent in Maps category, see https://github.com/Esri/arcgis-runtime-samples-ios/pull/1167#discussion_r869577927

@vquach2404 in case you missed the notification for this PR. It should be a really quick review. 🙂


Release v0.5.0

Summary
The last OpenQASM release was 0.4.0 in October 2022. Since then there have been a number of improvements and bug fixes. This PR updates the ANTLR versions to included the latest 4.13, and otherwise serves as the release candidate for v0.5.0. After merging we can push a tag to start the release process.
Details and comments
Just as a note, the version currently listed in this repo is 0.5.0, so there is no version increment as part of this PR. After the release I can create a version bump PR.

(I'll not press merge - you can do that yourself if/when you're ready.)


Jackson enum value is not used if @JsonValue is on an enum field or nonpublic method

When Jackson's @JsonValue is used on a public enum method, the Swagger enum list properly uses this value (thanks to #3553).  However, when it is used on an enum field instead, or on a non-public enum method, the Swagger enum list does not.  This causes a discrepancy between what the REST API actually accepts (as defined by Jackson) and what the Swagger definition states it does.
A real quick way to verify this is to update the JacksonValueEnum in the swagger-core test.  The EnumPropertyTest.testExtractJacksonEnumFields test will then fail.
public enum JacksonValueEnum {
    FIRST("one"),
    SECOND("two"),
    THIRD("three");

    @JsonValue
    private final String value;

    JacksonValueEnum(String value) {
        this.value = value;
    }
}

OR
public enum JacksonValueEnum {
    FIRST("one"),
    SECOND("two"),
    THIRD("three");

    private final String value;

    JacksonValueEnum(String value) {
        this.value = value;
    }

    @JsonValue
    private String getValue() {
        return value;
    }
}

And also @JsonValue not used when on interface method declaration.
public interface ErrorCode {
  @JsonValue
  String code();
}

public enum Code implements ErrorCode {
    SOME_ERROR_CODE("actual_error_code");

    private final String code;

    Code(String code) {
      this.code = code;
    }

    @Override
    public String code() {
      return code;
    }
  }

Had the same issue. Making the @JsonValue field / method public resolved the issue for me.

@frantuma Do you remember why you switched to getDeclaredMethods?
This does not return methods on interfaces. See the example from @jadrovski.


add links to each files in readme

add links in readme to each of the json files. Indicating what the files does in the link. ex:
countries by their national dish (official or proposed)

Hello, I would like to help with this issue. I will send PR later today.

Yo ahead :).
Just create a link to each file as:
Countries by number of population.
And so on. Thanks

:+1:  Thanks, this was super helpful


[refactor] Add timecode to examples

Built on #104

Pull Request Test Coverage Report for Build 924099263

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

Totals

Change from base Build 923699601:
0.0%

Covered Lines:
2

Relevant Lines:
2

💛  - Coveralls


runproc sample

This was pretty easy to get going.  It still has json on stdin, but it closes stdin, returns stdout, and scrubs the element.  Is this a decent way to proceed?  This already makes it much more shell friendly. This kind of thing looks nice:
https://gist.github.com/8c7864a67b24eac38ab8
Also I added a --all flag so it will go across the entire circuit.  This example does a netstat and tags each line of output and does the entire circuit.  The calls across the circuit go asyncronously.
cat netstat.in |  circuit runproc --tag --all -d  circuit://<IP_ADDRESS>:11022/9317/Q18f5f14751995021
The input json looks like this:
{
"Path": "/usr/bin/sudo",
"Args":["/bin/netstat", "-pant"],
"Name": "netstat"
}

Let me know if any of the comments are unclear.

Good comments.   I wanted your feedback on the timeout thing.  I knew it was bad.

I think I've got it all fixed up.

I took this branch, merged current master back in, and fixed the resulting compile errors:
https://github.com/hoijui/circuit/tree/mcqueenorama


Deserialize AttrsDescriptor in ASTSource

PyTorch Inductor writes the contents of AttrsDescriptor into the @triton.heuristics block in the generated code. When reading this data structure back in, we need to convert back to AttrsDescriptor class since we can no longer create the AttrsDescriptor from the __repr__ string. I used the from_dict static method here and to_dict() when updating PyTorch Inductor.
@giuseros does this look ok to you?

Yes, I have just one question. Does Inductor uses Attrs.to_dict() to create the dictionary?

Yes, I have just one question. Does Inductor uses Attrs.to_dict() to create the dictionary?

That is my plan, unless you have another suggestion. Actually, it looks a little silly because this line becomes
return AttrsDescriptor.from_dict(kwargs).to_dict()

but that seems to be the best way to ensure the AttrsDescriptor is valid in Inductor and then serialize it out to the generated code file.

That is my plan, unless you have another suggestion. It looks a little silly because this line becomes

Why? I mean from what I understand on that line you are returning a AttrDescriptor, so you should simply do AttrsDescriptor.from_dict(kwargs). AttrsDescriptor per se is still serializable, I think (there are tests in Triton that check that).

Why? I mean from what I understand on that line you are returning a AttrDescriptor, so you should simply do AttrsDescriptor.from_dict(kwargs). AttrsDescriptor per se is still serializable, I think (there are tests in Triton that check that).

I think the issue is that we want a string representation in PyTorch Inductor, but we want to also be backwards compatible with the old dataclass AttrsDescriptor. With some refactoring of Inductor and adding a __repr__ method to AttrsDescriptor (see https://github.com/triton-lang/triton/pull/4888) I was able to avoid the from_dict to_dict stuff but now that I am typing this I realize I need to make sure the attributes are properly initialized when recreating the object from a string...


added YT link for show 29

Added YT link for Abdel's show

Spelling failed?

Looking into this now


PEP8 compliant import statements

Grouping and ordering of import statements

2 blank lines before function

removed a pair of redundant brackets

@yash98 The second commit is unnecessary. Can you remove it?

Removed.


HTTP(S) Keyword - Upside Down does not evaluate the keyword

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
I'm trying to use Uptime Kuma to monitor (among other things) if my internet cuts over to my backup LTE connection from my fiber line.
I can accomplish monitoring of the fiber line with a static IP  just fine by using an ip api service for example:
https://api.ipify.org?format=json
keyword: W.X.Y.Z

but LTE will get whatever IP the carrier decides to give it, with no static option.
So for that condition, I'd want to check if it didn't match the same keyword as above.
I would assume that "upside down" mode would complete full validation of the success criteria and then reverse it. Instead it seems to revert back to only if there's a response without the keyword criteria.
I think this qualifies as a bug? But I could easily see it being a question or a feature request. But my first instinct is that it's not working how it should, so filing it as a bug.
👟 Reproduction steps

Set an HTTP(S) Keyword check with a keyword you know won't be in the response.
Set the "upside down" field.

👀 Expected behavior
Expect the service to be UP, because it's receiving a response, but the keyword isn't found.
😓 Actual Behavior
The service is DOWN, because it received any response at all.
🐻 Uptime-Kuma Version
1.18.5
💻 Operating System and Arch
docker
🌐 Browser
any
🐋 Docker Version
any
🟩 NodeJS Version
No response
📝 Relevant log output
No response

I don't quite understand your use case, but I followed your reproduce steps and cannot reproduce the issue.
URL: https://api.ipify.org?format=json
Keyword: <IP_ADDRESS>
Upside Down Mode: Enable
It's UP in my side.

I think the service was caching my IP or something. Looks like this is a non-issue, my bad.


Crazy CPU usage

In the two days since installing tabnine-sublime, I've heard my macbook's fan running on hard three times. Each time, when I checked Activity Monitor, the culprit was TabNine and I've had to kill it. There isn't any related output in the sublime console that I can see.
I have some large repos open, like https://github.com/django/django .
My package dir shows version 2.0.2 of the binary:
$ tree
.
├── Default.sublime-keymap
├── LICENSE
├── Main.sublime-menu
├── Preferences.sublime-settings
├── README.md
├── TabNine.py
├── TabNine.sublime-settings
├── binaries
│   ├── 1.0.7
│   │   ├── i686-apple-darwin
│   │   │   └── TabNine
│   │   ├── i686-pc-windows-gnu
│   │   │   └── TabNine.exe
│   │   ├── i686-unknown-linux-gnu
│   │   │   └── TabNine
│   │   ├── x86_64-apple-darwin
│   │   │   └── TabNine
│   │   ├── x86_64-pc-windows-gnu
│   │   │   └── TabNine.exe
│   │   └── x86_64-unknown-linux-gnu
│   │       └── TabNine
│   └── 2.0.2
│       └── x86_64-apple-darwin
│           └── TabNine
└── package-metadata.json

10 directories, 15 files

I've been experiencing the same here, just having a small size project open causes tabnine to use CPU excessively for a long period.

Same here. TabNine constantly at 90%. Is there any way to disable TabNine on a particular project?

@kinoute I don't believe Sublime providers a generic way to disable a package per project. It would need to be built in TabNine and it doesn't seem to have such a setting
@zxqfl I've had less incidents of high CPU recently but still one the end of last week. I see I'm now on version 2.0.4 of the binary. I have stuck with TabNine though because it's completions are just so much better, it's helping me autocomplete whole lines of code!

TabNine uses 196% of my CPU 😄I am on Macbook Pro Retina, 13-inch, Early 2015 and the fan is running constantly. Even when I am not actively coding..

I'm also experiencing this.
It would be great if there were a Tab-Nine command to globally stop/start it.

Just saw it taking CPU again, killed it, and got some more logging from the debug panel:
TabNine expected prefix "" but found prefix "N", falling back to substituting from word beginning: "N"
Traceback (most recent call last):
  File "/Applications/Sublime Text.app/Contents/MacOS/sublime_plugin.py", line 610, in on_selection_modified_async
    callback.on_selection_modified_async(v)
  File "/Users/chainz/Library/Application Support/Sublime Text 3/Packages/TabNine/TabNine.py", line 301, in on_selection_modified_async
    choice = self.choices[i]
IndexError: list index out of range
TabNine expected prefix "" but found prefix "N", falling back to substituting from word beginning: "N"
TabNine expected prefix "is" but found prefix "ismo", falling back to substituting from word beginning: "ismo"
TabNine subprocess is dead
Restarting it...
TabNine: starting version 2.0.4

This is still happening. Often seems to happen when I change a few hundred files at once.
I would LOVE an option to quickly disable/enable tabnine globally. Right now I need to keep Activity Monitor open to occasionally kill it when my computer starts to turn into lava.

Still getting CPU spikes. I'm close to just saying screw it and uninstalling TabNine until there's a better strategy here.

Warning: don't use TabNine during high winds and dry conditions. It may cause your computer to burst into flames.
:(

Anyone found a work around?

Other than uninstalling it, no.


fix: infinite piece timing consistency (SOFIE-2117)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Bug fix

What is the current behavior? (You can also link to an open issue here)

The timing of the timeline objects within an Infinite Piece can be inconsistent if using a preroll. This is because their starting times are incorrectly capped at 0, where they should be allowed to pre-roll.

What is the new behavior (if this is a feature change)?

The infiniteGroup.enable.start is offset by the preroll amount, thus resulting in the same "ultimate" value of start time.

Other information:

Status

[ ] Code documentation for the relevant parts in the code have been added/updated by the PR author
[ ] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

I would like to give it a bit of a test, but I don't think I can do that this week. Im happy for it to bemerged and I can test it next week

There are some failing tests in the suite for job-worker there that I need to understand first: https://github.com/nrkno/sofie-core/actions/runs/4282232508/jobs/7457095348

Codecov Report
Patch coverage has no change and project coverage change: -4.80 :warning:

Comparison is base (6c3fe03) 68.10% compared to head (ff270ea) 63.31%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@              Coverage Diff              @@
##           release48     #863      +/-   ##
=============================================
- Coverage      68.10%   63.31%   -4.80%
=============================================
  Files            280      206      -74
  Lines          34894    15093   -19801
  Branches        4656     2767    -1889
=============================================
- Hits           23766     9556   -14210
+ Misses         10677     5121    -5556
+ Partials         451      416      -35

Impacted Files
Coverage Δ

...ackages/job-worker/src/playout/timeline/rundown.ts

packages/job-worker/src/ingest/expectedPackages.ts

packages/job-worker/src/playout/timeline/lib.ts

packages/job-worker/src/lib/index.ts

.../job-worker/src/blueprints/context/adlibActions.ts

...ckages/job-worker/src/ingest/expectedMediaItems.ts

packages/job-worker/src/playout/constants.ts

packages/job-worker/src/playout/timeline/part.ts

packages/job-worker/src/ingest/rundown.ts

packages/job-worker/src/playout/__tests__/lib.ts

... and 64 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Feature/issue 759 responsive options

Closes https://github.com/gregnb/mui-datatables/issues/759, https://github.com/gregnb/mui-datatables/issues/580, and https://github.com/gregnb/mui-datatables/issues/234#issuecomment-463101548.

adds responsive option called scrollFullHeight which allows display of all rows (from a given page) in the browser without a max height
responsive scroll option has been deprecated and is being replaced with scrollMaxHeight

Looks good. I'll try to find all the existing issues, and point them in this direction once it is merged.

I used responsive: "scrollMaxHeight"  in My code, but the table is getting smaller. where can I set maxHeight value?

could you please help, how to change scrollMaxHeight default value in MUIDataTable?

@ShenLanJohn This question has been addressed in some of the closed issues, so you may find your answer here https://github.com/gregnb/mui-datatables/issues?q=is%3Aissue+maxHeight+is%3Aclosed.


Using clang is impure

Issue description
Clang has default linker search paths looking for .so files in /usr/lib. That makes builds impure and even fail if it picks up a library from /usr/lib that dynamically links a library to somewhere not in the default linker paths.
It probably has the same problem for the include path.
Steps to reproduce
strings /nix/store/path/to/bin/clang | grep /usr/lib
Possible solutions

Patch clang or provide a configure-time option to get rid of these default paths (they are not present in the gcc binary either)
Run clang with the --sysroot=/nonexistent argument which will make it not use the default search paths.

Note that I couldn't find --sysroot in man clang or clang --help (but it works and is documented on https://clang.llvm.org/docs/CrossCompilation.html); I could only find -isysroot (note: single - here) in --help, which is likely the solution to the corresponding default include path problem.

Hmm, I think our wrapper does the right thing for clang because we use it as the primary compiler for everything on Darwin and it's not reaching out to anything impure. Might still be better to patch the actual binary though.

@copumpkin Clang doesn't use the same default search paths on Linux and Darwin.
Check the code for Linux here: https://github.com/llvm-mirror/clang/blob/be15c6a8274d96827ac707e5075118d4c376940f/lib/Driver/ToolChains.cpp#L4272
  addPathIfExists(D, SysRoot + "/lib", Paths);
  addPathIfExists(D, SysRoot + "/usr/lib", Paths);

Sorry, I think I missed this:

I use llvm/clang extensively BUT with a custom wrapper for various reasons.
I actually go the --sysroot route, although IIRC clang gets unhappy if you point it at invalid paths, instead it must be a valid directory but contain nothing useful for it to use :/.  I also set a few more things when trying to free clang of its strong desire to find and imitate the local gcc:

''...
${optionalString (!needsGCC) ''
  ccBothFlags=" --sysroot=$cc"
  ccCFlags+=" -ccc-gcc-name $cc" # invalid
  ccCFlags+=" --gcc-toolchain=$cc" # also invalid
  # XXX: Do this elsewhere!
  ccLDFlags+=" --enable-new-dtags"
''}
...''

Basically I point clang at itself :P.
I think I've seen commits since 4.0 that improve Clang's ability to operate standalone on Linux without excessive kludgery, but I haven't been following that closely.  There's a proposal bounced around on and off about supporting use of a "config" file which would be great for our use cases IMO.
Anyway, what should we do to fix this? Patch out those paths, or maybe set sysroot as you suggest?

Anyway, what should we do to fix this? Patch out those paths, or maybe set sysroot as you suggest?

@dtzWill From my perspective both seem OK, patching it out or using flags; whichever is easier / more reliable / more maintainable.

@matthewbauer ‘I don't think we want to handicap our compilers’ — but the linker wrapper script already explicitly checks for /usr/lib &c. references and errors out, so the only thing that will come of the compiler picking up impure libraries is errors.  We've generally made a point in Nix and nixpkgs to try to enforce purity, or at least explicitly flag impurity; are we changing that policy now we have sandboxing?  We still don't have sandboxing everywhere (e.g. nix-shell).

Bump.

For the reference, I have noticed that clang --sysroot=/path does not look for headers in /path/usr/include (as it usually does) since this change: https://github.com/NixOS/nixpkgs/commit/507d65d7d4f195ecd5b08ee5d24f6e96924f7b1c

I've just run into this again:
Using clang together with meson in nix-shell on Ubuntu with an opencv dependency made meson determine that it should pass files like /usr/lib/x86_64-linux-gnu/libopencv_highgui.so to the linker invocation.

Still important

Still relevant

@matthewbauer We just hit this yet again at my company, and I still don't have a good solution to offer.  Is there any clarification as to whether we want to continue eliminating references to global paths from packages, or whether we're okay with relying on sandboxing for isolation?

This should probably be patched. We can add a hook to re-add the upstream default search paths if people really want that, but I doubt there is a use-case.

Is this issue still prevalent? I just checked Clang in LLVM 18 myself and I don't see any references to /usr.

Would be good if somebody could find out what fixed it, to be sure about it.

Well, it probably had to do with the gnu-install-dirs.patch we have. We probably could close this issue now as it is fixed.


DeviceManagement_ManagedDevices OS language missing

Hello-hello,
Using API operatingSystemLanguage is under hardware information property:
$Resource = "deviceManagement/manageddevices('"+$id+"')?`$select=hardwareInformation"
$uri = "https://graph.microsoft.com/$graphApiVersion/$($Resource)"
(Invoke-RestMethod -Uri $uri –Headers $authToken –Method get).hardwareinformation

serialNumber                                                   : 6242-1968-7072-4957-4783-9852-85
totalStorageSpace                                              :<PHONE_NUMBER>8
freeStorageSpace                                               :<PHONE_NUMBER>
imei                                                           :
meid                                                           :
manufacturer                                                   : Microsoft Corporation
model                                                          : Virtual Machine
phoneNumber                                                    :
subscriberCarrier                                              :
cellularTechnology                                             :
wifiMac                                                        :
operatingSystemLanguage                                        : en-US
isSupervised                                                   : False
isEncrypted                                                    : False
isSharedDevice                                                 : False
tpmSpecificationVersion                                        :
operatingSystemEdition                                         : 4
deviceFullQualifiedDomainName                                  :
deviceGuardVirtualizationBasedSecurityHardwareRequirementState : meetHardwareRequirements
deviceGuardVirtualizationBasedSecurityState                    : notConfigured
deviceGuardLocalSystemAuthorityCredentialGuardState            : virtualizationBasedSecurityNotRunning
sharedDeviceCachedUsers                                        : {}

Using InPS there is no hardwareInformation property to select or operatingSystemLanguage property itself:

Thanks.
/Maksim

Is your $graphApiVersion variable set to "beta"?  If so, that would explain the difference in properties.  The PowerShell SDK is generated against the v1.0 schema.  For convenience, there is a cmdlet called Invoke-MSGraphRequest to allow you to craft a custom call:
# Set the schema version to "beta"
Update-MSGraphEnvironment -SchemaVersion 'beta'

# Craft a custom call (the Get-MSGraphAllPages will automatically do paging and unwrap the values in all pages)
$result = Invoke-MSGraphRequest -Url 'deviceManagement/managedDevices?$select=hardwareInformation' | Get-MSGraphAllPages

Hi Rohit,
Right, $graphApiVersion is set to 'beta'. After changing SDK schema ver. to 'beta' and calling via custom call everything works fine and I get what I need.
Thanks.
P.S. some additional feedback.
Hardware Information property now exists as well when running like:
(Get-DeviceManagement_ManagedDevices -managedDeviceId eb0872d3-3148-44fb-9b30-ffd66b156362).hardwareinformation

serialNumber                                                   :
totalStorageSpace                                              : 0
freeStorageSpace                                               : 0
imei                                                           :
meid                                                           :
manufacturer                                                   :
model                                                          :
phoneNumber                                                    :
subscriberCarrier                                              :
cellularTechnology                                             :
wifiMac                                                        :
operatingSystemLanguage                                        :
isSupervised                                                   : False
isEncrypted                                                    : False
isSharedDevice                                                 : False
tpmSpecificationVersion                                        :
operatingSystemEdition                                         :
deviceFullQualifiedDomainName                                  :
deviceGuardVirtualizationBasedSecurityHardwareRequirementState : meetHardwareRequirements
deviceGuardVirtualizationBasedSecurityState                    : running
deviceGuardLocalSystemAuthorityCredentialGuardState            : running
sharedDeviceCachedUsers                                        : {}

But it returns nothing (same as via raw HTTP call which is expected) so ?$select=hardwareInformation is used in HTTP call which does the trick. Would be good if 'beta' stuff would be available to Intune PS SDK so it would be possible to do :
Get-DeviceManagement_ManagedDevices -select hardwareInformation
and receive same thing as via custom call\http call.


Datagrid - Checkbox state for hidden columns goes out of sync

Describe the bug
The popup to select which columns are hidden does not preserve the state of checkbox representing that column and is always shown in Enabled state.
Initial State:

Name column is hidden:

Reopening the pop-up shows that Name column is  visible:

Toggling the Name column checkbox again does nothing on the datagrid.
Toggling the Name column checkbox second time causes the Name column to reappear
Environment

Blazority Version 0.12.0
.NET Core Version 5.0
Browser Edge latest

https://www.nuget.org/packages/Blazority/0.12.2


Crash sdk after cancel event fired

Describe the bug
I have a windows service which uses StartContinuousRecognitionAsync.
The service processes N concurrent interactions.
At some point, the sdk generates a cancellation event on which when the reason for the cancellation is going to be logged, a crash is generated.
There are other times where the sdk generates that cancel event and it works fine.
After sdk fired canceled event, crash logging reason for cancellation (line 490):
recognizer->Canceled.Connect([&ssresponse, &totalRecognizedTimes, &recognitionEnd, this](const IntentRecognitionCanceledEventArgs& e)

	{
		ssresponse.str("");
		switch (e.Reason)
		{
		case CancellationReason::EndOfStream:
			ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" : \"Reach the end of the file\", \"errCode\": 0}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;

		case CancellationReason::Error:
==> LINE 490			ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" :\"" << e.ErrorDetails << "\", \"errCode\": " << (int)e.ErrorCode << "}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;

		default:
			ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" : \"Unknown\", \"errCode\": " << (int)e.ErrorCode << "}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;
		}

		totalRecognizedTimes = 0;
		m_keepRunning.clear();

	});

Version of the Cognitive Services Speech SDK
SDK version 1.20
Platform, Operating System, and Programming Language

OS: Windows
Hardware - x64
Programming language: Visual Studio 2017 - C++

Additional context
This is the stack of crash:
FAULTING_THREAD:  00002c4c
DEFAULT_BUCKET_ID:  HEAP_CORRUPTION
PRIMARY_PROBLEM_CLASS:  HEAP_CORRUPTION
BUGCHECK_STR:  APPLICATION_FAULT_HEAP_CORRUPTION_INVALID_POINTER_READ_WRONG_SYMBOLS
LAST_CONTROL_TRANSFER:  from 77c1c6c2 to 77c18f21
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
04f7f63c 77c1c6c2 00000001 00000002 77c1ae43 ntdll!RtlpNtSetValueKey+0x4e1
04f7f658 77bc279e 9683a0b3 0132d6e0 01310000 ntdll!RtlpNtSetValueKey+0x3c82
04f7f688 77b82fdc 0132d6e0 00000000 00000000 ntdll!wcstok_s+0x5c5e
04f7f6e4 740797c0 01310000 00000000 0132d6e8 ntdll!RtlFreeHeap+0xac
04f7f71c 7657261b 01310000 00000000 0132d6e8 AcLayers!GetHookAPIs+0x4500
04f7f730 765725e8 0132d6e8 00000000 04f7f74c ucrtbase!free_base+0x1b
04f7f740 00d28ceb 0132d6e8 04f7f75c 00d2051a ucrtbase!free+0x18
04f7f74c 00d2051a 0132d6e8 00000080 04f7f784 inConcertCognitiveServices!operator delete+0xb [d:\agent_work\3\s\src\vctools\crt\vcstartup\src\heap\delete_scalar_size.cpp @ 31]
04f7f75c 00d24cf5 0132d6e8 00000080 00000002 inConcertCognitiveServices!std::allocator::deallocate+0x2a [c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xmemory0 @ 992]
04f7f784 730356d5 00000034 046be0fc 00d2a54a inConcertCognitiveServices!std::basic_stringbuf<char,std::char_traits,std::allocator >::overflow+0x125 [c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\sstream @ 185]
04f7f7b0 73054260 032d56c3 00000055 00000000 msvcp140!std::basic_streambuf<char,std::char_traits >::xsputn+0xb5
04f7f7cc 00cf1518 032d5670 00000055 00000000 msvcp140!std::basic_streambuf<char,std::char_traits >::sputn+0x20
04f7f814 00d035c3 046be0f4 032d5670 00000055 inConcertCognitiveServices!std::_Insert_string<char,std::char_traits,unsigned int>+0x138 [c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring_insert.h @ 46]
04f7f860 00d1170a 013565f0 9d8e230a 013565f0 inConcertCognitiveServices!<lambda_c62db98fefcd1102034955d9fb50646b>::operator()+0x113 [d:\software\scm\5.5\sources\5.5\server\inconcertcognitiveservices\inconcertcognitiveservices\speechservices.cpp @ 490]
04f7f918 00d0c471 013565f0 9d8e235e 04f7fa24 inConcertCognitiveServices!Microsoft::CognitiveServices::Speech::EventSignalBase<Microsoft::CognitiveServices::Speech::RecognitionEventArgs const &>::Signal+0x14a [d:\software\scm\5.5\packages\microsoft.cognitiveservices.speech.1.20.0\build\native\include\cxx_api\speechapi_cxx_eventsignalbase.h @ 139]
04f7f94c 72942315 01391028 0136cc90 02566590 inConcertCognitiveServices!Microsoft::CognitiveServices::Speech::AsyncRecognizerMicrosoft::CognitiveServices::Speech::Intent::IntentRecognitionResult,Microsoft::CognitiveServices::Speech::Intent::IntentRecognitionEventArgs,Microsoft::CognitiveServices::Speech::Intent::IntentRecognitionCanceledEventArgs::FireEvent_Canceled+0x101 [d:\software\scm\5.5\packages\microsoft.cognitiveservices.speech.1.20.0\build\native\include\cxx_api\speechapi_cxx_recognition_async_recognizer.h @ 415]
04f7f980 729451c0 0136cc90 0135c910 729441c0 Microsoft_CognitiveServices_Speech_core!GetModuleObject+0xc75
04f7f998 729441d7 04f7f9c8 729a0f49 04f7f9d0 Microsoft_CognitiveServices_Speech_core!GetModuleObject+0x3b20
04f7f9a0 729a0f49 04f7f9d0 2fde4982 04f7fa04 Microsoft_CognitiveServices_Speech_core!GetModuleObject+0x2b37
04f7f9c8 729a0cda 00000000 00000000 2fde4a12 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x21859
04f7fa58 729ece02 0136cc90 0135c910 2fde4ae2 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x215ea
04f7faa8 729eccc0 01391278 013d34ec 00000000 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x6d712
04f7faf8 729ce218 013d34ec 02573318 032c9570 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x6d5d0
04f7fba4 729ce7d2 013d34e4 013d34ec 00000004 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x4eb28
04f7fc20 7299491b 025749a8 729dc310 7299491b Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x4f0e2
04f7fc6c 72a4f02a 01374e30 01374e30 04f7fcd0 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0x1522b
04f7fc7c 72a4e592 72a4e580 72a4f5c0 2fde4c9a Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0xcf93a
04f7fcd0 72a4ebfd 04f7fd30 0545d508 2fde4d16 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0xceea2
04f7fd5c 72a50a92 0545d49c 0545d490 03351fe8 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0xcf50d
04f7fd74 72a507ce 2fde4dde 72a50770 03351fe8 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0xd13a2
04f7fd94 765807af 03351fe8 1b3ab685 76580770 Microsoft_CognitiveServices_Speech_core!pal_string_to_wstring+0xd10de
04f7fdd0 77a462c4 03270560 77a462a0 89cd761f ucrtbase!o__CIpow+0x4f
04f7fde4 77ba0779 03270560 9683a817 00000000 kernel32!BaseThreadInitThunk+0x24
04f7fe2c 77ba0744 ffffffff 77bc361b 00000000 ntdll!RtlSubscribeWnfStateChangeNotification+0x439
04f7fe3c 00000000 76580770 03270560 00000000 ntdll!RtlSubscribeWnfStateChangeNotification+0x404
SYMBOL_NAME:  heap_corruption!heap_corruption
FOLLOWUP_NAME:  MachineOwner
MODULE_NAME: heap_corruption
IMAGE_NAME:  heap_corruption
STACK_COMMAND:  ~18s; .ecxr ; kb
FAILURE_BUCKET_ID:  HEAP_CORRUPTION_c0000374_heap_corruption!heap_corruption
BUCKET_ID:  APPLICATION_FAULT_HEAP_CORRUPTION_INVALID_POINTER_READ_WRONG_SYMBOLS_heap_corruption!heap_corruption
WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/inConcertCognitiveServices_exe/1_0_0_1/62278f3d/ntdll_dll/6_2_14393_3986/5f77edb8/c0000374/000d8f21.htm?Retriage=1

Hi there,
Thanks for reaching our. Are you able to provide any more of the code? We haven't been able to reproduce this yet.
Also is there a way you could run it with a log file set and then upload the log?

I've been doing some testing around this and I think the issue may be related to your use of sstream within a callback and not flushing it.
What is happening is that sometimes the callback thread is freeing its variables before the stream is flushed. Then when the stream is attempting to add the args members, it throws an exception.
Can you try adding a flush to ssresponse before exiting the callback function?

If I clear the ssresponse variable before exiting I don't have the reason why it failed.
It is the purpose of the variable.
I'm going to add log to the library to see if it gives us any other clues.
Something strange that is happening to me is that with sdk 1.12, it crashed often but it correctly detected the intention in the NLU model.
I have continuous speech recognition associated with an NLU model to determine its intent.
When I changed the sdk for the latest version (1.20), it stopped crashing many times (it crashes once, the one I reported to you), but it does not recognize intentions with a high %.
Most of the time it ends up returning:
'{ "status": "CANCELED", "data": { "reason" : "Reach the end of the file", "errCode": 0}, "totalRecognizedIntents" : 0 , "intents": []}'
The best scenario I found is to have sdk 1.12 with max 15 concurrent interactions.
With this amount of interactions, sdk 1.20 returns Reach the end of the file many times.

@7i77an I wasn't suggesting that you clear the ssresponse variable, just to call .flush() on it so that all of the characters are written to the stream at that point and not delayed.
Streams are not by default synchronized with their output sequence and so flush must be called when using variables that may no longer be available when the synchronization occurs. https://www.cplusplus.com/reference/ostream/ostream/flush/
recognizer->Canceled.Connect([&ssresponse, &totalRecognizedTimes, &recognitionEnd, this](const IntentRecognitionCanceledEventArgs& e)
	{
		ssresponse.str("");
		switch (e.Reason)
		{
		case CancellationReason::EndOfStream:
			ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" : \"Reach the end of the file\", \"errCode\": 0}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;

		case CancellationReason::Error:
         		ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" :\"" << e.ErrorDetails << "\", \"errCode\": " << (int)e.ErrorCode << "}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;

		default:
			ssresponse << "{ \"status\": \"CANCELED\", \"data\": { \"reason\" : \"Unknown\", \"errCode\": " << (int)e.ErrorCode << "}, \"totalRecognizedIntents\" : 0 , \"intents\": []}";
			break;
		}

		totalRecognizedTimes = 0;
		m_keepRunning.clear();
>>> ADDED LINE
                ssresponse.flush();
	});

As for the interactions being recognized correctly/incorrectly, there have been many changes to the SDK since 1.12 and we wouldn't expect to see a large difference there, but if you can get a log by setting the SDKLogFileName property and upload that, I could take a look and see if I see anything out of the ordinary. Or share more of your code and scenario so I could try to reproduce the issue.


Invalidate metadata cache entry on reconstruction failure.

This problem occurred on a production server today, running Apache 2.4.16 and mod-pagespeed-stable-<IP_ADDRESS>-7251.x86_64.
Error log:
[Fri Sep 25 11:45:21.810672 2015] [pagespeed:error] [pid 874779] [mod_pagespeed <IP_ADDRESS>-7251 @874779] Failed to stat /kunder/XX_682/YY_1250/public/gtl/blog/css/mediaquery.css: No such file or directory
[Fri Sep 25 11:45:21.810904 2015] [pagespeed:warn] [pid 874779] [mod_pagespeed <IP_ADDRESS>-7251 @874779] [0925/114521:WARNING:resource_fetch.cc(197)] Fetch failed for resource url http://www.XYZ.no/skin/frontend/moero/clean/gtl,_blog,_css,_style.css+,_gtl,_blog,_css,_mediaquery.css.pagespeed.cc.1EUVqRsEkS.css
[Fri Sep 25 11:45:21.810986 2015] [pagespeed:warn] [pid 874779] [mod_pagespeed <IP_ADDRESS>-7251 @874779] Fetch failed for http://www.XYZ.no/skin/frontend/moero/clean/gtl,_blog,_css,_style.css+,_gtl,_blog,_css,_mediaquery.css.pagespeed.cc.1EUVqRsEkS.css, status=404

Now, this is partially understandable since the file and path (from gtl) does not exist. As far as I can tell, the htaccess rewrite settings have changed, but I am not able to figure out exactly how to trigger this case.
The problem is that pagespeed has cached this combined resource and keeps referring to it in the html output, thus resulting in a seemingly permanently broken webpage.
To resolve this I had to delete the entire pagespeed cache folder and restart apache, after that it works again.
The interesting thing is that the new combined file's filename (including hash) is identical to the old, so why did it fail before? Does pagespeed cache the source filepaths with the combined file?
The css urls in the html did not change, neither did the combined file url, so something must be erronously cached somewhere.
I would expect that upon first failing the stat, it would make sure this combined resource is removed from the cache and that the combined css file will be re-generated with the up-to-date files. (If it returns a 404 on the first access would be ok, as long as it can recover for the following pageviews.)
Relevant settings deviating from the default:
<IfModule pagespeed_module>
    ModPagespeed on
    ModPagespeedRespectXForwardedProto on
    ModPagespeedInPlaceResourceOptimization on
    ModPagespeedRewriteLevel PassThrough

    ModPagespeedLRUCacheKbPerProcess   512
    ModPagespeedDefaultSharedMemoryCacheKB 125000
    ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"

    ModPagespeedLoadFromFileRuleMatch disallow .*
    ModPagespeedLoadFromFileRuleMatch allow \.(css|js|png|jpg|webp|gif|ico|ttf|woff)$

    ModPagespeedNumRewriteThreads 3
    ModPagespeedNumExpensiveRewriteThreads 1
    ModPagespeedMaxSegmentLength 2048
    ModPagespeedFileCacheInodeLimit 250000
    ModPagespeedRewriteRandomDropPercentage 10
    ModPagespeedRewriteDeadlinePerFlushMs 16
</IfModule>

<IfModule pagespeed_module>
    ModPagespeedCombineAcrossPaths on
    ModPagespeedEnableFilters recompress_png,insert_dns_prefetch,convert_gif_to_png,convert_jpeg_to_progressive,convert_jpeg_to_webp,recompress_jpeg,make_google_analytics_async,recompress_webp,resize_images,flatten_css_imports,inline_css,inline_import_to_link,move_css_above_scripts,move_css_to_head,combine_css,combine_javascript,inline_javascript,rewrite_javascript,remove_comments,remove_quotes,prioritize_critical_css,elide_attributes,collapse_whitespace,convert_to_webp_lossless,inline_google_font_css
</IfModule>

I'm seeing LoadFromFileRuleMatch statements but no LoadFromFile statements; do you have one of those as well?
Did something happen with /kunder/XX_682/YY_1250/public/gtl/blog/css/mediaquery.css ?

Oh, sorry about that. I seem to have forgot to include a whole block of the config.
<IfModule pagespeed_module>
ModPagespeedFileCachePath '/kunder/XX_682/YY_1250/pagespeed-cache'
ModPagespeedLogDir '/kunder/XX_682/YY_1250/logs/'
ModPagespeedMapOriginDomain 'http://YY_1250.raskZZ.raskesider.no' 'http://YY_1250.raskZZ.raskesider.no'
ModPagespeedLoadFromFile 'http://YY_1250.raskZZ.raskesider.no/' '/kunder/XX_682/YY_1250/public'
</IfModule>

There are several more MapOriginDomain and LoadFromFile statements (several vhost aliases), but all of them point to the same url/path.
The file and folder /kunder/XX_682/YY_1250/public/gtl/blog/css/mediaquery.css does not exist. Whether it did exist at some point is unkown, but it might not have, or it might have been moved.
This was a while ago so my memory on this is a bit fuzzy, but the error did not make any sense to me. The file

Yes, this doesn't sound like what we want to happen, but I think I see how it could happen.
PageSpeed has an "output cache" where it stores optimized resources.  http://www.XYZ.no/skin/frontend/moero/clean/gtl,_blog,_css,_style.css+,_gtl,_blog,_css,_mediaquery.css.pagespeed.cc.1EUVqRsEkS.css , call it a+b+c, should have been in that cache, but it sounds like it was evicted.  Which is ok.
PageSpeed also has a "metadata cache" where it stores things like "a, b, and c combine together and would be in the output cache under a+b+c".  When generating the html we see that in the metadata cache and produce the combined resource.  Then when a request actually comes in for a+b+c we see it's not in cache and try to reconstruct it. If we succeed, it's back in the "output cache" and we're in good shape again.  Unfortunately, in this case we couldn't reconstruct a+b+c because in the meantime a file has been moved or removed and we can't find, say, b (stat fails).  Now we're stuck.

That explains most of it, but not the part about deleting the cache and reloading the page a couple times makes it produce the exact same combined resource again, successfully.
That is why I was thinking the rewrite settings changed or some odd thing, since it seems to be able to actually find the resource through http but not when stat'ing directly. Does the output cache store where it got a file (http/direct)? Did it somehow assume it would exist in the filesystem and not fall back to http when it didn't?
(BTW: mod_pagespeed settings did not change, that much I know)
I can look into the code of the website in a few days, when I am back at work. I do remember not understanding how that file was successfully re-cached after the cache-wipe, but the problem was gone and I had to move on to look into a problem on another server.

Some discussion on the dev mailing list: https://groups.google.com/forum/#!msg/pagespeed-dev/clp0OTLIZ8Q/F3HdmHkNAgAJ

Did it somehow assume it would exist in the filesystem and not fall back to http when it didn't?

Yes, that's a thing we'll do.  If IPRO is on, which became on by default in 1.9, we'll store resources we see in cache as they flow through the server.  But if we need to reconstruct something that's not in cache and you have LoadFromFile enabled for that path we'll check disk but not http.
So: is everything on http://YY_1250.raskZZ.raskesider.no/ matching \.css|js|png|jpg|webp|gif|ico|ttf|woff)$ stored under /kunder/XX_682/YY_1250/public?

Yes, those two should match perfectly, except the http one could have mod_rewrite doing some magic. I have checked the backups from before that date, and there was no rewrite that should affect those files.
Also, I might have figured out why it looks for
/gtl/blog/css/mediaquery.css instead of /skin/frontend/moero/clean/gtl/blog/css/mediaquery.css
In the html source (php generated) it is "http://www.XYZ.no/skin/frontend/moero/clean//gtl/blog/css/mediaquery.css", notice the double slash. Possibly that makes something confused and the path becomes "http://www.XYZ.no/gtl/blog/css/mediaquery.css" (that has never existed).
That also explains why I could not find that path myself and thought it had been moved. It had not been moved, and I see no relevant changes in the files/paths in the days before the error.
I still do not understand what caused this error to suddenly occur and then work again after a cache wipe. This might have been related to changes of what mod_pagespeed filters were enabled, but I have no logs of what might have been changed/tested.

Another bit of info that might be relevant is that the html references the same file twice, one with the double slash and one without.
<link rel=stylesheet type="text/css" href="http://www.XYZ.no/skin/frontend/moero/clean/gtl/blog/css/mediaquery.css" media=all />
<link rel=stylesheet type="text/css" href="http://www.XYZ.no/skin/frontend/moero/clean//gtl/blog/css/mediaquery.css" media=screen />

Summary: this is a bug, and it's on our list of things to fix.

Thinking about how to test this:

make sure you're not running any sort of in-memory http cache
fetch a page with a resource until you see it optimized
manually delete the resource from disk and cache
fetch the page, observe the html still references the optimized version
fetch the optimized version, get 404
fetch the page, observe the html (if broken then "still", if fixed "no longer") references the optimized version

Might as well test this in the combining case, both because combining is more complex and because this is where it's likely to bite people (because a+b+c 404s until metadata cache expiry when c is missing, when without pagespeed they'd just see c 404ing)

I'm now thinking this is lower priority than I had thought: it only applies when a resource disappears from disk but the html continues to reference it, which should be very rare.

I think you need to re-read my two last comments.
From what I could gather, the file it gets a 404 on never actually existed. And that seems to be because of a double / (/.../clean/gtl/...) in the url from the html, and mod_pagespeed thinks that means /gtl/... (stripping the path prior to the //).
Perhaps things get extra confused when it is referenced both with the correct path and the one with the double slash (at least it sure did confuse me). Whether that actually causes the error or just makes it harder to find/understand I do not know. Problem disappeared after the extra slash was removed.
Whether this was just one problem or two, I do not know.
But I suspect some url parser bug at least.

That actually sounds like the bug we fixed in <IP_ADDRESS> / <IP_ADDRESS>.  Have you seen it on those or later versions?

No, we have not seen this problem again, but since the html code was also fixed that might not mean anything.
In any case, good to hear. :+1:
You might close this issue, unless you want to keep track of the other potential bug.

I'm now thinking this is lower priority than I had thought: it only applies when a resource disappears from disk but the html continues to reference it, which should be very rare.

This is actually not as rare as I had thought.  Here's a situation that could give you this problem:

Fetching isn't working, so resources only get into the cache via (ipro) recording
The pagespeed cache usage is large enough that the cache eventually gets cleaned
There's some sort of http cache between pagespeed and the users so that output resources aren't freshened

Now the cache cleaner removes the .pagespeed. resource for something, and the input resource.  We can't reconstruct it because we don't have fetching.  We'll still emit .pagespeed. resource references in the html, even though they'll 404, and we'll be stuck in this state until the cache expiration time of the input resource.

Things we could do when we have to 404 a resource:

issue a redirect to the original resource (but this doesn't fix combiners)
clear the corresponding metadata cache entry (but we don't have an index for this)
make a synthetic pagespeed cache flush for the resource

Talking to @jmarantz here's a robust but slightly hackish way we could fix this.  On failing to reconstruct a .pagespeed. resource either:

Issue a redirect to the underlying resource.  The user will get what they want, and we'll ipro-record the resource in cache for next time.

if there are multiple underlying resources, or it's not a direct substitution, then take the shortest input resource url and add it to the purge set.  This 404 will still go out (not ideal, but unavoidable) but the next time we're considering using the relevant metadata cache entry we'll see it as invalidated.

We should also be able to just delete the metadata cache entry w/o touching
the purge set, since we do have its key when serving a .pagespeed. resource
(though that doesn't prevent the problem from reoccurring; OTOH I would be
worried about the size of the invalidation set in the other case...)
On Thu, Nov 17, 2016 at 3:06 PM, Jeff Kaufman<EMAIL_ADDRESS>wrote:

Talking to @jmarantz https://github.com/jmarantz here's a robust but
slightly hackish way we could fix this. On failing to reconstruct a
.pagespeed. resource either:

Issue a redirect to the underlying resource. The user will get what
they want, and we'll ipro-record the resource in cache for next time.

if there are multiple underlying resources, or it's not a direct
substitution, then take the shortest input resource url and add it to the
purge set. This 404 will still go out (not ideal, but unavoidable) but the
next time we're considering using the relevant metadata cache entry we'll
see it as invalidated.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pagespeed/mod_pagespeed/issues/1145#issuecomment-261354523,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADl1RB8ysq4b6glwz2jgZqm5U0mPNUaDks5q_LO3gaJpZM4GDw6M
.

Another issue is that cache purging is not enabled by default.  Cache
flushing is, but that is a big hammer.  The reason for that is I didn't
want to break people's scripts if they were already using cache flushing.
We could support both, but when we reviewed purging we thought that was too
complex.
On Nov 17, 2016 3:12 PM, "Maks Orlovich"<EMAIL_ADDRESS>wrote:

We should also be able to just delete the metadata cache entry w/o touching
the purge set, since we do have its key when serving a .pagespeed. resource
(though that doesn't prevent the problem from reoccurring; OTOH I would be
worried about the size of the invalidation set in the other case...)
On Thu, Nov 17, 2016 at 3:06 PM, Jeff Kaufman<EMAIL_ADDRESS>wrote:

Talking to @jmarantz https://github.com/jmarantz here's a robust but
slightly hackish way we could fix this. On failing to reconstruct a
.pagespeed. resource either:

Issue a redirect to the underlying resource. The user will get what
they want, and we'll ipro-record the resource in cache for next time.

if there are multiple underlying resources, or it's not a direct
substitution, then take the shortest input resource url and add it to the
purge set. This 404 will still go out (not ideal, but unavoidable) but
the
next time we're considering using the relevant metadata cache entry we'll
see it as invalidated.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<https://github.com/pagespeed/mod_pagespeed/issues/1145#
issuecomment-261354523>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
ADl1RB8ysq4b6glwz2jgZqm5U0mPNUaDks5q_LO3gaJpZM4GDw6M>
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pagespeed/mod_pagespeed/issues/1145#issuecomment-261356352,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB2kPeAQsxQ_SFYPC5tdPV--6iW8D6u7ks5q_LVHgaJpZM4GDw6M
.

The deletion of the metadata cache key seems like a good idea, though we'd need to delete it in every instance of the cache.  If there was an LRUCache with each child process that would be hard.  If we are going to go this route we want to eliminate the LRUCache as an option.

Another possible strategy for a fix: avoid pagespeed-rewrites for resources recorded via the ipro recorder. consider them a miss in that context.
E.g. we could put the ipro-recorded stuff in a different cache fragment.

On Sun, Nov 20, 2016 at 12:42 PM, Joshua Marantz<EMAIL_ADDRESS>wrote:

Another possible strategy for a fix: avoid pagespeed-rewrites for
resources recorded via the ipro recorder. consider them a miss in that
context.

Might be messy since we use a regular rewrite as a nested one in the ipro
case....

avoid pagespeed-rewrites for resources recorded via the ipro recorder

That would be too bad: recording is more efficient than fetching, and right now with ipro on we may be able to avoid some fetching.
Actually, no.  We'll initiate the fetch when processing the html, and initiate the recording when we receive the request for the resource, so ipro won't avoid fetches.  Though we could add something that disabled fetching-in-response-to-html to get the efficiency gain I was thinking about.

Ok, here's another way of thinking about it.  This is only a problem in cases where fetching is broken but recording is working.  So what's better to do in this case?

Not produce any .pagespeed. resources: no longcaching, no combining, etc
Be at risk that .pagespeed. resources will fall out of cache: redirect for single resources, 404 once for combined resources

The invalidation idea is not necessarily that easy.  I was thinking of
doing something expedient and correct.  I am not sure if my proposal is
expedient either though.
On Nov 21, 2016 8:50 AM, "Jeff Kaufman"<EMAIL_ADDRESS>wrote:

Ok, here's another way of thinking about it. This is only a problem in
cases where fetching is broken but recording is working. So what's better
to do in this case?

Not produce any .pagespeed. resources: no longcaching, no combining,
etc
Be at risk that .pagespeed. resources will fall out of cache:
redirect for single resources, 404 once for combined resources

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pagespeed/mod_pagespeed/issues/1145#issuecomment-261943367,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB2kPUkY0S8o9ghtpMMDqHCCZhgP3vsEks5rAaG7gaJpZM4GDw6M
.

I am now creating a repro testcase, not sure yet of the best way to fix it

So some thought dump:

It's helpful that IPRO goes via RecordingFetch -> CacheFetcher, with a separate case for non-proxy setups (e.g. those using IproRecorder), so if we want to store these things differently, we can.
Similarly cache fragments may make it relatively easy to have a separate namespace for this stuff.
The hard part is avoiding duplicate storage and duplicate optimization
A way to avoid optimization duplication may be to use the revalidation framework somehow, to elevate IPRO-produced rewrites to general ones. Quite invasive, though, and doesn't help the dual-storage of the resource.
Also have to keep in mind there may not be a non-IPRO path fetch attempt at all. That's the entire point of IPRO, after all. Hmm, maybe can mark resources as IPRO-only somehow, and have them ignored in Resource path but not CacheFetcher path? Seems workable, but dangerous code-structure/complexity wise.

https://github.com/apache/incubator-pagespeed-ngx/issues/1686 is I think a great success-story for how to resolve this issue in a deployment. The punchline is in the last few messages in that issue.


Connect to existing Home Automation System / separate warm white LED installation

For now: use WLED interface.


ENH: interpolate: allow Akima extrapolation

Reference issue

Minor change. Closes #20247
What does this implement/fix?

We add the extrapolation parameter to the construction; passing it to the parent classes. We keep False as the default as that is the behavior of the function before this change.
Additional information

Apologies @j-bowhay. Added the missing unit test(s). If there is a missing test, please let me know so I may add it.

I guess the doc of the argument “extrapolate” should read “If bool, …” instead of “If true, …” to be consistent with the doc of CubicHermiteSpline and PPoly. @psmd-iberutaru

Just a follow up ping for review: @ev-br  @j-bowhay

Jake @j-bowhay , your review is red on GH, is there something you'd like to see in this PR?

CI is green, review comments are addressed, the patch LGTM and is merged. Thank you @psmd-iberutaru, all. And congrats with your first scipy contribution! Keep them coming :-).


Bump to 1.2.5

Fix name of the section and add a hyperlink to it.

@lukecaputo thank you! :smile:


Slash commands

Why?
Adds /command support via a new #command method:
/* /deploy this-repo */
tools.command('deploy', arg => {
  console.log(args)
})

Closes #17
How?
Added a new #command method to the Toolkit class.

[ ] Tests have been added/updated
[ ] Documentation has been updated

This would be pretty neat. I was just thinking about this over the weekend. I'm currently using Slack for /deploy but would love to do this from a PR and get rid of slack (i'm the only user on our slack workspace 😅).


Request: Use cilium-sysdump from CI

Currently when CI builds fail, it gathers a bunch of information like this:
https://github.com/cilium/cilium/blob/861b39e9fbc6f926a8e890d92573d040b7f0e09e/test/helpers/kubectl.go#L1743-L1755
However, this is overlapping and a subset of the real tool we use to support the community, cluster-diagnosis:
~https://github.com/cilium/cilium-sysdump~
https://github.com/cilium/cilium-cli/tree/v0.8.4/sysdump
We should switch the CI over to using cilium-sysdump so that we get consistent output and only have to update one tool to take advantage of any changes to the information that is useful/necessary for debugging.
Note, the "CI 3.0" (github workflow-based) runs do use cilium-sysdump today, but it appears that the Jenkins/ginkgo runs do not.

Example missing functionality: CI dumps pods list as json into a file called pods.txt. cluster-diagnosis dumps both json (into pods.json) and the human-readable table format into pods.txt.

@joestringer I would propose to store everything in json files in the cluster-diagnosis and use an external tool to read those files. I've a prototype to read those json files locally.

I've had a similar issue assigned to myself for some time - https://github.com/cilium/cilium/issues/3495
But, I've never gotten around to it =/

@aanm that's well and good, so long as we make those tools readily available and easy to use. Is this a new tool we then have to write? Or teach people how to use an existing tool?
AFAIK it's not expensive to write one extra file and allow users to just use their text editor of choice to view the contents.

I definitely think we should move to using cluster-diagnosis , and when doing so, ensure that it has parity with what we have currently in the CI. That way we don't lose any information that we need to debugging the CI.

#7760 highlights another potential issue with the current approach, this time on the Runtime ginkgo side.  We'd still have to run it in an environment where kubectl and a kubeconfig are present, but would help us debug our tooling in the CI as well.

This is pretty good at this point, we can close the item. If we find there is a limitation in future we can always reopen or create an new, more targeted, issue.


[Tabs] With Drawer Tab Indicator Issues

[x] This is a v1.x issue (v0.x is no longer maintained).
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
Tab indicators should work fine even if we open/close the drawer
Current Behavior
It's easier to explain it with the images
It goes from this
http://prntscr.com/jtxoim
to this when we open the drawer at the left
http://prntscr.com/jtxood
Steps to Reproduce (for bugs)
Always reproducible when using tabs with Collapsable drawer
Context
Your Environment

Tech
Version

Material-UI
v1.0.0

React
16.3

browser
All

etc

I fixed the width of the paper and this was resolved. It was due to the reduction in the width of paper!


ReadMe Update : Fixed localForage markdown error

Fixed an issue in the ReadMe change I did for localForage (doh!)

This is a fix for the localForage change I made. I was sure I'd checked it before creating the pull request. Obviously not!

Ahaha thanks again! :beers:


Enhancement: Auto set the SqlBulkCopyOptions to KeepIdentity for Bulk Operations if the Identity Column is used as the qualifiers.

This is now available at RepoDb.SqlServer.BulkOperations (>= v1.0.4-beta3)


BUG Incorrect operations after loading AGP

On low resolution some scaffolds are not reoriented as they must be. But in higher resolutions all ok

This happens after manual operations too

Confirm having this issue in 1.0.30-5636a30-webui_d454f01 with atrop_EBRE after applying AGP and in mopti_male after applying AGP and reversing three leftmost scaffolds.


When any component is blocked by an Ad Blocker all functionallity is killed

Describe the bug
When any component is blocked by an Ad Blocker the whole site crashes and any functionality seizes to function. The error reads TypeError: error loading dynamically imported module.
TypeError: error loading dynamically imported module app.js:18:41
    handleError https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/@fs/home/projects/sveltejs-kit-template-default-1rvavc/.svelte-kit/generated/client/app.js:18
    handle_error https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/node_modules/@sveltejs/kit/src/runtime/client/client.js?v=f589e44a:1313
    _hydrate https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/node_modules/@sveltejs/kit/src/runtime/client/client.js?v=f589e44a:1787

I am using uBlock Origin on FireFox and Chrome. We've had other reports from this happening using AdBlock on Chrome. On Safari the issue seemed to be more muted, with the site still functioning despite the components being blocked as expected, but I was not able to confirm this myself.
Additionally in our project the page begins to redirect infinitely to itself, causing a constant looping reload. I could however not reproduce this in a clean project, but I thought it was worth noting.
Reproduction

Create a clean project
Add any component that is likely to get picked up by an Ad Blocker. In my case I went for the name "ExternalAd.svelte"
Import it into the layout file
Turn on Ad Blocker and refresh the page
You should see errors in the console, as well as not being able to interact with any interactive components, for example the - and + buttons.

Here is an example of a completely clean project, there is nothing new in there except for the ExternalAd.svelte component
https://stackblitz.com/edit/sveltejs-kit-template-default-1rvavc?file=src%2Froutes%2F%2Blayout.svelte
I tested it locally as well, and the same happens as on the StackBlitz page.
Logs
Uncaught (in promise) TypeError: error loading dynamically imported module start.js:28:1
    start http://localhost:5173/@fs/C:/Sites/sveltekit-ad-test/node_modules/@sveltejs/kit/src/runtime/client/start.js:28
    AsyncFunctionThrow self-hosted:814
    (Async: async)
    <anonymous> http://localhost:5173/:216
    (Async: promise callback)
    <anonymous> http://localhost:5173/:215

TypeError: error loading dynamically imported module app.js:18:41
    handleError https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/@fs/home/projects/sveltejs-kit-template-default-1rvavc/.svelte-kit/generated/client/app.js:18
    handle_error https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/node_modules/@sveltejs/kit/src/runtime/client/client.js?v=f589e44a:1313
    _hydrate https://sveltejskittemplatedefault1rva-145l--5173--bf38680a.local-corp.webcontainer.io/node_modules/@sveltejs/kit/src/runtime/client/client.js?v=f589e44a:1787

System Info
System:
    OS: Windows 10 10.0.19045
    CPU: (8) x64 Intel(R) Core(TM) i7-9700KF CPU @ 3.60GHz
    Memory: 13.74 GB / 31.92 GB
  Binaries:
    Node: 18.0.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.18 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 8.6.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 114.0.5735.110
    Edge: Spartan (44.19041.1266.0), Chromium (114.0.1823.37)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @sveltejs/adapter-auto: ^2.0.0 => 2.1.0
    @sveltejs/kit: ^1.5.0 => 1.20.2
    svelte: ^3.54.0 => 3.59.1
    vite: ^4.3.0 => 4.3.9

Severity
blocking all usage of SvelteKit
Additional Information
This issue might be related; https://github.com/sveltejs/kit/issues/2699

I don't see how SvelteKit should be able to recover from any of this. If a JavaScript file is blocked from executing that is needed for the site to function, it will obviously crash in unexpected ways. What are you imagining should happen in such a case?

It would be nice if it could fail silently. Components like this are optional, and I'm fine with them not executing at all. But even in cases where I do want component to execute, there are going to be cases where Adblockers falsely flag a particular file. The entire site not working because of that is just not a viable outcome.
Adblockers are very present and used by a large enough portion of users that we can't realistically just ignore them.

How should Svelte(Kit) know that components "like this" are optional? We can't know, and safeguarding every possible import to fail within the code isn't practical either.
In general, in situations like this it's best to try to architect the site in such a way that it also works without JavaScript so that things like this aren't that impactful.

I use uBlock Origin on Chromium, but it blocks nothing on both stackblitz and localhost.
I suppose, a dynamic import and svelte:component is a workaround.

Here's a thought. The files are blocked purely based on the filename. What if there was a parameter that could be toggled to randomize the filenames for each component, setting them to random strings?


An idea how to structure the pipeline

Just some first ideas on how to structure the pipeline after a discussion during the 2024-08-08 SCT dev meeting:
1. Installation script
This script will be run only once and install SCT and dcm2niix --> it can be relatively simple --> use bash script.
2. Dicom to nii conversion script
This script will be run for every new subject to convert their images from DICOM to nii. We do not know how many scanners the images will be coming from, what the image filenames will be, etc. So, I would just run a simple dcm2niix conversion and then let the user decide what image(s) they want to process.
For future versions of the pipeline, we could also consider prospectively organizing the subjects into a BIDS dataset.
3. Analysis script
This script will be used for the main analysis. Depending on the selected image (T2w, T2star, DWI, ...), it will perform a series of SCT commands. It could be a relatively simple bash script. If we wanted to handle more edge cases, a python script could be more appropriate.

Okay, the current implementation uses only a single bash script, which manages the entire pipeline (dcm2nii conversion, running SCT functions, QC,). Details: https://github.com/sct-pipeline/balgrist-sci?tab=readme-ov-file#3-analysis-pipeline


runme open fails to install code-server when executing in fish shell

I have a macos+fish environment.
Next command fails (executed in fish shell):
> runme open

No code-server installation found. Do you want to install coder's code-server?

fish: command substitutions not allowed here
__cleanup() {
         ^^
could not execute command: installation command failed: failed to run command: exit code: 127

Next command works fine (also executed in fish shell):
> SHELL=zsh runme open

This error indicates that the problem is likely related to the code used to collect environment variables in the session. It's not well-tested across various shells.
Does it happen only for runme open or for runme run <cmd> as well?

Does it happen only for runme open or for runme run <cmd> as well?

Yes, it is the same error for runme run FILE_LIST for example repo:
> git clone --depth=1 https://github.com/stateful/docs.runme.dev.git
> runme run FILE_LIST
fish: command substitutions not allowed here
__cleanup() {
         ^^
could not execute command: failed to run command "FILE_LIST": exit code: 127

Thanks for checking! I think bash, zsh and fish in fairly new versions should work well. We can run tests in a Docker container so we should be able to cover all shells easily. @sourishkrout wdyt?

Thanks for checking! I think bash, zsh and fish in fairly new versions should work well. We can run tests in a Docker container so we should be able to cover all shells easily. @sourishkrout wdyt?

Sure thing. zsh works for sure. fish used to not but with the latest upgrades might. We are working on a warning notification inside the extension to flag unsupported PowerShell etc right now. Would be great if we could move fish to supported but not a high priority.

I've ran into this problem too. I tried setting the interpretor, but I assume this is ignored when running interactively in a shell.
It would be good if this was respected.
sudo nixos-rebuild switch --fast --flake .#(hostname)

Thanks for the feedback, @rawkode! The way you'd enforce bash is by using frontmatter in the document as per https://docs.runme.dev/Reference/configuration#document-options
So what you'd want to do is use that instead of interpreter, e.g.:
---
shell: bash
---

# Documentation
This is my doc


Buf to kr enhancements

From Issue #28 , added an optional argument to FluidBufToKr so that it can be initialized inside a SynthDef. This requires that a numFrames argument be supplied with the number of frames long that the buffer will be once supplied as an argument to a running synth.
Test code (with fixed version of FluidBufToKr):
(
// throws error because number of frames not specified
s.waitForBoot{
	Routine{
		~synth = {
			arg buf;
			FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);

			FluidBufToKr.kr(buf).poll; ///////// this will now throw an error asking for a numFrames
		}.play;

		2.wait;

		~buffer = Buffer.alloc(s,5);
		s.sync;
		~synth.set(\buf,~buffer);
	}.play;
};
)

(
// works
s.waitForBoot{
	Routine{
		~synth = {
			arg buf;
			FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);

			FluidBufToKr.kr(buf,5).poll; ////////// this will work becaues it knows how many frames the buffer will be
		}.play;

		2.wait;

		~buffer = Buffer.alloc(s,5);
		s.sync;
		~synth.set(\buf,~buffer);
	}.play;
};
)

For some reason the class file didn't commit. Probably user error. Please hold.

Just as a note, PR's need to have their base branch as dev. Seems that @weefuzzy got to it first, but just a heads up for the next ones :) Also are you force pushing @tedmoore to overwrite some mistakes or something? Nothing wrong with a --force every now and then but I'm curious if some part of the workflow is causing friction for you.

interface question: is there no way to instead store the size at instantiation as an instance variable and not give the user the responsibility to give it manually? I wonder what would happen if:

I pass a buf of 10samps and specify 9 or 11 in that value
I pass a buf of the wrong size dynamically

I don't know how the error checking is and how sturdy it is and if the size has to be fixed at all (I suspect it has and therefore we need to check what is passed I think)

some part of the workflow is causing friction for you.

Fork does a weird thing where sometimes it gets confused (or I get confused) saying that my origin and local are different even though I've just pushed (and I know that I was up to date). When this happens a quick force fixes it...
Anyone else have this weirdness happen? Next time it happens to me I'll take a screenshot and see if there are any suggestions.

These are good questions. I should probably lay out some more of my thinking:

is there no way to instead store the size at instantiation as an instance variable

Maybe I don't understand your suggestion, but I believe that's what this is doing. When one creates, instantiates, the SynthDef, they specify how many frames the buffer will be when then eventually set it as an argument to the Synth.

and not give the user the responsibility to give it manually?

There are a lot of times in SC when the user is responsible to give something manually, setting the numChannels in PlayBuf.ar for example (arguments like this are "not modulatable" as the help files like to say). This is basically the same thing, as the SynthDef won't know how many channels to allocate for the control stream output of FluidBufToKr unless the user specifies it.

I wonder what would happen if:

I pass a buf of 10samps and specify 9 or 11 in that value
I pass a buf of the wrong size dynamically

This is all BufWr.kr and BufRd.kr under the hood (inside this pseudo-UGen). Both of those UGens will clip to the highest index if the index supplied is "out of bounds" of the buffer.
If you specify the number of frames to be 10 and pass a buffer with 9, you'll get back a 10 channel control stream, where the last two values are the same (both will read out of index 8 (zero counting)).
If you specify the number of frames to be 9 and pass a buffer with 10, you'll get out a 9 channel control stream that will read out the first 9 frames of the buffer.
If the user passes a buffer proper (as opposed to an OutputProxy (i.e. argument to the SynthDef)) the user can forgo, they want, specifying the number of frames because since it's a buffer, this can just check how many frames long it is.

I don't know how the error checking is and how sturdy it is and if the size has to be fixed at all (I suspect it has and therefore we need to check what is passed I think)

There are error checks in here:

a warning if the buffer has 0 frames
a error if the buffer has > 1000 frames
a very polite error if the buffer argument doesn't receive a buffer (because it is receiving an OutputProxy) and numFrames isn't specified

The only other error I can think would be to use BufChannels.kr and BufFrames.kr to do error checking on the server as buffers are arriving dynamically. That to me seems more hand-holdy than SuperCollider usually is? Also, I don't know how to throw an error from the server!? Maybe that's a question for @weefuzzy.
There's a test file to try out too. https://github.com/flucoma/flucoma-sc/blob/BufToKr-enhancements/test/FluidBufToKr test.scd
I'm happy to tweak the interface yet.

as the SynthDef won't know how many channels to allocate for the control stream output of FluidBufToKr unless the user specifies it.

As this is a pseudoUGen isn't there a way to call buf.numframes at instantiation and store that? Then the value will be stored and we remove one potential user error for free - it just sets it from the first buffer it is passed at instantiation. Or is your mod planning for people not to have to pass a buffer at all? If the latter, then I understand, but what we could do is to make a default of -1 which would then be captured if the user just provide a valid buffer and no 2nd argument?

Fork does a weird thing where sometimes it gets confused (or I get confused)

@jamesb93 I figured it out. It happens when I amend my commit. I see why as well. Ugh. But I like amending.

Fork does a weird thing where sometimes it gets confused (or I get confused)

@jamesb93 I figured it out. It happens when I amend my commit. I see why as well. Ugh. But I like amending.

Just don't push until you're done with amendments then 😄


Build a Cash Register final test STILL broken

Describe the Issue
Although my code should pass the final test, and passes all the other ones, it fails to pass regardless of displaying exactly what this test requires.
Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/build-a-cash-register-project/build-a-cash-register
Your code

let cid = [["PENNY", 0.5], ["NICKEL", 0], ["DIME", 0], ["QUARTER", 0], ["ONE", 0], ["FIVE", 0], ["TEN", 0], ["TWENTY", 0], ["ONE HUNDRED", 0]];

let price = 19.5

const change_tracker = [
    { name: 'ONE HUNDRED', value: 10000, outStr: 0 },
    { name: 'TWENTY', value: 2000, outStr: 0 },
    { name: 'TEN', value: 1000, outStr: 0 },
    { name: 'FIVE', value: 500, outStr: 0 },
    { name: 'ONE', value: 100, outStr: 0 },
    { name: 'QUARTER', value: 25, outStr: 0 },
    { name: 'DIME', value: 10, outStr: 0 },
    { name: 'NICKEL', value: 5, outStr: 0 },
    { name: 'PENNY', value: 1, outStr: 0 }
];
const change_due = document.getElementById("change-due")
const changeElement = document.getElementById("change")
const CENT_IN_DOLLAR = 100

let [cash, converted_cash, total_cid, reg_status, missed_change] = [null, null, null, null, ''];

//Upon load, add the price and drawer change
document.addEventListener('DOMContentLoaded', function () {
    const totalElement = document.getElementById('total')
    totalElement.innerHTML = `$${price.toFixed(2)}`
    drawer_change()
})

//Handles purchase button, updating change information and drawer status.
const purchase = () => {
    //clear any elements in change_due
    clear_change_div()

    cash = document.getElementById("cash").value

    //get total cash in drawer
    for (let i = 0; i < cid.length; i++) {
        total_cid = floatFixer(total_cid) + floatFixer(cid[i][1]);
    }
    total_cid = floatFixer(total_cid);

    if (cash.length == 0) {
        alert('Invalid input')
    } else if (cash < price) {
        alert("Customer does not have enough money to purchase the item")
        return
    } else if (cash == price) {
        change_due.innerHTML = 'No change due - customer paid with exact cash'
        return
    } else if (cash - price > total_cid) {
        reg_status = 'INSUFFICIENT_FUNDS'
    } else {
        console.log(cash - price, total_cid)
        if (cash - price == total_cid) {
            reg_status = 'CLOSED'
        } else {
            reg_status = 'OPEN'
        }
        converted_cash = parseInt((cash - price) * CENT_IN_DOLLAR)
        calculateChange(converted_cash)
    }
    changeUpdate()
    drawer_change()
}

/*
Calculates the change breakdown for a given amount 'num'.
Iterates through elements in 'change_tracker' and updates values in the 'cid' array accordingly.
Updates 'outStr' property in 'change_tracker'.
*/
const calculateChange = (num) => {

    //slowly breaks down the change to 0
    //for each element of change_tracker
    for (const element of change_tracker) {

        //find the matching element in CID array (PENNY find PENNY)
        let matching_cid = cid.find((index) => index[0] === element.name)

        //find index of matching element
        let index = cid.indexOf(matching_cid)

        if (num >= element.value && cid[index][1] == 0) {
            missed_change += `<p>${element.name}: $0</p><br />`
        } else {
            //while num is greater than the elements value
            while (num >= element.value && cid[index][1] > 0) {
                //decrease num by elements value
                num -= element.value;

                //convert element value to dollar amount
                let convert_dollar = element.value / CENT_IN_DOLLAR

                //decrease matching element in cid array by element value
                cid[index][1] = floatFixer(parseFloat(cid[index][1] - convert_dollar))

                //add element value to the outstr value
                element.outStr += convert_dollar
            }
        }
    }
    if (num != 0) {
        reg_status = 'INSUFFICIENT_FUNDS'
    }
}

//Updates the HTML content of 'change_due' element with register status and possible change.
const changeUpdate = () => {
    change_due.innerHTML += `<h3>Status: ${reg_status}</h3><br />`
    if (reg_status !== 'INSUFFICIENT_FUNDS') {
        //find all elements in change_tracker where outStr is not 0 (base value)
        let filtered_items = change_tracker.filter((element) => element.outStr !== 0)
        change_due.innerHTML += missed_change
        filtered_items.forEach(element => {
            change_due.innerHTML += `<p>${element.name}: $${floatFixer(element.outStr)}</p><br />`
        })
    }
}

//Updates the HTML content of the 'change' element with remaining change in the register
const drawer_change = () => {
    changeElement.innerHTML = `<h3>Change in Drawer</h3>`

    cid.forEach(element => {
        changeElement.innerHTML += `<p>${element[0]}: $${element[1]}</p> `
    })
}

//Resets the total cash in drawer, change_tracker outstr values, and removes all children nodes from the 'change_due' element
const clear_change_div = () => {
    total_cid = 0
    change_tracker.forEach(element => {
        element.outStr = 0
    })
    while (change_due.firstChild) {
        change_due.removeChild(change_due.firstChild);
        console.log(change_due.firstChild)
    }
}

//Fixes floating point numbers
const floatFixer = (num) => {
    return parseFloat(num.toFixed(2))
}

Expected behavior
Pass the test
Screenshots

System

Device: Desktop
OS: Windows 10
Browser: Chrome
Version: 121.0.6167.86 (Official Build) (64-bit)

Additional context
No response

Thank you for reporting this issue.
This is a standard message notifying you that this issue seems to be a request for help. Instead of asking for help here, please click the "Get Help" button on the challenge on freeCodeCamp and choose the "Ask for help" option, which will help you create a question in the right part of the forum. Volunteers on the forum usually respond to questions within a few hours and can help determine if there is an issue with your code or the challenge's tests.
If the forum members determine there is nothing wrong with your code, you can request this issue to be reopened.
Thank you and happy coding.


chore(e2e): Validate Community Section

What this PR does / why we need it:

should have Community section visible
should have all the expected Join Communities links visible with expected urls

Additional comments?:

Hovers on visible elements and checks if it has necessary link

please leave in PR only changes related to the validation Community section, no cypress config changes are expected.

Removed unrelated files from this PR @mikhail-zlochevskyi


samples: subsys: ipc: basic: Basic cores communication

Add basic cores communication sample to show how to send messages between two cores using mbox and shared data structure.

Changes moved to https://github.com/nrfconnect/sdk-zephyr/pull/1910 .


reserved identifier violation

I would like to point out that identifiers like “__P503_INTERNAL_H__” and “__P751_API_H__” do eventually not fit to the expected naming convention of the C++ language standard.
Would you like to adjust your selection for unique names?

Not at this point. But I'll have it in mind for a future update. Thanks for the recommendation.

How do you think about to avoid that this software depends on undefined behaviour?


Dialog doesn't work as expected and MAT_DIALOG_DATA is needed on providers

Bug, feature request, or proposal:
Bug ?
What is the expected behavior?
Having the same behavior than documentation.

MAT_DIALOG_DATA is not needed in providers of the dialog component
Input from dialog component can be reset before opening the dialog

What is the current behavior?

MAT_DIALOG_DATA is needed in providers of the dialog component, the dialog doesn't appear if not (comment line 68 to reproduce)

I can't reset the value from dialog input at line 41, but it's working directly inside the dialog component constructor (line 76).

What are the steps to reproduce?
https://stackblitz.com/edit/dialog-issue-help
What is the use-case or motivation for changing an existing behavior?
I want to open a dialog when a specific value is selected inside a select dropdown
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
See stackblitz dependency.
Is there anything else we should know?
I find the MAT_DIALOG_DATA providers workaround here : https://stackoverflow.com/questions/44826518/angular-material-and-jasmine-no-provider-for-injectiontoken-mddialogdata
My command line 41 work well in the stackblitz provided by angular material documentation.
I don't understand the difference...

@WizardPC Hello
I've removed this provider (even commented it affects to code)

Seems it stackblitz's issue

@djleonskennedy indeed.. now, with or without it work -_-
Have you looked for my secon problem ?

Please keep GitHub issues for bug reports / feature requests. Better avenues for troubleshooting / questions are stack overflow, gitter, mailing list, etc.


auto choose badge items

60k badge points is just too many to select manually.

i=0; while(i++ < 1000) $J('#purchase_abilityitem_26').click()
Very rudimentary badge buy option for wormholes, this will be improved on later.

Currently testing this function to make a WP to like new ratio putting excess in raining gold, treasure, and pumped up.  Safety functionality should be added, but it's a first swag.
function Startup(WP_ratio, Like_new_ratio){
var BP = g_Minigame.m_CurrentScene.m_rgPlayerTechTree.badge_points;
console.log(BP);
var large = BP / 100;
console.log(large);
var WP = Math.floor(large * WP_ratio);
var LN = Math.floor(large * Like_new_ratio);
console.log(WP);
console.log(LN);
BP = BP - ((WP + LN) * 100);
console.log(BP);
var rain = Math.floor(BP / 20);
BP = BP - (rain * 20);
console.log(rain);
var treasure = Math.floor(BP / 2);
console.log(treasure);
BP = BP - (treasure * 2);
console.log(treasure);

while(WP > 0){
	g_Minigame.m_CurrentScene.TrySpendBadgePoints($J('#purchase_abilityitem_26')); //wormhole
	WP--;
}
while(LN > 0){
	g_Minigame.m_CurrentScene.TrySpendBadgePoints($J('#purchase_abilityitem_27')); //Like New
	LN--;
}
while(rain > 0){
	g_Minigame.m_CurrentScene.TrySpendBadgePoints($J('#purchase_abilityitem_17')); //Raining Gold
	rain--;
}
while(treasure > 0){
	g_Minigame.m_CurrentScene.TrySpendBadgePoints($J('#purchase_abilityitem_22')); //Pumped Up
	treasure--;
}
if(BP > 0){
	g_Minigame.m_CurrentScene.TrySpendBadgePoints($J('#purchase_abilityitem_19')); //Pumped Up
	BP--;
}

}
Startup((19/20), (1/20));

Found this on steam-group:
var bdg = [ ]; for (var i = 0; i < 30; ++i) { bdg.push(27); } for (var i = 0; i < 30; ++i) { bdg.push(17); } for (var i = 0; i < 1000; ++i) { bdg.push(26); } g_Server.UseBadgePoints(function(res) { }, bdg);