🐛 undefined symbol: RNWorklet::JsiWrapper

What were you trying to do?
Trying to build my project again -- it worked this morning!
All I did was try to use vision-camera-code-scanner with 3.0.0-rc3, and now I can't go back. I've purged all my files, including node_modules, npm cache, gradle, and android build folder.
Here are the relevant libraries that make any difference:
"@shopify/react-native-skia": "^0.1.202",
"react": "18.2.0",
"react-native": "0.72.4",
"react-native-reanimated": "3.4.2",
"react-native-vision-camera": "3.0.0-rc.5",
"react-native-worklets-core": "^0.2.0",
Reproduceable Code
npx react-native start

What happened instead?
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':react-native-vision-camera:buildCMakeDebug[arm64-v8a]'.

com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android/.cxx/Debug/j6t3e341/arm64-v8a'

Relevant log output
[12/14] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o
  [13/14] Building CXX object CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o
  [14/14] Linking CXX shared library ../../../../build/intermediates/cxx/Debug/j6t3e341/obj/arm64-v8a/libVisionCamera.so
  FAILED: ../../../../build/intermediates/cxx/Debug/j6t3e341/obj/arm64-v8a/libVisionCamera.so
  : && /home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -O2 -frtti -fexceptions -Wall -Wno-unused-variable -fstack-protector-all -DSK_GL -DSK_GANESH -DSK_BUILD_FOR_ANDROID -g  -fno-limit-debug-info  -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Qunused-arguments -Wl,--no-undefined -shared -Wl,-soname,libVisionCamera.so -o ../../../../build/intermediates/cxx/Debug/j6t3e341/obj/arm64-v8a/libVisionCamera.so CMakeFiles/VisionCamera.dir/home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/cpp/JSITypedArray.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/FrameHostObject.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/FrameProcessorPluginHostObject.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/JSIJNIConversion.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCamera.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/skia/SkiaRenderer.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrame.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessorPlugin.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JHashMap.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraScheduler.cpp.o  /home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so  -landroid  /home/matthew/.gradle/caches/transforms-3/ed5971bff14b029db9d61e0025901397/transformed/jetified-react-android-0.72.4-debug/prefab/modules/jsi/libs/android.arm64-v8a/libjsi.so  /home/matthew/.gradle/caches/transforms-3/ed5971bff14b029db9d61e0025901397/transformed/jetified-react-android-0.72.4-debug/prefab/modules/reactnativejni/libs/android.arm64-v8a/libreactnativejni.so  /home/matthew/.gradle/caches/transforms-3/ed5971bff14b029db9d61e0025901397/transformed/jetified-react-android-0.72.4-debug/prefab/modules/folly_runtime/libs/android.arm64-v8a/libfolly_runtime.so  /home/matthew/.gradle/caches/transforms-3/d2945effe2c76af5abf2618fac389cac/transformed/jetified-fbjni-0.3.0/prefab/modules/fbjni/libs/android.arm64-v8a/libfbjni.so  -lGLESv2  -lEGL  -ljnigraphics<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS> -latomic -lm && :
  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::getWorkletRuntime()
  >>> referenced by VisionCameraProxy.cpp:35 (/home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android/src/main/cpp/VisionCameraProxy.cpp:35)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vision::VisionCameraProxy::~VisionCameraProxy())
  >>> referenced by JFrameProcessor.cpp:39 (/home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android/src/main/cpp/java-bindings/JFrameProcessor.cpp:39)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(vision::JFrameProcessor::callWithFrameHostObject(std::__ndk1::shared_ptr<vision::FrameHostObject> const&) const)

  ld: error: undefined symbol: RNWorklet::JsiHostObject::JsiHostObject()
  >>> referenced by WKTJsiWorklet.h:77 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorklet.h:77)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::JsiWorklet(facebook::jsi::Runtime&, facebook::jsi::Value const&))
  >>> referenced by WKTJsiWorkletContext.h:31 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorkletContext.h:31)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())

  ld: error: undefined symbol: RNWorklet::JsiHostObject::~JsiHostObject()
  >>> referenced by WKTJsiWorklet.h:79 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorklet.h:79)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::JsiWorklet(facebook::jsi::Runtime&, facebook::jsi::Value const&))
  >>> referenced by WKTJsiWorklet.h:74 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorklet.h:74)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::~JsiWorklet())

  ld: error: undefined symbol: RNWorklet::JsiWrapper::wrap(facebook::jsi::Runtime&, facebook::jsi::Value const&, RNWorklet::JsiWrapper*)
  >>> referenced by WKTJsiWrapper.h:62 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWrapper.h:62)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(RNWorklet::JsiWorklet::createWorklet(facebook::jsi::Runtime&, std::__ndk1::shared_ptr<facebook::jsi::Function>))

  ld: error: undefined symbol: RNWorklet::JsiHostObject::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)
  >>> referenced by VisionCameraProxy.cpp
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)

  ld: error: undefined symbol: RNWorklet::JsiHostObject::set(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&, facebook::jsi::Value const&)
  >>> referenced by VisionCameraProxy.cpp
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)

  ld: error: undefined symbol: RNWorklet::JsiHostObject::getPropertyNames(facebook::jsi::Runtime&)
  >>> referenced by VisionCameraProxy.cpp
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(vtable for RNWorklet::JsiWorklet)

  ld: error: undefined symbol: typeinfo for RNWorklet::JsiHostObject
  >>> referenced by VisionCameraProxy.cpp
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/VisionCameraProxy.cpp.o:(typeinfo for RNWorklet::JsiWorklet)

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::invokeOnJsThread(std::__ndk1::function<void (facebook::jsi::Runtime&)>&&)
  >>> referenced by JFrameProcessor.cpp:52 (/home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android/src/main/cpp/java-bindings/JFrameProcessor.cpp:52)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(vision::JFrameProcessor::callWithFrameHostObject(std::__ndk1::shared_ptr<vision::FrameHostObject> const&) const)
  >>> referenced by WKTJsiWorklet.h:358 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorklet.h:358)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::~WorkletInvoker())

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::runtimeMappings
  >>> referenced by __tree:0 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:0)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::call(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long))
  >>> referenced by __tree:0 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:0)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::call(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long))

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::invokeOnWorkletThread(std::__ndk1::function<void (RNWorklet::JsiWorkletContext*, facebook::jsi::Runtime&)>&&)
  >>> referenced by WKTJsiWorklet.h:361 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorklet.h:361)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::WorkletInvoker::~WorkletInvoker())

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::defaultInstance
  >>> referenced by memory:3887 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:3887)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
  >>> referenced by memory:3887 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:3887)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())

  ld: error: undefined symbol: vtable for RNWorklet::JsiWorkletContext
  >>> referenced by WKTJsiWorkletContext.h:31 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorkletContext.h:31)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
  >>> referenced by WKTJsiWorkletContext.h:31 (/home/matthew/dev/stackbayapp/node_modules/react-native-worklets-core/android/build/headers/rnworklets/react-native-worklets-core/WKTJsiWorkletContext.h:31)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(RNWorklet::JsiWorkletContext::getDefaultInstance())
  >>> the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::~JsiWorkletContext()
  >>> referenced by memory:2252 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2252)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(std::__ndk1::__shared_ptr_emplace<RNWorklet::JsiWorkletContext, std::__ndk1::allocator<RNWorklet::JsiWorkletContext> >::~__shared_ptr_emplace())
  >>> referenced by memory:2252 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2252)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JFrameProcessor.cpp.o:(std::__ndk1::__shared_ptr_emplace<RNWorklet::JsiWorkletContext, std::__ndk1::allocator<RNWorklet::JsiWorkletContext> >::~__shared_ptr_emplace())

  ld: error: undefined symbol: RNWorklet::JsiWorkletContext::JsiWorkletContext(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, facebook::jsi::Runtime*, std::__ndk1::function<void (std::__ndk1::function<void ()>&&)>, std::__ndk1::function<void (std::__ndk1::function<void ()>&&)>)
  >>> referenced by memory:2278 (/home/matthew/programs/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2278)
  >>>               CMakeFiles/VisionCamera.dir/src/main/cpp/java-bindings/JVisionCameraProxy.cpp.o:(vision::JVisionCameraProxy::JVisionCameraProxy(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JVisionCameraProxy, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*> const&, facebook::jsi::Runtime*, std::__ndk1::shared_ptr<facebook::react::CallInvoker> const&, facebook::jni::basic_strong_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JVisionCameraScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, facebook::jni::GlobalReferenceAllocator> const&))
  clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

  C++ build system [build] failed while executing:
      /home/matthew/programs/sdk/cmake/3.22.1/bin/ninja \
        -C \
        /home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android/.cxx/Debug/j6t3e341/arm64-v8a \
        VisionCamera
    from /home/matthew/dev/stackbayapp/node_modules/react-native-vision-camera/android

Device
Android 12
VisionCamera Version
3.0.0-rc5
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

same error!

Same here 👍🏻

I found the problem!
Frame Processors are never being enabled, they can't be, so they're not being linked in.
In /android/CMakeLists.txt:
set(CMAKE_VERBOSE_MAKEFILE ON)
set(PACKAGE_NAME "VisionCamera")
set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(ENABLE_FRAME_PROCESSORS ON)    <-------------------Need to add this line
set(CMAKE_CXX_STANDARD 17)

If someone continues to have this problem with version 3.0.0, I recommend the following:
Clone the original project from the main branch
go to the package folder and do npm i -> npm run build
copy the lib folder and paste it into the folder
node_modules/react-native-vision-camera/
run again
This will update the version that is in main that is not yet as a release candidate, nor as a release version.
(To keep these changes I use patch package)
npx patch-package react-native-vision-camera
and follow the steps in the patch-package package
FAST STEP:
If you want only the changes of patch-package copy this on your patches folder.  It is still a problem with 3.0.0

this is not a VisionCamera issue but a worklets issue.
Clean yo cache

@mrousavy What cache should I clear exactly? I tried this in a from scratch project also and have the same issue there.

hm can you reproduce it in the example app? make sure your environment is up to date with node, android studio, homebrew etc

Can it be a problem with RN 0.72 (I use it in the new projet) or should it be compatible with it also?

I use these versions in my build..gradle
ext {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
    // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
    ndkVersion = "23.1.7779620"
}

Android studio and node is also up-to-date. I am on Windows 11.

The problem for me was the minSdkVersion. I set it to 26 as in the example app and it seems to be working now.

I've encountered the same issue in the past, but I was unable to determine a reliable way to replicate this build error.
It appears that simply clearing the cache and reinstalling everything may have resolved the problem, although I cannot be 100% certain.
Could someone share the repository that triggers this error? I don't have one now.

@metrix-hu Fortunately(?), I just faced this problem again and your solution(set minSdkVersion to 26) fixed my problem. Thanks! However, I'm not sure if it's a truly valid solution so that the same error never happens again under the current configuration.
Could you offer some rationale behind your proposed solution?

@bglgwyng As I said before I scaffolded a brand new RN 0.72 project installed the needed packages and I instantly faced the error. As Marc suggested I tried running the Example app also with the exact same configuration I had before and it worked like a charm. Every dependency was updated and was still not working. So node was on latest 18.x version Androis Studio is latest possible everything. My project was still not working and the example app worked. So I tried to find what the heck is the difference between the two, and this was the only thing I found. I changed it after that it instantly worked in my project also.

Ohhh, that's weird. Yea maybe it's because of minSdk, that has to be 26 for VisionCamera at least. Interesting catch guys. It is stated in the troubleshooting docs btw

@mrousavy No way I am struggling with reanimated v3 couldnt make it because of a typescript error. Now I tried theirt latest nightly which needed a new native build, and now I got thies error again..

@mrousavy What the heck. Today I reproduces the issue in the example app too.

I did not change anything I just hit "build/clean project" in Android Studio before a new build, otherwise it would just start the app instantly again.

Maybe this is a Windows issue. I don't know. Sorry to ping you here, but @chrfalch - any thoughts?

@mrousavy Maybe worklets core does some copying of files when building C++? I can see in Android Studio that the compilation of worklets-core and vision-camera happens in parallel, maybe that causes the problem?

Sounds really strange - would it be possible to test adding only the worklets library in an empty project @metrix-hu and see if you had any issues?
The library is found here: https://github.com/margelo/react-native-worklets-core.
A great test would even be to test its example app in your environment.
The only thing I could come up with in regards to Windows would have to be that referencing paths in CMakeLists.txt might be odd somehow?

@chrfalch I tried the example app from react-native-worklets-core. After yarn installing it I opened the android folder inside the example folder, and here gradle sync failed with the following:

@chrfalch You know what is also strange?

I tried to scaffold a new project added worklets-core as dependency. Everything is worked like a charm here. Tried cleaning the project to ruin it and build it again it was still working.
I added vision-camera also as a dependency. Tried to build the project but I run into the same error. Now I run the cleaning again and it solved the problem..
After I tried to run the clean commands again in the main project too and strangely it built here again..

I still think that something is conflicting here that the two build processes are running in parallel, and now I just got lucky that worklets-core finished before than vision-camera needed the files..

@chrfalch this is how I get node_modules in VisionCamera:
https://github.com/mrousavy/react-native-vision-camera/blob/eddb01fda1cd4214a6159aba93133564c3220c55/package/android/build.gradle#L51-L64
This is how we do it in Worklets Core:
https://github.com/margelo/react-native-worklets-core/blob/94eaf5d828118510eae1ec16876ec384f856ebe2/android/build.gradle#L15-L28
Exactly the same lol. Maybe somewhere there's a /, which would not be working on Windows? Idk, I can take a look at this when I'm back home

It might not be Windows only issue. I'm building my project on a Mac, but I'm encountering the same error.

It is not a Windows issue. I only use Linux.

I'm going to be "that guy" who says I fixed it, and hopefully not too many people reading this will say "I TRIED THAT -- AND I'M STILL HAVING THE PROBLEM!" haha
Here is the fix:
Go in to android/CMakeLists.txt and add a line at the top, so it looks like this:
set(CMAKE_VERBOSE_MAKEFILE ON)
set(PACKAGE_NAME "VisionCamera")
set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(ENABLE_FRAME_PROCESSORS ON)
set(CMAKE_CXX_STANDARD 17)
You should then be able to build. Those errors above are clearly showing a failure to link Worklets Core in particular. This actually makes sense as a solution.

@DeveloperMCD It looks like that line is already there after BUILD_DIR

Oh you may talk about the ENABLE_FRAME_PROCESSORS one. I am not sure that is correct because it should be calculated based on if worklets-core is existing or not, right?

Oh you may talk about the ENABLE_FRAME_PROCESSORS one. I am not sure that is correct because it should be calculated based on if worklets-core is existing or not, right?

It seems to never be calculated. Please show me where the variable "ENABLE_FRAME_PROCESSORS" is set.
I'll wait :)

@DeveloperMCD You dont have to be so rude because someone is assuming based on rational things. How do you explain the reason of this variable existing if it always needs to have the value "ON" to make it build? But look I searched it for you.

It should come from the build.gradle file as an argument. , where the value is based on the hasWorklets variable which is calculated by the worklets library existence. I am not really familiar how CMakeLists or things like this work exactly so lets ask @mrousavy  again he is a lot smarter than me. The build script logs a lot than Frame Processors are enabled even without this line, there should be some reason for it. If this constant line is the solution, then why is it so random that it sometimes work and sometimes it doesnt?

I wasn't being rude. You're having a misunderstanding based on differing cultures/generations. Words don't always come across as the typer intended them. It's a classic flaw of text-based communication. I'll leave it at that.

"You dont have to be so rude because someone is assuming based on rational things. How do you explain the reason of this variable existing if it always needs to have the value "ON" to make it build?"
It's simple. MRousavy might have made a mistake. A careless error. I consider it possible that he wrote 99 lines of perfect code but forgot the first line of code to set the whole ball rolling. It's happened before to me. We all make mistakes.
Which is why I don't assume anything going in to a troubleshooting adventure. You have to start with zero assumptions, verifying everything as you go. Eventually you find the problem.

@DeveloperMCD Yes maybe I believe you but you still did not explain anything. I am not assuming that anybody is perfect here, you are misunderstanding me also. I am assuming that it should not be always ON because then why anyone would introduce it in the first place? However I tried your suggestion and I am able to build (however I was able to do it last time even without this change..) but now I got a runtime error, that Frame Processors are not enabled! Even if in the build logs it still says that they are enabled... How can you explain that?

Just for starters, I would run this code, or something similar to it for your operating system:
cd
rm -rf node_modules
rm -rf android/build
rm -f package-lock.json
rm -rf ~/.gradle
rm -rf ~/.npm
This would allow for a complete reset of the build process.

What if I use yarn? And why would I remove lock files if we are not changing any package version here?

Then do a full reset as per your operating system and particular build chain.
Also what does your Babel config look like?
Mine is:
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
[
'react-native-reanimated/plugin',
{
globals: ['__scanCodes'],
},
],
['react-native-worklets-core/plugin'],
],
};
I can't give you a full reason or explanation for what's going on with the Makefile. That will have to wait for MRousavy. I just know how I fixed it for my own particular case.

One problem -- you need to get rid of Skia. MRousavy got rid of it completely when he released 3.0.0 a few days ago.
I have it Skia disabled (plus absent) in my own project.
VisionCamera_disableSkia=true
VisionCamera_buildToolsVersion=33.0.0
VisionCamera_compileSdkVersion=33
VisionCamera_kotlinVersion=1.7.00
VisionCamera_targetSdkVersion=33
VisionCamera_ndkVersion=23.1.7779620
android.enableJetifier=true
android.useAndroidX=true

@DeveloperMCD Thanks man for the effort and ideas you gave me. Sorry for my odd comments from yesterday I was so stressed out about this.. Now I started everything from scratch tried every combination, but unfortunately I still have the same problem as in my last comment. The build only works for me when I does not change anything and I got lucky in that moment and packages build in the correct order. Its so weird.
But in this case I still have an other runtime error..: https://github.com/mrousavy/react-native-vision-camera/issues/1776

@KraljSamo I tried with the latest version of VisionCamera v3 a few days ago and now everything works well so far with the frameprocessors.

I'm going to be "that guy" who says I fixed it, and hopefully not too many people reading this will say "I TRIED THAT -- AND I'M STILL HAVING THE PROBLEM!" haha Here is the fix: Go in to node_modules/react-native-vision-camera/android/CMakeLists.txt and add a line at the top, so it looks like this:
set(CMAKE_VERBOSE_MAKEFILE ON) set(PACKAGE_NAME "VisionCamera") set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build) set(CMAKE_VERBOSE_MAKEFILE ON) set(ENABLE_FRAME_PROCESSORS ON) <----------- THIS LINE IS ADDED set(CMAKE_CXX_STANDARD 17)
You should then be able to build. Those errors above are clearly showing a failure to link Worklets Core in particular. This actually makes sense as a solution.

This fixed my issue. Thanks

Leaving it here for my future self - what works consistently is first Build -> Rebuild Project from Android studio, and only then running or making a build

Leaving it here for my future self - what works consistently is first Build -> Rebuild Project from Android studio, and only then running or making a build

Thats exactly how it works for me too, even with v4. And for production build I also have to do a complete reinstall of node modules after deleting them.


Ability to rearrange the windows.

The window positions need to be stored and used when deciding the order of the tabs.
https://www.html5rocks.com/en/tutorials/dnd/basics/
NOTE: If the solution involves adding a new window position data to the state, utilize the app init action to patch older app versions without the window position data, so they don't break.

Create a new reducer (windows meta) to store extra information like this about windows states.


Gradle sync is failing after adding dependency

I have added the gradle dependency for the library but the sync fails. Please help. I am using android studio 1.1.0.

Can you give your error output?


Don't resubmit when the miner has already submitted for the current oracle block

fixes #294

fixes #294

Pull Request Test Coverage Report for Build 436220717

0 of 10 (0.0%)  changed or added relevant lines in 3 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.09%) to 36.284%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/rpc/client.go
0
2
0.0%

pkg/rpc/contractRPC.go
0
3
0.0%

pkg/ops/miningManager.go
0
5
0.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/ops/miningManager.go
2
0%

pkg/tracker/retryFetcher.go
2
90.7%

Totals

Change from base Build 436154010:
-0.09%

Covered Lines:
1492

Relevant Lines:
4112

💛  - Coveralls

fixes #294

this only works from the first comment.

This solution has race condition as it reads the variable while writing to it in a goroutine. Can add locking, but I think a more simple solution would be to just do error matching and ignore an error
with the text Miner already submitted the value
tx, err := mgr.solHandler.Submit(ctx, solution)
if err != nil {
		level.Error(mgr.logger).Log("msg", "submiting a solution", err)
		mgr.submitFailCount.Inc()
		// No need to resubmit when already submitted for the current oracle block.
		if err.Error() == "Miner already submitted the value"{
			mgr.solutionPending = nil
		}
		continue
}

This solution has race condition as it reads the variable while writing to it in a goroutine. Can add locking, but I think a more simple solution would be to just do error matching and ignore an error
with the text Miner already submitted the value
tx, err := mgr.solHandler.Submit(ctx, solution)
if err != nil {
		level.Error(mgr.logger).Log("msg", "submiting a solution", err)
		mgr.submitFailCount.Inc()
		// No need to resubmit when already submitted for the current oracle block.
		if err.Error() == "Miner already submitted the value"{
			mgr.solutionPending = nil
		}
		continue
}

tx, err := mgr.solHandler.Submit(ctx, solution)
if err != nil {
level.Error(mgr.logger).Log("msg", "submiting a solution", err)
mgr.submitFailCount.Inc()
// No need to resubmit when already submitted for the current oracle block.
if err.Error() == "Miner already submitted the value"{
mgr.solutionPending = nil
}
continue
}

Doesn't this not prevent it though?  Or are you saying I leave my changes and then add this to the code too?  I think if the error is that you already sumbitted the value, why would you put the solutionPending to nil?

tx, err := mgr.solHandler.Submit(ctx, solution)
if err != nil {
level.Error(mgr.logger).Log("msg", "submiting a solution", err)
mgr.submitFailCount.Inc()
// No need to resubmit when already submitted for the current oracle block.
if err.Error() == "Miner already submitted the value"{
mgr.solutionPending = nil
}
continue
}

Doesn't this not prevent it though?  Or are you saying I leave my changes and then add this to the code too?  I think if the error is that you already sumbitted the value, why would you put the solutionPending to nil?


Update Plugin Artifacts Links for v0.183.0

Automated changes by create-pull-request GitHub action

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


added badge context checks

Refs #96
Describe the changes made in this pull request
Added checks for badges (links to images) before checking for badge urls with regexps. These new checks get rid of many false positives.
Instructions to review the pull request

Rebuild howfairis
Running howfairis https://github.com/xtensor-stack/xtensor-fftw should result in ✓ has_conda_badge
Running howfairis https://github.com/bsipos/bsipos-conda should result in × has_conda_badge. Before this PR it reported ✓ has_conda_badge (false positive)
Running howfairis https://github.com/pygame/pygame should result in compliance score: xoxoo (test for .rst file type)

Hi Erik, at first glance this is not a direction I wanted to go (https://github.com/fair-software/howfairis/pull/88#pullrequestreview-575255588, https://github.com/fair-software/howfairis/issues/68#issuecomment-764579539). Let's take some time to reflect.

Hi Erik, at first glance this is not a direction I wanted to go (https://github.com/fair-software/howfairis/pull/88#pullrequestreview-575255588, https://github.com/fair-software/howfairis/issues/68#issuecomment-764579539). Let's take some time to reflect.

That's fine, this was more an exercise in getting more familiar with the repository

That's fine, this was more an exercise in getting more familiar with the repository


camera and radar

Hi，I am learning about sensor fusion.
Can I test this project with a monocular camera and a millimeter wave radar ARS-408?
The sincerity anticipates your reply.Thank you!

Hi, I'm also planning to do camera and mmw radar fusion, and don't know which radar to choose, could you give me some advice, I'll be very appreciated !


Loadgen runner

Summary
This (large) PR introduces a runner capable of orchestrating a chain node, a client ag-solo and the existing loadgen script, as well as several wrapper scripts to automate running the loadgen using any SDK revision, in the expected environment.
It's the base for running a daily loadgen on the latest agoric-sdk to capture historical performance data. See https://github.com/Agoric/agoric-sdk/issues/2630
The orchestrator starts a local chain node (or monitor node in the case of an remote chain), pipes and parses the slog using a FIFO file, and monitors events from the slog. At regular interval, it captures process information for the CPU usage of the chain process and its vat subprocesses, as well as the disk storage used by the chain. It can run multiple cycles of chain, client and loadgen, compressing and saving the chain storage and raw slog for every stage.
Runner structure
The runner is setup as a node workspace package. Unlike the loadgen package, it doesn't depend on agoric-sdk. Since it tries to follow code patterns, it runs under SES using its own install-ses and uses a fork of promise-kit, mainly to avoid breaking changes such as RESM->NESM.
The runner is a CLI application composed of a main.js file parsing the command line and implementing the bulk of the orchestration logic. It relies on tasks that implement the specifics of setting up and running a chain node, running a local solo client, and running the load generator itself, all spawned as sub processes. Currently it supports running these tasks for a local chain, or against an external stage and testnet chain. The implementation uses a bunch of potentially reusable async, stream, process and filesystem helpers (currently not covered by any unit tests).
The output of all spawned sub processes is combined and prefixed into the stdout of the runner.

@warner let me know if the readme and PR description make sense.

I'm gonna fast follow up with another PR that fixes the AMM task and moves the readme, replacing it with something more appropriate.


Introduce new grid method: Grid::GetNumDimensions()

This PR decouples two pieces of information that's contained by the return value of the old grid::GetDimentions() method. More specifically, the number of (useful) dimensions will be returned by GetNumDimensions() which will be an integer of 1, 2, 3, etc. The number of elements along each dimension will be returned by the new GetDimensions() method of a type std::array<size_t, 3>.
Partially addressses #2250

Sam, this looks good. The one change that I'd like to see before completing the review is to add a method to the Grid class:
size_t Grid::GetNumDimensions()
that returns the number of dimensions (basically, it returns Grid._dims.size()).

I think this is a good idea, and I'll go ahead and make the changes.

GetNumDimensions(). This would be more consistent with Grid::GetTopologyDim() and GetGeometryDim(). I guess if we wanted to be consistent the new function should be named "GetDimensionsDim()", but that may be confusing?

I agree that GetDimensionsDim sounds confusing, so I'm good with the previously suggested name.

The other somewhat significant change we should probably make is to have Grid::GetCoordDimensions() return a std::array<size_t, 3> instead of a vector.

There are numerous methods in Grid that returns a vector (including the one that you pointed out), and ideally they are all refactored to return a fixed sized array. But I don't know if they should be touched now. I consider a more appropriate refactoring effort is to touch the grid itself so the internal representations of a grid are in a fixed size, so the interface is naturally fixed sized too.

Thoughts?

DefaultZ is still used in a few places while another comment states it is no longer used.

This PR doesn't use any DefaultZ. There are usage of it but not touched by this PR. I'm not sure if those use cases belong to the scope of this PR.

@clyne I have verified that the overhead does come from data copies and data copies alone. No additional dynamic allocations.
One potential improvement is to make _dims not private in Grid so that the following copies could be eliminated. They amount to the biggest overhead.
https://github.com/NCAR/VAPOR/blob/6ff6e111d4bac51065248211bdf7208488345337/include/vapor/StructuredGrid.h#L73-L80

@shaomeng have you merged main with your branch lately?

@shaomeng have you merged main with your branch lately?

At the time you asked, it was 3 commits behind. At the time you see this message, it's up-to-date.

@clyne I have verified that the overhead does come from data copies and data copies alone. No additional dynamic allocations.
One potential improvement is to make _dims not private in Grid so that the following copies could be eliminated. They amount to the biggest overhead.
https://github.com/NCAR/VAPOR/blob/6ff6e111d4bac51065248211bdf7208488345337/include/vapor/StructuredGrid.h#L73-L80

How about we simply declare _dims as:
Size_tArr3           _dims = {{1, 1, 1}};
This would make it consistent with the members of the Grid class that have been changed from std::vector to std::array. It looks like only two lines of code would need to be changed in Grid.cpp. Note that the Grid iterators are also defined in Grid.cpp, and they have their own _dims member, but this is different from Grid::_dims. I.e. we would not have to change the Iterator _dims.

How about we simply declare _dims as:
Size_tArr3 _dims = {{1, 1, 1}};
This would make it consistent with the members of the Grid class that have been changed from std::vector to std::array. It looks like only two lines of code would need to be changed in Grid.cpp. Note that the Grid iterators are also defined in Grid.cpp, and they have their own _dims member, but this is different from Grid::_dims. I.e. we would not have to change the Iterator _dims.

Well, I have tried this tactic earlier, and there are way more road blocks than two lines of code. I had to back off.
Further more, even this change is pushed through, it won't eliminate the copies that I identified above, as long as the function signature of GetNodeDimensions() remains the same.
Further further more, I also attempted to change the function signature of GetNodeDimensions(), and there are also unexpected roadblocks.
I think we should just accept the memory copy overhead for now---that's the cost of applying bandaids.


Configuring an alerady exisiting entry yields empty fields

Checklist

[X] I have updated the integration to the latest version available
[X] I have checked if the problem is already reported

The problem
All the fields are empty if I try to (re)configure an entry after the initial configuration, making it impossible to tune the settings.

What version of an integration has described problem?
v1.1.9
What was the last working version of an integration?
No response
What vacuum model do you have problems with?
Roborock.S5
Please firmware installed on your Vacuum.
2023.02.0
What version of Home Assistant do you use?
core-2023.8.1
What type of installation are you running?
Home Assistant Container
Camera's configuration
N/A

Logs or Errors shown in the HA snapshots (please enable the Debug Mode)
No response
Additional information
No response

Thanks for the feedback, will check it and report back when will found the issue.

I found the problem, will work out a solution for this as high priority. I guess we get it work within tomorrow. Meanwhile would be so kind to delete the current configured camera and set it up again? This apparently is a working work around.

@Skeletorjus, fixed.. I will release version 1.1.9_1 within this night.. I will fully re-test it, I think there was a mistake on my side on the testing procedure I use and it passed not noticed because on the test environment I had already "somehow" some options data in the config_registry (due to the tests I did). By cleaning up the registry I could reproduced the issue. The fix is already tested and it works. As soon I'm done with it I will let you know, thanks once again for raising up this..

@sca075, that's fantastic! Thanks a bunch for the quick fix 👍

@Skeletorjus as promised release v1.1.9_1 is out with the fix for the reported issue. I will keep open this till I get your kind confirmation that the issue is resolved at your side (from the tests done till now on both PI4 test HA and HA main instance on server, both supervised) there should be no problem. You are using a Roborock.S5, therefore if there is any issue with the image rendering please let me know ;) thanks once again.

Confirmed working in v1.1.9_1, so I'm closing this.
Thanks! 😊


'filenames' order

Hi,
thanks for providing this code to read GESLA data!
I just wanted add a minor comment on line 89 in gesla.py.
idx = [s.Index for s in self.meta.itertuples() if s.filename in filenames]
It seems like if 'filenames' is not exactly sorted like the names in self.meta, the meta information will not have the same order as the concatenated xr.dataset. I assume the entries in meta are alphabetically sorted, so that could be done when reading in the list of 'filenames'.
Thanks!

Hey I encountered the same issue. I adjusted the file_to_xarray method in the class as follows:
def files_to_xarray(self, filenames):
"""Read a list of GESLA filenames into a xarray.Dataset object. The
dataset includes variables containing metadata for each record.
    Args:
        filenames (list): list of filename strings.

    Returns:
        xarray.Dataset: data, flags, and metadata for each record.
    """
    def sort_filenames(filenames):
        """Auxillary function that sorts the filenames.
        This ensures that data can be loaded independent of the sorting
        given by the user input.

        Args:
            filenames (list): list of filename strings.

        Returns:
            list: list of sorted filenames.
        Author:
            Kai Bellinghausen
        """
        # Get the indices of filenames in the metadata dataframe
        indices = [self.meta[self.meta['filename'] == filename].index[0] for filename in filenames]

        # Sort filenames based on the indices
        sorted_filenames = [filename for _, filename in sorted(zip(indices, filenames))]

        return sorted_filenames

    filenames = sort_filenames(filenames)

    data = xr.concat(
        [
            self.file_to_pandas(f, return_meta=False).to_xarray()
            for f in filenames
        ],
        dim="station",
    )

    idx = [
        s.Index for s in self.meta.itertuples() if s.filename in filenames
    ]
    meta = self.meta.loc[idx]
    meta.index = range(meta.index.size)
    meta.index.name = "station"
    data = data.assign({c: meta[c] for c in meta.columns})

    return data


Support clean request

Describe the use-case for this feature
A lot of build tools have the concept of clean the generated files. Like the clean command in Maven/Gradle/SBT.
It looks like there is no dedicated request for this scenario.
Use case:

When do incremental build, use 1 compile request.
When do a full build, use clean + compile request.

What do you propose
No response
I've checked to make sure there isn't already a way to support this in the current protocol

[X] I've checked the existing protocol and there isn't a way to do this currently

Maintainer approval (This is for the maintainers)

[ ] Jetbrains
[ ] Metals
[x] Scala Center

There is already https://build-server-protocol.github.io/docs/specification#clean-cache-request which is related, not sure if the same.

@tgodzik Oh, I thought that was to clean the status of language server itself. After re-reading the spec, looks like that was what I want. Thank you!


Need to restart rails app to make it work.

The gem works fabulously but in my development env I had to restart the server to make this maintenance mode work. why is this happening? will it work fine on production env?

This was helpful for me.  Even though I've been using Rails for 12 years and should have known to restart my server after installing a gem.  MIGHT be worth mentioning in the readme.

That's a good idea. I'll add it to the README.


hwgraph: Do not enable same-chassis feature for a single node

As per issue#41, when tracing with a single server, the --same-chassis can be engaged generating a crash like:
~/Devel/hwbench (various)$ python3 -m graph.hwgraph graph --outdir criteo/arno_out --traces ~/Téléchargements/results.json:Arno:BMC.Server
environment: All traces are from the same chassis (GYLGS63), enabling --same-chassis feature
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/e.velu/Devel/hwbench/graph/hwgraph.py", line 380, in <module>
    main()
  File "/home/e.velu/Devel/hwbench/graph/hwgraph.py", line 376, in main
    args.func(args)
  File "/home/e.velu/Devel/hwbench/graph/hwgraph.py", line 61, in render_traces
    rendered_graphs += graph_environment(args, output_dir)
		       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/e.velu/Devel/hwbench/graph/hwgraph.py", line 234, in graph_environment
    rendered_graphs += graph_chassis(args, bench_name, output_dir)
		       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/e.velu/Devel/hwbench/graph/chassis.py", line 139, in graph_chassis
    y_serie = np.array(serie[trace.get_name()])[order]
	      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
IndexError: index 0 is out of bounds for axis 0 with size 0

This commit is adding a new condition to ensure the same-chassis feature is not engaged for a single system.

Worked perfectly fine during my tests!
LGTM


Shift-Clicking in room list causes app to grey out

My Setup

Operating System: Windows 10
App Version: 3.10
Installation type: MSI

[x] I have tested with the latest version
[x] I can simulate the issue easily

Description

Shift-Clicking rooms in the desktop app causes the entire window to revert to the list background color and requires a quit / restart to restore. Our previous chat app used this method to select multiple and initiate group chats so we regularly have people crashing the app this way.
Current Behavior

Expected Behavior

Ideally open up a new window similar to the web interface. At the very least it should leave the app in a functional state.

I was just able to replicate this on my installation as well:

Operating System: Windows 10 Pro (20H2) x64
App Version: 3.1.1
Installation Type: EXE

With any luck, I've attached a quick clip as an example of the reported behavior, in case it isn't exactly obvious in MJPGPleasant's description/screenshot -- apologies for the blurring.
https://user-images.githubusercontent.com/38731016/105084610-8fc1bc00-5a64-11eb-8548-05b90fe068fb.mp4

I was just able to replicate this on my installation as well:

Operating System: Windows 10 Pro (20H2) x64
App Version: 3.1.1
Installation Type: EXE

With any luck, I've attached a quick clip as an example of the reported behavior, in case it isn't exactly obvious in MJPGPleasant's description/screenshot -- apologies for the blurring.
https://user-images.githubusercontent.com/38731016/105084610-8fc1bc00-5a64-11eb-8548-05b90fe068fb.mp4

Please test if the problem persists with our latest release. I will be closing the issue but if there is any problem yet, we will open it again.


feat(auth): Integrate OAuth 2.0 as a provider strategy

Proposal:
Going ahead, we would want our users to sign up just once and be able to use their profile on all of our platforms. This is not the case every time.
This can be easily solved by implementing  OAuth 2.0 as a provider strategy.
Note: This should definitely be considered only after we upgrade to LoopBack 3
Case 1: Forum
We could get rid of the flow in our forum onboarding, and hence reduce the spam/fake accounts by officially linking our current user base to the forum.
This reduces the friction, and users having to onboard once again.
That said here are some considerations and would have to be done in phases:

[ ] We should take care of current users to be able to link to their existing freeCodeCamp accounts.
[ ] Identify and fixup accounts that can't be linked.
[ ] We should be then able to remove GitHub and email sign-ups from discourse.
[ ] We allow only verified profiles to be able to access the forum via login.

Case 2: Open API Management Console
As we plan to provide a robust API around the vast datasets that we have, authentication would be a key factor in providing access control via keys (Kind of like AWS IAM does) and hence rate limiting the usage as we consider the cost of being able to provide all of the data in open while being able to afford that economically and securely.
We would definitely be looking for a developer dashboard, and users should be able to request keys using this strategy.
Case 3: Third party application integration
This is an extension of Point 2, and potentially can open up integration possibilities in ways that can be super interesting, for example, if someone creates a platform or already has one, for instance, a job board, they can potentially integrate our auth strategy to let users quickly apply using the freeCodeCamp user profiles.
They can even validate our certifications.
The possibilities are endless.
Case X: TBD
To be added to more research and ideas go into this thread.

@freeCodeCamp/moderators I would love to hear your feedback on this proposal.

I love it.

@raisedadead First of all, I love the idea of unifying everything behind the same auth. This said, I don't think spam is that big of a problem on the forum.

We should take care of current users to be able to link to their existing freeCodeCamp accounts.
Identify and fixup accounts that can't be linked.

This would involve merging about 200,000 forum accounts, so all of this would need to be done programmatically. There could be no room for ambiguity - otherwise thousands of people would think "freeCodeCamp deleted my forum account" and there wouldn't be a good way to convince them otherwise.
So as much as I like the idea of doing this, it should be a super low priority.
Your second and third cases are much more relevant.
Our current big feature roadmap looks something like this:

Ship beta
Upgrade to the latest version of Loopback
Implement open API to support ecosystem of external apps
Serve the platform completely as a static app (using Netlify)
Streamline performance with Redis for challenge solution storage (like JSBin uses)

Having an authentication service would help us with steps 3 and 4. Then we could talk about using it to authenticate people into the forum. I know that people have successfully done this with Discourse. I'm just not sure how much work it will take. I'd be interested in your take one this.
@BerkeleyTrue what are your thoughts on this?

@QuincyLarson I absolutely agree, to your points, and yes you have got the assumptions and concerns spot on.
Implementing the OAuth strategy for Discourse is fairly well documented in their meta documentation. I can assist as soon as I am done with my ongoing tasks with the LoopBack upgrade and stable passwordless auth.
Will, of course, keep you posted.

@raisedadead Awesome! I'm glad to hear you've already looked into this. I'm definitely open to doing it if you feel up for it and we can come up with a good way to merge all the records.

In the interest in keeping open issue count low and seeing how we have many projects that need to come to fruition before this issue can be worked on, I suggest we close this issue and reopen once those other projects are complete

Sure thing, I am closing this for now and adding it to ToDo in Open API project. Thanks.

How can we manage the courses better, because whenever I get back on my
training, I am required to start from scratch.
On 05 Oct 2017 06:25, "mrugesh mohapatra"<EMAIL_ADDRESS>wrote:

Closed #15914 https://github.com/freeCodeCamp/freeCodeCamp/issues/15914.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/15914#event-1279199142,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AcSBxSahp5Ci29pIRtneH7Z9AyxaJ0E-ks5spFpRgaJpZM4Pi5WM
.

@SenamelaMabotja please request support on the forum https://forum.freeCodeCamp.org, this tracker is not for support requests.


Updated old packages and made it work for React 17

Hi,
your package was broken with the new React release
I updated some packages and replaced some things.
Could you check pls if it's still working for all hooks?
just in case.
for me, it's already working
but I didn't test the other hooks besides the spring

Published the fixes to 2.1.0. Not sure why I had the dependency as a specific version.


can eat

please make the game that i can eat balls in the map  bigger than myself

Edit the code yourself @RelTakeover


Android Basics: Get data from the Internet

name: Android Basics Unit 4 issue
about: Report problems with the Android Basics Unit 4 codelabs
title: 'Android Basics Unit 4 issue:'
labels: ''
assignees: ''

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#7
In which task and step of the codelab can this issue be found?
8 - Add Moshi library dependencies
Describe the problem
To be able to use the KotlinJsonAdapterFactory for the Moshi Builder you also need to add to the dependencies:  implementation 'com.squareup.moshi:moshi-kotlin:1.12.0'
Steps to reproduce?
just follow the guide
Versions
Android Studio version:
API version of the emulator:
Additional information
Include screenshots if they would be useful in clarifying the problem.

@WegenDerSucht
Thank you for reaching out to us. Actually it's added:

The version in the code snippet will be updated (to 1.13.0) and published soon.


Incorrect AutoDiff for some expressions with "max" ?

The last result apparently violates the linearity of the gradient operator (as it should be the sum of the previous two)
In [352]: neon.__version__
Out[352]: '1.1.3'

In [353]: x = ng.array(np.array([[2, 3]]))

In [354]: Autodiff(op_tree=(0+x), be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])
Out[354]: [array([[ 1.,  1.]], dtype=float32)]

In [355]: Autodiff(op_tree=ng.max(x), be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])
Out[355]: [array([[ 0.,  1.]], dtype=float32)]

In [356]: Autodiff(op_tree=(ng.max(x) + x), be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])
Out[356]: [array([[ 1.,  3.]], dtype=float32)]

I guess it is the second result that should be considered incorrect, which also differs from ng.max(x) + 0.
min and sum seem to be similarly affected:
In [382]: Autodiff(op_tree=(ng.sum(x)), be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])
Out[382]: [array([[ 1.,  1.]], dtype=float32)]

In [383]: Autodiff(op_tree=(ng.sum(x) + 0), be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])
Out[383]: [array([[ 2.,  2.]], dtype=float32)]

"min" seems to be similarly affected.

This behavior is expected. The linearity of the gradient operator applies to element-wise operations. However, min, max and sum are reduction operations. In max(x) + x for example, the value of max(x) (scalar) gets broadcast to the subsequent operations.
You could checkout the following scripts to test against numerical gradients:
import numpy as np

def get_numerical_gradient(f, tensors, delta=1e-5):
    # buffer for gradients
    gradients = []
    for i in range(len(tensors)):
        tensors[i] = tensors[i].astype(np.float64)
        gradients.append(np.zeros(tensors[i].shape))

    # iterate throuth each tensor
    for tensor, gradient in zip(tensors, gradients):

        tensor_flat = tensor.reshape((-1, ))
        gradient_flat = gradient.reshape((-1, ))

        # iterate throuth each element
        for idx in range(len(tensor_flat)):
            # backup
            backup = tensor_flat[idx]
            # increment
            tensor_flat[idx] = tensor_flat[idx] + delta
            f_inc = np.sum(f(*tensors))
            # decrement
            tensor_flat[idx] = backup - delta
            f_dec = np.sum(f(*tensors))
            # recover
            tensor_flat[idx] = backup
            # gradient
            gradient_flat[idx] = (f_inc - f_dec) / (2.0 * delta)

    return gradients

print get_numerical_gradient(lambda x: np.sum(np.max(x) + x),
                             [np.array([2., 3.])],
                             delta=1e-5)

# The result is [array([ 1.,  3.])]

Or, we could also use HIPS's autograd to verify the result:
import autograd.numpy as np
from autograd import grad

func_grad = grad(lambda x: np.sum(np.max(x) + x))
print func_grad(np.array([2., 3.]))  # [ 1.  3.]

func_grad = grad(lambda x: np.sum(np.max(x)))
print func_grad(np.array([2., 3.]))  # [ 0.  1.]

func_grad = grad(lambda x: np.sum(x))
print func_grad(np.array([2., 3.]))  # [ 1.  1.]

In the above examples, applying sum to the final results is equivalent to setting next_error to a matrix of ones in neon's autodiff.

As I mentioned, it's the second result that's suspect, rather than the third.
Note that ng.max(x) and ng.max(x) + 0 can have different gradients in Neon:
In [498]: x = ng.array(np.array([[2, 3]]))

In [499]: def grad(e): return Autodiff(op_tree=e, be=ng, next_error=ng.ones(x.shape)).get_grad_asnumpyarray([x])

In [500]: grad(ng.max(x))
Out[500]: [array([[ 0.,  1.]], dtype=float32)]

In [501]: grad(ng.max(x)+0)
Out[501]: [array([[ 0.,  2.]], dtype=float32)]

I'm assuming that this is because the broadcasting isn't taken into account in the gradient calculation, even though the broadcasting itself takes place with or without +0:
In [502]: y = ng.zeros(x.shape)

In [503]: y[:] = ng.max(x)

In [504]: y.get()
Out[504]: array([[ 3.,  3.]], dtype=float32)

Oh thanks, now I see what you mean. Will update this post after I find the solution.

I realize that it's the shape of next_error that triggers the bug -- that's why I mentioned broadcasting. Broadcasting is very useful, and it's obviously a differentiable operation. I think it's more helpful to fix its gradient than to forbid it. Perhaps add a 0 to all expressions? :-)

Yeah, but I guess in that case it might be more reasonable to do the broadcasting manually. next_error is typically the back-propagated gradients from the final cost to an intermediate output (such as a layer's activation), so the shape of next_error shall be consistent to the shape of that intermediate output.
If the output shape needs broadcasting to match the shape of the next_error, we could just define another "broadcasted output" that is the same shape as the next_error.


[YUNIKORN-2926] placeholder counters incorrect

What is this PR for?
Placeholder tracking data is maintained inside the application for scheduling. If the placeholder is released we update the counters in the tracking data. We have cases in which we do not do that correctly:

placeholders are smaller than the real allocation
placeholder does not have an allocation to replace
all allocations are removed from an application

Tests updated to check all the counters inside the placeholder data for consistency.
What type of PR is it?

[X] - Bug Fix

What is the Jira issue?

YUNIKORN-2926

How should this be tested?
New unit tests added
e2e test with incorrectly sized placeholders is needed

Is the e2e test failure expected?

The failure was not expected. It was another point of inconsistent handling of the tracking data not covered by the unit tests.

This e2e test is failing due to the fact that the list of requests has a mixture of allocated and unallocated entries and the merging of the Ask and Allocation objects. The fix for the timeout tracking does not filter the requests lists for already allocated requests and needs to do that. We seem to be adding that same filter everywhere now to compensate for not removing the allocation from the request list.
This causes two issue:

We send allocations to the shim twice to be released. Once from the request list once from the allocations list.
Asks and allocations are processed the same way and both are returned to the core which can cause double counting them  as timed out.

The other problem detected on log analysis is that the shim tries to clean up the same placeholders multiple times. First based on the core request then based on internal logic as part of the placeholder code. All cleanup in the placeholder code fails as the core has already done it. It does trigger more release messages to be sent to the core which then get ignored as the work is already done. That needs a cleanup in a follow up jira.


Update README.py to reflect Netbox code change

Per Netbox readme: https://github.com/netbox-community/netbox/releases/v3.5.0

"The obj context variable is no longer passed when rendering custom links: Use object instead."

The obj. reference in the README was updated to object.
The code snippet is working in our Netbox instance.

Great find! I'll merge your request :)


sqlite3 support

Thank you for publishing great tool.
I would like to add sqlite3 support to this tool.
I need your help to adding docs, because I'm not sure how to use tbls. 🙏
I confirmed following commands work.
$ go run main.go file:trivydb.sqlite3
Fetching and updating Trivy DB ...
done
Initializing vulnerability information tables ... done
Updating vulnerability information tables ...
>> Updating table 'vulnerabilities' ...
>> Updating table 'vulnerability_advisories' ...
>>> CBL-Mariner 1.0
>>> CBL-Mariner 2.0
>>> Oracle Linux 5
>>> Oracle Linux 6
...

$ sqlite3 trivydb.sqlite3
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite> select count(*) from vulnerability_advisories;
1269948
sqlite> select count(*) from vulnerabilities;
71763

@nozo-moto Thank you for your GREAT work!


Import error: No module named 'sagemaker.tensorflow.serving'

When executing tensorflow_serving_container.ipynb, ran into the following error:
ModuleNotFoundError: No module named 'sagemaker.tensorflow.serving'

Is this related to the 2.0 release of sagemaker python sdk?

Hello @zhuhuang ,
Thank you for using Amazon SageMaker. We have pinned the example notebook at version < 2 for the time being.
If you would like to use v2 of the SageMaker Python SDK, when cloning the example notebook, you can 1) apply the automated upgrade tool, 2) remove the < 2 pin, and 3) restart your kernel.
Let us know if there is anything else we can be an assistance of.
Best regards.

Thank you for resolving this.


[5.0][Navi21][COMGR][OpenCL] Fixed: Disabled enforcing of wavefrontsize=64 for OCL on COMGR path.

Fixed issue: Enforcing of wavefrontsize=64 for OCL on COMGR build path. This may lead to elusive correctness problems on Navi21 when COMGR is used (e.g. PyTorch wheel).
Added feature: support for MIOPEN_DEBUG_OPENCL_WAVE64_NOWGP env var on COMGR build path.

#1237 contains the same fix for develop.


Reading Physics

Hello, I have succesfuly implemented the example code of the Static Data, but I have no idea of how to implement the Physics Data.
`using AssettoCorsaSharedMemory;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
AssettoCorsa ac = new AssettoCorsa();
ac.StaticInfoInterval = 5000; // Get StaticInfo updates ever 5 seconds
ac.StaticInfoUpdated += ac_StaticInfoUpdated; // Add event listener for StaticInfo
ac.Start(); // Connect to shared memory and start interval timers
        Console.ReadKey();
    }

    static void ac_StaticInfoUpdated(object sender, StaticInfoEventArgs e)
    {
        // Print out some data from StaticInfo
        Console.WriteLine("StaticInfo");
        Console.WriteLine("  Car Model: " + e.StaticInfo.CarModel);
        Console.WriteLine("  Track:     " + e.StaticInfo.Track);
        Console.WriteLine("  Max RPM:   " + e.StaticInfo.MaxRpm);
    }
}

}`
That is the example code for Static Data, How should I implement the Physics Data to monitoring?
Thank you so much!

You need to add an event listener to ac.PhysicsUpdated, I believe the setup would be something like this (I've written this code directly in this comment so it is untested):
        static void Main(string[] args)
        {
            AssettoCorsa ac = new AssettoCorsa();
            ac.StaticInfoInterval = 5000; // Get StaticInfo updates ever 5 seconds
            ac.StaticInfoUpdated += ac_StaticInfoUpdated; // Add event listener for StaticInfo
            ac.PhysicsUpdated += ac_PhysicsUpdated; //  Add event listener for Physics
            ac.Start(); // Connect to shared memory and start interval timers

            Console.ReadKey();
        }

And then add the event function similarly to the ac_StaticInfoUpdated(...):
        static void ac_PhysicsUpdated(object sender, PhysicsEventArgs e)
        {
            // Print out some data from StaticInfo
            Console.WriteLine("Physics");
            Console.WriteLine("  Rpms: " + e.Physics.Rpms);
        }

This is may be an estupid question, but.... where I can find the AssettoCorsa library?

This is may be an estupid question, but.... where I can find the AssettoCorsa library?

There's a pre-compiled DLL under Releases if you don't want to build it from source: https://github.com/mdjarv/assettocorsasharedmemory/releases

Thanks for the quickly answer, I'm gonna try it right now.


Be able to Deserialize a ActiveModel directly

Summary
Be able to Deserialize a ActiveModel directly
Motivation
Insert a model without certain columns (such as no primary key, nothing in nullable column)

Hey @hf29h8sh321, welcome! This has been discussed before. Let me know your thoughts on it!

#457

@billy1624 I looked into that discussion, but my motivation is different. If the HTTP Client wants to create a new task (example in the discussion), they only provide title and text, and not provide any id. The only way right now would be to create a separate struct that does not contain the id, and map each key to the ActiveModel.

I see, perhaps this will be helpful?

#346
#492

I tested #492 and it does not accept json values that do not have certain columns.
Like the fruit example,
 #[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
 #[cfg_attr(feature = "with-json", derive(Serialize, Deserialize))]
 #[sea_orm(table_name = "fruit")]
 pub struct Model {
     #[sea_orm(primary_key)]
     #[serde(skip_deserializing)]
     pub id: i32,
     pub name: String,
     pub cake_id: Option<i32>,
 }

If the json value is written to change name to something different, json is only { "name": "New Name" } and is missing cake_id. It should be possible to convert the partial json data into Active Model.


Call to an undefined method restore()

Laravel Version: v7.7.1
Larastan Version: 0.6.1 / 0.6-dev
--level used: 7

Description
The reported error:
 ------ -----------------------------------------------------------------------
  Line   app/Http/Controllers/Ingredients/IngredientAttributeController.php
 ------ -----------------------------------------------------------------------
  83     Call to an undefined method
         App\Models\Ingredients\IngredientAttribute|Illuminate\Database\Eloque
         nt\Collection<App\Models\Ingredients\IngredientAttribute>::restore().
 ------ -----------------------------------------------------------------------

The problem is, that the method findOrFail has following return value in phpdocs:
\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static|static[]

Laravel code where the issue was found
    /**
     * Restore the specified resource from storage.
     *
     * @param  int  $id
     * @return void
     */
    public function restore(int $id)
    {
        $food = Food::onlyTrashed()->findOrFail($id);
        $this->authorize($food);
        $food->restore();
    }

I don't know if I can solve the problem by myself, but I thought there must be a better way than exclude every error manually.

Hi,
Thanks for the report! This looks weird. Larastan knows that a single model is returned when an integer passed to findOrFail Not sure why the collection is not dropped from the union.
Can you just try Food::findOrFail($id)? Maybe the soft delete trait is the problem.

Thanks for that quick response! You're right, seems that the SoftDeletes Trait is the problem.
I just tried your suggestion and it works.
I've also tried withTrashed() and withoutTrashed() and with both of them it didn't worked.

For now you can override the type with @var
/** @var Food $food */
$food = Food::onlyTrashed()->findOrFail($id);

I'll try to resolve the bug.

It's fixed with https://github.com/nunomaduro/larastan/commit/023043b05c9ec04ef92f32960315621fdfe21100


Remove top 50

Or make it better, now it mean "first 50 by name" which is not that useful.

Or make it better

What do you suggest? Any nicer way to put it? If there is no "limit", then it will show all the over-a-thousand applications on F-Droid, which is kind of crazy.

The number of items might be an issue on some (old/slow) devices indeed.
You can help by having a "show app icons" option, that is OFF by default (and it helps with bandwidth too).
Else you have search already, having it limited to 50 is strange, even I had the impression that only those were available.

My first impression of "Show only top 50" is the 50 most popular ones, it's indeed pretty meaning less just to show the first 50 apps from the top of the list.
It should be based on popularity or other factors, translator should be more interested on apps that has many users or are in trend.

[…] on apps that has bigger userbase or are in trend.

F-Droid has no way to tell how many downloads an application has. I had thought on adding a "Sort by…" menu option, which allowed to sort in ascendant/descendant order by upload date, by name… But that seemed like adding too many options. I think leaving only the search and always showing all the applications should be enough (also allowing "fast scroll").

Or maybe categorize using the application category, just like in F-droid?

Or maybe even random order since it's to "discover new things", not something you've already seen!
I would like to keep it simpler than adding a category selector. If you know an application, you can look it up. If you don't, you can just scroll without discriminating by category.

It does not matter how you do it, just add a "Load more..." at the end so you signal that there are more.

just add a "Load more..."

I liked that idea. Might do that, but after v0.9.2 is released. Thanks for the ideas.

F-Droid has no way to tell how many downloads an application has.

It will, the coming version 0.103 is going to have major UI/UX improvements, also providing things like rating and statistics

It will, the coming version 0.103 is going to have major UI/UX improvements, also providing things like rating and statistics

That's amazing news! Let's hope it's as easy to use as before so so the Discover activity doesn't break too much…

That's amazing news!

I think that too, you can get more information, if you want to.
Maybe discovering new apps would be easier if you could "share" apps to Stringlate.(?)
Am 20. Dezember 2016 16:10:04 MEZ, schrieb Lonami<EMAIL_ADDRESS>

It will, the coming version 0.103 is going to have major UI/UX
improvements, also providing things like rating and statistics

That's amazing news! Let's hope it's as easy to use as before so so the
Discover activity doesn't break too much…
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268267053

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

Thanks for the link, it's exciting!

Maybe discovering new apps would be easier if you could "share" apps to Stringlate.(?)

You can already open https://github.com/owner/repo/ links via Stringlate directly (it needs to ending slash). I think that also by sharing it's unnecessary: you can as well copy the URL directly.

I have an idea, maybe Stringlate coukd search for applications from F-Droid on the device and show the ones which aren't translated fully in a special list, e.g. "Apps on the phone" since you actually want translate apps you're using most frequently anyway.
Besides, I don't like the implementation of the compass symbol since for me it looks like a button for itself. Please either remove it or add e.g. a + to the other button.

and show the ones which aren't translated fully in a special list, […]

This involves scanning the whole repository for all the applications. Probably not something I can afford since the GitHub API calls are "anonymous" (you're not logged in).
However, I did think to make it an ExpandableList, in such a way that, after clicking an item, it would show options such as "Scan", "Add". Scanning would also tell you things like "This application is not translated to your current locale."

since you actually want translate apps you're using most frequently anyway.

You can already search the application you wish to translate though!

Please either remove it or add e.g. a + to the other button.

The later option is a better choice. By the way, I also wanted to add another icon for the "Save" button, but it looks a bit odd. Should the "Add" icon be on the left side, or on the right side? Probably left, hopefully one won't mistake it with the other button.

Should the "Add" icon be on the left side, or on the right side?

I've also thought of the right side first but that's just not what material design is thought to. Maybe that would make the orritation even bigger. (Not sure if that's the correct expression)
You know what's the main difference between a user and a programmer? Users are lazy. That's why they don't learn any programming language. And that's why they probably don't want to search for the app's name. Why search for it?
"Programming today is a race between software engeneers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning" - Rich Cook
Am 21. Dezember 2016 22:58:58 MEZ, schrieb Lonami<EMAIL_ADDRESS>

and show the ones which aren't translated fully in a special list,
[…]

This involves scanning the whole repository for all the applications.
Probably not something I can afford since the GitHub API calls are
"anonymous" (you're not logged in).
However, I did think to make it an ExpandableList, in such a way
that, after clicking an item, it would show options such as "Scan",
"Add". Scanning would also tell you things like "This application is
not translated to your current locale."

since you actually want translate apps you're using most frequently
anyway.

You can already search the application you wish to translate though!

Please either remove it or add e.g. a + to the other button.

The later option is a better choice. By the way, I also wanted to add
another icon for the "Save" button, but it looks a bit odd. Should the
"Add" icon be on the left side, or on the right side? Probably left,
hopefully one won't mistake it with the other button.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268652369

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

No offence, but neither all users are lazy nor all programmers are not. The icon is already shown on the discover activity so users can also look for that. It's not hard to make the installed apps show up first, but I don't really think it's necessary.
Installed apps sorted alphabetically and then a jump to non-installed? I don't see it. Not until the idea gets more support anyway.

Well, maybe my expression was too linear, I didn't mean that every user os automatically lazy and so on. I just described a worst-case user.
Am 21. Dezember 2016 23:41:47 MEZ, schrieb Lonami<EMAIL_ADDRESS>
No offence, but neither all users are lazy nor all programmers are not.
The icon is already shown on the discover activity so users can also
look for that. It's not hard to make the installed apps show up first,
but I don't really think it's necessary.
Installed apps sorted alphabetically and then a jump to non-installed?
I don't see it. Not until the idea gets more support anyway.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268662917

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

Installed apps sorted alphabetically and then a jump to non-installed?

Sounds interesting. I get this, feels out of place when you open an app and it's not translated, having them first gives you a little boost: "hey you're using that, how about adding a translation?"

How would you show the difference between installed and not installed to the user? Different background? A label on top? An icon on the top-right corner of each application?

Perheaps not just jump but highlight with a "V"?
Am 21. Dezember 2016 23:46:10 MEZ, schrieb licaon-kter<EMAIL_ADDRESS>

Installed apps sorted alphabetically and then a jump to
non-installed?

Sounds interesting. I get this, feels out of place when you open an app
and it's not translated, having them first gives you a little boost:
"hey you're using that, how about adding a translation?"
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268663783

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

A "V"? What did you mean?

I mean like in a checklist, I just don't get the right word. Hoes maybe?
Am 21. Dezember 2016 23:51:42 MEZ, schrieb Lonami<EMAIL_ADDRESS>
A "V"? What did you mean?
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268664897

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

A symbol is nice, having them listed first feels way better though.

Tick? ✔✅

Yes, that's what I meant.
Am 21. Dezember 2016 23:57:34 MEZ, schrieb Lonami<EMAIL_ADDRESS>
Tick? ✔✅
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268665933

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

Added on commit#5d2eba.

Cool!
Am 22. Dezember 2016 10:44:58 MEZ, schrieb Lonami<EMAIL_ADDRESS>
Added on
commit#5d2eba.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/LonamiWebs/Stringlate/issues/7#issuecomment-268760442

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9/p≡p gesendet.

You can help by having a "show app icons" option, that is OFF by default

Added on commit#ac45fc. Note that icons which are already saved will still be shown (can be fixed by first clearing the cache).

I've got two ideas!
Either you could add a new tab on the right and remove the "search for repos" button,
or
Just remove the "search" button and let the "add" button do the same thing if the forms are empty.
And besides, please change the color of the buttons, it's not a good idea to have yellow text on white background. Maybe you can change the button's background to #A0A0A0 or so?

Either you could add a new tab on the right and remove the "search for repos" button

No, I hate fragments. Also, how would it show to sync the repository? The menu would have to change, which can do, but I think it's unnecessary (indeed, it was going to be like that, but then realized the menu problem).

Just remove the "search" button and let the "add" button do the same thing if the forms are empty.

That would be a bit confusing. Why would the add button open the discover activity? What if the user chose a repository, but changed their minds and wanted to choose another? They would have to manually clear the fields.

it's not a good idea to have yellow text on white background.

It's not a light yellow. Also, I didn't choose to use that color for the text, Android just took the accent color for it by default. I find it readable enough though.


nixos/filesystems: ensure keys gid on /run/keys mountpoint

boot.specialFileSystems is used to describe mount points to be set up in
stage 1 and 2.
We use it to create /run/keys already there, so sshd-in-initrd scenarios
can consume keys sent over through nixops send-keys.
However, it seems the kernel only supports the gid=… option for tmpfs,
not ramfs, causing /run/keys to be owned by the root group, not keys
group.
This was/is worked around in nixops by running a chown root:keys
/run/keys whenever pushing keys 1, and as machines had to have pushed keys
to be usable, this was pretty much always the case.
This is causing regressions in setups not provisioned via nixops, that
still use /run/keys for secrets (through cloud provider startup scripts
for example), as suddenly being an owner of the "keys" group isn't
enough to access the folder.
This PR removes the defunct gid=… option in the mount script called in
stage 1 and 2, and introduces a tmpfiles rule which takes care of fixing
up permissions as part of sysinit.target (very early in systemd bootup,
so before regular services are started).
In case of nixops deployments, this doesn't change anything.
nixops-based deployments receiving secrets from nixops send-keys in
initrd will simply have the permissions already set once tmpfiles is
started.
Fixes #42344

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

self pinging @NixOS/nixos-release-managers (I don't know why you can request review to this team)

This now chown all files to be owned by root. This was not the case before.

This was already followed up in https://github.com/NixOS/nixpkgs/pull/79862 (merged), and backported into 20.03.


(BUG) Sometimes the G$ are sent to unknown

Steps to reproduce:

Create a few send transaction   (2-4 transaction)
Cancel 1-2 transaction
Refresh the page
Pay attention to the name of the recipient on the red card

Actual result: Sometimes the G$ are sent to unknown
Expected result: The G$ should be sent only to person the name is indicated in the "Send to?" field
Dev env v0.20.2
Checked on the:
LG V30+ // Android 8.0 // Google Chrome 81.0.4044.138
Desktop: Windows 10 // Google Chrome 81.0.4044.138

torusUser:
email<EMAIL_ADDRESS>name: "Vladimir Vinokur"
privateKey: "564454be9f3bc83a3ecc7c9fbe461ca9c85ad90c219fea5e1be5cd924bd90df0"
profileImage: "https://lh6.googleusercontent.com/-DRhJoS7eQw4/AAAAAAAAAAI/AAAAAAAAAAA/AMZuuclGGzr4WOa1gJShBm-iU0EClUM3hQ/photo.jpg"
publicAddress: "0xf84517B1454e61C6DF95138c8Df913975C9D112c"
verifier: "google-gooddollar"
verifierId<EMAIL_ADDRESS>

It's seems it could be related to the https://github.com/GoodDollar/GoodDAPP/pull/1757
@yaroslav-fedyshyn-nordwhale please check the logs firstly
probably we could solve now both issues

@yaroslav-fedyshyn-nordwhale @serdiukov-o-nordwhale to debug
you can login as user by
localStorage.clear()
localStorage.setItem('GD_masterSeed',)
localStorage.setItem('GD_isLoggedIn',true)
the Unknown is usually a syncing issue with gun or the account that withdrew the payment no longer exists.
@AnastasiiaOdnoshevna where the TXs created using "send to wallet address"? this could also be the reason. if it were sent to just empty addresses not owned by any existing user.
@AnastasiiaOdnoshevna I see the TXs are in RED, this means they. have been withdrawn, once a TX has been withdrawn the "to:"  is changed to the name of the withdrawing account and no longer shows the name the user wrote when he created the TX.

@sirpy
1)The G$ was sent to the nonexistent user and when the card appeared on the dashboard the name was changed "to: unknown"
2) Also, the G$ was sent via wallet address and this bug wasn't reproduced. I guess it's only for share via link
Checked on the:
Desktop: Windows 10 // Google Chrome 81.0.4044.138

@AnastasiiaOdnoshevna @sirpy
I can't reproduce it. The send payment link cannot be created within red color and unknown text.
Also, I don't understand how you can send to non-existed user via a payment link. It is possible only via address directly to the wallet.

Also, able to reproduce after confirming send G$ several times
https://app.zenhub.com/workspaces/gooddollar-5d50833888a83c6880d3e345/issues/gooddollar/gooddapp/1813
Video: https://www.screencast.com/t/UXIjyKCzCJd8

@AnastasiiaOdnoshevna
After merging the fix of #1813 task you shouldn't be able to confirm send request multiple times. and I think this issue you should not reproduce too.

Not reproduced after fix #1813...The user can't create the card to unknown
Checked on: DEV env v0.20.3-0
LG V30+ // Android 8.0 // Google Chrome 81.0.4044.138
Desktop: Windows 10 // Google Chrome 81.0.4044.138


OAK-9647: oak-search-elastic: nullCheckEnabled and notNullCheckEnabled queries not working as expected

@thomasmueller the elastic query is a json string. We could verify that is correct but I think it's not needed because we check that the index is used and the results are correct.


fix: Fix default utcnow argument in start_query

Feature or Bugfix

Bugfix

Detail

The default value for the end_time parameter is currently defined as datetime.datetime.utcnow(). However, this is evaluated at import time not at run time. With this change, end_time will be set to None by default and thus evaluated as utcnow() at run time.

Relates

Fixes #2185

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 7468cbc1b4233332d7b166e7c3cd6dbbd5260ba1
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 7468cbc1b4233332d7b166e7c3cd6dbbd5260ba1
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: b418eed6f315d84795986472ec9f9caa9d01a0d6
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: b418eed6f315d84795986472ec9f9caa9d01a0d6
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Add project labels for all HCA samples

Description of the task:
As a data consumer, I am looking for a single query to retrieve all HCA samples. One solution is to use a consistent project label for all HCA samples.
For example, many HCA samples have the"project: Human cell Atlas" label. These samples can be retrieved using https://www.ebi.ac.uk/biosamples/samples?filter=attr:project:Human Cell Atlas
As discussed with Enrique, here are some potential tasks:

[x] Decide which project label to use, i.e. project: Human Cell Atlas?
[x] Find all existing HCA samples in BioSD
[x] Update existing samples and make sure every sample has the correct project label.
[x] Add the project label to all future samples.

Related materials:

What is a project label

{
	"characteristics": {
		"project": {
			"text": "Human Cell Atlas"
		}}}

related sample accessions:
all samples in subs-team-2
all samples in subs-team-20
Samples with the HCA project lable

cc @cinciaT

@lauraclarke @clairerye Fuqi and I talked about this.
This request does not require any change in the archiver, as it's already generating a "{"project": "Human Cell Atlas"} label.
The only work that has to stem from this is to update the samples for the 2 submissions that were archived outside of the archiver:

https://www.ebi.ac.uk/biostudies/studies/S-SUBS5
https://www.ebi.ac.uk/biostudies/studies/S-SUBS4

I think this is feasible in a short amount of time and it's a really great feature. Also @FuqiX you commented that we could maybe show "HCA samples" in the main webpage so they could retrieve them just by clicking there, right?

@FuqiX you commented that we could maybe show "HCA samples" in the main webpage so they could retrieve them just by clicking there, right?

Yep. The idea is to display it on BioSD homepage, along with FAANG, HipSci. The layout might be slightly different.  cc @mcourtot

I have been working on this and I've found a problem when updating the samples.
It seems that for all BioSamples that are "lower" than donor (Specimen, cell suspension), it throws the error Failed to change release date for "<accession>". Invalid accession. Only study, project or sample release dates may be changed.
I have sent a ticket to DSP and waiting for the response. For now we can't proceed with this the intended way.

All samples from S-SUBS5 have been labelled with the project: Human Cell Atlas label!
DSP submission here

All samples from S-SUBS4 have been labelled with the attribute project: Human Cell Atlas"
DSP Submission here

The data is not yet indexed but looking at requests to the hinxton server, all samples have been successfully updated.
All the future samples will be labelled with project: Human Cell Atlas.
Is there any further action we need to take @FuqiX @CinciaT?

it looks good to me. Ticket closed. Thanks!


[4.0] json tree shaking with object spread

Do you want to request a feature or report a bug?
I don't know is it as expected or a bug indeed

What is the current behavior?
import * as json from './test.json'

const { used } = json // json tree shaking does not work
const used = json.used // json tree shaking works

console.log(used)

If the current behavior is a bug, please provide the steps to reproduce.

https://github.com/JounQin/webpack-next-study/blob/json_tree_shaking/src/index.js
What is the expected behavior?
both codes should work
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
node: v9.3.0
webpack: 4.0.0-alpha.4
Additional Info
I'm using TypeScript which does not support ESM style import for json files, so I'm using object spread destructuring to short json variables usage.

@damianobarbati no. If you want tree-shaking on JSON files, don't use import * as.

According to the original question, the issue is about object destructuring and not object spread. Object destructuring is not supported by the tree-shaking algorithm. To enable tree-shaking you must use named imports:
import {foo} from "./test.json"      // ✅
import test from "./test.json"       // ❌
import * as test2 from "./test.json" // ❌

@ooflorent But actually it works like following as like in description:
import * as json from './test.json'

const used = json.used

console.log(used)

@JounQin Hmm. I'll try to find out what's going on then.

@ooflorent: Could you find if this behavior is expected? :) Is JSON tree-shaking with code like in the latest comment expected to be future-proof?
I need tree-shaking on a JSON file, but since the its keys are not valid JavaScript identifier so I ended up writing:
import * as json from "some-package/iconsData.json";
const path = json["arrow-circle-down"];
console.log("arrow-circle-down", path);

@tbassetto Your case should be fine as I mentioned at https://github.com/webpack/webpack/issues/6305#issuecomment-387653005.
This issue is about object spread.


Added Cypress tests for page navigation.

Initial tests related to opening and navigating to the following pages:

Fleet management
Manage images
Repositories

Also, forcibly ignoring some application errors which forces Cypress to stop
execution but are not necessarily required to run tests.
Signed-off-by: Og B. Maciel<EMAIL_ADDRESS>Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[x] Tests update

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I run npm run lint:js:fix to check that my code is properly formatted

» make test-stage
npx cypress run --env configFile=stage

      Spec                                              Tests  Passing  Failing  Pending  Skipped
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  smoke/login.spec.js                      00:07        1        1        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  smoke/webui.spec.js                      01:03        7        7        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:10        8        8        -        -        -


005-tilegrid: Add GTP_CHANNEL tilegrid fuzzer

This PR adds the tilegrid fuzzer for the GTP_CHANNEL tiles.

Please rebase this PR

Please rebase this PR


Granular team exports

Describe your changes
Add more granular options to exporting team, So the exporter can choose what they want to be exported.

selectable equipped build
selectable builds
selectable tc builds
selectable mtargets

Also, change Team deletion logic to delete loadouts that are only associated with this team. This should help with migration churn, but also allow ease of deleting the imported team+loadouts
Issue or discord link

Testing/validation

Checklist before requesting a review (leave this PR as draft if any part of this list is not done.)

[ ] I have commented my code in hard-to understand areas.
[ ] I have made corresponding changes to README or wiki.
[ ] For front-end changes, I have updated the corresponding English translations.
[ ] I have run yarn run mini-ci locally to validate format and lint.
[ ] If I have added a new library or app, I have updated the deployment scripts to ignore changes as needed

Any thoughts on a quick button on the loadout header to select all for the loadout?
And another quick button to just export everything on the page?

Any thoughts on a quick button on the loadout header to select all for the loadout? And another quick button to just export everything on the page?

I'm not opposed to a "select everything" button, lets see how hard it is to add it in.

Additional cornercase: if a mtarget is selected as opt target, need to enforce selecting it.


Liferay Connection Refused

I tried implementing the sample basic example.

I am getting "error Connection to http://localhost:8080 refused". Also, I tried replacing localhost with IP host address, but it is giving me same error.

Hi,
In localhost:8080 you must have installed a Liferay

Hi Salva,
Sorry for the delayed response.
Yes, actually localhost:8080 is defaulting to liferay. I am using liferay 6.2.
But getting  "error Connection to http://localhost:8080 refused".

If you are using a android emulator, localhost not work, you must change to <IP_ADDRESS> (I am not sure exactly)


Enable manual specification of CPU affinity

Is your feature request related to a problem? Please describe.
The presets for cpu affinity (e.g., block) for HTEx do not cover all system architecture.
Describe the solution you'd like
Make it so that users can provide mappings of worker to CPU threads as an option to cpu_affinity
Describe alternatives you've considered
Continue writing new presets, which we may still do. However, it means users have to alter the Parsl library in order to experiment with different affinity approaches

@WardLT @cms21 - I think this is what PR #2990 did?

Indeed. Let's close


RetinaFace.detect_faces slow

connection_string=0
video = cv2.VideoCapture(connection_string)
while video.isOpened():
grabbed, frame = video.read()
if grabbed:
print("before ==",datetime.datetime.now())
resp = RetinaFace.detect_faces(frame, threshold = 0.1)
print("after ==",datetime.datetime.now())
Time for detect_faces take around 5 second
how can reduce this time

you cannot. retinaface is a complex model.
but if you call it in a for loop, then second and the following ones will be responded sooner. because it spends a lot of time to build model and if you call it in a loop it will not build the model one more time.