Gsplat >= 1.0 no longer supports older gpus

I have an older 1080ti that I use and found that changing from gsplat v0.1.12 to >=v1.0.0 I can no longer use the gsplat library, I don't know if there are plans to support older gpus or if there's anyway to still allow training this similar to tiny-cuda-nn which uses provides the following
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.
tiny-cuda-nn warning: FullyFusedMLP is not supported for the selected architecture 61. Falling back to CutlassMLP. For maximum performance, raise the target GPU architecture to 75+.

This is the error that I'm getting with the later version of gsplat
[10:08:33] Caching / undistorting eval images                                             full_images_datamanager.py:230
[NOTE] Not running eval iterations since only viewer is enabled.
Use --vis {wandb, tensorboard, viewer+wandb, viewer+tensorboard} to run with eval.
No Nerfstudio checkpoint to load, so training from scratch.
Disabled comet/tensorboard/wandb event writers
[10:08:39] Caching / undistorting train images                                            full_images_datamanager.py:230
Printing profiling stats, from longest to shortest duration in seconds
Trainer.train_iteration: 9.2314
VanillaPipeline.get_train_loss_dict: 9.2307

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
ns-train 8 <module>
sys.exit(entrypoint())

train.py 262 entrypoint
main(

train.py 247 main
launch(

train.py 189 launch
main_func(local_rank=0, world_size=world_size, config=config)

train.py 100 train_loop
trainer.train()

trainer.py 266 train
loss, loss_dict, metrics_dict = self.train_iteration(step)

profiler.py 111 inner
out = func(*args, **kwargs)

trainer.py 501 train_iteration
_, loss_dict, metrics_dict = self.pipeline.get_train_loss_dict(step=step)

profiler.py 111 inner
out = func(*args, **kwargs)

base_pipeline.py 300 get_train_loss_dict
model_outputs = self._model(ray_bundle)  # train distributed data parallel model if world_size > 1

module.py 1511 _wrapped_call_impl
return self._call_impl(*args, **kwargs)

module.py 1520 _call_impl
return forward_call(*args, **kwargs)

base_model.py 143 forward
return self.get_outputs(ray_bundle)

splatfacto.py 794 get_outputs
viewmat = get_viewmat(optimized_camera_to_world)

eval_frame.py 489 _fn
return fn(*args, **kwargs)

eval_frame.py 655 catch_errors
return callback(frame, cache_entry, hooks, frame_state)

convert_frame.py 727 _convert_frame
result = inner_convert(frame, cache_entry, hooks, frame_state)

convert_frame.py 383 _convert_frame_assert
compiled_product = _compile(

convert_frame.py 646 _compile
guarded_code = compile_inner(code, one_graph, hooks, transform)

utils.py 244 time_wrapper
r = func(*args, **kwargs)

convert_frame.py 562 compile_inner
out_code = transform_code_object(code, transform)

bytecode_transformation.py 1033 transform_code_object
transformations(instructions, code_options)

convert_frame.py 151 _fn
return fn(*args, **kwargs)

convert_frame.py 527 transform
tracer.run()

symbolic_convert.py 2128 run
super().run()

symbolic_convert.py 818 run
and self.step()

symbolic_convert.py 781 step
getattr(self, inst.opname)(inst)

symbolic_convert.py 2243 RETURN_VALUE
self.output.compile_subgraph(

output_graph.py 919 compile_subgraph
self.compile_and_call_fx_graph(tx, list(reversed(stack_values)), root)

contextlib.py 79 inner
return func(*args, **kwds)

output_graph.py 1087 compile_and_call_fx_graph
compiled_fn = self.call_user_compiler(gm)

utils.py 244 time_wrapper
r = func(*args, **kwargs)

output_graph.py 1159 call_user_compiler
raise BackendCompilerFailed(self.compiler_fn, e).with_traceback(

output_graph.py 1140 call_user_compiler
compiled_fn = compiler_fn(gm, self.example_inputs())

after_dynamo.py 117 debug_wrapper
compiled_gm = compiler_fn(gm, example_inputs)

__init__.py 1668 __call__
return compile_fx(model_, inputs_, config_patches=self.config)

compile_fx.py 1168 compile_fx
return aot_autograd(

common.py 55 compiler_fn
cg = aot_module_simplified(gm, example_inputs, **kwargs)

aot_autograd.py 887 aot_module_simplified
compiled_fn = create_aot_dispatcher_function(

utils.py 244 time_wrapper
r = func(*args, **kwargs)

aot_autograd.py 600 create_aot_dispatcher_function
compiled_fn = compiler_fn(flat_fn, fake_flat_args, aot_config, fw_metadata=fw_metadata)

runtime_wrappers.py 425 aot_wrapper_dedupe
return compiler_fn(flat_fn, leaf_flat_args, aot_config, fw_metadata=fw_metadata)

runtime_wrappers.py 630 aot_wrapper_synthetic_base
return compiler_fn(flat_fn, flat_args, aot_config, fw_metadata=fw_metadata)

jit_compile_runtime_wrappers.py 97 aot_dispatch_base
compiled_fw = compiler(fw_module, updated_flat_args)

utils.py 244 time_wrapper
r = func(*args, **kwargs)

compile_fx.py 1100 fw_compiler_base
return inner_compile(

after_aot.py 83 debug_wrapper
inner_compiled_fn = compiler_fn(gm, example_inputs)

debug.py 305 inner
return fn(*args, **kwargs)

contextlib.py 79 inner
return func(*args, **kwds)

compile_fx.py 320 compile_fx_inner
compiled_graph = fx_codegen_and_compile(

compile_fx.py 550 fx_codegen_and_compile
compiled_fn = graph.compile_to_fn()

graph.py 1116 compile_to_fn
return self.compile_to_module().call

utils.py 244 time_wrapper
r = func(*args, **kwargs)

graph.py 1066 compile_to_module
self.codegen_with_cpp_wrapper() if self.cpp_wrapper else self.codegen()

graph.py 1041 codegen
self.scheduler = Scheduler(self.buffers)

utils.py 244 time_wrapper
r = func(*args, **kwargs)

scheduler.py 1198 __init__
self.nodes = [self.create_scheduler_node(n) for n in nodes]

scheduler.py 1198 <listcomp>
self.nodes = [self.create_scheduler_node(n) for n in nodes]

scheduler.py 1289 create_scheduler_node
group_fn = self.get_backend(node.get_device()).group_fn

scheduler.py 2154 get_backend
self.backends[device] = self.create_backend(device)

scheduler.py 2142 create_backend
raise RuntimeError(

torch._dynamo.exc.BackendCompilerFailed:
backend='inductor' raised:
RuntimeError: Found NVIDIA GeForce GTX 1080 Ti which is too old to be supported by the triton GPU compiler, which is used as the backend. Triton only supports devices of CUDA Capability >= 7.0, but your device is of CUDA capability 6.1

Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information

You can suppress this exception and fall back to eager by setting:
    import torch._dynamo
    torch._dynamo.config.suppress_errors = True

I also want to point out that the original inra code and rasterizer both still work on my 1080ti

Seconding this. We have multiple Compute Capability == 6.1 GPUs that could benefit from the multi-gpu training features in gsplat v1.

Yes gsplat>=1.0 requires GPU with compute capability >= 7.0, due to the usage of cg::labeled_partition
https://github.com/nerfstudio-project/gsplat/blob/da0a201b8eafacb127fd8f09c56f2989b453a9ab/gsplat/cuda/csrc/world_to_cam_bwd.cu#L80-L83
Work-around solution is welcomed!

Unfortunately, I know zero cuda, I can try to see if I can hack my way to an implementation using ChatGPT. But I would need some guidance if someone with more cuda experience is willing. Is cg::labeled_partition the only thing holding back the use of sub 7.0 gpus?
So far this is what I've come up with
#if __CUDA_ARCH__ >= 700
// Write out results with warp-level reduction
auto warp = cg::tiled_partition<32>(cg::this_thread_block());
auto warp_group_g = cg::labeled_partition(warp, gid);

if (v_means != nullptr) {
    warpSum(v_mean, warp_group_g);
    if (warp_group_g.thread_rank() == 0) {
        v_means += gid * 3;
        GSPLAT_PRAGMA_UNROLL
        for (uint32_t i = 0; i < 3; i++) {
            gpuAtomicAdd(v_means + i, v_mean[i]);
        }
    }
}
// Similar code for v_covars and v_viewmats
#endif

#else
// Alternative implementation using shared memory and atomic operations
if (v_means != nullptr) {
    // Allocate shared memory for reduction
    __shared__ vec3<OpT> shared_v_mean[BLOCK_SIZE]; // BLOCK_SIZE is the number of threads per block
    shared_v_mean[threadIdx.x] = v_mean;

    __syncthreads();

    // Perform block-level reduction
    for (unsigned int stride = BLOCK_SIZE / 2; stride > 0; stride >>= 1) {
        if (threadIdx.x < stride) {
            shared_v_mean[threadIdx.x] += shared_v_mean[threadIdx.x + stride];
        }
        __syncthreads();
    }

    if (threadIdx.x == 0) {
        v_means += gid * 3;
        GSPLAT_PRAGMA_UNROLL
        for (uint32_t i = 0; i < 3; i++) {
            gpuAtomicAdd(v_means + i, shared_v_mean[0][i]);
        }
    }
}
// Similar code for v_covars and v_viewmats
#endif

I think labeled_partition is the only thing that holding it back. But it should require much more changes that this at multiple places where this is being used.
Feel feel to test your ideas locally and see if it passes the tests (pytest tests/). We are happy to accept a PR about it if anyone comes out a fix.

Got it, will see if I can get this working!

Hi，I got the same problem. Have you solve the problem yet?

Unfortunately not, I did some initial digging but haven't had time to come up with a fix


additional shorthand for emotional expression

in Russian, weneed to create all the abbreviations for expressing emotions:
хд -> laugh emote for example
also emotion chat should work with @

in Russian, weneed to create all the abbreviations for expressing emotions:
хд -> laugh emote for example
also emotion chat should work with @

😐


Adds syntax sugar focusWin on the editorConfig struct

This PR is from issue #29. Now that I've done it and looked at it, I realized that for this small project, the benefit is pretty small. Hmm!
A new way to access the current window:
struct editorWindow *currentWindow = E->focusWin;
struct editorBuffer *buf = E->focusWin->buf;

// Check if a specific window is focused
if (E->windows[i] == E->focusWin) {
    // This window is focused
}

// Switch to the next window
int nextIdx = (E->focusWin - E->windows + 1) % E->nwindows;
setWindowFocus(&E, E->windows[nextIdx]);

Or you can still do it the old way:
int idx = windowFocusedIdx(&E);
struct editorWindow *win = E.windows[idx];
struct editorBuffer *buf = win->buf;

// Check if a specific window is focused
if (E.windows[i]->focused) {
    // This window is focused
}

// Switch to the next window
E.windows[idx]->focused = 0;
idx = (idx + 1) % E->nwindows;
E.windows[idx]->focused = 1;
E.focusBuf = E.windows[idx]->buf;

But you can only read _focused on the editorWindow - you must NEVER update that field directly. To update it, use the new setWindowFocus function:
// To change focus to a different window
setWindowFocus(&E, E.windows[newFocusIdx]);

// This will update _focused, E.focusWin, and E.focusBuf all at once

I changed my mind. As a beginner in C, I am not sure enough that this is worthwhile doing.


make your docs understanable

I'm having trouble understanding how to setup the caddy server with the plugins etc.
Did I understand correctly that i have to for each update rebuild my own caddy?

For each update of what?
When caddy-gitea releases an update yes
When gitea releases an update no (unless they break API)
When caddy releases an update no (unless it's a security update)


feature: per plugin pre & post update user events

Did you check the docs?

[X] I have read all the lazy.nvim docs

Is your feature request related to a problem? Please describe.
I'm maintaining a set of patches applied to plugins (primarily for better integration).
The patches are managed by an external program (a huge bash script to be more specific).
The patches must be rolled back before the update (as they may break git pull) and applied after the update has been completed.
At the moment, I'm using a manual approach: a script that rolls back the patches, runs nvim '+Lazy! sync' +qa, then applies patches. While it sort of works, it is quite inconvenient as I can't use Lazy's UI to perform the update, also sometimes changes are being reset (patches are reset).
Describe the solution you'd like
I would like to have three new user events:

LazyPreUpdate - emitted per plugin before actually updating it
LazyPostUpdate - emitted per plugin after successfully updating it
LazyPostInstall - emitted per plugin after successfully installing

With these events, I will be able to manage the patch process using autocommands and won't break the UI.
Describe alternatives you've considered
There are currently no alternatives except the external orchestration. Please advise if there are some hooks I can use.
Additional context
No response

Well, fair enough. A question then: is there some event or any other (even a hacky) way to execute code before the overall sync starts?


Issue with Process isolation on Windows 11

After upgrading to Windows11, I tried to create my containers using process isolation. Container creates successfully, but I cannot access BC. Browser just gives me connection tiemeout error.
If I run the same script with Hyperv param, it works flawless.
Is it and issue with Windows 11 or something todo with my local setup (antivirus, firewall)?
Scripts used to create container and cause the issue
New-NavContainer `
-accept_eula `
-containerName $containerName `
-artifactUrl $url `
-isolation 'process' `
-Credential $cred `
-auth UserPassword `
-updateHosts `
-useBestContainerOS `
-shortcuts desktop `
-EnableTaskScheduler

Full output of scripts
New-NavContainer `
-accept_eula `
-containerName $containerName `
-artifactUrl $url `
-isolation 'process' `
-Credential $cred `
-auth UserPassword `
-updateHosts `
-useBestContainerOS `
-shortcuts desktop `
-EnableTaskScheduler
BcContainerHelper is version 4.0.15
BcContainerHelper is running as administrator
HyperV is Enabled
UsePsSession is True
Host is Microsoft Windows 11 Enterprise - 10.0.22621.1413
Docker Client Version is 20.10.24
Docker Server Version is 20.10.24
Removing Session base22
Removing container base22
Removing entries from hosts
Removing base22 from container hosts file
Removing base22-* from container hosts file
Removing Desktop shortcuts
Removing C:\ProgramData\BcContainerHelper\Extensions\base22
Fetching all docker images
Fetching all docker volumes
Using image mcr.microsoft.com/businesscentral:10.0.20348.1668
Creating Container base22
Style: onprem
Multitenant: No
Version: 22.0.54157.54635
Platform: 22.0.54512.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.20348.1668 (ltsc2022)
Host OS Version: 10.0.22621.1413 (22H2)
Using process isolation
Using locale en-US
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Additional Parameters:
--env customNavSettings=EnableTaskScheduler=True
Files in C:\ProgramData\BcContainerHelper\Extensions\base22\my:
- AdditionalOutput.ps1
- MainLoop.ps1
- SetupVariables.ps1
- updatehosts.ps1
Creating container base22 from image mcr.microsoft.com/businesscentral:10.0.20348.1668
d6d63afe046933a1ed267114d88206cd63bd402e1762996357277b1f7dede167
Waiting for container base22 to be ready
Using artifactUrl https://bcartifacts.azureedge.net/onprem/22.0.54157.54635/w1
Using installer from C:\Run\210-new
Installing Business Central
Installing from artifacts
Starting Local SQL Server
Starting Internet Information Server
Copying Service Tier Files
c:\dl\onprem\22.0.54157.54635\platform\ServiceTier\Program Files
c:\dl\onprem\22.0.54157.54635\platform\ServiceTier\System64Folder
Copying PowerShell Scripts
c:\dl\onprem\22.0.54157.54635\platform\WindowsPowerShellScripts\Cloud\NAVAdministration
c:\dl\onprem\22.0.54157.54635\platform\WindowsPowerShellScripts\WebSearch
Copying Web Client Files
c:\dl\onprem\22.0.54157.54635\platform\WebClient\Microsoft Dynamics NAV
Copying ModernDev Files
c:\dl\onprem\22.0.54157.54635\platform
c:\dl\onprem\22.0.54157.54635\platform\ModernDev\program files\Microsoft Dynamics NAV
Copying additional files
Copying ConfigurationPackages
C:\dl\onprem\22.0.54157.54635\platform\ConfigurationPackages
Copying Test Assemblies
C:\dl\onprem\22.0.54157.54635\platform\Test Assemblies
Copying Applications
C:\dl\onprem\22.0.54157.54635\platform\Applications
Copying dependencies
Copying ReportBuilder
Importing PowerShell Modules
Restoring CRONUS Demo Database
Setting CompatibilityLevel for CRONUS on localhost\SQLEXPRESS
Modifying Business Central Service Tier Config File for Docker
Creating Business Central Service Tier
Installing SIP crypto provider: 'C:\Windows\System32\NavSip.dll'
Starting Business Central Service Tier
Importing license file
Stopping Business Central Service Tier
Installation took 286 seconds
Installation complete
Initializing...
Setting kubernetes.docker.internal to <IP_ADDRESS> in container hosts file (copy from host hosts file)
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is base22
PublicDnsName is base22
Using NavUserPassword Authentication
Creating Self Signed Certificate
Self Signed Certificate Thumbprint FE2B1B19BBB8741D0C90A4223715AA33E3318971
DNS identity base22
Modifying Service Tier Config File with Instance Specific Settings
Modifying Service Tier Config File with settings from environment variable
Setting EnableTaskScheduler to True
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Using application pool name: BC
Using default container name: NavWebApplicationContainer
Copy files to WWW root C:\inetpub\wwwroot\BC
Create the application pool BC
Create website: NavWebApplicationContainer without SSL
Update configuration: navsettings.json
Done Configuring Web Client
Creating http download site
Setting SA Password and enabling SA
Creating gps as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: <IP_ADDRESS>
Container Hostname  : base22
Container Dns Name  : base22
Web Client          : http://base22/BC/
Dev. Server         : http://base22
Dev. ServerInstance : BC
Setting base22 to <IP_ADDRESS> in host hosts file

Files:
http://base22:8080/ALLanguage.vsix

Container Total Physical Memory is 15.7Gb
Container Free Physical Memory is 4.3Gb

Initialization took 47 seconds
Ready for connections!
Reading CustomSettings.config from base22
Creating Desktop Shortcuts for base22
Cleanup old dotnet core assemblies
Container base22 successfully created

Screenshots

Additional context

does it happen all the time?
did it use to work?

Never heard about that before. I am using Windows 11 as well - works fine.
It is probably a networking issue of some kind - but I don't know.

Agree with Freddy - sounds like networking. Open the powershell inside the container and look at the services (net start). Is the service tier running? Is IIS? Can you ping the container's address from there (Container IP Address: <IP_ADDRESS>)?
Then open powershell on your host and try the same ping (Container IP Address: <IP_ADDRESS>). If this last step doesn't work but the first steps do, you have a networking issue between your host and docker containers.

You could also try to disable your defender/antivirus - these things are known to have issues with process isolation on desktop computers.


Design for showing rarity for properties for NFTs from OpenSea API

Moved from: #4125
Just realised we don't have the UI design to display rarity for properties. @colourfreak, can you help to come up with something?
<img width="200" alt="Screenshot 2022-03-22 at 3 51 02 PM"

src="https://user-images.githubusercontent.com/56189/159433072-ac44d818-a8b0-42bf-9594-093d0e7bc947.png">

This is how it looks like on OpenSea:

[ ] Buzz Android when UI design is ready https://github.com/AlphaWallet/alpha-wallet-android/issues/2440

We do have them already. It has a different layout. Which one do you prefer?
https://zpl.io/aXRA3QP

Alternative

We do have them already. It has a different layout. Which one do you prefer? https://zpl.io/aXRA3QP

Oh, sorry, I forgot. I think this version is already implemented earlier. Let's stick to this version then.


add store_bench to test rocksdb

should use the same configuration in TiKV
PTAL @wentaoxu @disksing

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 5 committers have signed the CLA.:white_check_mark: zhexuany:x: coocood:x: zhengwanbo:x: cwen0:x: tshqinYou have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.at has degraded performance

In 03ea1f1, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2537 ms

Resolved: Bofrost.at performance has improved in 29a016f after 6 minutes.


[#167971884] Cleanup after pass secrets

What
This removes scripts added to deploy #2061. These scripts are no longer needed
How to review
Code review.
Who can review
Not @46bit

This needs a rebase and to wait until people run #2061 down their pipeline. I'll take care of this


MNT: Re-render the feedstock [ci skip]

Hi! This is the friendly conda-forge-admin automated user.
I've re-rendered this feedstock with the latest version of conda-smithy (1.3.2) and noticed some changes.
If the changes look good, then please go ahead and merge this PR.
If you have any questions about the changes though, please feel free to ping the 'conda-forge/core' team (using the @ notation in a comment).
Remember, for any changes to the recipe you would normally need to increment the version or the build number of the package.
Since this is an infrastructural change, we don't actually need/want a new version to be uploaded to anaconda.org/conda-forge, so the version and build/number are left unchanged and the CI has been skipped.
Thanks!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Investigate custom ingress Gateway and controller

What
We want to ensure that what we do is compliant with gitops, and also intuative for users who are familiar with kubernetes concepts. Currently we modify ingresses that we see directly. This can cause issues with gitops tools like argoCD. Additionally it can make configuring how to manage these ingresses complex as there may be other controllers and webhook intercepting these ingresses.
To solve this, we want to explore the idea of creating a custom ingress controller as part of the traffic controller deployment. This ingress controller would define its own ingressClass. While it would be considered an ingress controller it would effectively ensure that ingress was transformed and behaving as expected before delegating the ingress via a copy to a chosen ingress controller that would then use that ingress to configure traffic routing etc. As this copy would be owned by the original, it would be considered a derived resource and so not cause issues with ArgoCD.
This approach means delegating an ingress to traffic controller would mean assigning the right ingressClass to your ingress.
Additionally as we are looking at defining multi-cluster gateways at the control plane, we potentially could represent this ingress controller via a "virtual gateway" resource at the control plane. Where this resource would configure and trigger the deployment of our ingress controller to the data plane
Ingress Controller

Sees Ingress
Checks its listeners config (specified at the control planed and synced down)
validates that the ingress is good (passes any allowedRoutes rules)
finds the needed TLS secret for the listener (also in the same ns as the controller) and copies it to the ingress ns
mutates the ingress and creates a copy of that ingress in the same ns as the target ingress
The ingress controller can only delegate to one actual ingress controller. The LB for this is what is set in the status of the virtual gateway

apiVersion: kudarant.io/v1Alpha1
kind: VirtualGateway
metadata:
  name: example-gateway
spec:
  gatewayClassName: ingress-gateway
  listeners:
  - name: https
    hostname: "*.example.com"
    allowedRoutes:
      kinds:
        - kind: Ingress
      namespaces:
        from: Selector
        selector:
          matchLabels:
            shared-gateway-access: "true"
    tls:
      mode: Terminate
      certificateRefs:
      - kind: Secret
        name: example-com

This issue is stale because it has been open for 30 days with no activity.

This issue was closed because it has been inactive for 30 days since being marked as stale.


How can i solve this problem?

i saw this picture text (No camera found).

This code works correctly

how can i replace VideoDevice code?

To use the Pi Camera set piCamera to true and install the package picamera pip install "picamera[array]"
Did you set UseCameraBoard to true in config.py ?

The config.py has not changed anything
and i installed pip picamera[array]

You are going to have to debug a bit since I don't have this problem.
You could try commenting the line where its checking if the picamera is open.
From your code there is a time.sleep(0.1), maybe you should do the same in motion.py init() code so that the picamera have time to warmup.

I really want to solve this problem captain
Why no camera found is being printed : <
First I'll fix the Usecamerboard code to true edit on config.py

LOL!! Finally Nocamerafound is not output.
But please help the camera screen is not output now

'Motion' object has no attribute 'picamera'

From your screenshot it appears you modified the code so I can't really help anymore, you have to fix it yourself by tweaking it a bit more. Clearly the part where the picamera is not run it so I would begin with that.

thanks your oppinion
Can you tell where you installed  the OpenCV and the Python3 in website ?
2017-06-14 5:13 GMT+09:00 Raphael Monnerat<EMAIL_ADDRESS>
'Motion' object has no attribute 'picamera'
From your screenshot it appears you modified the code so I can't really
help anymore, you have to fix it yourself by tweaking it a bit more.
Clearly the part where the picamera is not run it so I would begin with
that.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Shinao/SmartMirror/issues/7#issuecomment-308234529,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbhDpYZaC52uuLhJj1PlZ2lZVsan8031ks5sDu1vgaJpZM4N2soH
.

I'm not sure what you mean. Where did I find how to in stall OpenCV and Py3 ? I do not remember it's been more than a year already. You are a bit on your own on that one I guess.


Table version history not working with UUID PK (with quick solution)

Describe the bug
Table version history breaks when the data type of the ID field of a table is UUID. The related code in table.ts and list.js assumes that the ID is numeric and forces being so by using +id.
To Reproduce
Steps to reproduce the behavior:

Install the uuid-type module
Create a table, set the ID field type to UUID
Enable version history for the table
Insert or modify a row in the table data (list) view
The insert works for the table, but not for the history, update fails; error message:  invalid input syntax for type integer: "{"next_version_by_id":null}". Opening the row history for a row gives an error message.

Expected behavior
The row should be inserted in the table and in the history. The row history should be accessible.
Additional context
I came up with a quick solution that doesn't break working for integer ID, and I hope it's still protected from SQL injection:
At packages/server/routes/list.js#L80, packages/saltcorn-data/models/table.ts#L1340 and packages/saltcorn-data/models/table.ts#L1680, changing +id to id, and at packages/postgres/postgres.js#L197, changing id=${+v.next_version_by_id}), to id='${v.next_version_by_id}'), solves the problem.
For client side, the ID auto-fill of the new row works if packages/server/routes/list.js#L414 is changed
from:
                  if(resp.success &&typeof resp.success ==="number" && !row.id) {
to:
                  if(resp.success &&(typeof resp.success ==="number"
                  || (typeof resp.success ==="string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(resp.success))
                  ) && !row.id) {
This includes a check for a valid UUID v1-5 (source)
Sorry for writing the solution here, but I didn't want to make a PR for changing a few lines.

@glutamate I created PR #2339 for this

should be closed by #2348


IoT Core MQTT with SQS and .NET Framework 4.8 intermittently drops payload attribute

Describe the bug
When ingesting MQTT under load to a single device, where the device sends a message, then the server sends a message over and over, and an SQS payload topic rule is used:
SELECT * as payload, topic() as topic, traceid() as traceId, clientId() as clientId, principal() as principalId, sourceip() as ipAddress FROM 'device/+/mo/#'
Where the .NET Framework CDK is used to read SQS messages, an intermittent SQS message is received without a payload attribute as shown here:
Body: {
"topic": "device/NT-00999/mo/data/38",
"traceId": "3e090b84-30a8-2b9d-e8b5-9163864624dd",
"clientId": "NT-00999",
"principalId": "981307f9ed56b5ebede3f576ac86b027dba5517f8f5eec4e2a7a3d7cd9cc6ce5",
"ipAddress": "<IP_ADDRESS>"
}
A similar problem was originally observed when using a base64 MQTT payload, where the payload delivered would intermittently have the \n as the starting character of the payload and be missing a trailing length character.  From here, I switched back to JSON payloads, where the symptom seems to be a complete loss of the payload attribute.
Expected Behavior
The payload attribute should be present and correct with all packets, as it is with most packets.
Current Behavior
The payload attribute is dropped when parsing incoming messages here and as shown in the log snipit above:
    var client = m_sqsClient;

    var request = new ReceiveMessageRequest
    {
      QueueUrl = queueUrl,
      AttributeNames = attributeNames,
      MaxNumberOfMessages = maxNumberOfMessages,
      VisibilityTimeout = visibilityTimeout,
      WaitTimeSeconds = waitTimeSeconds,
    };

    while (true)
    {
      var response = await client.ReceiveMessageAsync(request);

      if (response.Messages.Count > 0)
      {

Reproduction Steps
Using .NET Framework 8, with AWSSDK version 3.7.400.1 (and previous versions).  Client 1 sends a publish to topic A, at which time client 2 sends a response to topic B, and client 1 sends a response to topic C.  From here, there are back to back messages that include client 2 sending a message on topic B and client 1 sending a response to topic C.  After around 30-40 messages, the SQS message received via the .NET SDK is missing the payload attribute.
IoT Payload Rule:
SELECT * as payload, topic() as topic, traceid() as traceId, clientId() as clientId, principal() as principalId, sourceip() as ipAddress FROM 'device/+/mo/#'
delivered SQS message:
Body: {
"topic": "device/NT-00999/mo/data/38",
"traceId": "3e090b84-30a8-2b9d-e8b5-9163864624dd",
"clientId": "NT-00999",
"principalId": "981307f9ed56b5ebede3f576ac86b027dba5517f8f5eec4e2a7a3d7cd9cc6ce5",
"ipAddress": "<IP_ADDRESS>"
}
Additionally, and separate, when using a base64 payload, sending a single message from client 2 on topic B results in a malformed base64 encoded payload with the rule:
SELECT encode(*, 'base64') as payload, topic() as topic, traceid() as traceId, clientId() as clientId, principal() as principalId, sourceip() as ipAddress FROM 'device/+/mo/#'
Here, the payload starts with a '\n' character and is missing a trailing length character delimiter.
Possible Solution
Assuming a race condition is present in the IoT Core rule processing, or more likely, on the .NET client SDK receiving the SQS message.
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
AWSSDK 3.7.400.1
Targeted .NET Platform
.NET Framework 4.8
Operating System and version
Windows 11 Pro

If the SQS message is not deleted, upon re-delivery, it also is missing the payload block again.

@nfvelado Good afternoon. Could you please share the following:

Complete minimal reproducible code, rather than a code snippet. The snippet you shared is just a basic code form receiving SQS messages.
List of all packages used in your project, specifically IoT Core MQTT
Was the issue happening earlier or started happening after package upgrade? If yes, please share the list of packages used before and after the error started happening.
Logs, if any.

Thanks,
Ashish

Hi Ashish, thanks for the quick response.  Issue was happening before and after the SDK upgrade.
I meant .NET Framework SDK, not CDK above.
Query above is set as an IoT Core message routing payload rule that forwards to an SQS queue.  Please close for the time being, until I can find a way to reproduce more consistently with a better trace.  Thanks,
Nick


Need the ability to update a customer's addresses from the UI

As a user
I need the ability to update the addresses of a customer using the UI
So that I can easily update the address information stored for a customer account
Details & Assumptions:

rest_api.js will be updated to reference the elements in index.html and make API calls

Acceptance Criteria:
    When I visit the "Home Page"
    And I set the "First Name" to "Tim"
    And I set the "Last Name" to "Giovani"
    And I press the "Search for Customer" button
    Then I should see the message "Success"
    And I should see "Tim" in the "First Name" field
    And I should see "Giovani" in the "Last Name" field

TODO: add in the address specific part of the acceptance criteria

Updated AC


Handle duplicate keys in load_data task

Fixes

Fixes #388
Description

Currently we have several provider DAGs that successfully pull data, but then fail in the load_data step due to duplicate keys on the direct audio_url or image_url, which must be unique. This PR attempts to add handling to the load_data task to avoid attempts to upsert these duplicates.
This must handle two basic cases (and the combination of the two):

A record exists in the Catalog already with a particular url. We attempt to upsert a new record which has a different foreign identifier but the same url. (This new record should be ignored).
A provider script returns multiple records with different foreign identifiers but the same url. We attempt to upsert all of these at the same time. (Only the first should be inserted).

See comment for additional edge case.
Notes/TODO

I'm not sure if the tests could be flaky -- they currently assume that if I insert first A and then B (duplicates) into a loading table and then upsert, A will be the one that gets upserted to the final table. This relies on A being the first row processed.
Would love some feedback about whether this is viable from a performance perspective

Alternatives considered

It would be great if we could use something like INSERT [...] ON CONFLICT (url)  DO NOTHING, which would do exactly what we want -- catch the unique key violation and move on to the next row -- but we are already using the ON CONFLICT clause to perform the upsert, and it is not possible to support multiple conflict targets.
We can add an EXCEPTION to the existing INSERT to simply catch unique key violations, but this applies to the entire insert as a single transaction -- meaning if hit, we swallow the error but all inserts are rolled back and no rows are inserted at all.
We could do an "old fashioned" upsert using LOOP and apply the EXCEPTION handling to each individual transaction, but this will be extremely costly and a huge drag on performance.

Testing Instructions

Run unit tests (and verify they make sense 😄)
just test
To test manually in your local environment, you'll need to run a provider DAG and make sure that it returns some duplicates. I made some modifications to the jamendo.py script, available in this patch that do the following:

Reduce the LIMIT to 10 items per page in API response
break after the first page returned by the API; this means that the pull_data task will complete very quickly so you do not need to manually set the task to success or wait a long time for it to finish
Manually force a duplicate in the results by modifying one of the results to be a clone of the other, except for the foreign id.

So to test manually:

Grab the patch https://gist.github.com/stacimc/aba8c8b183a54607ad61aa59de504cb3 and apply it
Run the jamendo provider DAG locally
Verify that all tasks complete successfully
Check the logs for the pull_data task and observe that 10 lines were written.
Optionally, you can actually check your local MinIO console and find the TSV file that was created to visually confirm that you have a duplicate url 😄
Check the logs for report_load_completion and see that only 9 records were actually upserted

Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

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

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

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

Unfortunately I thought of a remaining edge case here. Example:
Let's say the provider API returns two rows with different ids but the same url:
{ 'foreign_identifier': 'a', 'url': 'https://images.com/a/img.jpg', ... } // A
{ 'foreign_identifier': 'b', 'url': 'https://images.com/a/img.jpg', ... } // B

And the catalog happens to have an existing record with one of those foreign identifiers:
{ 'foreign_identifier': 'b', ... }

Ideally what we want is to keep and upsert the new record that matches the existing foreign id. So in this case we'd want to discard A and upsert B, in order to update data for the existing record.
The current implementation doesn't do this, though -- it just keeps the first record returned by the API with a given url.
It's hard to tell if this is a realistic real-world scenario 🤔

Even without the edge case described in my earlier comment, the approach of using the current contents of the Catalog as the source of truth has a few downsides. A scenario like this could arise:

Ingestion scripts run and receive an image with foreign id a from the provider API. It is inserted into the Catalog
On all future runs of the ingestion script, the same image is returned but with foreign id b and is consequently discarded. The image's popularity data/etc never gets updated as a result.

Wild card/maybe silly idea: is the urls must be unique, could we ignore foreign_ids during insertion and use the url as the "primary key"? The biggest problem would be that if the API returns multiple records with the same url in a single DAG run, whichever one is upserted last would overwrite the others 🤔
It would be helpful to have a better understanding of when/why we're getting these duplicates from the API, so we could understand whether scenarios like these could ever happen.

Looks like I've got a test failing now -- latest commit shouldn't be the culprit. Taking a look 👀

@obulat and @dhruvkb will either of you have a chance to review this PR this week?

#411 created to add some more Slack messaging in a follow-up


#272 Move image files to assets folder and png files into their own folder

@Kameramann23   thanks for making your first contribution, I will be merging your Pull Request, also look at the issues so that you can get a chance to win a limited community Swag from me.
If you like the project and Repo please give it a star and Follow me on Github (would be appreciated)


Standardise capitalisation of keywords and variables across all Fortran files

e35e5ee leaves us in the state where keywords are capitalised consistently. Variables are not yet consistent, but this may not be fully desirable.

I'm going to close this - variables don't conform to this, but PR #144 and #145 mean all keywords are fixed.


Required-begin-setlist

create combo list
Co-Authored-By: Diego Pontes<EMAIL_ADDRESS>

function ok


redisson client  connect sentinel to Read Data

I init client like this :
"   Config config = new Config();
String[] servers = new String[conf.getServers().size()];
config.useSentinelServers()
.addSentinelAddress(conf.getServers().toArray(servers))
.setMasterName(conf.getMasterName())
.setPassword(conf.getAuth())
.setTimeout(conf.getTimeout());
client = Redisson.create(config); "
But error reporting when I run the program , please see the following exception information:
"org.redisson.client.RedisTimeoutException: Unable to send command! Node source: NodeSource [slot=null, addr=null, redisClient=null, redirect=null, entry=org.redisson.connection.MasterSlaveEntry@77cbf622], connection: [id: 0x872874f5, L:/<IP_ADDRESS>:59850 - R:<IP_ADDRESS>/<IP_ADDRESS>:6379], command: (EXISTS)"
The server's IP is the sentry machine's IP，What's the problem?

Try to increase connection pool

From the perspective of exception information(connection: [id: 0x872874f5, L:/<IP_ADDRESS>:59850 - R:<IP_ADDRESS>/<IP_ADDRESS>:6379]), it seems to have been connected,but why did the client send a "EXISTS" command to the sentinel server Instead of a master or slave?

Could you check your Redis sentinel configs? I think sentinel could be defined there as slave or master by mistake.


Unable to open some.json output in chrome://tracing

Hi, I'm having a problem opening this json file in chrome://tracing.
I have used snippet from docs to run and generate this json output:
func tracer() {
	t, _ := trace.TraceToFile("some.json")
	defer t.Close()

	defer t.BeginDuration("my event", trace.WithCategories("cool", "categories")).End()

	// your amazing code
	t.Instant("wow a thing happened!", trace.WithStackTrace())
}

[
  {
    "ph": "B",
    "name": "my event",
    "cat": "cool,categories",
    "ts":<PHONE_NUMBER>039795,
    "pid": 8452
  },
  {
    "ph": "I",
    "name": "wow a thing happened!",
    "ts":<PHONE_NUMBER>040315,
    "pid": 8452,
    "stack": [
      "github.com/omaskery/teffy/pkg/util/trace.(*Tracer).Instant:213",
      "main.tracer:39",
      "main.main:28",
      "runtime.main:250",
      "runtime.goexit:1594"
    ],
    "s": "t"
  },
  {
    "ph": "E",
    "name": "my event",
    "ts":<PHONE_NUMBER>040315,
    "pid": 8452
  }
]

This is the error message I got:
While importing:
TypeError: this.model_.resolveStackToStackFrame_ is not a function
    at TraceEventImporter.getStackFrameForEvent_ (chrome://tracing/tracing.js:6354:42)
    at TraceEventImporter.processDurationEvent (chrome://tracing/tracing.js:6283:346)
    at TraceEventImporter.processInstantEvent (chrome://tracing/tracing.js:6295:45)
    at TraceEventImporter.processEvent_ (chrome://tracing/tracing.js:6337:312)
    at TraceEventImporter.importEvents (chrome://tracing/tracing.js:6329:70)
    at chrome://tracing/tracing.js:2018:232
    at chrome://tracing/tracing.js:2014:268
    at Task.run (chrome://tracing/tracing.js:3259:95)
    at runAnother (chrome://tracing/tracing.js:3262:371)
    at runTask (chrome://tracing/tracing.js:3026:57)

Go version: go 1.19
Can you help me with this? Am I missing something?
Thank you!

I can confirm this issue, however from what I can tell I am complying with the TEF documentation (explanation of "stack" key, and specific suggestion that the "stack" key can be populated in Instant events).
There is a remark in the Instant documentation that I've linked above that reads:

Thread-scoped events can have stack traces associated with them in the same style as duration events, by putting either sf or stack records on the event. Process-scoped and global-scoped events do not support stack traces at this time.

It could be that my example is wrong, and I am creating a process/global scoped event with a stack trace, which is unsupported. However, googling the error message leads me to this issue on the source code for the chrome tracing window: https://github.com/catapult-project/catapult/issues/3996
As a result, I'm a little unclear whether this is actually an issue with the chrome tracing window, or whether my example is wrong. What are your thoughts?

I really don't know... but then I found out about "runtime/trace" and that output can be previewed with go tools trace some.out.
This is the function I used:
func tracer() {
	f, err := os.Create("trace.out")
	if err != nil {
		panic(err)
	}
	defer f.Close()
	err = trace.Start(f)
	if err != nil {
		panic(err)
	}
	defer trace.Stop()

	fmt.Println("Tracing")
}

Are you able to export the resulting Trace Event Format JSON from the viewer? It would be interesting to see what it does.

no, I didn't see any export option. Go cli is making a binary file that cannot be previewed but as I see they parse it and splitting it.
2022/09/19 14:51:49 Parsing trace...
2022/09/19 14:51:49 Splitting trace...
2022/09/19 14:51:49 Opening browser. Trace viewer is listening on http://<IP_ADDRESS>:53843

Is the trace viewer not the one built into chrome, which has a save button? I was wondering if, when viewing the trace in your web browser, there might be a save button that let you export the resulting TEF file?

I haven't worked on this project in quite a while, so it took me a while to refresh my memory. Now, looking again at the TEF document I linked previously, I am now pretty confident that I am following the specification correctly with my implementation and documentation example.
My documented example code, and therefore by extension the code you've written in this issue, generates a thread-scoped instant event (as denoted by the key "s" being set to "t"). Instant events that are thread-scoped are indeed allowed to have a "stack" key. This is therefore an issue with the chrome/catapult trace viewer not implementing the entire TEF spec.
I have provided a workaround for you:
 func tracer() {
 	t, _ := trace.TraceToFile("some.json")
 	defer t.Close()

 	defer t.BeginDuration("my event", trace.WithCategories("cool", "categories")).End()

 	// your amazing code
-	t.Instant("wow a thing happened!", trace.WithStackTrace())
+	t.Instant("wow a thing happened!")
}

If that's good enough for you, or Go's runtime/trace package has solved your needs, I will close the issue.

Otherwise: this library would need extending to support the "sf" key instead of the "stack" key. However, the "sf" key isn't compatible with TEF's "JSON Array Format" (which is the default format for streaming output in this library) since it needs to index into a file-global stack frame table only supported in TEF's "JSON Object Format" files.
Whilst this library supports writing the object format files, their downside is that they can't practically be streamed out, they effectively need to be serialised in one go. This can be problematic when tracing an application, as the application may crash without writing anything to disk, unlike streaming the array format files which would be at least partially written to disk.
If you want to press on and use TEF's JSON Object Format, then the library will need to be updated with the ability to extract stack traces from "stack" keys on events and move them into the stack frame table, and turn them into "sf" keys. It is, however, not 100% clear to me where some of the data for a stack frame should come from (the category property, though perhaps it is optional?).
In this case, I am unsure if I will have the time to address this at the moment - are you willing to submit a PR to support this?

I have limited knowledge about this topic and I'm learning by reading your replies. No worries, I will try your workaround and see the result. If not, I will use runtime/trace.
thank you for taking the time to see into this matter.

Thanks for getting in touch, and good luck with whatever you're working on :)


Fix ItemName processor nbt

Is the value processor affected as well?

@gabizou value processor was using ITEM_DISPLAY_NAME but the value of it was wrong, this fixs both


Fix sqlite "database is locked" error

Checklist before merging

[x] I added an appropriate entry to CHANGELOG.md

This solves the sqlite3.OperationalError: database is locked that appears sometimes when using sqlite.
Reference: https://www.sqlite.org/wal.html

WAL provides more concurrency as readers do not block writers and a writer does not block readers. Reading and writing can proceed concurrently.

Thanks Sonia! We'll review this asap.
Possibly related to multiple past issues:

https://github.com/fractal-analytics-platform/fractal-server/issues/647
https://github.com/fractal-analytics-platform/fractal-server/issues/854
https://github.com/fractal-analytics-platform/fractal-server/issues/649

For the record, the CI also passes locally - where I use sqlite (while the GitHub action uses postgres).

I think we can merge this PR.
Locally I have no problem, CI works fine with sqlite.
Looking at the Disadvantages section in the docs, seems that we are safe. The only thing I want to mention i point 2

All processes using a database must be on the same host computer; WAL does not work over a network filesystem.

Which can be a potential problem if we want to use sqlite on a network (fractal-containers) which could be easily solved via docker volumes. BUT at the moment we are happy with postgres so, the sqlite usage is strictly related to local testing.

Thanks Marco for the review. Maybe what we can add (after #891 is merged) is a test of set_db which always runs with SQLite (even when the postgres extra is installed), so that we would be also testing these new lines.

Which can be a potential problem if we want to use sqlite on a network (fractal-containers) which could be easily solved via docker volumes. BUT at the moment we are happy with postgres

Agreed, not an issue.

the sqlite usage is strictly related to local testing.

Local testing or local demo-ing. But we always print a very clear warning saying the SQLite is not fully supported.

Thanks Marco for the review. Maybe what we can add (after #891 is merged) is a test of set_db which always runs with SQLite (even when the postgres extra is installed), so that we would be also testing these new lines.

#891 is on hold, therefore this test should be included within the current setup.

therefore this test should be included within the current setup.

Implemented with #915. If the CI passes, this is ready to merge

Before #915:

57.14% of new lines are covered.

After #915:

100% of new lines are covered.

Thanks @zonia3000 and @ychiucco! I'm now merging this one.


On onCorrectStroke and onMistake events, also return drawingPath's data

For scientific purpose at least, it would be interesting to return the path of the user correct and mistake drawing. Beyond the current binary onCorrectStroke or onMistake, paths would provide insight on what the learners draw, why do they fails.
Currently
writer.quiz(options) :

onCorrectStroke: function(data). Called when the user draws a stroke correctly. The function is called with an object containing totalMistakes which is the total mistakes made during the quiz so far, strokeNum the current stroke number, mistakesOnStroke the number of mistakes the user made drawing this stroke, and strokesRemaining the number of strokes left until the quiz is complete.
onMistake: function(data). Called when the user makes a mistake drawing a stroke. The function is called with an object containing totalMistakes which is the total mistakes made during the quiz so far, strokeNum the current stroke number, mistakesOnStroke the number of mistakes the user made drawing this stroke so far, and strokesRemaining the number of strokes left until the quiz is complete.

Suggestion
On onCorrectStroke and onMistake events, the function(data) is called when the user draws a stroke correctly or incorectly. In data, add a key-value drawingPath : the path' s data for the last drawing made by the user.

Direct use
I would like to use these data to later on plot student's nth stroke's (strokeNum) drawing path, correct or mistakes, via d3js. The end rendering being something such :

{ character: '馬', strokeNum: 0,
strokeNumColor: 'lightblue', drawingWidth: '1', drawingColor: '#B10000' }

In language learning, it's the field of error analysis.

👍 Good idea! I'll work on this soon. The tricky part is that the strokes are drawn in the character reference frame rather than the document's reference frame, but maybe we can return the set of points in both systems for maximum flexibility. This will also make it easier for us to track if stroke matching is working well or needs to be tweaked.

Approach could be to :

data string : "45.45,35.12 44.20,31,56 ....."
path : <path d=""45.45,35.12 44.20,31,56 ....."></path>

Please share an example for character reference frame rather than the document's reference frame.

Please share a concrete example for "character reference frame rather than the document's reference frame".

I mean, the Make me a Hanzi character data is in terms of a 1024 x 1024 grid. So, to compare the stroke the user drew with the strokes from Make me a Hanzi the user drawing needs to be converted to the same coordinate system as Make me a Hanzi. In the SVG there's a <g> element with a transform on it which handles that. But, for users of Hanzi Writer, they probably want to see the user stroke in terms of the raw coordinates that the user drew on the screen if they want to draw the SVG path later.
#63 tries to address that by including a drawnPath key which looks like:
drawnPath: {
  points: [{x: 10, y: 10}, ...],
  pathString: 'M 0 100 L 200 210 L ...'
}

pathString is an SVG path string in terms of the page's coordinates, and  points is in terms of Make me a Hanzi's coordinates

:heart_eyes_cat:
Please ping me when published.
Or can I test this HanziWriter.js for testing ? :D

You'll need to run the build locally first. You can do that with:
yarn
yarn build

Otherwise, I'll publish a build in the next hour or so.

Just published v0.8.0 with these changes

On onCorrectStroke, where is located the drawnPath  ? Within  onCorrectStroke, I do function(data) { console.log(data) }, but it just prints me {character: "中", strokeNum: 3, mistakesOnStroke: 0, totalMistakes: 0, strokesRemaining: 0} so far.

Are you sure you're using 0.8.0? Are you loading from NPM or using a script tag? If it's a script tag it will say the version in a comment at the top of the file

I don't see how that's possible. I just double-checked and loaded the JS from <script<EMAIL_ADDRESS>and it's showing the drawnPath in the callback for me:

Does it work if you load from github? https://github.com/chanind/hanzi-writer/blob/master/dist/hanzi-writer.min.js

working !!

Ok. It's live !
Starting to record stuffs!

Awesome, glad to hear it!


Network error

After filling out the last question, I am shown the button "See Results". When I press it, a notification pops up saying "Network Error". This repeats even though I can open another tab and go to a website without any problems. Possibly this problem was caused by my wifi being down at some earlier instant - my wifi goes down now and then. Me and a few colleagues all did the bigfive-test at the same time, and one of them had exactly the same problem as I did.
After a while, I tried right clicking and "reload frame", but then I was sent to the very start page and asked to do the entire test all over again (lost my motivation to do that).

Getting the same error. Opening "console" in Chrome and getting the following message:
Access to XMLHttpRequest at 'https://b5.rubynor.xyz/api/save' from origin 'https://bigfive-test.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Could not repoduce, but the saving URL should be https://bigfive-test.com/api/save.
Will a fix.
Thanks for reporting, sorry again for the trouble

Deployed new version that should post til the right API-url.
May also be something with the CORS:
https://github.com/rubynor/bigfive-web/blob/master/now.json#L40-L54
https://github.com/rubynor/bigfive-web/blob/master/api/save.js#L6-L9
But I can not reproduce the error.

I have not received any messages about this error after the lastest change.
So I'm closing this issue.


Description / Mention of Longer lived branch workflow

I've taught a few people a version of the GitHub flow that uses longer lived branches, wondering if there's a place in the workflow section of Advanced for us to describe this?
This is also the workflow that we'll be using for this repo moving forward i believe.

@brntbeer this issue is super stale. I have added this to the backlog in the training repo and will close this out. If you would like it re-opened, please feel free to do so!


Bug - most recent version does not have dist folder published

I noticed version 0.3.3 does not have the dist folder published:

So none of the typings are being reset when I try the latest version
https://www.npmjs.com/package/@total-typescript/ts-reset/v/0.3.3?activeTab=explore

Thanks! My bad. CI is deploying a fix now.


rbac-operator needs to give access to cluster scoped capi identity resources

related: https://gigantic.slack.com/archives/C02HLSDH3DZ/p1725444409220559
In AWS case, we are using the AWSClusterRoleIdentity CR which is not namespaced.
Currently, the automation SA can not access this resource and a ClusterRoleBinding is needed to give access to it (due to it being cluster scoped) which customers can not create.
In the meantime we have created it manually.
However, it is likely that similar resources exist on other providers or that other customers need access to the same one.
We should support this in rbac-operator.

The new team (BigMac + Shield) should still be responsible for MCs, right? I think for now it makes sense to move it to where people have more context.
And we need to have a meeting to redistribute components as Tenet also doesn't have capacity to inherit everything that is left without an owner.


Add opcache, xsl and intl, share 3306 port of db container and adapt logs shipping for sf3

Description
The main goal of my Pull Request is to improve the usability of this docker containers, you'll find diverse improvements in it.
Usage
There is nothing you have to change in your configuration
Changes

Activating opcache in order to improve performances
Since symfony 3 the logs folders have been moved, i've changed the place where they are loaded from for the ELK container
The main db port have been shared in order to allow access to db from thrid party software
Finally I've added some essentials php mods for symfony 3

#79


Cherrypick #3077 and #3079 to release-2.0.0

Two javadoc fixes.

Changes Unknown when pulling e438d8ba3d7d8e3fea3b5b03553cad715f7d1a5a on dhalperi:cp-3077-3079 into ** on apache:release-2.0.0**.


BorderRadius.circular() should be const

See border_radius.dart
Why isn't circular const?  Seems like it should be.
/// Creates a border radius where all radii are [Radius.circular(radius)].
BorderRadius.circular(double radius) : this.all(
Radius.circular(radius),
);
I'm on latest flutter/latest packages.

Border radius circular cannot be const because it relies on the construction of a Radius object in the constructor. In theory, yes it would be possible to extend Dart's const capabilities to support some subset of expressions/constructors as const. This is not possible today though.


Clarifies documentation site regarding the need to enclose http_header hyphenated names + typo fixes

Hi @lovasoa, the documentation site needs to specify that hyphenated http_headers (Cache-Control, Content-Disposition, etc) do require the use of enclosing quotes when used as aliases.
-- custom htmx header
select 'http_header' as component,
    "/home.sql" as "HX-Redirect";

It was also somewhat unclear that we could declare custom headers; the examples only specified a handful of standard headers, which might imply that we're limited to those.
Also, found some related typos in the migration comments 🐛

The idiomatic syntax to include special characters in column names varies across databases. For instance, it will be \Cache-Control`in mysql and[Cache-Control]` in Microsoft SQL Server.

The correct place to include the fix to avoid generating invalid SQL in the documentation is `documentation.sql:
                                 CASE WHEN key LIKE '% %' THEN format('"%s"', replace(key, '"', '""')) ELSE key END as key,

We check whether the column name contains a space, we can test for hyphen too, and probably use format for escaping.

I updated the documentation in https://github.com/lovasoa/SQLpage/commit/b44519a0b78e765d0bea3548f68b69a7d29ed6f8
Let me know if it can still be improved !

https://sql.ophir.dev/documentation.sql?component=http_header#component

Much clearer now! And neat that the official site data is just page caching and a bunch of migrations for an on-the-fly database 😎


Fix https://github.com/Homebrew/homebrew-cask/issues/87045

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

See https://github.com/Homebrew/homebrew-cask/issues/87045 and https://github.com/Homebrew/brew/pull/8214.

Removed the changes for reinstall and uninstall from https://github.com/Homebrew/brew/pull/8214 for now.
These should follow pretty much the same pattern.
I can have a look at those later, unless @whoiswillma beats me to it.

I see what to do now. I'll continue to work from my branch

Quick question: aren't there now two places where args are parsed? In Cask::Cmd::process_options and also in env_config.rb? I'm fine to continue this but it feels like a code smell

I think once cask commands are using CLI::Parser, the parsing code duplication will be gone.


Support postgresql text[] columns containing null values

I discovered today that PostgreSQL columns containing null values raised a java.lang.NullPointerException.
I found that me.liuwj.ktorm.support.postgresqlTextArraySqlType.doGetResult was not returning early if ResultSet.getArray returned null, which later resulted in the above exception when attempting to free the variable to which it was assigned.
I added the early return, modeling it on the implementation of BlobSqlType, and added a tests for text[] and store columns containing null values.

Thank you very much.


Fix window load event

Hey big fan of the Bureau I saw you guys on reddit awhile back https://www.reddit.com/r/Python/comments/4crahd/the_consumer_finance_protection_bureau_is/
Noticed a bad jQuery practice in your code.

Thanks for the PR @musketeer925.


Request to add SignalR example

I think adding signalR ( https://www.asp.net/signalr ) example is better than adding WebSocket example.
So, I think signalR can be added here

I think that's a good idea, at the time SignalR wasn't even in Alpha yet, but it's a much cleaner option than raw websockets.
I'll close out #5 so we can add SignalR instead! Thanks :)

Thanks for your interest :)

I have done little works with signalR.
Initial setup is done in this project-
https://github.com/abrarjahin/signalR_BasicWorking
It is with signalR and ASP.Net Core


Tdr 2488 move GitHub terraform from backend repo

Not sure where you have got to with this. But have left some comments.
The state s3 bucket and state lock dynamodb table need to be created in the tdr-terraform-backend repo. Not in this repo. The terraform in this repo can't be run unless they exist, so they have to be created in the backend first. Otherwise there is a circular reference going on.
I've created a PR with the state and state lock changes here: nationalarchives/tdr-terraform-backend#248

Right, thanks for adding them into the tdr-terraform-backend repo. I have removed them from this repo.


Issue #571 Ignoring Duplicated Output

@wandersonwhcr This seems like an odd thing to have to ignore. Any idea why the duplicated output is happening in the first place?

@wandersonwhcr Are you still experiencing this issue or are we safe to close this PR?


Using weighted C-SVC

I am trying to train an SVM model from python with the following parameters -s 0 -t 0 -c 1 -b 1 -u 0 -w1 100
I have tried different values for -w1 but the SVM fails to learn anything I am guessing because the classes are heavily imbalance and the weighting isn't being applied?
My train_y is a list that contains 1 and -1. I am importing the functions from svm.py and running them inside a jupyter notebook on a Python 3.5.2 conda environment on a Ubuntu Linux VM.

I use dataset a9a to test and the weighting is applied successfully. Would you please attach the full log? Alternatively, you can use publicly available datasets to produce the issue again, and then we can debug the code.


update fetch apkindex to be able to fetch from apk.cgr.dev

i will plumb the context that i missed

added the ctx that was missing @imjasonh @hectorj2f PTAL


Stuck on block 1099848

Hi,
I rasied this earlier but the ticket was closed , my miner is still at block 1099848 after hours. its got the new firmware but has done nothing at all to download anymore of the block chain.

Any ideas how to sort this?
Thanks

Mine appears stuck too (which is annoying, it's been fine for weeks), and a lot of the time diag isn't loading either, I just get 500 Interval Server Error.
I have the same firmware as you, but mine says:

Miner Connected To Blockchain
False

New GA coming out soon. The network is still struggling.
https://engineering.helium.com/2021/11/17/blockchain-release-resuming-the-blockchain.html

Also, if you reboot you should pull down a new snapshot


of(bitmap)  not working because of this

private Context getAppContext() {
    if (view == null) {
        throw new NullPointerException("Attempt to save the view failed: view was null");
    }
    return view.getContext().getApplicationContext();
}

............
new BitmapSaver(getAppContext(), getBitmap(), saveInternal, path, filename, fileExtension, jpgQuality, listener).execute();

Show me the full code your are using for saving the Bitmap + Library version + minSDK

me too
my full code is

@tuinui
In your line QuickShot.of(this)what isthis`? Are you refeering to an actual Bitmap object?
Also post your error stacktrace

QuickShot.of(bitmap).setResultListener(this).save()
minSdkVersion 24. implementation 'com.muddzdev:quickshot:1.1.0'
save() call BitmapSaver(getAppContext()) and in getAppContext()
if (view == null) { throw new NullPointerException....
But we did not setup view, only bitmap. Of course it's throws null

@DonnieDB Thanks! I have already fixed and version 1.2.0 should be up now.
When using Bitmap, you should now pass Context as a second parameter.
But only when saving a Bitmap.
Example:
 QuickShot.of(bitmap, context).setResultListener(this).toJPG().save();


Dynamically added dropdowns do not work unless there is a static dropdown on the page

If you have a page that has NO use of the dropdown plugin, and dynamically add a dropdown after $(document).foundation(); is called, the dropdown does not work.
If you have a page that HAS a dropdown on it, and dynamically add another, both dropdowns work.
This can be seen here:
Dynamic Only - https://codio.io/nesl247/Foundation-Testing/tests/dropdown_static_disabled.html
Dynamic and Static - https://codio.io/nesl247/Foundation-Testing/tests/dropdown_static_enabled.html
This was tested with Foundation 5.0.2's dropdown as well as my patched version with the various dropdown related pull requests I've added here. Without my patched version, the is_hover:true setting would be ignored from the data-options attribute.
The expected behavior is that any dropdowns in the document before $(document).foundation(); and any added afterwards, should be useable without having to call $(document).foundation(); again.

What is the best way to fix this in Foundation 5?


Skip data loading for middle PP ranks

Stack from ghstack (oldest at bottom):

-> #411
#358

First and last PP rank need to perform data loading to fetch matching
input_ids and labels.

as an alternative, PP could pass the 'labels' from stage 0 through
all the stages, but unless the dataloader is overburdened enough to
become the bottleneck this would likely be worse

A downside to skipping dataloading for middle ranks is added complexity
in train.py including handling metrics.

wps and mfu are derived from knowing the number of words in the batch,
which is no longer known if data loading is skipped.  This may be OK-
last rank is the most interesting one to look at logs from since it
also includes loss, and would compute MFU/WPS as well.  However, if
there are imbalances in WPS between ranks, we'd ideally have a way to
see that via the metrics.

honestly i'm not sure if we want to land this PR or not.  It is not urgent in any case, and we could do some experiments to decide whether its more critical to reduce data-loader stress or to keep compute/comms balanced per rank and ensure we avoid timeouts.  closing for now.
cc @tianyu-l @wanchaol @awgu


Russian translation

Hey, thank you for your contribution! Sorry for the late response, I was on a vacation.


Should log out or reboot after installing flatpak itself: suggest this

Apparently one should log out or perhaps restart the machine entirely after installing flatpak, otherwise various desktop integration things such as menus don't work right and apps don't show up. https://github.com/flatpak/flatpak/issues/2886 is an example here.
Describe the solution you'd like
The install-flatpak script should perhaps instruct people to sign out and back in, or maybe reboot, whichever is required.
Describe alternatives you've considered
The script could actually do the reboot, but this will make people sad.

Given people may run this in full auto mode, I think it's probably sensible to suggest users logout/in or reboot as the very last step. Not only to resolve the issue of flatpaks appearing in the menu, but also to clear the path in the current shell which may still have memory of snap application paths. If it's in the install-flatpak script, then people may not see it as it flies by along with a ton of flatpak installs.
Also, this only occurs for people who do not have flatpak already installed - which - frankly is predominantly Ubuntu users, and maybe some Arch users. No hard data to support this, but in my testing, a high number of distros have the flatpak binary already there.
So we are agreed we should do this, but only for people installing flatpak using unsnap, and only at the end, I think.


Podtail and Podalong patterns are invalid

Podtail and Podalong patterns look invalid and they do not seem to meet User Agent String best practices:
"pattern": "Mozilla\/5.0 (compatible; Podalong\/",
"pattern": "Mozilla\/5.0 (compatible; Podtail\/",

Parentheses are not matched.

Hi, Benjamin,
The parentheses aren't required to be matched. The pattern is just that - a pattern to watch for. In this case, their UAs start with the Mozilla declaration, and then their own name. Our standard is to avoid hard-coding any version numbers in the list.
In this case, they could be tightened-up to remove the Mozilla bits; I'll make a note to do that.

Ok, so these are not meant to be regexp, my bad.

I corrected UserAgentsRSSGenerate.php accordingly.

Sorry, I've confused things. They're supposed to be regexes. The parentheses here aren't supposed to be part of the regex, and they probably haven't been escaped properly?
I'm using:
$audioua=json_decode(file_get_contents('https://raw.githubusercontent.com/opawg/user-agents/master/src/user-agents.json'),true);
foreach ($audioua AS $audioapp) {
 foreach ($audioapp['user_agents'] as $pattern) {
  $pattern=str_replace('/','\/',$pattern);
  preg_match('/'.$pattern.'/',$useragent,$output);
  if (sizeof($output)>0) {
   if ($audioapp['app']<>"") {
    $uasource=$uasource.$audioapp['app'].'
(matches '.$pattern.')
';
   }
  }
 }
}

...to cycle through the list. Does that help clarify?

Then I guess we can close that issue! 🥳


Call out to replace subnet name

Added text to call out the attention on replacing the name of the subnet if not "default".

@dcaro : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@malopMSFT
Could you review the proposed changes to your article?
Thanks!

#sign-off


[menu] menu emits double click events when closeOnSelect: false

🐛 Bug report
Menu emits double click events when closeOnSelect: false, because of a technical issue, due to the following code snippet:
        onPointerUp(event) {
          const evt = getNativeEvent(event)
          if (!evt.isPrimary || disabled) return
          event.currentTarget.click()
        },

I guess this is just an oversight. There are multiple problems in this approach:

If the goal is to prevent non-left clicks, isPrimary doesn't do that according to MDN. Can use evt.button to decide if it's a left click or not.
This event handler does nothing to prevent the other onClick handler from being triggered regardless of isPrimary. I'd have expected stopPropogation or preventDefault or return false or such.
Neither stopPropogation nor preventDefault nor return false will prevent the other onClick handler from running. pointerup event apparently cannot cancel the upcoming click event.
Due to event.currentTarget.click(), click events happen twice, so onClick handlers run twice. For checkboxes, that means they are toggled twice.
This bug is only observable when closeOnSelect: false because when closeOnSelect: true, the menu is closed on the first click so it prevents the second click from happening.
It seems click event's button prop doesn't actually reflect the button that is pressed. It's always 0 even if it's a different button.

My proposal(s)
Option 1. Drop onClick handlers and rely on onPointerUp only, if it's so important to only respect left clicks.
Option 2. Drop onPointerUp handler and rely only on onClick handlers, if it's not very important to handle middle/right clicks.
Option 3. Try hard to prevent non-left clicks. Integrate onPointerUp into the state machine, in onPointerUp event check whether if evt.button === 0 and emit "LEFT_CLICK_UP" and in onClick, emit CLICK and do the proper state transition only if LEFT_CLICK_UP is followed up by a CLICK, but this still sounds naive. There are myriad of edge cases like user holding left button pressed and release it on another element etc. Why bother? Let people click with whatever button they want.
I'd pick "Option 2" for now so that the bug that completely breaks checkboxes with closeOnSelect: false is fixed, and create a followup github issue to prevent non-left clicks (which I think will not be trivial to achieve) in future.
💥 Steps to reproduce

Add closeOnSelect: false to menu-options.ts in next-ts example project.
Try clicking checkboxes.
(BONUS) Add debugger in onPointerUp and in both onClick handlers in menu.connect.ts.

Expected behavior
Checkboxes toggle.
Actual behavior
Checkboxes don't toggle.
Codesandbox
I suggest you see with your own eyes, with a debugger.
But here you go: https://codesandbox.io/s/gallant-ellis-cq0wyr?file=/src/App2.js
🌍 System information

Software
Version(s)

Zag Version
0.1.11

Browser
All

Operating System
All

We published a temporary fork with this problem fixed: https://www.npmjs.com/package/@userlike/zag-menu

Thanks for the detailed report @anilanar.
I just pushed a fix for this. We'll release an update shortly.
If the issue persists after upgrading, I'll re-open it.

I am still seeing this regardless of closeOnSelect. Here is a sandbox of the Menu docs basic example with a log statement added
https://codesandbox.io/s/wonderful-pine-y8olsp?file=/src/App.js

@frankborden There's no issue there, not how it only runs twice when you click particularly on a list item, that's because the click you attached to the ul bubbles through to the li.
And BTW what's your usecase for running a function when content is clicked?
If you want to run a method when a menu item is selected, then use the onSelect method in context, if you explicitly want to run a method when an item is clicked, then you should use mergeProps to add your onClick handler.

I see, you are right. onSelect is the way to do what I want without issue. I did not see it in the docs, but I see it in some examples like: https://github.com/chakra-ui/zag/blob/1e9306c0cab3174fd0e4d2926a773f18280eea55/examples/next-ts/pages/context-menu.tsx
Thank you for the explanation.

@anubra266 What about the reproduction in OP? That reproduction with zag deps updated to latest version still reproducible. Basically checkbox menu items cannot be toggled while closeOnSelect: false due to double click events. It's not event bubbling, the code is retriggering element.click() itself in onPointerUp.


Bad token

I've never had this issue before but I cant get to code to upload to my calculator. TI-84 Plus CE MacOS.

You need to drag'n'drop the 8xp file onto the calculator name in the sidebar, not elsewhere otherwise TI-Connect CE will try to "open" it, which it can't because it's an ASM program.

Thanks I forgot you could do that

Please close this issue if it got fixed.


Ignore vertex shader builtins by name

This should resolve #18

Do you know why this is required, though? Seems weird that it'd work fine elsewhere but fails for me :) ... or maybe that's just a Mac OpenGL driver quirk?

I tested on windows, ubuntu and mac mini
most exampes worked fine, even with software render in VMs.
Usually drivers differ a tiny bit, even for the core OpenGL spec.


Use "Minimal" version as recommended by centos

Please change this to the "minimal" version as recommended by centos.

Also, a completion report showing whats what would be helpful.

It is not recommented by centos. It is recommented by Centos Web Panel which has nothing to do with centos.org. Maybe could be good as gives some freedom to installed whatever packages you want but some others (less hardcore) may want a working build "out of the box"


Will AvionDb support multi-document atomic transactions?

Many databases have atomic transactions. That's useful because it prevents you from bringing your data into a bad state when a part of a transaction that goes over multiple document fails.
Will AvionDb support multi-document atomic transactions or will it in that regard be like MongoDb which doesn't?

@ChristianKleineidam Transactions are already in our Feature List that we are working on https://github.com/dappkit/aviondb/issues/8
If this answers your question, feel free to close this issue :wink:

The feature list isn't specific about whether the transactions in the future list will be atomic for multiple documents or not. It links to MongoDb description of Transactions and MongoDb transactions that go over multiple documents aren't atomic.

@ChristianKleineidam Good point, we should add more details to the feature list in this regard. We're planning to have transaction atomicity for multiple documents like in Firestore.

I think transaction atomicity is a very valuable feature but I don't think it's trivial to say "we'll include it". MongoDb and CouchDb have reasons for not including it.
In a database of a few terabyte and 1000s of users of the database who sync with each other in a decentralized way resolving transactions takes a lot of work.
If it would be easy to simply add transaction multi-document atomicity in MongoDb's design, MongoDb would already have done it.
I think it would be great to see discussion of tradeoffs in some design document.

Some explanation on how aviondb works under the hood in regards to operations. When a document is modified in any fashion (Whether its multiple or a single one at once). When the operation is first started, the system will search the database for the specified query. Returning a list of IDs. When the operation is broadcasted to the network it includes the operation modifier, and list of IDs to modify. This prevents conflicts of modifying all documents some of which may have not yet propagated across the entire network.
The part on preventing modification conflicts in being looked into. Something like including a StateHash in each operation can mitigate or at least detect operation conflicts.


add helm instructions to quick start

Describe the solution you'd like

add Helm repo using helm repo add eraser https://azure.github.io/eraser/charts
install helm chart

fixed in #245


Bluetooth starts and stops everytime

Hey, i checked troubleshooting and played with all the switches since 3 days. and nothing changes. i got 4 daly BMS and it reads all of them but the connection start and stop and i am a absolutly newby sometimes there are all 4 online and then one after the other is kicked out and starts new. changing parameters like sample period ....nothing makes stable.....please Help . ;-)
when u need more Data please say me . it is my first Project with Homeassistant and its little to big for me without any Help
BEGIN
File "/app/bmslib/models/daly.py", line 131, in _q
await self.client.write_gatt_char(self.UUID_TX, msg)
File "/usr/lib/python3.11/site-packages/bleak/init.py", line 659, in write_gatt_char
await self._backend.write_gatt_char(char_specifier, data, response)
File "/usr/lib/python3.11/site-packages/bleak/backends/bluezdbus/client.py", line 905, in write_gatt_char
assert_reply(reply)
File "/usr/lib/python3.11/site-packages/bleak/backends/bluezdbus/utils.py", line 22, in assert_reply
raise BleakDBusError(reply.error_name, reply.body)
bleak.exc.BleakDBusError: [org.freedesktop.DBus.Error.UnknownObject] Method "WriteValue" with signature "aya{sv}" on interface "org.bluez.GattCharacteristic1" doesn't exist
13:33:00 ERROR [sampling] battery_group1 error: can only concatenate list (not "NoneType") to list
13:33:00 INFO [sampling] battery_group1 bms debug data: missing set()
13:33:00 INFO [sampling] Bleak version 0.20.2
13:33:00 ERROR [sampling] BMS unten rechts error: [org.freedesktop.DBus.Error.UnknownObject] Method "WriteValue" with signature "aya{sv}" on interface "org.bluez.GattCharacteristic1" doesn't exist
13:33:00 INFO [sampling] BMS unten rechts bms debug data: bytearray(b'\x01@\x00\x00\x00\x00\x00x')
13:33:00 INFO [sampling] Bleak version 0.20.2
13:33:01 INFO [sampling] BMS oben rechts: BmsSampl(83.1%,U=50.2V,I=-3.50A,P=-176W,q=83.1Ah/100,mos=nan°C)
13:33:02 INFO [sampling] BMS oben rechts volt=2281,2285,2287,2284,2283,2281,2281,2277,2285,2280,2279,2288,2287,2287,2285,2289,2285,2288,2289,2286,2285,2287 temp=[24]
13:33:02 INFO [sampling] DalyBt(C6:6C:09:03:0A:83,BMS oben rechts) times: connect=0.00s fetch=1.11s
13:33:02 ERROR [sampling] BMS unten links error: [org.freedesktop.DBus.Error.UnknownObject] Method "WriteValue" with signature "aya{sv}" on interface "org.bluez.GattCharacteristic1" doesn't exist
13:33:02 INFO [sampling] BMS unten links bms debug data: bytearray(b'\x01>\x00\x00\x00\x00\x00M')
13:33:02 INFO [sampling] Bleak version 0.20.2
13:33:02 INFO [sampling] BMS oben links: BmsSampl(78.2%,U=50.2V,I=-3.60A,P=-181W,q=78.2Ah/100,mos=nan°C)
13:33:14 ERROR [sampling] BMS oben links error: timeout awaiting result 95, got 6/8 responses
13:33:14 INFO [sampling] BMS oben links bms debug data: bytearray(b'\x00\x00\x00\x00\x0e')
13:33:14 INFO [sampling] Bleak version 0.20.2
13:33:14 ERROR [main] 4 exceptions occurred fetching BMSs
13:33:14 ERROR [main] Error (num 24, max 200) reading BMS: can only concatenate list (not "NoneType") to list
13:33:14 ERROR [main] Stack: Traceback (most recent call last):
File "/app/main.py", line 37, in fetch_loop
await fn()
File "/app/main.py", line 291, in fn
raise exceptions[0]
File "/app/main.py", line 286, in fn
await t()
File "/app/bmslib/sampling.py", line 68, in call
return await self.sample()
^^^^^^^^^^^^^^^^^^^
File "/app/bmslib/sampling.py", line 96, in sample
sample = await bms.fetch()
^^^^^^^^^^^^^^^^^
File "/app/bmslib/group.py", line 63, in fetch
return self.group.fetch()
^^^^^^^^^^^^^^^^^^
File "/app/bmslib/group.py", line 31, in fetch
return sum_parallel(self.samples.values())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/bmslib/group.py", line 119, in sum_parallel
temperatures=sum((s.temperatures for s in samples), []),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: can only concatenate list (not "NoneType") to list
13:33:15 ERROR [sampling] battery_group1 error: can only concatenate list (not "NoneType") to list
13:33:15 INFO [sampling] battery_group1 bms debug data: missing set()
13:33:15 INFO [sampling] Bleak version 0.20.2
13:33:15 INFO [sampling] BMS oben links: BmsSampl(78.2%,U=50.2V,I=-2.70A,P=-136W,q=78.2Ah/100,mos=nan°C)
13:33:16 INFO [sampling] BMS oben links volt=2285,2285,2285,2284,2282,2285,2285,2285,2285,2275,2281,2280,2288,2283,2287,2281,2283,2291,2281,2285,2283,2282 temp=[24]
13:33:16 INFO [sampling] DalyBt(C6:6C:09:01:0A:27,BMS oben links) times: connect=0.00s fetch=1.26s
13:33:16 ERROR [sampling] BMS unten links error: [org.freedesktop.DBus.Error.UnknownObject] Method "WriteValue" with signature "aya{sv}" on interface "org.bluez.GattCharacteristic1" doesn't exist
13:33:16 INFO [sampling] BMS unten links bms debug data: bytearray(b'\x01>\x00\x00\x00\x00\x00M')
13:33:16 INFO [sampling] Bleak version 0.20.2
13:33:16 ERROR [sampling] BMS unten rechts error: [org.freedesktop.DBus.Error.UnknownObject] Method "WriteValue" with signature "aya{sv}" on interface "org.bluez.GattCharacteristic1" doesn't exist
13:33:16 INFO [sampling] BMS unten rechts bms debug data: bytearray(b'\x01@\x00\x00\x00\x00\x00x')
13:33:16 INFO [sampling] Bleak version 0.20.2
13:33:17 INFO [sampling] BMS oben rechts: BmsSampl(83.1%,U=50.2V,I=-3.70A,P=-186W,q=83.1Ah/100,mos=nan°C)
END

Is it always the same BMS that fails?
Try to only enable the BMS which is most unstable and see if it works for some hours

I Test with one BMS than with 2 and 3 and 4 ...everytime Same Problem ..... Today my esp8266 is comming and i Test with other i think ..... Because too mich time for me ..... Thanks

add-on option install_newer_bleak probably fixes this


trying to reset password with a token generates an error

havent had a chance to look into it but here is the error
Unhandled rejection TypeError: user.createSession is not a function
node-2 | 2016-01-08T05:08:20.783460263Z     at /usr/src/app/node_modules/superlogin/lib/routes.js:114:25
node-2 | 2016-01-08T05:08:20.783483814Z     at processImmediate [as _immediateCallback] (timers.js:383:17)
node-2 | 2016-01-08T05:08:20.783502865Z From previous event:
node-2 | 2016-01-08T05:08:20.783520506Z     at /usr/src/app/node_modules/superlogin/lib/routes.js:112:10
node-2 | 2016-01-08T05:08:20.783539709Z     at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
node-2 | 2016-01-08T05:08:20.783556118Z     at next (/usr/src/app/node_modules/express/lib/router/route.js:131:13)
node-2 | 2016-01-08T05:08:20.783571577Z     at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:112:3)
node-2 | 2016-01-08T05:08:20.783586956Z     at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
node-2 | 2016-01-08T05:08:20.783602485Z     at /usr/src/app/node_modules/express/lib/router/index.js:277:22
node-2 | 2016-01-08T05:08:20.783617911Z     at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:330:12)
node-2 | 2016-01-08T05:08:20.783633408Z     at next (/usr/src/app/node_modules/express/lib/router/index.js:271:10)
node-2 | 2016-01-08T05:08:20.783648799Z     at Function.handle (/usr/src/app/node_modules/express/lib/router/index.js:176:3)
node-2 | 2016-01-08T05:08:20.783664379Z     at router (/usr/src/app/node_modules/express/lib/router/index.js:46:12)
node-2 | 2016-01-08T05:08:20.783679645Z     at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
node-2 | 2016-01-08T05:08:20.783695292Z     at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:312:13)
node-2 | 2016-01-08T05:08:20.783710675Z     at /usr/src/app/node_modules/express/lib/router/index.js:280:7
node-2 | 2016-01-08T05:08:20.783726098Z     at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:330:12)
node-2 | 2016-01-08T05:08:20.783741798Z     at next (/usr/src/app/node_modules/express/lib/router/index.js:271:10)
node-2 | 2016-01-08T05:08:20.783757351Z     at logger (/usr/src/app/node_modules/morgan/index.js:136:5)
node-2 | 2016-01-08T05:08:20.783773602Z     at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)
node-2 | 2016-01-08T05:08:20.783794548Z     at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:312:13)
node-2 | 2016-01-08T05:08:20.783832303Z     at /usr/src/app/node_modules/express/lib/router/index.js:280:7

@raymatos sorry for taking so long to respond. I've been distracted with other projects. Let me know if you can write some simple code to reproduce this failure.

I'm closing for now. Feel free to re-open if you can provide test code to reproduce this failure.


About CPU usage during use

In the process of running this program, I found that this program takes up a lot of CPU resources and causes stuttering, while the GPU (Nvidia) occupancy rate is very low.I wonder if this is because the program only supports calling the CPU without adapting the GPU, or if there is something wrong with my computer.

Good afternoon! The program really works only on the CPU, so at 100% CPU load, the load on the graphics card will be zero. It doesn't depend on your computer's hardware or software.


Unprintable character in Package.appxmanifest sample

<rescap:Capability Name="extendedExecutionUnconstrained"/>  line has extra unprintable character at the end. If you copy and paste whole line into the appxmanifest file you will get cryptic compilation error until this character is removed.

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

ID: 4ee37beb-26fc-4eca-d48e-08b4c1563b2f
Version Independent ID: 2cf94c45-f764-78fc-f72b-ea35a09ba066
Content: Run in the background indefinitely - Windows UWP applications
Content Source: windows-apps-src/launch-resume/run-in-the-background-indefinetly.md
Product: uwp
Technology: processes-and-threading
GitHub Login: @knicholasa
Microsoft Alias: nichola

Thanks for your feedback. Could you provide the error you were seeing? I can remove the white space from the end of the lines in that example, but seeing the actual error would help me pinpoint the issue.

If you copy-paste this line then this error appears:

I re-tested it and i think there are more of these characters before first < sign:

3x "e2 80 af" after first 20 20 are unprintable and causes this error i think.

Okay, thanks for providing that information. I'll follow up with my team and update the docs as necessary.

This issue drove me crazy! Please fix it!


Input inside a Dialog that is inside AlertDialog, will not receive onChange events

Hello, I have this AlertDialog which contains a Dialog with an Input element.
Whenever I click the Input and type something, it seems that event is triggered in the parent AlertDialog and not in the Input itself.
What's the possible cause of this issue?
Please refer to the screen recording below.
screen-capture (3).webm

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


gha: Correct skipped test name in GatewayAPI

Relates: 4121a2f7814f38791f114bca9767e6787a04b5dc

/ci-gateway-api

/ci-gateway-api

/ci-gateway-api

/ci-gateway-api

/ci-gateway-api

/test


Publish 8.1-20230405210657+0000

Publish 8.1-20230405210657+0000

@bot-gradle test and merge

I've triggered a build for you.


Removing repeated title Nodueissue

NoDueSystem title above login form can be suggested to remove as it is at top of the page ,being repeated again
Kindly assign the work to me @GVishnudhasan

REMOVE THE NAVBAR ALSO, IT SHOULD DISPLAY ONLY UPON LOGIN. @PoojaKanagaraj06

@GVishnudhasan  can you pls explain once  you said "REMOVE THE NAVBAR ALSO, IT SHOULD DISPLAY ONLY UPON LOGIN"

@GVishnudhasan  how can i check it will display upon login as I dont have any login credentials

Try<EMAIL_ADDRESS>password

Okay  @GVishnudhasan password pls..

Email<EMAIL_ADDRESS>Password: password

@GVishnudhasan okay I will complete it.

@GVishnudhasan I am facing lots of error ,after debugging these errors , Successfully the nav bar isnt displaying in index page but login is becomming failed ,I am facing error on login.also i have removed the extra NoDueSystem , can you help with the issue.


Fixed tabs and 4 spaces -> 2 spaces.

Warnings

:warning:
Did you forget to update CHANGELOG.md?

  Generated by :no_entry_sign: dangerJS

🎨


Outdated Unparse instances for rules

For example, the instance for RewriteRule is missing several fields.

I propose to match function the arguments with Constructor _ _ _ ...  form more often in order to make sure that we don't forget updating the function when a struct changes. I.e. we should ask ourselves if we expect to change that function if we add a new field to the struct, and, if we do, we should match as mentioned above.

I agree, in fact that's what I did in my draft branch.


Templates come without Bundler.toml

Running the following command
swift bundler create Test --template MetalSwiftUI

results in a folder that does not contain a Bundler.toml (regardless of template choice).
As a result, doing
cd Test
swift bundler run

yields the following error
error: Failed to read the configuration file at './Bundler.toml'. Are you sure that it exists?

MacOS 14.3 (23D56)
swift-bundler v2.0.5 (according to mint, even though the latest github release is v2.0.4)
templates: up-to-date and on branch v3 (843e25997646e75b4365cb3d0f8e5dc6f7ca94bd), works perfectly on the main branch

You need to install Swift Bundler from the main branch (with mint install stackotter/swift-bundler@main), the new updated templates only affect v3 (the templates version must match the swift bundler version).

The v3 templates are compatible with the latest main branch commit, just not with the latest release (which is still v2). Sorry, I phrased my previous comment poorly.

I can confirm, the issue is resolved after switching to the main branch of swift-bundler.


Error installing Thorium Win7 Maintenance release in my old pc

The latest version of Thorium for Windows 7 right now is 109.0.5414.139. It gives me error like this in my screenshot. I tried some troubleshooting like uninstall the 109.0.5414.120 release and trying to install the 109.0.5414.139. My PC doesnt support AVX2 and AVX but SSE3 and SSE2 does. Here are my PC specs.
AMD Athlon X2 240
Nvidia Geforce 6150se Nforce 430
4GB of ram

@godwyn09
Sorry, we do not have a version of the SSE3 instruction set for this release

@gz83 We do have an SSE3 version for this! @godwyn09 > https://github.com/Alex313031/thorium-win7


add typescript definition file

Adding a typescript definition file for the package.

@LeeKatz1 Thanks, especially for responding to @PeterKottas #181 .
I'm trying to learn enough TS to test this myself :)