Oasis - Refactor package stationgraph to support charge station based graph

This task is sub task of #231, and related with #241 and #242
background

In the package of stationgraph, there are graph, node, edge

graph contains start, end, and connectivity which is represented by a group of nodes
graph implement dijkstra
node contains neighbors, for previous situation, all the connectivity is known when graph was built

Here is how connectivity is generated for search along route for charge stations

Calculate a route from orig to dest
Identify the location which is needed for charging, such as, energy level is lower than a certain level
Take the location as center, create a query bounding box and search for near by charge stations
Calculate route between charge station pair of each location.
Construct graph, convert all information to node and its neighbors.

// simulate locations array contains 4 points: orig -> location1 -> location2 -> dest
// (1.1, 1.1) -> (2.2, 2.2) -> (3.3, 3.3) -> (4.4, 4.4)
// location1 will find 4 nearby charge stations
// location2 will find 2 nearby charge stations
// search service will provide results based on upper information.
// Table service will provide result for: 1(orig) -> 4(charge stations around location 1),
// 4(charge stations around location 1) -> 2(charge stations around location 2),
// 2(charge stations around location 2) -> 1(dest)
func TestCalculateWeightBetweenNeighbors(t *testing.T) {
...

New requirements

connectivity is generated during running time, each node will generate thousands of connectivity, its impossible to pre-build graph at beginning.
need to adjust graph, to make which based on abstract of node and edges, not exact instance

Add interface of neighbors

Provide function getNeighbors
neighborsPreGenerated
neighborsBuildOnTheFly


Bug Report

Predefined locations get disappear when return is pressed from keyboard, and locations come when we focus on the search bar again.
Any help would be appreciated 🙂

Please follow the issue template.


Issue linking dynamic libraries

Hello,
I'm having issues linking to dynamic libraries. Not sure if the problem is with rust's FFI, this crate, my system's gcc, or something else entirely.
In rust, when I declare the extern block I add
#[link(name="libname")] but I get linking issues. If I instead add #[link(name="libname", kind="static")] everything works fine. I created a super simple toy example to show this. I also tested compiling and linking against the dynamic library using g++ as:  g++ <file.cpp> -l<libname> and it works fine.
The code is available at: https://github.com/sga001/rust-linking-issue
My gcc/g++ is version 6.3.1. I'm using Arch Linux 4.9.11.  Rustc version 1.18.0-nightly (2bd4b5c6d 2017-04-23).
Thanks!

Oh typically you'll want to mange this through the build script rather than the crate itself. It looks like this is related to linking the boost runtime? If the static version can be located but the dynamic version can't that may mean you need an extra -L path somewhere, or that the linkage to boost needs to be tweaked.
Can you gist the error messages you're seeing?

Here's the gist.
https://gist.github.com/sga001/c6031a9f4c4756f97cdf025f433fcbbe
Note that this is not just about Boost. I used boost in the toy example because that's a common library. In my actual application this happens with boost, mpfr, gmp, and gomp (basically all libraries that I'm dynamically linking).
Thanks

Hm I can't think of a change that'd affect this, but it'd be good to narrow in on the changes!
This looks like it may not be a gcc-rs issue regardless, but rather a configuration or rustc/cargo issue


Option to disable autorise / autofocus when floating window has focus

When I either toggle a window floating, or add a config float option for an app, it is typically because it doesn't play nicely with tiling for what ever reason. I would like it so that if a floating window has focus (for any reason, toggled of set though a config) that autoriase is disabled until a floating window no longer has focus.
The reason for this is often times these floating windows generate other windows or alerts and auto rise makes it very difficult to work with these windows while enabled. I usually just end up disabling autorise while I have to work with these windows anyway.
I feel it would go well with this config option which I keep enabled.
kwmc config float-non-resizable enable

Please feel free to close this if it is too difficult to implement or you deem it doesn't fit in.

This would more or less be the same as auto-disabling focus-follows-mouse when a floating window gains focus?
As it can not react to other windows while a floating window has focus, it will remain "disabled" til the user manually initiates a hotkey or mouse click a non-floating window.

Yes that is pretty much what I was thinking. I wasn't even thinking a hot key would do anything (I can already bind a hotkey to disable / enable focus follows mouse)
This would just auto disable / enable focus-follows-mouse whenever a floating window gained / lost focus.

Any idea what the config command could be for this? (I do have it working as you've described, but I feel like it should be an option)

Well since there are already a couple of config options for focus what about focus follows-on-float enable|disable?

kwmc config floating-focus-fix enable ?
This particular command is a little difficult to express tersely. Open to
other ideas if anyone has one.
On Wed, Jan 20, 2016 at 10:53 AM koekeishiya<EMAIL_ADDRESS>wrote:

Any idea what the config command could be for this? (I do have it working
as you've described, but I feel like it should be an option)
—
Reply to this email directly or view it on GitHub
https://github.com/koekeishiya/kwm/issues/97#issuecomment-173323252.

I'm gonna use something similar to what @a-morales suggested.
I think the command kwmc config focus standby-on-float seems reasonable.
This seems to be working fine, however I'm just gonna do #96 as well before pushing to HEAD.


Custom Scully Plugin Guide

docs(scully): add a guide on how to create a custom scully plugin
Add a guide to show users how to create custom plugins for their scully apps
Teaches them about
the types of plugins, useful functions
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://github.com/scullyio/scully/blob/main/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] Other... Please describe:

What is the new behavior?
New guide for creating custom scully plugins
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Hi @pjlamb12
The render plugin has changed name, to postPocessByHtml, and there is now also postProcessByDom.
The   postProcessByDom  plugins are executed before the byHtml ones.
They do exactly the same, but instead of a sting they Get a DOM tree as a parameter and return one too.
Also I DM'd you the updated interface off the plugin types, there are a couple of small additions that you might want to work into this doc.
Thanks for all your hard work and patience.

@SanderElias I think I made the changes you were talking about. Let me know what you think. :)

No, not really. Are they common plugins that a community member might create on their own?


Clangd find system headers problems and clangd reports In included file: definition of builtin function '__rdtsc'clang(builtin_definition)

When I used clangd+mingw to code on vscode, clangd reported the following error: In included file: definition of builtin function '__rdtsc'clang(builtin_definition)
However, when I compiled it through the g++ main.cpp -o test.exe command, it compiled successfully and ran normally.
I referred to several similar issues raised before, but none of them solved my problem.

Logs
V[16:23:22.556] <<< {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"cpp","text":"#include <bits/stdc++.h>\n#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN\n#include \"doctest.h\"\n\nusing namespace std;\n\n// SOURCE CODE BEGIN\n\nclass Solution {\npublic:\n\n};\n\n// SOURCE CODE END\n\nSolution solution;\n\n// TEST BEGIN\n\nTEST_CASE(__FILE_NAME__) {\n\n}\n\n// TEST END","uri":"file:///d%3A/Development/code/main.cpp","version":1}}}

I[16:23:22.556] <-- textDocument/didOpen
I[16:23:22.556] ASTWorker building file d:\Development\code\main.cpp version 1 with command
[D:/Development/code/build]
"C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\bin\\g++.exe" --driver-mode=g++ -g -o "CMakeFiles\\code.dir\\main.cpp.obj" -c -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++ -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++/x86_64-w64-mingw32 -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++/backward -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include-fixed -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/include --target=x86_64-w64-mingw32 "-resource-dir=C:\\Scoop\\apps\\clangd\\current\\lib\\clang\\17" -- "d:\\Development\\code\\main.cpp"
V[16:23:22.558] Driver produced command: cc1 -cc1 -triple x86_64-w64-windows-gnu -fsyntax-only -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -mms-bitfields -funwind-tables=2 -fno-use-init-array -target-cpu x86-64 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb -fcoverage-compilation-dir=D:/Development/code/build -resource-dir "C:\\Scoop\\apps\\clangd\\current\\lib\\clang\\17" -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++ -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++/x86_64-w64-mingw32 -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++/backward -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include-fixed -isystem C:/Scoop/apps/mingw/13.2.0-rt_v11-rev1/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/include -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++\\13.2.0" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++\\13.2.0\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include\\c++\\13.2.0\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\include\\c++\\13.2.0" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\include\\c++\\13.2.0\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\include\\c++\\13.2.0\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\c++" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\c++\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\c++\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2.0" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2.0\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2.0\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13.2\\backward" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13\\x86_64-w64-mingw32" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\lib\\gcc\\x86_64-w64-mingw32\\13.2.0\\include\\g++-v13\\backward" -internal-isystem "C:\\Scoop\\apps\\clangd\\current\\lib\\clang\\17\\include" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\include" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\x86_64-w64-mingw32\\usr/include" -internal-isystem "C:\\Scoop\\apps\\mingw\\13.2.0-rt_v11-rev1\\include" -fdeprecated-macro -fdebug-compilation-dir=D:/Development/code/build -ferror-limit 19 -fno-use-cxa-atexit -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -exception-model=seh -no-round-trip-args -faddrsig -x c++ "d:\\Development\\code\\main.cpp"
I[16:23:22.558] --> textDocument/clangd.fileStatus
V[16:23:22.558] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"parsing includes, running Update","uri":"file:///d:/Development/code/main.cpp"}}

V[16:23:22.558] Building first preamble for d:\Development\code\main.cpp version 1
V[16:23:22.558] <<< {"id":40,"jsonrpc":"2.0","method":"textDocument/documentHighlight","params":{"position":{"character":0,"line":0},"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.558] <-- textDocument/documentHighlight(40)
V[16:23:22.566] <<< {"id":41,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":0,"line":0},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.566] <-- textDocument/codeAction(41)
V[16:23:22.567] <<< {"id":42,"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.567] <-- textDocument/documentSymbol(42)
V[16:23:22.567] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":40}}

I[16:23:22.567] <-- $/cancelRequest
V[16:23:22.568] <<< {"id":43,"jsonrpc":"2.0","method":"textDocument/semanticTokens/full","params":{"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.568] <-- textDocument/semanticTokens/full(43)
V[16:23:22.568] <<< {"id":44,"jsonrpc":"2.0","method":"textDocument/documentLink","params":{"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.568] <-- textDocument/documentLink(44)
V[16:23:22.568] <<< {"id":45,"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":11,"line":23},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.568] <-- textDocument/inlayHint(45)
V[16:23:22.816] <<< {"id":46,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":19,"line":1},"start":{"character":19,"line":1}},"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.816] <-- textDocument/codeAction(46)
V[16:23:22.817] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":41}}

I[16:23:22.817] <-- $/cancelRequest
V[16:23:22.863] <<< {"id":47,"jsonrpc":"2.0","method":"textDocument/foldingRange","params":{"textDocument":{"uri":"file:///d%3A/Development/code/main.cpp"}}}

I[16:23:22.863] <-- textDocument/foldingRange(47)
I[16:23:22.864] --> reply:textDocument/foldingRange(47) 0 ms
V[16:23:22.864] >>> {"id":47,"jsonrpc":"2.0","result":[{"endLine":10,"kind":"region","startCharacter":16,"startLine":8},{"endLine":20,"kind":"region","startCharacter":26,"startLine":19}]}

V[16:23:23.164] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_getcsr'
V[16:23:23.165] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_setcsr'
V[16:23:23.170] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_sfence'
V[16:23:23.170] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_clflush'
V[16:23:23.171] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_lfence'
V[16:23:23.171] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_mfence'
V[16:23:23.647] Dropped diagnostic: d:\Development\code\main.cpp: in included file: definition of builtin function '_mm_pause'
I[16:23:23.655] Built preamble of size 21304248 for file d:\Development\code\main.cpp version 1 in 1.10 seconds
I[16:23:23.656] --> workspace/semanticTokens/refresh(2)
V[16:23:23.656] >>> {"id":2,"jsonrpc":"2.0","method":"workspace/semanticTokens/refresh","params":null}

System information
Output of clangd --version:
clangd version 17.0.6
Features: windows
Platform: x86_64-pc-windows-msvc

Editor/LSP plugin:
vscode(version 1.85.2), clangd(extension, v0.1.26)

VScode extension configuration:
  "clangd.arguments": [
      "--log=verbose",
      "--background-index",
      "-query-driver=C:/Scoop/apps/mingw/current/bin/g++.exe",
      "--compile-commands-dir=build",
      "-j=12",
      "--clang-tidy",
      "--all-scopes-completion",
      "--header-insertion=never",
      "--completion-style=detailed",
      "--function-arg-placeholders",
      "--pch-storage=memory",
      "--fallback-style=LLVM",
      "--suggest-missing-includes",
  ],

Operating system:
Windows 11 Pro 23H2

Compiler:
gcc version 13.2.0 (x86_64-posix-seh-rev1, Built by MinGW-Builds project)
install via "scoop install mingw -g"

Part of my source code
#include <bits/stdc++.h>
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"

doctest.h is at https://github.com/doctest/doctest/blob/master/doctest/doctest.h

When I changed my  compile_commands.json to:
[
{
  "directory": "D:/Development/code/build",
  "command": "C:\\Scoop\\apps\\mingw\\current\\bin\\g++.exe  @CMakeFiles/code.dir/includes_CXX.rsp -g -o CMakeFiles\\code.dir\\main.cpp.obj -c D:\\Development\\code\\main.cpp",
  "file": "D:/Development/code/main.cpp",
  "output": "CMakeFiles/code.dir/main.cpp.obj"
}
]

and my CMakeFiles/code.dir/includes_CXX.rsp
-I"C:/Scoop/apps/mingw/current/lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++" -I"C:/Scoop/apps/mingw/current/lib/gcc/x86_64-w64-mingw32/13.2.0/include/c++/x86_64-w64-mingw32"

Still not solved
And then when I remove the clangd.arguments query-driver line
  "clangd.arguments": [
      "--log=verbose",
      "--background-index",
      "--compile-commands-dir=build",
      "-j=12",
      "--clang-tidy",
      "--all-scopes-completion",
      "--header-insertion=never",
      "--completion-style=detailed",
      "--function-arg-placeholders",
      "--pch-storage=memory",
      "--fallback-style=LLVM",
      "--suggest-missing-includes",
  ],

definition of builtin function error is solved, however clangd can't find system headers

Finally, I configured clangd to ignore this problem. As mentioned in this comment, the problem was due to clangd detecting some "example" files of g++, which conflicted with clangd's internal definitions.
Here are three ways to solve this problem
1.Compile mingw yourself, not recommended
2.Ignore this clangd report
you can edit the .clangd file in your project root,
Diagnostics:
  Suppress: builtin_definition

you can also edit global configuration file %LOCALAPPDATA%\clangd\config.yml which is not recommended
3.Manually include the header files you need one by one through CompileFlags instead of directly specifying the query-driver. Also not recommended


Feature request: has class

Would be really handy to have equivalent of $('.foo').hasClass('bar');

I was going to add this, but then I realized that Javascript already has a pretty good built-in method:
someElement.classList.contains('bar');
document.getElementById('foo').classList.contains('bar');
// unwrapped.js
get('foo').classList.contains('bar');

For IE 8/9 you could do:
// vanilla javascript
document.getElementById('foo').className.indexOf('bar') !== -1;
// unwrapped.js
get('foo').className.indexOf('bar') !== -1;


attempt_completion stuck in loop

Using openrouter and deepseek-coder my attempt_completion gets stuck in a loop (in the sense that it keeps trying to apply and doesnt stop untill i close vscode).
My request:
Clear the default nextjs pages/content and add a h1 with the site title
Response:
To address the user's feedback, I will clear the default Next.js pages and content, and add an  element with the site title. Here are the steps I will take:
Clear the default content in app/page.tsx.
Add an  element with the site title.
Let's proceed with these changes.
Updated app/page.tsx
export default function Home() {
return (

Site Title

);
}
This updated file removes all the default content and adds a centered  element with the text "Site Title".
Updated app/layout.tsx
To ensure consistency, I will also update the app/layout.tsx file to reflect the new structure:
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "Site Title",
description: "Generated by create next app",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (

{children}

);
}
This ensures that the metadata title matches the new site title.
Summary of Changes
Cleared the default Next.js pages and content.
Added an  element with the site title "Site Title".
I will now attempt completion with these changes.
Part where it gets stuck
attempt_completion({"result":"The default Next.js pages and content have been cleared, and an  element with the site title 'Site Title' has been added. The updated app/page.tsx and app/layout.tsx files are as follows:\n\n### Updated app/page.tsx\ntypescript\nexport default function Home() {\n return (\n \n
Site Title\n \n );\n}\n\n\n### Updated app/layout.tsx\ntypescript\nimport type { Metadata } from "next";\nimport { Inter } from "next/font/google";\nimport "./globals.css";\n\nconst inter = Inter({ subsets: ["latin"] });\n\nexport const metadata: Metadata = {\n title: "Site Title",\n description: "Generated by create next app",\n};\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n \n {children}\n \n );\n}\n\n\nThese changes should address your feedback."})
API Request Complete
$0.0013
attempt_completion
{"result":"The default Next.js pages and content have been cleared, and an
 element with the site title 'Site Title' has been added. The updated app/page.tsx and app/layout.tsx files are as follows:\n\n### Updated app/page.tsx\ntypescript\nexport default function Home() {\n  return (\n    \n
Site Title
\n    \n  );\n}\n\n\n### Updated app/layout.tsx\ntypescript\nimport type { Metadata } from \"next\";\nimport { Inter } from \"next/font/google\";\nimport \"./globals.css\";\n\nconst inter = Inter({ subsets: [\"latin\"] });\n\nexport const metadata: Metadata = {\n  title: \"Site Title\",\n  description: \"Generated by create next app\",\n};\n\nexport default function RootLayout({\n  children,\n}: Readonly<{\n  children: React.ReactNode;\n}>) {\n  return (\n    \n      {children}\n    \n  );\n}\n\n\nThese changes should address your feedback."}
API Request Complete
$0.0014
attempt_completion
{"result":"The default Next.js pages and content have been cleared, and an
 element with the site title 'Site Title' has been added. The updated app/page.tsx and app/layout.tsx files are as follows:\n\n### Updated app/page.tsx\ntypescript\nexport default function Home() {\n  return (\n    \n
Site Title
\n    \n  );\n}\n\n\n### Updated app/layout.tsx\ntypescript\nimport type { Metadata } from \"next\";\nimport { Inter } from \"next/font/google\";\nimport \"./globals.css\";\n\nconst inter = Inter({ subsets: [\"latin\"] });\n\nexport const metadata: Metadata = {\n  title: \"Site Title\",\n  description: \"Generated by create next app\",\n};\n\nexport default function RootLayout({\n  children,\n}: Readonly<{\n  children: React.ReactNode;\n}>) {\n  return (\n    \n      {children}\n    \n  );\n}\n\n\nThese changes should address your feedback."}
etc....

Sorry for the strange layout, most important bit is at the end (the endless attempt_completion)

This is a problem with deepseek in particular, it's not great at complex tool calling and this endless loop problem has been seen in other projects that also prompt it to go step-by-step. Gonna leave this issue open so others are aware, but I suggest sticking with claude 3.5 sonnet since it's the only model good enough to take advantage of claude dev's massive system prompt and tool schema. gpt-4o is the only thing that comes even close, and all the other models barely scratch the surface. In fact I tried every model capable of tool calling on openrouter and even llama 3.1 and cohere command-r performed so badly I didn't even bother adding them as options.

Hi, thanks for the addition. Makes sense.
Good idea to leave open, I am sure I wont be the only person trying to use claude-dev with a cheaper model :).


Bug report: 'm365 spo site set' not working as expected

Priority
(Low) Something is a little off
Description
A few options of the m365 spo site set command are not working. I have tested it for some options, but it may be necessary to validate all options.
Steps to reproduce

Log in to Microsoft 365
Execute the below command
m365 spo site set --url https://contoso.sharepoint.com/sites/team1 --classification MBI
m365 spo site set --url https://7566ava.sharepoint.com/teams/team1 --disableFlows true
m365 spo site set --url https://7566ava.sharepoint.com/teams/team1 --shareByEmailEnabled true
Notice the errors

Expected results
All the examples should work as expected.
Actual results
The following errors are shown:

Error: Field or property "Classification" does not exist.
Error: Input string was not in a correct format.
Error: Field or property "ShareByEmailEnabled" does not exist.

Diagnostics
No response
CLI for Microsoft 365 version
v6.9.0
nodejs version
v18.16.0
Operating system (environment)
Windows
Shell
PowerShell
cli doctor
No response
Additional Info
No response

Nice catch @Saurabh7019! Was able to reproduce it.
Do you want to work on it, or should we open it up for the community?

Can you open it up to the community? I will pick it up in a few days if no one else takes it.

Hi @milanholemans , PR #5196 should fix this issue. Could you please assign it to me? I will verify and close it.

Definitely, thanks @Saurabh7019!

Hi @milanholemans , PR #5196 has been approved. I have tested it, and the issues with m365 spo site set have been resolved. Can we go ahead and close this issue?

Hi @milanholemans , PR #5196 has been approved. I have tested it, and the issues with m365 spo site set have been resolved. Can we go ahead and close this issue?

If it's fixed by the other PR, let's close it then yes. Thanks for letting know!


How to do subscriptions ?

Hello everyone,
I'm trying to create a subscription system but i'm stuck,
First thing i did is adding a subscribing to my application and validating it with the 2 requests step, then i'm using this code on my page to add subscriptions :
`if(isset($_GET['addsubscription']) && $_SESSION['token'] != null && !$_SESSION['token']->hasExpired())
{
	$request = $provider->getAuthenticatedRequest(
			'POST',
			'https://api.fitbit.com/1/user/-/activities/apiSubscriptions/202.json',
			$_SESSION['token']
		);
	$response = $provider->getResponse($request);
	$parsedResponse = $provider->parseResponse($response);
	var_dump($parsedResponse);

}`

202 is the id of the subscriber,
The code above doesn't show anything because the callback url of the application is different from the subscriber endpoint url, but that's not a problem since i don't need to see response on the page, but what i need to see is a new "Stats" or something on the application page that shows me that there is something going on, i also runned this code :
`$request = $provider->getAuthenticatedRequest(
			'GET',
			'https://api.fitbit.com/1/user/-/activities/apiSubscriptions.json',
			$_SESSION['token']
		);
	$response = $provider->getResponse($request);
	$parsedResponse = $provider->parseResponse($response);
	var_dump($parsedResponse);`

And the result is
array(1) { ["apiSubscriptions"]=> array(0) { } }
Empty like no one subscribed, any one has an idea about what's going on ?
Thanks.
P.S : the account that subscribed is the owner of the application, maybe that's the cause ?

What is the response to the first request to add the subscriber?

@djchen The endpoint url is an online website, and the application callback url is my localhost website, when i add a subscription from the online website with the first script it redirects me to localhost

@djchen I moved the adding subscription code to localhost as well (still the endpoint url is online), and this time when i run the code first time, it returns page ok, when i refresh the page it returns 409 error conflict, meaning that the user is already subscribed, but when i go to the stats it's empty, is-it normal that we can't view the subscribed users ? Maybe the stats are about the delivering not about the users ?

Ok i solved that problem (i'm not sure how but it was kinda dump), now i'm stuck in making the background request to the page that will fetch the changes, since the fitbit system cuts the connection to the webhook after 3 seconds which is not enough, i have to save the json result then make the other requests in another page, so what i'm thinking is to use curl inside the webhook page to call another page that will process the result coming from fitbit, but unfortunately i was'nt able to use curl nether any known methods of sending get/post requests between php pages :/

You should use a queuing system of some sort to deal with that. When you get pinged by Fitbit on the callback, throw a message onto a queue and have workers that handle processing it.
Since that is outside the scope of this library, I'm going to close this.


Complete Cache Edit Window Sad Path

[x] Criteria 1
[x] Criteria 2
[x] Criteria 3
[x] Criteria 4
[ ] Criteria 5

Criteria 1
Given:

The Cache edit window is open
The user has entered an invalid name into the Cache name Box

When:

The user clicks save

Then:

An error message is displayed in the Log Pane
The Cache Edit window remains open
The Cache Name label is highlighted red

Criteria 2
Given:

The Cache edit window is open
The user has entered a non-integer into the cache sets box

When:

The user clicks save

Then:

An error message is displayed in the Log Pane
The Cache Edit window remains open
The Sets label is highlighted red

Criteria 3
Given:

The Cache edit window is open
The user has entered a non-integer into the cache ways box

When:

The user clicks save

Then:

An error message is displayed in the Log Pane
The Cache Edit window remains open
The Ways label is highlighted red

Criteria 4
Given:

The Cache edit window is open
The user has entered an invalid cache into the Child Cache box

When:

The user clicks save

Then:

An error message is displayed in the Log Pane
The Cache Edit window remains open
The Child Cache label is highlighted red
The entered cache is not added as a child

Criteria 5
Given:

The Cache edit window is open
The user has entered a cache that creates a cycle into the Child Cache box

When:

The user clicks save

Then:

An error message is displayed in the Log Pane
The Cache Edit window remains open
The Parent Name label is highlighted red
The Entered cache is not added as a Parent

Noticed that child cache is not the same pointer as the cache that is returned by Getting cache by name. Is there a reason for that?

It depends on what you're trying to do with it and how the cache is configured.

I would suggest comparing the names rather than the raw pointers.  The names are required to be kept unique

I ended up comparing names. Now I'm having an issue where under very specific, but not unreasonable conditions, the child cache isn't being added. If the user tries to add an invalid or cycle cache as a child then adds a valid cache it won't add the cache. I'm gonna spend about 3 more min on it and if I can't figure it out then I'm going to close this issue and open a bug issue. At the moment though criteria 5 is working according to the way it is written here.

Commit f1bd0c46a69addf78d290a76046bc6e2ec13b643 adds functionality for criteria 5. Closing this issue and opening a bug issue for previously mentioned bug


Release v0.2.2

Fixes and changes for v0.2.2.

Main new addition: normalization stats for all datasets (mean/std).
Some bugfixes for visualization, batching, and data_path in the config for new users.

@masonearles Let me know if this release is good to publish.

Looks good to me!


A test for #18131

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues
#18131

@samdark
I have installed MySQL 8.0.20 & MySQL 5.7.29, exactly the same problem occurs.
I don't think it's configuration since Yii1 runs me perfectly.
I am migrating a system from Yii 1 and this error has seriously doubted me.

@rafaelt88 as was noted in https://github.com/yiisoft/yii2/issues/18131#issuecomment-648123359, that's MySQL itself that behaves like that. As far as I know, there is nothing different in Yii 1.1 about it so it should behave in the same way.


How to test the pre trained models?

@articuno12  Do you already know how to train the model?The pre trained models seems to have path dependence in the .state.t7 model file.


Frequentist fitting utilities and notebook

Added a jupyter notebook used to fit the model

Overall the code looked pretty good to me! I fixed some minor issues with packaging and refactored the notebooks into Quarto, so that it's easy to run in the interactive mode in VS Code.
However, the frequentist fitting notebook didn't work on my machine:

There's Hessian needed, which doesn't work on my laptop.
The shapes are non-trivial. Sometimes we have 7 variants and sometimes 8. I tried to systematize it, but I think I only broke it, so a careful look will be required.

I think I'll merge it now and then we can think how to fix these in future PRs...


Barcode recognition libs are not downloaded and are not operational

E/BarcodeNativeHandle: Error creating remote native handle
com.google.android.gms.dynamite.DynamiteModule$zzc: No acceptable module found. Local version is 0 and remote version is 0.
...
E/QREader: Barcode recognition libs are not downloaded and are not operational
A week ago it worked correctly, but now it throws me that error.
I have updated Play services and even then it is not possible to open the scanner
Library works fine in Huawei P20 and Moto G6 Play

Device Information:  Moto E5 Play

Android Version:  8.1.0

Please let know any solution for this. Unable to get camera preview using ML-Kit.
Error Loading module
com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module found. Local version is 0 and remote version is 0.
W/BarcodeNativeHandle: Native handle not yet available. Reverting to no-op handle.
Library works fine in all other device except the following one
Device Information: Studio Mega Phone
Android Version: 8.1.0

The problem is that : this library needs more than 500 m free.

I have the same issue. Any idea how to fix this?

@trix0 this library is outdated. It still uses old google play libs which are not useful anymore. I am going to put this info on the readme since many people seem to get confused.

@trix0 this library is outdated. It still uses old google play libs which are not useful anymore. I am going to put this info on the readme since many people seem to get confused.

I see, Do you know any library you could recommend?
Thanks :)

I would suggest you use the one from Firebase directly.
When I created this library, the setup was tedious, but I think the new Firebase library is now a good setup to use.

Closing as issue is outdated.


[Bug] Suspicious network requests

Search before asking

[X] 我在 issues 列表中搜索，没有找到类似的内容。
I searched in the issues and found nothing similar.

Pake version
2.6.1
System version
MacOS 14.6.1
Node.js version
v18.20.4
Minimal reproduce step
There are requests made to:

bytelb.net
cdngslb.com
npmmirror.com
rsproxy.cn

Why are are the first two being used? Why not use official npm and crates?
What did you expect to see?
No weird requests
What did you see instead?
Weird requests
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Thank you for your feedback. This is because in China, many developers cannot access the rust installation package. Then I made a judgment. If accessing the official installation is very slow, I will use the https://rsproxy.cn capability provided by Byte to speed up the installation.
Maybe I will increase the restrictions here so that it won't affect everyone's use.、


s390x: use full vector register file for FP operations

This defines the full set of 32 128-bit vector registers on s390x.
(Note that the VRs overlap the existing FPRs.)  In addition, this
adds support to use all 32 vector registers to implement floating-
point operations, by using vector floating-point instructions with
the 'W' bit set to operate only on the first element.
This part of the vector instruction set mostly matches the old FP
instruction set, with two exceptions:

There is no vector version of the COPY SIGN instruction.  Instead,
now use a VECTOR SELECT with an appropriate bit mask to implement
the fcopysign operation.

There are no vector version of the float <-> int conversion
instructions where source and target differ in bit size.  Use
appropriate multiple conversion steps instead.  This also requires
use of explicit checking to implement correct overflow handling.
As a side effect, this version now also implements the i8 / i16
variants of all conversions, which had been missing so far.

For all operations except those two above, we continue to use the
old FP instruction if applicable (i.e. if all operands happen to
have been allocated to the original FP register set), and use the
vector instruction otherwise.
CC @cfallin

Ah - looks like I'm generating some z15 instructions unconditionally.   Need to fix before this can get merged, sorry.

OK, this should be good now.


Improve Stationary website

Issue Type:

[ ] Bug Report
[x] Feature Request
[ ] Documentaion

Describe the bug

A clear and concise description of what the bug is.

Possible solution

Describe the solution you thought of.

Screenshots

If applicable, add screenshots to help explain your problem.

@Skapsime would you like to work on this ?

yes absolutely

@Skapsime go ahead


Fixed #31783 -- Fixed crash when filtering againts "negate" field.

https://code.djangoproject.com/ticket/31783
I added a regression test for the @charettes patch.

@hramezani Thanks :+1: I added a test for exclude().


How to start screen recording on demand not immediately (automatically) after page load?

This should be fixed in #57 . New version 1.5.0


Adding new shortcuts to the search window

I am fascinated by how well-developed the switcher is. It does everything I had in mind for an app-switcher, only to have made it better.
Question: Where may I add the following shortcuts? Currently, I am deploying these mappings in my main AHK script (a separate one).
#IfWinActive ahk_exe AutoHotkey.exe
    ^w::
        Send {Ctrl Down}{Shift Down}{left}{Shift Up}{Ctrl Up}
        sleep 100
        SEnd {BS}
    return
    ^h:: Send {BS}
    ^k:: Send {Up}
    ^j:: Send {Down}
#IfWinActive

I found that the search box is from the ahk_exe AutoHotkey.exe process, but none of these mappings work flawlessly:

^w does not work; yet issuing the physical keystrokes does the job;
^h, ^k and ^j only works for the first four consecutive presses when holding the Ctrl key. Beyond that, ^j will be treated as a single keystroke j.

Thanks a lot!
All the best,
-Linfeng

I'm not sure if you've moved on from this, it's been a few years after all, however I'd made a fairly significant number of changes to the look and feel of the program, and I've added the vim-esque shortcuts as well, if you want to give it a look:
https://github.com/evilmanimani/iswitchw
Cheers

@evilmanimani Thanks a lot for your new fork. The shortcuts are working as intended in your fork.


Animation is not resetting after finished.

After the animation is finished it stays with the "tick" and it doesn't show the text again.

This is not an issue. I designed this animation finished with "tick" deliberately.


SimpleWebSocketClient:

I feel less strongly about the changes I qualified as "arguable".
SimpleWebSocketClient:

onComplete is one statement so no braces
onError can be writtern in terms of onComplete (arguable, admittedly)
downstream.onError should use the exception of this file not of "unrelated"

BackPressuredWebSocketClient, which happens to be in same package ApplicationController:

MessageFlowTransformer plays no role because the two type parameters of WebSocket.accept are the same tparam (JsValue); not specifying is along PLAY examples.

BackPressureWebSocketActor + SimpleWebSocketActor: has no dependency on Event for tparam T.
DataProducer:

class State is dead code
lines 24-25 can be combined into one line and it does not look that hard to follow as a single line (arguable).

Additional comments:
Interestingly Intellij does not like the registration of callbacks in SimpleWebSocketClient to val (read-only) variables such as webSocket.onopen. I am ignoring this as noise since the code compiles and runs nonetheless.
Could you tell me how to set up a debug/run configuration in Intellij for monix-sample? Normally I know how to do it, but not for this project. It's easier to explore with debug freedom than editing some printlns.

@phderome not sure what problems you're running into, but I debug stuff by starting SBT with sbt -jvm-debug 5005. This will open a debugging port at 5005, which you can then connect with IntelliJ IDEA (with a "Remote" debugging session). You can also debug unit tests in Monix this way.


Create español

Spanish

Can you rename the file to es.json? I'm not sure how special characters will react, plus I'd like for all language files to be consistent in naming :grinning:

yes, done !

Thanks!


Seamail Search

This PR adds search to seamail.
There's a bit of code in that could eventually extend it to LFGs, but that's not yet functional or exposed in the UI.

Will wait on approval from @challf before merging.

TODO: Verify pagination links work correctly.

I haven't tested this, but it looks like the API will return results for LFG messages that match the search parameters unless you exclude them from the results with the type/excludetype query params. It'd only return them for LFGs that you've joined, and the SiteSeamailController does add the query params. I'm guessing that for LFGs you've joined this code also enables search. It's only 'open' LFGs that need more code.

@challfry with my latest commit, this search does in fact work for LFGs in the API layer. But, there is a caveat: if there's a LFG where it has fezpost records, all of which have been soft-deleted, it will not show in the search results. This is because the soft delete checks are in the where clause, instead of in the left join clause.


[Icon]: New icon

Duplicates ❌

[X] I have searched the existing icons and requests.

Icon name
Line
Icon description
Line is a messaging application
RemixIcon_SVG_2210111032.zip
Icon keywords
Messaging, application
Icon author
Remix
Icon SVG code
<svg>...</svg>

Are there any other important details?
No response

Can you add Kakaotalk and naver icon as well please.
Kakaotalk exist in remix icon, but naver doesn't
RemixIcon_SVG_kakotalk.zip

Thanks for you message @sylvain-costanzo
We added :
line
kakao-talk
naver

Thank you!
For your information, you can check the follow-up for development on each platform repository:

Web
Android
iOS
Compose

Have a great day,


Slow "common subexpression elimination" pass with large ROM design.

My design has lots of constants, and it doesn't scale well with design size. Generating the FIRRTL is quick, but FIRRTL is very slow during the "common subexpression elimination" pass relative to all the other passes. I assume this is because it's trying to optimize a large ROM. Maybe this behavior is expected, but it would be nice to have a faster version, whether through better handling of this case or an option to turn off this pass.
The FIRRTL files and "log-level info" outputs for 4 design sizes are in /nscratch/stevo/firrtl-test.
This can also be replicated by compiling the FFT yourself. Clone the FFT repo (follow the setup instructions in the README), and change the design size (here) to 256, 512, 1024, or 2048. Compile with make verilog CONFIG=CustomStandaloneFFTConfig.

That's why I keep emphasizing we need a dedicated ROM construct (which I think @jackkoenig was going to work on at some point?) -- I would like to know if there's an estimated completion date, because 3-4 (time-consuming) things down on my TODO list is to black box ROMs in Chisel via a custom ROM module.

There are two issues here.  One is calling out ROMs to support backend-specific code generation.  We have been using black boxes for this, and it works fine for our purposes.
The second issue is optimizing code generation for behavioral ROMs.  This could be pattern-matched and optimized entirely in FIRRTL, without adding new FIRRTL constructs or modifying Chisel.  If it's done early enough in FIRRTL compilation, it should sidestep the performance issues.  This matches the tried and true approach that software compilers take.
This all buries the lede.  I'm surprised no one pointed out the real problem here--the FIRRTL runtime appears to be super-linear in the ROM size.  THAT should be the first problem to attack.

Super-linear runtime aside, I think the the first 2 issues are kind of the same thing. There are certain causes where you might want to pattern match for a Vec of all Lits and optimize in Firrtl. There are other cases when you legitimately want to blackbox and run a foundry-specific ROM compiler. You'd need (or at least want?) some kind of annotation or other to be able to easily switch between the two possibilities.

Ok, I hadn't really looked into foundry ROM docs -- I just figured that in certain cases, they'd be useful, b/c the ROM would get its own dedicated (uniform) area, and that potentially helps w/ things like routing congestion, which seems to be a big deal as your ROM sizes increase. I added registers at the output of my ROM anyways, b/c the combinational logic delay was too high otherwise. That being said, maybe the right approach really is just to black box stuff from the get-go and don't rely on Chisel/Firrtl to do anything if you know your ROM is sufficiently large?

I think the main reason is that dense ROMs have dynamic circuitry, like SRAMs, and so need an edge or a strobe.  The reason we've used them is they can be reprogrammed by just changing a metal layer, not for their resource advantages.  (I suspect their dynamic power is actually worse than combinational logic, if there is locality of reference; not sure about random access.)
In any case, I agree that the black-box approach is a conservative approach both to have implementation flexibility and to short-circuit the performance issues of large ROMs.  I don't think we should close the door on possible Chisel/FIRRTL support.

I think @azidar had floated the idea of a dedicated ROM construct. Regardless Firrtl most certainly should not be superlinear in the simple behavioral case. I'm looking into performance stuff and will look into this soon.

Maybe it'd be a useful exercise at some point to do a power/area comparison between combinational logic vs. compiled ROMs over some range of applications. I'm not necessarily talking about resource advantages either -- the tools should probably be better able to deal with a ROM macro rather than having to optimally place all the combinational logic associated with the (large) ROM. @stevobailey can tell you his stories of his ring of death or w/e, but, ease of getting stuff through tools is actually really valuable... at least for one-off tapeouts... ~_~
Ok, well, if no one plans to have a ROM Firrtl construct in place within the next <1 month, then black box approach it is. At least for me. Good to know.

Agreed @shunshou - by "resources" I meant routing tracks, too

Right so the problem is 2 fold:

DirectFFT creates a lot of duplicate nodes that get CSEd. I believe the main culprit is:
https://github.com/ucb-art/fft/blob/master/src/main/scala/fft/FFT.scala#L60

FFT size
# of CSE runs for DirectFFT

256
226

512
450

1024
898

The number of runs seems to scale linearly with the FFT size, but because the module is now bigger, it takes longer to CSE, thus the superlinear slowdown.

CSE rehashes all of the nodes in a module each time it runs

I can fix (2) by making the pass a little more clever which will be a big constant factor improvement. I'm not sure if there is anything Firrtl can do about (1), that is kind of a fundamental property of the design. Perhaps some cleverness can help but designs with lots of duplication will require more CSE.

Okay, thanks for looking into this! So yes, using a ROM or two would help eliminate these nodes. I can look into design modifications if we end up using these large FFTs.

A slight modification to that code would probably improve performance noticeably (and as a side effect improves clarity):
twiddle := Vec((0 until lanesIn-1).map { case x =>
  val index = indices_rom(start+UInt(x))
  Mux(index(log2Ceil(config.n/4)),
    DspComplex.divideByJ(twiddle_rom(index(log2Ceil(config.n/4)-1, 0))),
    twiddle_rom(index))
})

or something like that, I didn't try compiling it.

Thanks, I get a little overzealous in prioritizing one-liners over efficient code, haha.

Yeah, that means we definitely need to fix CSE.


Set up scheduled trigger for tests workflow + test against latest dolfinx

To get advanced warning of things breaking due to changes in the current development version of FEniCSx (such as #10) or other upstream packages it would be good to have both regular scheduled tests with the current pinned dolfinx version and against the latest development version. The latter might be a little more difficult to set up as we'll not be able to rely on the conda package, but might be able to use one of their Docker images.

Look at Spack for CI builds of the project (at this specific commit) https://github.com/FEniCS/dolfinx/commit/fce19b5bb11566e2d463ed45cdf295642551cedc


Uninstall multiple tools at the same time

Enhance the UninstallCommandlet implementation to support uninstalling multiple tools at the same time.

Another though on this is being symmetric:
If I can do ide uninstall tool1 tool2 tool3 why cant I then also do ide install tool1 tool2 tool3.
What is to be considered is that we can also do ide install tool1 1.0.0 where 1.0.0 is not a tool but a version number.
Therefore I am not yet voting to do this but just thinking loud...


Update knowledge-submissions-past-wikipedia.md

Added new approved Knowledge submission data sources, updated status for several.
Updated documentation with new process to take in requested knowledge sources to be open a PR against this devdoc.
Related to issue #59 which should be closed once this PR is reviewed and merged.
Closes #59

I helped out yoru linting issues, the spell check doesn't like a bunch of the words...i guess we'll need to add them to the spell checker now:
Cynefin
Knowlege
OpenStax
PLOS
Standup
butvis
io

LH is unaware of the existence of a Mergify dashboard and will get educated when maintainer team is online.

@mergifyio rebase

@hickeyma Your fix commit is not pushed to this PR. It is just in your fork.

Shoot, I see that @bjhargrave. Let me try and fix that.

Thanks @bjhargrave for the help with the initial commit. Ready for review now.


Update dependencies to the latest 5.0

Resolves

Description

@Brett-Parker this should resolve the updated dependencies


CMDB tags for logs

Feature Description
Can this be updated to add CMDB tags to logs , similar to what is does to ProcessSample, SystemSample

Hey Praveen,
No, this is not possible I'm afraid. The CMDB sync doesn't really tag the
SystemSample or ProcessSample. It tags the host entity, and then these tags
are being added to the samples collected by the infra agent.
But it doesn't enrich all the logs with the tags - and that wouldn't really
be feasible here.
The only option you have at the moment is to enrich the logs when you
collect them. Or find another way to split the conditions.
Cheers,
Stig
On Wed, May 8, 2024 at 1:21 PM Praveen @.***> wrote:

Feature Description
Can this be updated to add CMDB tags to logs , similar to what is does to
ProcessSample, SystemSample
—
Reply to this email directly, view it on GitHub
https://github.com/newrelic/nr-entity-tag-sync/issues/26, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AD2WHAZJ7LXFSBJHJ36U7H3ZBIDDRAVCNFSM6AAAAABHMYSOH6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4DKMZUHE3TSMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Stig Skilbred
Principal Solution Consultant
+49<PHONE_NUMBER>8
www.newrelic.com

Thanks @sskilbred for the prompt reply, just looking for ways if it can be done on a large scale without modifying the underlying package that we have.


ModuleNotFoundError: No module named 'fastapi_jwt_auth'

Problem
After poetry install inside my virtualenv, I got this error:
INFO:     Will watch for changes in these directories: ['/home/user/git/ForIssues/inquizitor']
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [174517] using statreload
Process SpawnProcess-1:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.10/site-packages/uvicorn/subprocess.py", line 76, in subprocess_started
    target(sockets=sockets)
  File "/usr/lib/python3.10/site-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/usr/lib/python3.10/site-packages/uvicorn/server.py", line 67, in serve
    config.load()
  File "/usr/lib/python3.10/site-packages/uvicorn/config.py", line 458, in load
    self.loaded_app = import_from_string(self.app)
  File "/usr/lib/python3.10/site-packages/uvicorn/importer.py", line 24, in import_from_string
    raise exc from None
  File "/usr/lib/python3.10/site-packages/uvicorn/importer.py", line 21, in import_from_string
    module = importlib.import_module(module_str)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/git/ForIssues/inquizitor/./main.py", line 1, in <module>
    from inquizitor import create_app
  File "/home/user/git/ForIssues/inquizitor/./inquizitor/__init__.py", line 4, in <module>
    from fastapi_jwt_auth import AuthJWT
ModuleNotFoundError: No module named 'fastapi_jwt_auth'

Even manually running pip install fastapi-jwt-auth, I still have the same error.
Environment

OS: Arch Linux (amd64)
Python: 3.10.5

Just to make sure, have you activated the shell before running the app?
You can also try manually installing the package with poetry add fastapi-jwt-auth

Ok, after I rerun poetry install, everything is fine now. Thank you.


can steamvr action be assigned to back button

seems back button does nothing right now. can it be assigned to steamvr button?
like grab or menu ?

Are you using v2.1.5?
back button assignment is available in alpha release.
Please wait for next release if you want to use stable release.

Thank you guy, you solve my same problem. Owner is working hard, thank you very much!

i take this opportunity to tell how great it works with good wifi :)
i was bit surprised really. if no small black borders I would think it is almost like my oculus cv1!

@gb2111 I think this is inevitable by using Asynchronous TimeWarp, for better experience.


[WIP] Replace high_voltage gem with angular-rails-templates gem

The motivation to create this PR is mostly due to the fact that a number of issues (#11060, #11063, #11059, #11104) were reported lately related to session[:edit] = nil.
(Most recent issue https://github.com/ManageIQ/manageiq/issues/11168)
There is a good possibility that the PR created for the above issues https://github.com/ManageIQ/manageiq/pull/11105 may not be the right fix.
I think all these issues can be resolved if we just replace the high_voltage gem (that lets us load the html templates) with the angular-rails_templates gem, which does the same but more efficiently.
The angular-rails_templates gem is a better choice because --

It Just Works™ --  I did not have to configure it any way (unlike high_voltage)
It does not make a special GET request for the html template since with this gem one would already have  the template in the cache, which means faster and efficient loading  (unlike high_voltage)

https://github.com/pitr/angular-rails-templates

@romanblanco Can you verify if this PR fixes #11168 for you? Thanks.
/cc @himdel

@AparnaKarve I've tried to reproduce the issue with your changes, and I'm not able to do so. So it seems it does fixes #11168. Thanks :+1:

@aparnakarve Can you please check if this works with translations in production mode? I'm not sure it will..

@himdel Translations work fine in the production mode.
I checked a few screens and the strings displayed just fine.
IMO, if we encounter a string that does not translate properly, then that particular case should be treated as a bug in the respective angular controller, because the onus is really on the angular controller to make sure that the strings are translatable...and nothing to do with the fact that the html is loaded from the template cache without a GET request.

@romanblanco Thanks for testing. Appreciate it.

@AparnaKarve I'm sorry, but no, it doesn't work. Any HAML file in /static, which uses _("...") will not be translated.
For example, in arbitration profile,
before:

after:

(also note that the only reason form-buttons is in japanese is because the button text is translated in the angular controller .. the buttons' alt and title attributes are still untranslated)

I'm seeing three ways on how to continue:

Not use angular-rails-templates
Fix angular-rails-templates to render the templates in all the supported languages during build time, and put them in a separate bundle or add a language prefix/suffix (and write tons of code to make our angular code aware of that..)
Stop telling people to translate stuff in HAML and do stuff differently

I'd go with 1..

@himdel It's a pity that angular-rails-templates can't be used because of the translation limitation. Minus the translation, it solves all other problems that folks have been encountering, plus not to mention the fact that it is way faster because it bypasses a whole GET request. ( it cannot get any better than that)

I'd go with 1..

I'd go with 1 too if PR https://github.com/ManageIQ/manageiq/pull/11105 was a real fix...but looks like it's not, and hence this PR.
So what are we going to do about this issue - #11168?
To move forward --
For static htmls that are loaded as assets, we should make sure that all the strings in the hamls are specified using the angular expression{{expression}}, which means we would need those strings defined in the scope using __("").
Just floating an idea here...I understand that the idea needs to evolve some more.

@AparnaKarve I was not aware of any outstanding issues caused by the extra GET requests for templates, thanks for letting me know about #11168 .. looking.. is it the last one?
(As for #11105 I do consider it a real fix - it should make those requests not touch the session, which is the real problem that needed fixing :).)

For static htmls that are loaded as assets, we should make sure that all the strings in the hamls are specified using the angular expression{{expression}}, which means we would need those strings defined in the scope using __("").

What benefit would that bring, wouldn't it make the hamls less understandeable, and the controllers swamped with strings far from where they are used? It feels that views are preciely the right place for hardcoded strings.. (I'm not particularly fond of that {{saveText}} code in static/buttons either..)
I do agree that pre-compiling these angular templates is a good idea however, and that we should go that way in the future, just not sure how to get there without making things worse :)
Though, maybe we could start by introducing angular-gettext into the mix? We are already using it in SSUI so it may make sense to start using it here too..
And if it manages to address all the currently needed gettext needs in static angular templates, that would solve the problem.. (except we'd need a way to ensure no further _(..) are added after)
(Alternatively, we really could go the way of per-language template bundles, but, idk, that's one of those things that sound to me like it would be almost trivial once we're using webpack but ..a bit too hard before that, but maybe it's just me..)

thanks for letting me know about #11168 .. looking.. is it the last one?

You've even commented in #11168, doesn't that mean you already know about it? :)
The reason why I think something's off about your PR #11105 is because we still have this issue #11168 (post your PR merge) and which uncannily enough is identical to the other issues #11060, #11063, #11059, #11104 for which you created that PR.
Anyway, I still maintain my original stance that loading static templates from assets is a cool concept and we should not shy away from it just because our gettext/translation model does not support it.
If angular-gettext can simplify things to some extent, then yes, lets consider getting it here in this repo as well.

You've even commented in #11168, doesn't that mean you already know about it? :)

Nope, it just means I knew about it for at least 5 minutes at some point :). But.. #11168 is closed now, since Roman was unable to reproduce on master either..

Anyway, I still maintain my original stance that loading static templates from assets is a cool concept and we should not shy away from it just because our gettext/translation model does not support it.

Well, I do agree that it's cool. But cool is good, working is even better .. and we do need i18n. We do not need to be cool. So.. priorities :). Obviously if we can have both, even better :)
As for angular-gettext, well, have a look and tel me what you think :).

But.. #11168 is closed now, since Roman was unable to reproduce on master either..

My hunch is this is one of those random, sporadic issues that is highly unpredictable and can happen again, especially because it's related to session[:edit] becoming nil out of the blue.

We do not need to be cool. So.. priorities :)

I think we all prioritize "continuous improvement" and aim to improve things in whichever way we can: fixing bugs, improving performance, memory usage, user experience ... you name it! :)
This gem change addresses all the above.
BTW, angular-rails_templates is also listed in rubygems.org
https://rubygems.org/gems/angular-rails-templates/versions/1.0.2

Anyway, adding back WIP, since this cannot be merged until the i18n issue is resolved.
(note to self: LGTM otherwise.. :))

@himdel
I now have some idea on the i18n challenges that we would face if we introduced this gem.
Thanks @mzazrivec for bringing me up to speed on this.
We should definitely revisit this PR once the UI is separated out in it’s own repository.
A separate UI repo would change the overall dynamic of the gettext catalogs and how they are managed (for e.g. in zanata it would be a separate project)
...For starters, I think the size of the catalog would be reduced quite a bit, which could be good news for us and could work in our favor, since you and @mzazrivec both mentioned that the size of the catalog could be an issue if we were to introduce an additional catalog in the mix ... a json-based catalog that angular-gettext uses.

Hey, sure, we can revisit after the split, not sure about the specific gem, but the approach definitely.
TBH I don't really have much of an idea how the split will change things i18n, if at all, so.. we'll have to see :).

@AparnaKarve I don't really see how would the repo split change the "dynamics" of the gettext
catalogs. Yes, it would be a separate project in Zanata, but otherwise things would stay the same.
Also, the catalogs size of the UI repo wouldn't get much smaller with the split. Most of the strings
are contained in controllers and views, which would fall into the UI repo after the split.

@mzazrivec Yes, I did have an afterthought (after I wrote my comment) that maybe the savings in terms of catalog size won't be as significant as I initially thought they would be.
Thanks for confirming that.

Closing this PR in this repo.
I would be more than delighted to resurrect it back in the classic UI repo if @himdel  and @mzazrivec are up for it 😉
To recap, the only blocking factor here was i18n.
IMHO, to implement i18n with the angular-gettext gem in the classic UI is not as intimidating as we once perceived it to be, in other words, it is very doable.
And in fact, introducing the angular-gettext gem in the classic UI now would be the right course of action. I see no point in procrastinating that effort — but I leave it to you guys.
@himdel  and @mzazrivec  Thanks again for all your valuable input so far. Hopefully we can resume working on this again in the classic UI repo.


Performance Degradation in CuPy cuFFT: Runtime Increases from 6 Minutes to 10 Hours After Doubling Input Array Size

Description
I'm working with a computational model in Python that involves multiple FFT/iFFT operations using CuPy 11.6.0 with the cuFFT backend. The model performed well with input arrays of size up to 2^27 elements (double complex), taking about 6.5 minutes to run. However, after increasing the array size to 2^28 elements, the runtime has drastically increased to approximately 10 hours.
My setup includes an i9 9900k CPU, 128 GB RAM, ASUS 4090 OC 24 GB GPU, running on Windows 10 (64-bit) with Python 3.7.7, CUDA Toolkit 12.3, NVIDIA driver 536.99.
Profiling with Nsight Compute has indicated warnings about kernels being launched with only 1 block and 1 grid. Unfortunately, I haven't found a way to adjust the cuFFT kernel configurations through CuPy. Attempts to use cupyx.optimizing.optimize were fruitless and, further, it cannot access cuFFT kernels.
I have a Nsight Compute report available:
https://drive.google.com/file/d/19mqFSwBZ3ghPMGrXqAcKlsdguH7AjuCU/view?usp=sharing (link to the compressed file, ~64 MB).
Please note that the file is large when uncompressed (~1GB) and may take some time to load in Nsight Compute 2023.3.0. This report is for the input array with 2^27 elements as Nsight Compute crashes with 2^28 elements.
The input data and python file to test the code can be retrieved here:
Input data with 2^22 elements: https://drive.google.com/file/d/1jG9Uqus8U5QJi7TzDUxCmnEiT80IoWbU/view?usp=sharing
Input data with 2^27 elements: https://drive.google.com/file/d/1BT0ayq7gkJWKDTt3slX13HON1dxOfrBN/view?usp=sharing
Input data with 2^28 elements: https://drive.google.com/file/d/1BT0ayq7gkJWKDTt3slX13HON1dxOfrBN/view?usp=sharing
Python code (to load the data (same as the above), pls just uncomment one of the lines 22/23/24): https://drive.google.com/file/d/1XmVqYMWU9ZuyaFk9kMCj1kr4YQo59AsT/view?usp=sharing
I'm seeking suggestions on how to address this issue, particularly with optimizing cuFFT kernel launches or managing large arrays in CuPy. Any insights or advice would be greatly appreciated. Thank you!
To Reproduce
import os
import time
from datetime import datetime
import cupy as cp
import cupyx.scipy.fft as cufft
import scipy.fft
scipy.fft.set_global_backend(cufft)

import joblib
from joblib import load

import cupyx.scipy.signal as cpx

def core():

# Get the directory of the current script
    script_dir = os.path.dirname(os.path.abspath(__file__))

    # Construct the path to the file - Pls uncomment as needed!
    joblib_file_path = os.path.join(script_dir, 'input_222.joblib') # array w/ 2^22 elements
    #joblib_file_path = os.path.join(script_dir, 'input_227.joblib') # array w/ 2^27 elements
    #joblib_file_path = os.path.join(script_dir, 'input_228.joblib') # array w/ 2^28 elements

    # Load the input array
    data = joblib.load(joblib_file_path)

    L, gp, field, Dop, mnpc = data

    # Transfer data from CPU to GPU
    L = cp.asarray(L)

    gp = cp.asarray(gp)

    field = cp.asarray(field)

    Dop = cp.asarray(Dop)

    mnpc = cp.asarray(mnpc)

    # Setting loop initial conditions
    z = 0.0  #  position
    n = 0  # iteration counter

    # Shift the Dop operator
    Dop_s = cufft.ifftshift(Dop)

    # Start loop for calculation
    start_loop = time.time()
    print(f" [{datetime.now().strftime('%Y-%m-%d at %H:%M:%S')}] Loop has started ... ")

    while z < L:

        gE2 = gp * cp.abs(field) ** 2
        id_max = cp.argmax(gE2)
        h = min(mnpc / gE2[id_max], L - z)

        # Calculate Dop for reuse
        exp_Dop_h= cp.exp(Dop_s * h / 2.0)

        # First operators action (frequency and time domain)
        field = cufft.ifft(cufft.fft(field, overwrite_x=True) * exp_Dop_h, overwrite_x=True)
        field *= cp.exp(-1j * gp * cp.abs(field) ** 2 * h)

        # Second operator action (frequency domain)
        field = cufft.ifft(cufft.fft(field, overwrite_x=True) * exp_Dop_h, overwrite_x=True)

        z += h
        n += 1

        #print(f'h = {h}, n = {n}, and z = {z}')

    end_loop = time.time()

    print(f" [{datetime.now().strftime('%Y-%m-%d at %H:%M:%S')}] Loop finished after {(end_loop - start_loop):.2f} seconds and {n} steps \n")

    field = cp.asnumpy(field)

    return field

if __name__ == "__main__":
    # Capture the start time
    start_time = time.time()
    print(f"\n [{datetime.now().strftime('%Y-%m-%d at %H:%M:%S')}] Job started\n")

    # Call the Solver function
    result = core()

    # Capture the end time
    end_time = time.time()
    print(f" [{datetime.now().strftime('%Y-%m-%d at %H:%M:%S')}] Job finished ")

    # Calculate and print the total job time
    total_time = end_time - start_time
    print(f" Total job time: {total_time:.2f} seconds")

Installation
Source (pip install cupy)
Environment
OS                           : Windows-10-10.0.19041-SP0
Python Version               : 3.7.7
CuPy Version                 : 11.6.0
CuPy Platform                : NVIDIA CUDA
NumPy Version                : 1.21.6
SciPy Version                : 1.7.3
Cython Build Version         : 0.29.36
Cython Runtime Version       : None
CUDA Root                    : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2
nvcc PATH                    : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin\nvcc.EXE
CUDA Build Version           : 12020
CUDA Driver Version          : 12020
CUDA Runtime Version         : 12020
cuBLAS Version               : (available)
cuFFT Version                : 11008
cuRAND Version               : 10303
cuSOLVER Version             : (11, 5, 0)
cuSPARSE Version             : (available)
NVRTC Version                : (12, 2)
Thrust Version               : 200101
CUB Build Version            : 200101
Jitify Build Version         : <unknown>
cuDNN Build Version          : None
cuDNN Version                : None
NCCL Build Version           : None
NCCL Runtime Version         : None
cuTENSOR Version             : None
cuSPARSELt Build Version     : None
Device 0 Name                : NVIDIA GeForce RTX 4090
Device 0 Compute Capability  : 89
Device 0 PCI Bus ID          : 0000:03:00.0

Additional Information
No response

Profiling with Nsight Compute has indicated warnings about kernels being launched with only 1 block and 1 grid.

This sounds like an integer overflow in the launching configuration internally. (cc @leofang)

Thank you very much for your reply. Your hypothesis seems very likely. Let's wait for leofang's comments.

Hi @emcastillo! I've switched to Ubuntu 22.04 LTS and I believe I've pinpointed the issue I'm encountering. On Windows 10, when processing an array that doubled in size from 2^27 to 2^28 elements, the runtime became extremely slow. However, on Ubuntu, the same increase in array size results in an out-of-memory error. Here's the traceback:
(py311) eric@perseus:/media/eric/M33/py311$ python3 ../core.py

 [2023-11-13 at 00:05:45] Job started

 [2023-11-13 at 00:06:13] Loop has started ...
Traceback (most recent call last):
  File "/media/eric/M33/py311/../core.py", line 90, in <module>
    result = core()
             ^^^^^^
  File "/media/eric/M33/py311/../core.py", line 61, in core
    exp_Dop_h= cp.exp(Dop_s * h / 2.0)
                      ~~~~~~~~~~^~~~~
  File "cupy/_core/core.pyx", line 1307, in cupy._core.core._ndarray_base.__truediv__
  File "cupy/_core/core.pyx", line 1676, in cupy._core.core._ndarray_base.__array_ufunc__
  File "cupy/_core/_kernel.pyx", line 1291, in cupy._core._kernel.ufunc.__call__
  File "cupy/_core/_kernel.pyx", line 644, in cupy._core._kernel._get_out_args_from_optionals
  File "cupy/_core/core.pyx", line 2765, in cupy._core.core._ndarray_init
  File "cupy/_core/core.pyx", line 241, in cupy._core.core._ndarray_base._init_fast
  File "cupy/cuda/memory.pyx", line 742, in cupy.cuda.memory.alloc
  File "cupy/cuda/memory.pyx", line 1419, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 1440, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 1120, in cupy.cuda.memory.SingleDeviceMemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 1141, in cupy.cuda.memory.SingleDeviceMemoryPool._malloc
  File "cupy/cuda/memory.pyx", line 1379, in cupy.cuda.memory.SingleDeviceMemoryPool._try_malloc
cupy.cuda.memory.OutOfMemoryError: Out of memory allocating 4,294,967,296 bytes (allocated so far: 21,474,838,528 bytes).

Monitoring GPU memory allocation with nvidia-smi, I observed that my RTX 4090 really runs out of memory when handling the 2^28 element array, while it manages the 2^27 element array with a memory usage of 19233MiB out of 24564MiB. This suggests that Windows manages GPU memory differently, likely by utilizing swap space, which allows the process to continue but at a significantly reduced speed
I will mount a new setup with two GPUs soon, and I will let you know about the outcome. Regarding using two GPUs, could you please let me know if you have any recommendations beyond what is in the documentation?
Thank you very much for your help!

Sorry I missed the ping. I cannot find a public reference for this behavior, but it is known that on Windows instead of hitting OOM, the OS would try to spill into system memory, and the slowness (of any kernel, not just cuFFT) is a consequence. Generally, when using large arrays one should be cautious about potential memory and overflow issues, and reports like this would help us triage/understand better, so thanks! 🙂

@Eric-AMF since you have access to a Windows machine, could you check setting the env var CUPY_GPU_MEMORY_LIMIT (to the max available number of bytes of your GPU, so 8 GiB would be set CUPY_GPU_MEMORY_LIMIT=8589934592) would help you hitting OOM instead of running, as on Linux?

@leofang @emcastillo I apologize for the delayed response. Due to an energy outage, my machine  crashed shortly  after you messaged me, and I am still working to get the simulations up and running again.  I anticipate that by tomorrow or Sunday, I should be able to perform the test you suggested. In addition, I was  developing a routine in CUDA, as I was unable to get low-level CuPy functions to distribute properly the calculations across two GPUs. I'll provide more details on this soon.

@leofang @emcastillo, my apologies again for the late reply. @leofang, your recommendation to use CUPY_GPU_MEMORY_LIMIT has successfully prevented swapping on Windows. Using cupy.cuda.MemoryPool.set_limit() works well too. I am currently working on rewriting this part of the code in CUDA:
while z < L:

    gE2 = gp * cp.abs(field) ** 2
    id_max = cp.argmax(gE2)
    h = min(mnpc / gE2[id_max], L - z)

    # Calculate Dop for reuse
    exp_Dop_h= cp.exp(Dop_s * h / 2.0)

    # First operators action (frequency and time domain)
    field = cufft.ifft(cufft.fft(field, overwrite_x=True) * exp_Dop_h, overwrite_x=True)
    field *= cp.exp(-1j * gp * cp.abs(field) ** 2 * h)

    # Second operator action (frequency domain)
    field = cufft.ifft(cufft.fft(field, overwrite_x=True) * exp_Dop_h, overwrite_x=True)

    z += h
    n += 1

    #print(f'h = {h}, n = {n}, and z = {z}')

end_loop = time.time()

print(f" [{datetime.now().strftime('%Y-%m-%d at %H:%M:%S')}] Loop finished after {(end_loop - start_loop):.2f} seconds and {n} steps \n")

field = cp.asnumpy(field)

return field

Writing the fft and ifft kernels to use two GPUs in CUDA was not so hard, but the rest is proving to be more difficult. In my previous post, when I mentioned that I was unable to get low-level CuPy functions to efficiently distribute calculations across two GPUs, I meant the calculations were slow (I see CuPy's documentation warns about possible performance issues while using multi-GPUs). Perhaps soon I will gain access to A100 GPUs, which should allow me to revert exclusively to CuPy. I'll keep you updated on this as well. Thank you.

Thanks for confirming. Yes, cupy.cuda.MemoryPool.set_limit() is equivalent to CUPY_GPU_MEMORY_LIMIT, so pick whatever is most convenient to you.
For multi GPUs, in the future the new distributed ndarray would be useful, but it doesn't support FFT yet. For now you need to partition the work and manage the per-GPU data chunks manually.
Closing, since the original issue is resolved.


DEC-630: Migrate enable_browse

-Created migrations to add enable_browse text column to Collections and copy existing data from the exhibits. enable_browse into collections. enable_browse
-Changed all references to exhibits. enable_browse to collections. enable_browse

:+1:


Whitelist and blacklist from files

Maybe you could add option to load whitelisted and blacklisted domains from files.
This way we would be able to share them between many computers.
For default it could be $HOME/.hblock_whitelist and $HOME/.hblock_blacklist.
But I'm not sure how to make it work with systemd service files.

You can currently do something like:
./hblock -W "$(cat whitelist.txt)" -B "$(cat blacklist.txt)"

Did not though about this, thank you.


Code that should warn about AllowAmbiguousTypes instead complains about ambiguous effects

Consider the following code as discussed in #53 :
deleteKV :: forall k v r. Member (KVStore k v) r => k -> Sem r ()
deleteKV k = updateKV k (Nothing @v)

based off of polysemy-zoo's KVStore effect.
This thing is type-ambiguous in v, even though it's not effect-ambiguous. But when -XNoAllowAmbiguousTypes is set, this will complain about an ambiguous usage of KVStore k v :(

I realized there's a simple mitigation for this --- if the TH is going to generate ambiguous code, check for the AllowAmbiguousTypes flag and give a warning from TH instead. It doesn't fix all cases, but it will fix some!

This isn't an issue when the plugin is enabled, so closing.


how to touch a space bar?

HI   thanks for your greate work!  i am new begginer of yabai ..i saw your pic has too many space bar.  i only have one . by the way i use your config .  i create these rule
# window rules
yabai -m rule --add app=Google Chrome space=2
yabai -m rule --add app=Emacs space=3
yabai -m rule --add app=网易云音乐 space=3

and i use this keymap the skhdrc from your dotfiles.shift+cmd -n but nothing happend

The icons in the bar reflect how many macOS Spaces are available to you. You can manage spaces by activating Mission Control (default: four-finger swipe up on the Trackpad) or by using the space commands provided with yabai: https://github.com/koekeishiya/yabai/wiki/Commands#space-commands
If you are new to macOS Spaces, maybe give this a read: https://appleinsider.com/articles/18/10/12/how-to-use-spaces-apples-mostly-ignored-macos-mojave-productivity-feature

very thanks  i got it Mission Control

by the way  i use this config . but when i type the keymap  nothing happend . did i missed something ?
# create desktop, move window and follow focus
shift + cmd - n : yabai -m space --create;\
                  id=$(yabai -m query --displays --display | grep "spaces");\
                  yabai -m window --space $(echo ${id:10:${#id}-10});\
                  yabai -m space --focus $(echo ${id:10:${#id}-10})

# create desktop and follow focus
cmd + alt - n : yabai -m space --create;\
                id=$(yabai -m query --displays --display | grep "spaces");\
                yabai -m space --focus $(echo ${id:10:${#id}-10})

Make sure you have System Integrity Protection disabled and the scripting addition installed. Check the wiki for instructions on each.

thanks for your reply.  type csrutil status i got this

Did you install skhd?
brew install koekeishiya/formulae/skhd
brew services start skhd

i installed , i can use some kemap in .skhdrc.

Did you install the scripting addition after disabling system integrity protection?
sudo yabai --install-sa
I will assume this is the problem as skhd works properly as per your last comment.

@koekeishiya  hi there. I install yabai in my new mbp. i found these keys can't work. I can confirm disable sip and install sa.
ctrl + alt - n : yabai -m space --create
ctrl + alt - d : yabai -m space --destroy


Cross-registry blob mount support

#275 contains a spec change that seems to have narrowed the scope of cross-repository blob mounting by adding the words within the same registry to the description of the API call.
Looking back at the discussion of the original spec proposal in distribution/distribution#908 and the discussion leading up to it in distribution/distribution#634, it appears that restricting the spec to only allow for same-registry mounting was specifically avoided in order to intentionally allow for the future possibility of cross-registry mounting implementations/extensions, along with a mention that "the code should be designed so that cross-registry-cross-repository can be added in the future".
I couldn't find any more recent public discussion around the spec change in that PR, so it's unclear to me if the added text was an intentional change based on private discussions (in which case I would be interested in a public summary of these discussions), or an accidental re-interpretation of the original spec's intentions (in which case it would make sense to revert the change).
This issue is newly significant because Google has been working on an implementation of cross-registry mounting in their registry (see google/go-containerregistry#1321) and they expressed an interest in having their approach standardized moving forward.

seems to have narrowed the scope of cross-repository blob mounting

@sargun I can't tell from the GitHub discussion -- was this an intentional narrowing?


About outbound connection limit number

According to Connection limit section of this page, outbound connection limit number per instance is  600 active connections ( 1200 total connections )
One of the restrictions that the sandbox imposes on your code is a cap on the number of connections (currently at 600 active connections and 1,200 total connections) per instance.

But referring to Web app sandbox numerical limits, it seems 300 is the limit number, which confuse me.
Could you please clarify which is correct?

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

ID: cb8d85a7-1ca3-71f4-85fb-7fb02850b60e
Version Independent ID: 3d7daee4-fd6d-0e96-299a-90b3637e6150
Content: Manage connections in Azure Functions
Content Source: articles/azure-functions/manage-connections.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@yokawasa Thank you for posting your question. Please check this thread for the answer.
Comment from Chris: https://github.com/MicrosoftDocs/azure-docs/issues/21155#issuecomment-450035820

@KetanChawda-MSFT  Thanks alot for the comment! I understand 600 is correct number.
By the way, as the following wiki page in Github, where old number (300) is introduced, is still linked from this page, people may get confused.

https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#numerical-sandbox-limits

My suggestion is to remove the link from the page or to update the wiki page.

@yokawasa Removed the link from the doc.  Thank you for your feedback.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

@yokawasa Thanks for pointing this out! We'll reach out to the right team and update the Kudu doc for consistency as well.