Have createServerAction$ default to redirecting to the calling page?

Currently you need to return/throw a redirect() from createServerAction$, even you just want to use it for an on-page event (like adding something to a to-do list, for example). Returning a redirect isn't the end of the world, but it is confusing for the default behavior to be navigating to a page with the return value of the server action. it's especially annoying because it means that pages with server actions now need to know their own paths, which I would rather not do, if possible, as it means that if I ever move/rename the route, then I need to remember to update the redirect() in that file.
Ideally createServerAction$ would be able to generate a default return (await actionFn()) ?? redirect(__source_route__); pattern, where __source_route__ is, obviously, the path to the route file. That way it behaves sensibly in the default case (reloading the same page we started on), but if we want the action to redirect somewhere else (for a login form, for example), then we still can.
I don't see any benefit for being able to direct to the JSON response page, as if you want to render a nice page on form success you should redirect() to a results route, and if you want an API you shouldn't be using createServerAction$ for it anyway.

Yeah this is actually hard to guarantee. It was the first thing I saw when making the Todo example but with JS turned off we don't have the easiest way to ensure we get the data. The referrer of the request may not be there. And we can't add custom stuff on the request without JS.
All that we could think of was rendering it into the form like an automatic hidden field so maybe that's the way to go.

An automatic hidden field would definitely work, but only if you're using the Form style of action. Calling it directly still wouldn't work... Maybe make it so that if you don't have the hidden field then it errors if you don't return/throw a Response? Or even just override the default action page renderer to show a more useful error? At least that way we could tell devs "hey, you need to return a redirect here or else things won't work as expected", rather than the current confusing "here's a JSON blob!"

An automatic hidden field would definitely work, but only if you're using the Form style of action. Calling it directly still wouldn't work...

...except that if you are able to call it directly, then JS is working and we can inject custom data no problem. 🤦

In setting up for SolidStarts next Beta Phase built on Nitro and Vinxi we are closing all PRs/Issues that will not be merged due to the system changing. If you feel your issue was closed in mistake. Feel free to re-open it after updating/testing against 0.4.x release. Thank you for your patience.

See https://github.com/solidjs/solid-start/pull/1139 for more details.


Onboard/offboard members & update process docs

Offboard @tallclair, @sfowl, @PushkarJ :clap:
Onboard @ritazh & @SaranBalaji90 :tada:
Remove references to the associate role
Update process documentation based on https://docs.google.com/document/d/18spZOZMmi9_jjaZ1z4x_WO6ykrWH2mX1O2MV_42zvvk/edit#

/hold
For final steering approval

Thank you!
/lgtm

/hold cancel
Confirmed with steering, we're good to move forward with the new process.


No Auth Provider found for name "gcp"

The plugin works if I paste a raw kubeconfig. But when I try to use one of the existing clusters in ~/.kube/config I have, it is unable to connect with the error in the title.
VSCode Version: 1.64.0
OS: Linux

Thank you for your feedback! GKE support we are planning.
You can use the command to generate kubeconfig, and then add it via the plugin
kubectl config view --minify --raw --flatten  --kubeconfig ~/.kube/config

Thanks for answering @zhangjian10, but even adding it by that way the error is still there. I will find a workaround and wait for the GKE support. Thanks again.
fyi: workaround is to use directly the kubernetes authentication bypassing the gcp auth, downloading certs and token and generating the kubeconfig.


Configue CI

consider adding:

tox
linter checking flake
formatter checking autopep

My inspiration was this yt video
Also I scanned through documentations of tox, flake8, mypy for some hints.


Cant find NPPJSONViewer.dll in the download

Please let me know if I am missing anything

https://github.com/kapilratnani/JSON-Viewer/releases/download/1.32/NPPJSONViewerWin32.zip
https://github.com/kapilratnani/JSON-Viewer/releases/download/1.32/NPPJSONViewerX64.zip
Download one of the above zip file based on your notepad++ version and extract them. I just checked the dll file is in there.

Placed NPPJSONViewer.dll from the second download link into plugin folder, but nada.... i am on NPP 7.7.1 64-bit...   do you have a .dll for this version?

Install it from the plugin manager once. They have changed the folder structure. The plugin has to be in a child directory in the plugins folder.

Also refer to this issue https://github.com/kapilratnani/JSON-Viewer/issues/52


backdrop_filter_perf_ios__timeline_summary average_vsync_transitions_missed &  99th_percentile_vsync_transitions_missed & average_vsync_transitions_missed regressions

All around this revert https://github.com/flutter/flutter/pull/58188 or the following commits. I don't see how the regression in question could have caused this, however. Perhaps it's this engine roll https://github.com/flutter/flutter/pull/58460, and the other increases are noise?
As these are small regressions, not labeling as P0, but still should be investigated.

I agree, doesn't seem like a tooling change could have affected a rendering benchmark. It's much more likely something is wrong with device or machine (native dialog?)

These have recovered and are consistently within the baseline now, so I'm going to close this.


component with created_at

related to #806, and #802
OpenaAPI and gRPC API

added createdAt timestamp to Component- data are already there in DB, they were not just propagated

Make sure to apply the same decision here as to the other (for example making the field optional)


Event listeners don't fire again after firing once

When I add the data-micron attribute to an element, the event listeners I attached to the element only fire once.

The issue has been addressed. Cheers to @benjaminviaud 🥇 ☕


Small tweaks to Storyboard

Added missing layout constraints
Dismiss keyboard interactively
Added clear button to search field

Much appreciated :-)


MAINT: stats.rv_count: revert gh-17236

Reference issue
gh-17236
What does this implement/fix?
gh-17236 introduced rv_count, a discrete analog of rv_histogram. It is really just a wrapper of the corresponding feature of rv_discrete needed to fix gh-8057. However, https://github.com/scipy/scipy/pull/17236#issuecomment-1288420090 exposed many bugs in this feature of rv_count (stemming from shortcomings of rv_discrete), so I don't think we should announce this as a new feature. Since SciPy 1.10 is branching soon, I think we need to revert so we can take our time to resolve these issues.

https://github.com/scipy/scipy/pull/17236#issuecomment-1288420090 is certainly on my TODO list. Whether I'll manage to actually work on this or not in the 1.10 timeframe remains to be see though.

Ok! I figured it would be good to have this ready to go just in case...

One thing I'd like to ask is that we make a decision here pretty soon, because we're 10 days from the branching point.
The milestone makes sense, because it sounds like we really may have a problem if we release without taking some kind of action, but if the desired solution isn't realistic within 10 days I'd obviously prefer to avoid a last minute scramble, and we're at 31 milestone PRs still!

@ev-br @mdhaber will the alternative likely be merged by Tuesday or should we proceed with reverting?

An alternative won't make it before branching, so let's revert for 1.10.0 and plan to redo this for 1.11. Thanks Matt, Tyler.


What's the easiest way to apply a patch when a partical state is retrieved from and set to store.

I hope I don't bother you with my question. If so, please simply disregard.
I'm trying to get my head around a potentially simple problem.
I'm using vuex-persistedstate with following very simple config.
plugins: [createPersistedState({
      storage: window.sessionStorage,
      paths: [
         'myModule.myState',
         'otherstuff'
       ]
    })],
...

Now I want to apply a small patch bothw when 1. the state 'myModule.myState' is stored to sessionStorage and 2. when 'myModule.myState' is retrieved. So in other words, the actual state in vuex should not be aware of the patch.
I'm not seeing from the documentation how to do this.
Thanks a lot if you can find some time to shed a light on this.

Looks like you'll need to add your own reducer method. Please take a look at the default (https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/index.js#L37).


Partial fix for VF reconstruction

SR-IOV support was not ready for any kind of Virtlet restarts, and this PR fixes 2 scenarios - reboot of whole machine and restart of Virtlet while VMs are also restarted.
There is also last scenario - restart of Virtlet while VMs are running (so pci devices are attached to VMs and should not be recovered into container namespace), so similar situation to restart VM without restart of Virtlet. That's for the moment not supported and needs further work.

This change is

Reviewed 2 of 2 files at r1.
Review status: 0 of 2 LGTMs obtained, and 1 stale

Comments from Reviewable


www.typescriptlang.org/play should have a different separator for runs logs

🔍 Search Terms
I use Typescript playground website a lot - www.typescriptlang.org/play .
I would like to differentiate between last run logs and current run logs.
These may be the 2 solutions:

There should be a different separator on right Logs pane so that user can easily differentiate between logs of multiple runs. It can be "== Run Started === " or "=======" or ..... This will user to identify and compare the output of multiple runs.
A new setting can be added that (if enabled by user) will clears the output before each run.

I have attached the output of 3 runs.

✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
A small change on www.typescriptlang.org/play .
📃 Motivating Example
Nothing
💻 Use Cases

What do you want to use this for?
What shortcomings exist with current approaches?
What workarounds are you using in the meantime?

https://github.com/microsoft/TypeScript-Website


Implement CSP soft constraints

User Story
As a developer of the CSP implementation I would like to be able to have a set of functions which represent the soft scheduling constraints that I can use to reduce the possible valid assignments of values to variables.
The five soft constraints and the approach we will use to implement them can be found here.
Acceptance Criteria

[ ] All five soft constraints from the doc are taken into account
[ ] Constraints are carefully analyzed and tested for runtime complexity
[ ] Constraint implementations are easy to understand and identify
[ ] At least one test is implemented to ensure we generate schedule that is optimized for soft constraints

Related Issues
Blocked by #35
Blocks #15
Additional Resources
Add attachments, external links, etc here.

Implemented soft constraint approach for backtracking search, as discussed with group.

Running the search repeatedly, relaxing the satisfaction threshold each time.
Sorting the professors by preference score for each course.

This approach did not work. If the highest possible satisfaction score for any one professor is very low, then this approach fails to find a solution until the threshold has been lowered far enough to permit that low satisfaction score. But then it also permits low satisfaction scores for all other professors, so the overall improvement is minimal.
However, sorting the professor by preference score was very effective.
As an alternative, implemented an optimizer based on the min-conflicts algorithm. This optimizer runs on the feasible schedule produced by the backtracking search. ie we use the backtracking search to satisfy the hard constraints, then optimize on the result.
This approach seems to work well.

When applied to the result of CSP 1, where professors were sorted by preference score, it increases the overall average enthusiasm score by ~10 points (from ~168 to ~178).
Preliminary testing indicates it also works for the num-courses-per-semester constraint.
Runtime for CSP 1 is increased to around 3 seconds on my machine.

Implemented preferred-course-day-spread soft constraint.
Again used the min-conflicts-based optimization method.
Seems to work for basic tests where a small number of professors have preferred course day spreads specified.
Still need to test with preferred course day spreads specified for all professors.
Runtime of CSP 2 is increased to around 20 seconds on my machine.
Note that in the optimization steps for both CSP 1 and CSP 2, the max number of iterations is set to 1000. However, we rarely see improvements after 500 iterations, so we can probably reduce the number of steps and cut the runtime in half.

Implemented the Hard constraint for the professors on leave and the researching professors that require a semester off
created a hard constraint for both, but pruned the CSP 1 domain to exclude the researching profs for their researching professor
The CSP 1 & 2 soft constraints are implemented and running at about 2.4 seconds and 4.6 seconds respectively
The CSP 2 soft constraint now takes into account the multiple ranges of preferred time slots for a professor.
Optimizer is set to run for 1000 iterations for CSP 1 and 2

Notes:
BE's professor input had to be edited for the following

Kui Wu had to change his semester off to SUMMER from SPRING in order to teach CSC361_spring
SIma had to change his semester off to SPRING from SUMMER in order to teach SENG440_summer


bug

Describe the bug
A clear and concise description of what the bug is.
How to reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Attachments
If applicable, add data, logs or screenshots to help explain your problem.
Environment (please complete the following information)

klaytn-dex-frontend release version that exhibits the issue
OS and its version [e.g. macOS/10.14]
Wallet and its version used [e.g. Kaikas, metamask]

Additional context
Add any other context about the problem here.

UI/UX is good and runs normally
but can't vote
even though there is a balance


Error while building Docker image: Trouble with network connection"

Steps followed : Building a docker image for the readme Docker instructions section.
The error occurs during the yarn install, and the message displayed is"There appears to be trouble with your network connection. Retrying...".

This happens when the network is too slow or the package being installed is too large, and Yarn just assumes it's a network problem. Issue solved by increasing Yarn network timeout (must be added in the dockerfile) :
RUN yarn install --network-timeout=100000
This will install the required packages with a network timeout of 100 seconds. This ensures that the package installations don't time out due to slow network connections.
A few other commands helped :
RUN npm config rm proxy
and
RUN npm config rm https-proxy to also remove the HTTP and HTTPS proxy setting from the npm configuration file in case there is one

How slow is your network connection?


Login needs progress

Slight delay when logging in, need to show this to user

Solved with SystmeDigest.


Cookbook receipe on extract event details from text

If useful, an example to illustrate how to extract event details from a message like :
Hello Kitty, my grandmother will be here , I think it's better to postpone our
appointment to review math lessons to next Friday at 2pm at the same place, 3 avenue des tanneurs,
I think that one hour will be enough
see you 😘

to
{
  "title":"Math lessons",
  "location":"3 avenue des tanneurs",
  "start":"2024-11-22T14:00:00Z"
}

Indeed, the next Friday is the 22 November, the smallest models cannot infer relative date like this example of ‘next Friday’ with precision and a real benchmark would be welcome, or maybe another approach with a function call
Btw, moving the python code in a dedicated file allow to benefit of the precommit hooks and homogenous code
In the future, it may also allow to test example dynamically gererate output to be sure that the documentation is consistant (like for the scikit learn documentation )

Thank you!


Support for Nova 1.*

Is there any technical reason why this package does not support the Nova 1.* version?

Hi @JeanPrad0 sorry for inconvenience. Unfortunately, I do test only using Nova 2.* version, so it recommend that we use Nova 2.*.

hi i'm using it with the Nova 1. *, i haven't had any problems yet. But I'm not using all the metrics

Hi @JeanPrad0 , if you dont mind, please let us know if any issue for nova 1.. Hopefully if that still universal error (can be afford when using Nova 2.), we will try to fix any issue in nova 1.*.
Meanwhile i will close this issue for now :)


Fix imagepullsecret missing on agent-side.

Signed-off-by: xuezhaojun<EMAIL_ADDRESS>Fixes: https://issues.redhat.com/browse/ACM-2520

@JakobGray Hello, Jakob, there is a miss configuration: the imagePullSecrets under proxyAgent section is only about the pull secret of the agent side, and should have nothing to do with the .Values.global.pullSecret(which is a hub side configuration).
Another example of this from server-foundation code, the pull secret of agent-side here is also a certain consistent value:
https://github.com/stolostron/multicloud-operators-foundation/blob/f8043f62d6f77dcea430b83986e7bba8f24f1821/pkg/addon/addon.go#L74
Please take a look it when you have time! Thanks!

/assign @JakobGray

/lgtm


Hello, could you please provide us with a model that can be used?

Hello, could you please provide us with a model（ctrl） that can be used?

We provide a link in ctrl_instructions.md. Has it expired?

Sorry, I am a newbie in this field. You know that, the waymo dataset is very large. In fact, I just want to use this model to see the detection and tracking effect of continuous point clouds. How can I most conveniently use the pre-training you provided? How about testing the model on point cloud data? thank you very much

If you only want to see the results, you can use the results files ('ctrl_results_in_val_and_test') in the google drive.

Thank you for your reply. In fact, I want to use my local data for inference through the pre-trained model you gave me. Can I do this?


Tactic running out of memory during Code Llama 34B build

On machines with either 8x A100-80GB or 8x H100, I'm getting many tactic out of memory issues during the build.
The tactic says it requesting 530000 MB while the GPU has 80GB, yet I only observe ~10GB in GPU memory utilization during the build.
Here is my script:
python build.py --model_dir ./Phind-CodeLlama-34B-v2 \
                --dtype bfloat16 \
                --remove_input_padding \
                --use_gpt_attention_plugin bfloat16 \
                --enable_context_fmha \
                --use_gemm_plugin bfloat16 \
                --paged_kv_cache \
                --use_parallel_embedding \
                --use_inflight_batching \
                --max_input_len 14848 \
                --max_output_len 1536 \
		--vocab_size 32000 \
                --rotary_base 1000000 \
                --output_dir ./Phind/Phind-CodeLlama-34B-v2/trt-engines/bf16/8-gpu \
                --world_size 8 \
                --tp_size 8 \
                --parallel_build

The same issue happens for much smaller input and output lens as well, which suggests that isn't the issue.
Phind-CodeLlama-34B is a standard 34B Code Llama that has been fine-tuned but is architecturally identical and is available here: https://huggingface.co/Phind/Phind-CodeLlama-34B-v2.

Are these tactic errors resulting in a less optimized model? The model is still usable but it's slower than I expected.
I also tried running with --builder_opt=5 for max optimizations but that model fails to load into the Triton backend completely

The documentation here could be improved -- I'd love to know what I can do to get the most optimized model possible @byshiue.

Hi @michaelroyzen , thanks for reporting this. In the build phase, TensorRT will try many different tactics and it’s ok if some of them fail due to OOM. It does not mean that the engine will be slower.
If the performance is not where you’d like it to be, I encourage you to share a command to reproduce the perf issue. You can use this GitHub issue or reach out directly and we’ll investigate together.
Regarding the documentation, if you have a concrete suggestion of how to improve it. It’s more than welcome. ;)
Thanks,
Julien

Thank you, Julien. I've confirmed that the engine is not slower for when the tactics don't succeed.
However, I've noticed that decoding speed is significantly slower when a large context length is submitted. I'm able to get 75 tokens per second on 8x A100-80GB throughput with a 500-token input but only 50 tokens per second with a 5000-token input. The discrepancy is even worse when running with lower TP.
Shouldn't the sampling time be similar for both sequences? Is this a paged-attention limitation? What optimizations can I make to improve long-context decoding speed? @jdemouth
Best,
Michael

Hi @michaelroyzen ,
Correct me if I'm wrong but I think the attention has more work to do when the input is longer. During the generation/decoding phase, instead of computing the dot products with 500 past K/V vectors, you have to do it with 5,000. It's 10x more memory traffic. The impact of attention will increase and affect the performance. Do you agree with that?
Regarding your other question and the difference between max_batch_size and max_num_sequences, I've posted an answer in issue 65.
Thanks,
Julien

Thank you, Julien.
I believe that longer context lengths result in a compute-bound workload as opposed to a memory-bound workload from a KV cache perspective. However, only ~160/400W per GPU are being utilized when running TP=8 on 8x A100s that have all-to-all NVLink. I suspect that there might be additional compute/memory optimizations that can be made to optimize workloads with long context lengths.

Best,
Michael

The more input tokens, the more likely the context/prompt phase will be compute bound (as we have bigger GEMMs). However, the generation/decode phase remains memory-bound as you process only one token at a time (for batch size 1) and a lot of operations are actually matrix-vector products.
Of course, if you are interested in a case where you have 5,000 input tokens and 1 output token, you are trending toward being entirely compute bound. Is that the scenario you're interested in?

I'm trying to generate 1000+ tokens with 5000+ context inputs. There's been an interesting update to FlashAttention that can parallelize the application of attentions across the KV cache activations: https://crfm.stanford.edu/2023/10/12/flashdecoding.html. Having this feature in TRT-LLM would be very helpful.

Thanks, Julien. How do I enable the multi_block_mode for Llama? It doesn't seem to be directly supported by the build script. I'd be happy to make any necessary modifications, but I'd appreciate some pointers.
As for the embedding_sharding build failures, that only happens when --use_custom_all_reduce is also enabled. The build worked without it.

Thanks Michael. Let me ask the engineer who implemented multi_block_mode about an example. And, let me talk to the other engineer who worked on custom_all_reduce regarding the crash ;)

Hi @michaelroyzen , we’ve been able to reproduce the issue with custom_all_reduce and the parallel embedding. We will work on a fix and update the main branch with that fix (and a couple of other ones) when it’s ready. Sorry about that.

Hi, @michaelroyzen, a quick way to enable multi_block_mode in Llama is adding
multi_block_mode=True

here https://github.com/NVIDIA/TensorRT-LLM/blob/release/0.5.0/tensorrt_llm/models/llama/model.py#L81. Please take a try.
We don't add the argument in current builder args and we cannot enable it directly. We will add it soon. Sorry for convenience.

Thank you @byshiue — will this work when running with the Triton backend?

Thank you @byshiue — will this work when running with the Triton backend? If not, can you please provide guidance for running multi_block_mode with Triton as well?

Yes. The model building is independing to triton serving. So, you can build the model with multi_block_mode=True first, copying the model to triton backend model folder, and launch serving.

I've followed your instructions and they don't seem to be correct @byshiue. I've added multi_block_mode=True to https://github.com/NVIDIA/TensorRT-LLM/blob/release/0.5.0/tensorrt_llm/models/llama/model.py#L81, but that file isn't even invoked during the build process: https://github.com/NVIDIA/TensorRT-LLM/blob/release/0.5.0/examples/llama/build.py.
Here is my code:
self.attention = Attention(
            hidden_size,
            num_attention_heads,
            num_kv_heads,
            max_position_embeddings,
            dtype=dtype,
            attention_mask_type=AttentionMaskType.causal,
            bias=False,
            position_embedding_type=position_embedding_type,
            rotary_embedding_base=rotary_base,
            rotary_embedding_scaling=rotary_scaling,
            tp_group=tp_group,
            tp_size=tp_size,
            use_int8_kv_cache=quant_mode.has_int8_kv_cache(),
            quant_mode=quant_mode,
            instance_id=2 * layer_id,
            multi_block_mode=True,
        )
        print("===================USING MULTI BLOCK MODE===================")

Unfortunately, it seems as though these settings are completely ignored while building the engine. I'd appreciate your further guidance.
Best,
Michael

I have checked to make sure the process would enter the https://github.com/NVIDIA/TensorRT-LLM/blob/release/0.5.0/tensorrt_llm/models/llama/model.py#L81. Do you reinstall the tensorrt-llm after changing the codes?

We also have an implicit heuristic that: even passing in multi_block_mode=True, only when the number of tokens (input + generated) > 1024, the multi-block parallelization is turned on. This is because the multi-block mode is only designed for long sequence length generation.

Thank you, I am seeing a massive ~30% speedup for longer context lengths now. I'm going to close the issue, but I'm curious why multi_block_mode=True isn't enabled by default. Given the existing heuristic for it to be enabled even if the flag is set, it seems that there aren't any tradeoffs to having it be the default.

Thanks a lot for all your efforts and the great feedback @michaelroyzen! I truly appreciate it. Long story short, @shangz-ai and I started the work on that feature few months ago (for FasterTransformer) and we never had time to properly evaluate the impact on a sufficient number of workloads. Now, that we have a first release of TensorRT-LLM (phew ;)), we will do the work needed to better characterise how performance changes with the feature and improve our heuristic for it. If we do not find cases that regress, we will probably enable it by default.

Thank you, I am seeing a massive ~30% speedup for longer context lengths now. I'm going to close the issue, but I'm curious why multi_block_mode=True isn't enabled by default. Given the existing heuristic for it to be enabled even if the flag is set, it seems that there aren't any tradeoffs to having it be the default.

Hi, @michaelroyzen , which way do you use for the multi block mode? I use GptManager interface with 4k input and 1k output, no speedpup is found.


Upgrade to node version 16

https://github.com/webfactory/ssh-agent/blob/26e485b72da53538f103f191ddd325d2f2ef3771/action.yml#L10
see https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

Same problem here!

@shawnthye-guru @Leee-xx @dghubble @bigearsenal as we're using ssh-agent ourselves, we will certainly upgrade it to node 16 in time. Of course, PRs are very welcome!

https://github.com/webfactory/ssh-agent/pull/132
Please check pr

@bigearsenal Thanks a lot! We will need some time until #132 will be merged as the maintainer of this action is currently on vacation, but I'm sure it won't take months.

Fixed in #132.


Linux build has a memory leak.

In the console window for the GTK build, a temporary buffer (char* markup_str) is not freed.
https://github.com/matyalatte/tuw/blob/ffbad1752a4312a970ca3ada555d25cbd867e219/src/string_utils.cpp#L619-L647
Problems may occur when executing commands that output tons of strings on Linux.

Fixed at #59


Support ON/OFF for SET autocommit

Signed-off-by: kuba--<EMAIL_ADDRESS>It closes https://github.com/src-d/go-mysql-server/issues/374

Related to: https://github.com/vitessio/vitess/pull/4220

Finally it compiles after upgrading vitess.

@erizocosmico - I've made ON/OFF more generic (no autocommit checks). I just added extra if
if !e.Resolved() || e.Type() != sql.Text

in transformation and looks that it works.

@ajnavarro - hmm I've rebased again and I don't see Makefile in changes.

hmm, we are testing with session columns, and that line appears that never is true: https://codecov.io/gh/src-d/go-mysql-server/compare/7f8e182c469e77663f886baa8170a5662733d185...645a95d0855995f7b623c4d4b862e835478d57e4/src/sql/analyzer/resolve_columns.go#L71

@ajnavarro - I've added many tests (even to test this particular line), but I'm not sure why this cover tool still complains.

@kuba-- I don't know if this is the case but coverage by default only counts coverage in files from the same package as the test. If that code path is used with a test from another package it's not counted.

@jfontan - I think it's not the case. I extended TestQualifyColumns to test qualifyColumns and it still complain on the same line, and everything is in the same package.


Up/down arrow keys no longer work

vim or neovim?

[x] vim (gvim actually)
[ ] neovim

Output of vim --version or nvim --version:

VIM - Vi IMproved 8.1 (2018 May 18, compiled Aug 22 2018 11:19:36)
macOS version
Included patches: 1-280
Compiled by Homebrew
Huge version with MacVim GUI.  Features included (+) or not (-):
+acl               +farsi             +mouse_sgr         -tag_any_white
+arabic            +file_in_path      -mouse_sysmouse    +tcl
+autocmd           +find_in_path      +mouse_urxvt       +termguicolors
+autochdir         +float             +mouse_xterm       +terminal
-autoservername    +folding           +multi_byte        +terminfo
+balloon_eval      -footer            +multi_lang        +termresponse
+balloon_eval_term +fork()            -mzscheme          +textobjects
+browse            +fullscreen        +netbeans_intg     +timers
++builtin_terms    -gettext           +num64             +title
+byte_offset       -hangul_input      +odbeditor         +toolbar
+channel           +iconv             +packages          +transparency
+cindent           +insert_expand     +path_extra        +user_commands
+clientserver      +job               +perl              +vartabs
+clipboard         +jumplist          +persistent_undo   +vertsplit
+cmdline_compl     +keymap            +postscript        +virtualedit
+cmdline_hist      +lambda            +printer           +visual
+cmdline_info      +langmap           +profile           +visualextra
+comments          +libcall           -python            +viminfo
+conceal           +linebreak         +python3           +vreplace
+cryptv            +lispindent        +quickfix          +wildignore
+cscope            +listcmds          +reltime           +wildmenu
+cursorbind        +localmap          +rightleft         +windows
+cursorshape       -lua               +ruby              +writebackup
+dialog_con_gui    +menu              +scrollbind        -X11
+diff              +mksession         +signs             -xfontset
+digraphs          +modify_fname      +smartindent       +xim
+dnd               +mouse             +startuptime       -xpm
-ebcdic            +mouseshape        +statusline        -xsmp
+emacs_tags        +mouse_dec         -sun_workshop      -xterm_clipboard
+eval              -mouse_gpm         +syntax            -xterm_save
+ex_extra          -mouse_jsbterm     +tag_binary
+extra_search      +mouse_netterm     +tag_old_static
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe  -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L.             -L /BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.Internal.sdk/usr/local/libressl/lib -L/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.Internal.sdk/usr/local/lib -L.             -L /BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.Internal.sdk/usr/local/libressl/lib -L/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.Internal.sdk/usr/local/lib  -L/usr/local/lib -o Vim -framework Cocoa -framework Carbon       -lm  -lncurses -liconv -framework AppKit   -fstack-protector  -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -lperl  -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation -F/System/Library/Frameworks -framework Tcl -framework CoreFoundation -framework Ruby

Output of :echo has("python"): 0
Output of :echo has("python3"): 1
Output of :echo &pythondll(only vim, not neovim): ""
Output of :echo &pythonthreedll(only vim, not neovim): ""
Output of :py print(sys.version): N/A
Output of :py3 print(sys.version):

3.7.0 (default, Jul 23 2018, 20:22:55)
[Clang 9.1.0 (clang-9<IP_ADDRESS>)]

Operating system:

[ ] Linux
[x] Mac OS X
[ ] Windows
[ ] Etc.

Configurations related to LeaderF in vimrc: None

Describe your question, feature request, or bug.
I updated to the latest version of LeaderF and now arrow keys no longer work when I hit <Leader>F or <Leader>B. Also, maybe not linked to this problem, the option changed to "FullPath" after the upgrade. I managed to make it back to "NameOnly".
Steps to reproduce
Get the latest LeaderF on mac?
Actual behaviour
Up/down arrows don't work in the LeaderF pane.
Expected behaviour
Up/down arrows should change the highlighted line in the LeaderF pane.

Duplicate of issue #236.


⚠ Samsung has degraded performance

In 114110f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2304 ms

Resolved: Samsung performance has improved in fcfe480.


doesn't work with latest version of express

your unit tests all fail and when i install as said, I get :  Can't set headers after they are sent.
thank you.

The top-level package.json shows a dependency on express-1.x.
The test deployment has a dependency on express-2.5.4.
I have  attempted to run it with node-0.10.33 and express-3.0.6,
and I keep getting the error:
"Can't render headers after they are sent to the client"
I have added logging statements inside the route handler, and they are not getting executed.
Also, when executing other non-rpc routes that were working heretofore, I get the same error. So, it would appear that this module is not compatible with express >= 3.x.
I was attracted to this module because of its simplicity, but alas, it does not seem that it supports express >= 3.x at this time.

Is this still an open issue or has this been fixed?


cli: line break between error and usage

Part of the de-clutter CLI implementation: https://github.com/dagger/dagger/issues/6943#issuecomment-2021310987.
When querying dagger call --help and dagger functions --help without being in a module or for an inexistant function, an error is being raised.
This commit adds a newline between the usage and the error, as it was hard to distinct between them
Example:
./dagger -m . functions toto --help
✔ initialize 41.2s

Error: no function 'toto' in object type 'Dagger'

Err... seems like this has been fixed in v0.11 actually, with the change in TUI and the move from progrock to open telemetry!
❯  ./dagger-0.10.3 call toto --help
✔ initialize 6.3s
  ✔ Module.initialize: Module! 0.6s
    ✔ exec /runtime 0.2s
Error: unknown command "toto" for "dagger call"

❯ ./dagger-0.11.0 -vv call toto --help
✔ connect 1.0s
  ✔ starting session 0.2s
  ┃ OK!
✔ initialize 0.5s
  ✔ Module.initialize: Module! 0.1s

Error: unknown command "toto" for "dagger call"

I increased verbosity to more closely match the previous version. No difference with the change in this PR though:
❯ dagger-dev call toto --help
✔ initialize 2.0s

Error: unknown command "toto" for "dagger call"

If you agree, this can be closed 🙂

Correct ✅ 🙏

@helderco I found one case where this is still not true: on all commands where ExactArgs is set.
E.g.
Args:    cobra.ExactArgs(1),

Example:
./dagger install
Error: accepts 1 arg(s), received 0
USAGE
  dagger install [flags] MODULE

ALIASES
  install, use

EXAMPLES
dagger install github.com/shykes/daggerverse/ttlsh@16e40ec244966e55e36a13cb6e1ff8023e1e1473

FLAGS
  -m, --mod string    Path to dagger.json config file for the module or a directory
                      containing that file. Either local path (e.g. "/path/to/some/dir") or
                      a github repo (e.g. "github.com/dagger/dagger/path/to/some/subdir")
  -n, --name string   Name to use for the dependency in the module. Defaults to the name of
                      the module being installed.

GLOBAL FLAGS
  -d, --debug             show debug logs and full verbosity
      --progress string   progress output format (auto, plain, tty) (default "auto")
  -s, --silent            disable terminal UI and progress output
  -v, --verbose count     increase verbosity (use -vv or -vvv for more)

Is it ok as is and not worth unifying ?

That's actually Cobra's default. Compare with:
$ cobra --invalid
Error: unknown flag: --invalid
Usage:
  cobra [command]

So our change in the headings makes it stand out a bit more, maybe:

$ dagger install
Error: accepts 1 arg(s), received 0
USAGE
  dagger install [flags] MODULE

It's still worthwhile to add that new line, but it'll take a larger change.
Technical details
The reason you're seeing it with ExactArgs is because argument validation happens before running cmd.Run. More specifically, it’s before PersistentPreRunE, which disables showing the usage on an error:
https://github.com/dagger/dagger/blob/90de6b62df7727da3a401826a20bfa80b8a53ac9/cmd/dagger/main.go#L103-L105
It’s the same with flag parsing:
dagger install --toto

When the usage is not silenced on errors, Cobra prints the error to  stderr and then the usage to stdout.
// If root command has SilenceErrors flagged,
// all subcommands should respect it
if !cmd.SilenceErrors && !c.SilenceErrors {
    c.PrintErrln(cmd.ErrPrefix(), err.Error())
}

// If root command has SilenceUsage flagged,
// all subcommands should respect it
if !cmd.SilenceUsage && !c.SilenceUsage {
    c.Println(cmd.UsageString())
}

You can’t get in the middle of that without a global SilenceUsage: true and printing the error ourselves, which is what we need to do.
But I’m already thinking on making changes that’ll affect this code anyway. I think we should show a more slimmed down version of the usage when there’s an error, versus when you’re asking for --help. So fixing this newline could be done at that time as well.
Also, as soon as we've hid PersistentPreRunE, there's no more usage, so it's not very consistent. We need to figure that out as well, but can be a separate issue.
In any case, it’s not the solution presented in this PR, so let’s just open a new one rather than re-open.


Unclear about how to run this tool.  Need help.

UDMPro running UniFi OS Version 1.10.0
IP Address: <IP_ADDRESS>
Ubuntu 18.04 on a standalone box at <IP_ADDRESS>.
The current Readme suggests that I run:
docker run --volume /path/on/host/machine:/downloads unifitoolbox/protect-archiver --help
There's no mention of python commands like all of the forum discussions that I've combed through.  This, and one other thing confuses me.
I don't know what /path/on/host/machine:/downloads refers to.  It mentions an absolute path to my downloads folder but this is confusing.  Are we talking about where I cloned the git repo...i.e. the place I downloaded the repo, or are we talking about something else here?
Stuck.  Thanks.

Update.
I've managed to install docker in Ubuntu 18.04 and I figured out how to decipher a relatively cryptic command line format to begin transferring files...however...
Here is an example of what I'm seeing in terminal:
Downloading video for time range 2021-04-11 15:00:00 - 2021-04-11 15:59:59 to /tmp/2021/04/11/BabyCam1 (0422)/BabyCam1 (0422) - 2021-04-11 - 15.00.00.mp4
Download successful after 0s (1.4 mb, 5.26 mbps)
Downloading video for time range 2021-04-11 16:00:00 - 2021-04-11 16:59:59 to /tmp/2021/04/11/BabyCam1 (0422)/BabyCam1 (0422) - 2021-04-11 - 16.00.00.mp4
Download successful after 2s (28.3 mb, 14.06 mbps)
Downloading video for time range 2021-04-11 17:00:00 - 2021-04-11 17:59:59 to /tmp/2021/04/11/BabyCam1 (0422)/BabyCam1 (0422) - 2021-04-11 - 17.00.00.mp4
Download successful after 0s (13.67 mb, 15.34 mbps)

My intended result was to have the files downloaded to my Ubuntu box in the /tmp folder.  What's actually happening is there's a mass of mp4 files being created ON the UDMPro in the /srv/unifi-protect/video folder.
In addition, the files that are being created are names as such:
101999169 Jul 27 21:48 74ACB99F7503_0_1617811200000_1617814799000.mp4
-rw-r-----    1 903<PHONE_NUMBER> Jul 27 21:48 74ACB99F7503_0_1617850800000_1617854399000.mp4
-rw-r-----    1 903<PHONE_NUMBER>1 Jul 27 21:50 74ACB99F7503_0_1617908400000_1617911999000.mp4
-rw-r-----    1 903<PHONE_NUMBER> Jul 27 21:50 74ACB99F7503_0_1617915600000_1617919199000.mp4

And they seem to be a collection of the segments that are being identified in the script that is currently running.
How do I write my command line so the files are actually transferred from the UDMPro during the script run to the Ubuntu box?

Hi @arretx – sorry for the late reply!
There are two ways of using this tool – the "easy" way by using the pre-configured Docker image, and the slightly more complicated way of using the Python script directly. Let me know if you're interested in the details and I'll summarize them for you.
For the Docker image the command works as follows:

docker run is quite self-explanatory
--volume /path/on/host/machine:/downloads is a volume mapping of the directory /downloads within the Docker container to directory /path/on/host/machine (i.e. your desired target download directory) on the machine running Docker
unifitoolbox/protect-archiver lets Docker know which image from the Hub you want to run; in this case our tool
--help (or anything else in its place) are the arguments passed to the tool inside the container

This means that if you, for example, want to download video clips, you'd use:
docker run --volume /path/on/host/machine:/downloads unifitoolbox/protect-archiver download [OPTIONS] /downloads

/downloads may not be changed, otherwise the container volume mapping doesn't work and the files end up somewhere within the container's filesystem rather than on your host machine's disk
/path/on/host/machine needs to be changed to your desired target directory, in your case it should look like this: /tmp:/downloads, this maps your machine's /tmp to the container's download folder
download means that we want to use the downloader tool of this project
[OPTIONS] must be replaced with the options to instruct the downloader where to look and what to do, as documented here: https://github.com/unifi-toolbox/unifi-protect-video-downloader/wiki/Usage-(v2.x)#protect-archiver-download

The files on the UDM Pro you're seeing are what their system generates automatically when a video is requested via the API, which is exactly what the tool does. However, these files are temporary and you don't need to use/view/interact with/download them. The tool does that automatically and after a while they'll disappear from the UDM's disk on their own. The idea behind this tool is to automate the whole process of reading, exporting and transferring the clips. You don't need to SSH into the UDM for any of this.
TL;DR: your final command line, based on what you've described, should be (on your Ubuntu box):
docker run --volume /tmp:/downloads unifitoolbox/protect-archiver download --address <IP_ADDRESS> --username="name-of-your-local-UDM-user" --password="yourpassword" --use-subfolders --start="2021-08-01 01:00:00" --end="2021-08-01 07:00:00" /downloads
This command will download the recordings of all cameras for Aug. 1st between 1am and 7am, split into 1h long files, organized in subfolders by date, time and camera to your Ubuntu machine's /tmp directory.
I hope this answers most of your questions!
Let me know if you need any additional help, for example with selecting only specific cameras for download...

Thanks for the details.  There's one thing that I've discovered through
this script.  MP4 files aren't compatible with Davinci Resolve, so I can't
import them to use them in the NLE.  I can play them natively in OSX.
Also, after I figured out the command line I needed, I discovered that the
folder I was designating in the command line was actually buried in the
docker data files, which posed an even bigger problem, which was partition
space on my root partition.  I quickly ate the entire partition up and then
reconfigured docker to exist on a much larger volume, which solved that
problem.
The next piece is figuring out the timing so I can have the UDMP
automatically delete videos older than a specific date, but make sure that
every day, newly created files are transferred.
Thanks for the help!
On Sun, Aug 1, 2021 at 4:44 AM Daniel Fernau @.***>
wrote:

Hi @arretx https://github.com/arretx – sorry for the late reply!
There are two ways of using this tool – the "easy" way by using the
pre-configured Docker image, and the slightly more complicated way of using
the Python script directly. Let me know if you're interested in the details
and I'll summarize them for you.
For the Docker image the command works as follows:

docker run is quite self-explanatory
--volume /path/on/host/machine:/downloads is a volume mapping of the
directory /downloads within the Docker container to directory
/path/on/host/machine (i.e. your desired target download directory) on
the machine running Docker
unifitoolbox/protect-archiver lets Docker know which image from the
Hub you want to run; in this case our tool
--help (or anything else in its place) are the arguments passed to
the tool inside the container

This means that if you, for example, want to download video clips, you'd
use:
docker run --volume /path/on/host/machine:/downloads
unifitoolbox/protect-archiver download [OPTIONS] /downloads

/downloads may not be changed, otherwise the container volume
mapping doesn't work and the files end up somewhere within the container's
filesystem rather than on your host machine's disk
/path/on/host/machine needs to be changed to your desired target
directory, in your case it should look like this: /tmp:/downloads,
this maps your machine's /tmp to the container's download folder
download means that we want to use the downloader tool of this
project
[OPTIONS] must be replaced with the options to instruct the
downloader where to look and what to do, as documented here:
https://github.com/unifi-toolbox/unifi-protect-video-downloader/wiki/Usage-(v2.x)#protect-archiver-download

The files on the UDM Pro you're seeing are what their system generates
automatically when a video is requested via the API, which is exactly what
the tool does. However, these files are temporary and you don't need to
use/view/interact with/download them. The tool does that automatically and
after a while they'll disappear from the UDM's disk on their own. The idea
behind this tool is to automate the whole process of reading, exporting and
transferring the clips. You don't need to SSH into the UDM for any of this.
TL;DR: your final command line, based on what you've described, should
be (on your Ubuntu box):
docker run --volume /tmp:/downloads unifitoolbox/protect-archiver download
--address <IP_ADDRESS> --username="name-of-your-local-UDM-user"
--password="yourpassword" --use-subfolders --start="2021-08-01 01:00:00"
--end="2021-08-01 07:00:00" /downloads
This command will download the recordings of all cameras for Aug. 1st
between 1am and 7am, split into 1h long files, organized in subfolders by
date, time and camera to your Ubuntu machine's /tmp directory.
I hope this answers most of your questions!
Let me know if you need any additional help, for example with selecting
only specific cameras for download...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/unifi-toolbox/unifi-protect-video-downloader/issues/59#issuecomment-890504379,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHURKUUQM5AZJBAWNYG3JWTT2UXSJANCNFSM5BDQCTBA
.

--
[image: photo]
Jon Griffith
REALTOR®, HomeSmart
480-463-4062 | @.***
http://realtor.jongriffith.com
10601 N. Hayden Road, Suite I-100 | @RealScottsdale
http://facebook.com/realscottsdaleliving
http://twitter.com/realscottsdale
http://www.youtube.com/realscottsdaleliving
https://www.linkedin.com/in/jonathangriffith
Create your own email signature
https://www.wisestamp.com/create-own-signature/?utm_source=promotion&utm_medium=signature&utm_campaign=create_your_own&srcid=

You're welcome! Glad you were able to get most things figured out so far. I'm using DaVinci Resolve myself from time to time – but haven't tried it in combination with files exported from UniFi Protect...
My solution to the storage problem is a NFS share mounted to /mnt/protect inside the VM and pointing the tool's output to that directory. Works well but needs a fast network and storage server. Your solution moving it to a larger partition also works, of course.
As for auto-exporting recordings to my archive I'm using a Cron Task which downloads the past 24h at midnight every day. However, I've decided against using Protect's auto-deletion feature and just let it do that on its own whenever the disk becomes full.
Closing this issue for now – but feel free to re-open it or reach out again in the future if you have any additional questions!

Can you share your cronjob command so I can adapt it to fit my server?  I
run a Truenas box as my storage server and I use Lightroom Classic to
catalog my media, so I can dial it in to be pretty automated.  The worst
part is the video file conversion.  The hour-long videos take forever to
convert from mp4 to *.mov, and they grow in size quite a bit when that
happens.
I think I'll set the auto-deletion to 180 days or something like that to
ensure that I have plenty of time to ensure I've downloaded the files.
Thanks for your help ;).  Great tool.
On Sun, Aug 8, 2021 at 1:49 PM Daniel Fernau @.***>
wrote:

You're welcome! Glad you were able to get most things figured out so far.
I'm using DaVinci Resolve myself from time to time – but haven't tried it
in combination with files exported from UniFi Protect...
My solution to the storage problem is a NFS share mounted to /mnt/protect
inside the VM and pointing the tool's output to that directory. Works well
but needs a fast network and storage server. Your solution moving it to a
larger partition also works, of course.
As for auto-exporting recordings to my archive I'm using a Cron Task which
downloads the past 24h at midnight every day. However, I've decided against
using Protect's auto-deletion feature and just let it do that on its own
whenever the disk becomes full.
Closing this issue for now – but feel free to re-open it or reach out
again in the future if you have any additional questions!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/unifi-toolbox/unifi-protect-video-downloader/issues/59#issuecomment-894853289,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHURKUXIC7C5PYUYU3VCAWLT33UUXANCNFSM5BDQCTBA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
[image: photo]
Jon Griffith
REALTOR®, HomeSmart
480-463-4062 | @.***
http://realtor.jongriffith.com
10601 N. Hayden Road, Suite I-100 | @RealScottsdale
http://facebook.com/realscottsdaleliving
http://twitter.com/realscottsdale
http://www.youtube.com/realscottsdaleliving
https://www.linkedin.com/in/jonathangriffith
Create your own email signature
https://www.wisestamp.com/create-own-signature/?utm_source=promotion&utm_medium=signature&utm_campaign=create_your_own&srcid=

Sure, here's a crontab line that uses a rolling date/time frame within the command itself:
0 0 * * * /usr/bin/docker run --volume /tmp:/downloads unifitoolbox/protect-archiver download --address=\"<IP_ADDRESS>\" --username=\"name-of-your-local-UDM-user\" --password=\"yourpassword\" --use-subfolders --start=\""$(date --date="-1 day" "+%F") 00:00:00"\" --end=\""$(date --date="-1 day" "+%F") 23:59:59"\" /downloads >/dev/null 2>&1
Depending on how your specific Linux setup handles all these quotes and inline commands, there might be small changes necessary. If the example above doesn't work for you just let me know and I'll try to modify the syntax a bit.
But the general idea behind this bunch of seemingly random characters is that every time the job runs it uses the 'current yesterday' for the start and end parameters so that the correct files will be downloaded. 😄
By the way, here's a great tool that saves a lot of time building crontab lines: https://crontab-generator.org/
Yeah, video file compression can be quite annoying to deal with sometimes. Too bad that you can't import it natively into the NLE; that would save a lot of extra steps and time...
You're welcome – glad to hear that you like it!

Thanks for this!  I'll have to take some time to adapt it to mine and
figure it out.  ;).
I actually started using Zoneminder on my NAS which writes directly to my
shares in MP4 format and I'm getting the final product via RTSP rather than
having to rely on Unifi's system...
...mostly this is because Ubiquiti is so short stocked on any of their
cameras and I can't find any others and need *something! *
Thanks for the info...
On Thu, Aug 12, 2021 at 1:33 PM Daniel Fernau @.***>
wrote:

Sure, here's a crontab line that uses a rolling date/time frame within the
command itself:
0 0 * * * /usr/bin/docker run --volume /tmp:/downloads unifitoolbox/protect-archiver download --address="<IP_ADDRESS>" --username="name-of-your-local-UDM-user" --password="yourpassword" --use-subfolders --start=""$(date --date="-1 day" "+%F") 00:00:00"" --end=""$(date --date="-1 day" "+%F") 23:59:59"" /downloads >/dev/null 2>&1
Depending on how your specific Linux setup handles all these quotes and
inline commands, there might be small changes necessary. If the example
above doesn't work for you just let me know and I'll try to modify the
syntax a bit.
But the general idea behind this bunch of seemingly random characters is
that every time the job runs it uses the 'current yesterday' for the start
and end parameters so that the correct files will be downloaded. 😄
By the way, here's a great tool that saves a lot of time building crontab
lines: https://crontab-generator.org/
Yeah, video file compression can be quite annoying to deal with sometimes.
Too bad that you can't import it natively into the NLE; that would save a
lot of extra steps and time...
You're welcome – glad to hear that you like it!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/unifi-toolbox/unifi-protect-video-downloader/issues/59#issuecomment-897949011,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHURKUUJPD7E335CJ674N3TT4QV27ANCNFSM5BDQCTBA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

--
[image: photo]
Jon Griffith
REALTOR®, HomeSmart
480-463-4062 | @.***
http://realtor.jongriffith.com
10601 N. Hayden Road, Suite I-100 | @RealScottsdale
http://facebook.com/realscottsdaleliving
http://twitter.com/realscottsdale
http://www.youtube.com/realscottsdaleliving
https://www.linkedin.com/in/jonathangriffith
Create your own email signature
https://www.wisestamp.com/create-own-signature/?utm_source=promotion&utm_medium=signature&utm_campaign=create_your_own&srcid=

is it possible to run the docker image directly on the unifi dreammachine pro? i managed to download it from docker. (kind of sad if not.) but i always get errors when trying to run a command.

@thx4-jh Theoretically, yes, that should be possible. Everything the tool needs is included with the container and it does not really depend on anything on the host-side. For somewhat persistent storage on the UDMP you can create a directory within /overlay/root_ro/mnt/data_ext/, if I remember correctly, and map the Docker volume(s) there.
But I have neither tried nor verified that the tool works directly on the UDMP.
I'd always recommend to run it on a separate machine, preferably the one you use to store the exported files on.
Could you provide a short summary of the errors you're getting?


Verify signature

Okay, so it's easy to verify the signature using the public key (SecKeyRef / SecKey) reference retreived from security framework. I want to eat my own dogfood and verify the signature using the public key hex string. Any ideas how I can do that?

Example
            let valid = verify(signature: "MEQCIDupp6WmfmLPEOrd1xEgAP6wX7Qkpsi7eRUKumw2sJ3AAiAL5YGzuWFWD2FrjLCwuLKx4den9C2ZdpnhzxLVLauqcw==",
                               publicKey: createKeyRef("BMD7LUJ/1DqB90hoASaTSEU1mcAI80O6XxOg8z2GqzJXJDSd7k/N9LjVl74EV2L77gmgFOTTXqT5ULvCdxtAnu8="),
                               input: "aaa")

Allright, I'm able to
    @available(iOS 10.0, *)
    func createPublicKey(from string: String) throws -> SecureEnclaveKeyReference {
        let params: [String: Any] = [
            kSecAttrKeyType as String: attrKeyTypeEllipticCurve,
            kSecAttrKeySizeInBits as String: 256,
            kSecAttrKeyClass as String: kSecAttrKeyClassPublic,
            ]
        let data = Data(base64Encoded: string)! as CFData
        var error: Unmanaged<CFError>? = nil
        guard let key = SecKeyCreateWithData(data, params as CFDictionary, &error) else {
            throw SecureEnclaveHelperError(message: "bad", osStatus: 0)
        }
        return SecureEnclaveKeyReference(key)
    }

I'll open a pull request on this in near future

@withzombies do you know how I can do the reverse of what's key_builder.rb is doing?

I think you need to use SecCertificateCreateWithData on the base64 decoded public key. Then use SecCertificateCopyPublicKey to extract the public key as a SecKey. Then you can use the SecKeyRawVerify function.

Awesome! I'll try that tomorrow.

I think I managed to import the key at some point, but I found it easier to just verify the signature with openssl CLI. E.g.
/usr/local/opt/openssl/bin/openssl dgst -sha256 -verify key.pem -signature signature.dat dataToSign.dat

Hi @hfossli
I am currently struggling with verify a signature generated in security framework with openssl. Good you to know you're able to verify the signature in openssl.
Do you have any pointers that could help?

Yep! I have some unpublished code for that! I'll try to publish this on a branch today.

Can you btw share your failing code example?

I don't know what issue you are facing.
Maybe you find one of these helpful

Secure-ES256.zip
https://github.com/agens-no/EllipticCurveKeyPair

I recently encountered some issues with signatures and you may want to export them in a another binary format –for that issue have a look at EllipticCurveKeyPair.swift:388 in the zip file
        // https://crypto.stackexchange.com/a/1797
        // FIXME: R and S encoding issues https://github.com/IBM-Swift/BlueECC/blob/2c4ea97307b28c1338689b4f7a4391a14c0610a4/Sources/CryptorECC/ECSignature.swift#L120
        static func encodeAsn1(_ bytes: Data) -> Data {
            let (r, s) = split(bytes)
            var asn1 = Data()
            asn1.append(0x30)
            asn1.append(UInt8(2 + r.count + 2 + s.count))
            asn1.append(0x02)
            asn1.append(UInt8(r.count))
            asn1.append(r)
            asn1.append(0x02)
            asn1.append(UInt8(s.count))
            asn1.append(s)
            return asn1
        }

sure...
here's the part that does the signing:
let privateKey: SecKey = retrieveKey(SCK_TAG)
       let algorithm: SecKeyAlgorithm = .ecdsaSignatureMessageX962SHA256

       guard SecKeyIsAlgorithmSupported(privateKey, .sign, algorithm) else {
           fatalError("signing algorithm not supported")
       }

       let dataToSign = sadJson.data(using: .utf8)
       var error: Unmanaged<CFError>?
       guard let signature = SecKeyCreateSignature(privateKey, algorithm, dataToSign! as CFData, &error) as Data? else {
           return ""
       }

       return signature.base64EncodedString()

Either the exported public key is in a bad format or the signature is in a bad format or both.

How do you export the public key?

this is how the key is exported:
func exportECPublicKeyToPEM(_ rawPublicKeyBytes: Data, keyType: String, keySize: Int) -> String {
        return PEMKeyFromDERKey(exportECPublicKeyToDER(rawPublicKeyBytes, keyType: keyType, keySize: keySize))
    }

    /**
     * This method transforms a DER encoded key to PEM format. It gets a Base64 representation of
     * the key and then splits this base64 string in 64 character chunks. Then it wraps it in
     * BEGIN and END key tags.
     */
    func PEMKeyFromDERKey(_ data: Data) -> String {
        // base64 encode the result
        let base64EncodedString = data.base64EncodedString(options: [])

        // split in lines of 64 characters.
        var currentLine = ""
        var resultString = kCryptoExportImportManagerPublicKeyInitialTag
        var charCount = 0
        for character in base64EncodedString {
            charCount += 1
            currentLine.append(character)
            if charCount == kCryptoExportImportManagerPublicNumberOfCharactersInALine {
                resultString += currentLine + "\n"
                charCount = 0
                currentLine = ""
            }
        }
        // final line (if any)
        if currentLine.count > 0 { resultString += currentLine + "\n" }
        // final tag
        resultString += kCryptoExportImportManagerPublicKeyFinalTag
        return resultString
    }

func exportECPublicKeyToDER(_ rawPublicKeyBytes: Data, keyType: String, keySize: Int) -> Data {
        print("Exporting EC raw key: \(rawPublicKeyBytes)")
        // first retrieve the header with the OID for the proper key  curve.
        let curveOIDHeader: [UInt8]
        let curveOIDHeaderLen: Int
        switch (keySize) {
        case kCryptoExportImportManagerSecp256r1CurveLen:
            curveOIDHeader = kCryptoExportImportManagerSecp256r1header
            curveOIDHeaderLen = kCryptoExportImportManagerSecp256r1headerLen
        case kCryptoExportImportManagerSecp384r1CurveLen:
            curveOIDHeader = kCryptoExportImportManagerSecp384r1header
            curveOIDHeaderLen = kCryptoExportImportManagerSecp384r1headerLen
        case kCryptoExportImportManagerSecp521r1CurveLen:
            curveOIDHeader = kCryptoExportImportManagerSecp521r1header
            curveOIDHeaderLen = kCryptoExportImportManagerSecp521r1headerLen
        default:
            curveOIDHeader = []
            curveOIDHeaderLen = 0
        }
        var data = Data(bytes: curveOIDHeader, count: curveOIDHeaderLen)

        // now add the raw data from the retrieved public key
        data.append(rawPublicKeyBytes)
        return data
    }

If you have a look at the zip file I sent you then you will find React Native bindings. Tested and works on openssl and other envs like node.

I'm not sure where your problem resides

Is this in ES256ReactNativeBridge.swift ?


Reset highlighting after viewport change

If window with preview is being resized highlighting looks inaccurate
https://user-images.githubusercontent.com/3295727/133425445-dfe6be6e-54ca-4e17-a6e2-8eef1e071c88.mov

Fixed in version 1.0.1


fix(gui-client/windows): allow GUI to run as admin again

Closes #6305 too
I couldn't find the ticket for this so I'm not sure which customers are affected.

It partially reverts #6176, only affecting Windows. Linux will still get an error in stdout/stderr if you launch the GUI with sudo.
It also throws an error if the IPC service tries to run as a normal user, since it won't be able to control DNS.
Wasn't there one customer who ran into this issue before Thomas did?

And yeah judging from the dates, that did go into 1.1.10

Wasn't there one customer who ran into this issue before Thomas did?

Yeah - https://firezonehq.slack.com/archives/C07CL0LSSV8/p1723170052319419


Remove unused LinuxMain.swift and WindowsMain.swift

These files are no longer needed, as swift test enables test discovery by default.

@swift-ci test


ROCANA-2256 Format PDH errors

Instead of printing a hex code, we get the error string where possible.

LGTM. Question about error types isn't necessary but something to think about.


WASD for panning not working on alternate keyboard layouts

Perfetto should use https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code for the WASD input, otherwise keyboard layouts like the French keyboard, Dvorak, Colemak, etc. won't work correctly.

Ah TIL. I think you are right.
@chromy can you pass this to Steve (Can't find his github handle right now)

Hi @stefnotch, thanks for raising this! A fix for this should have landed on master & autopush channel.
See https://github.com/google/perfetto/commit/383bc717a4205c7e9e2b1811e6d00bc54f6a9d8d#diff-b4cf04584032ecdcf316dab4ff1baf6a1d0ec1dafc61cc1a8b5ec5daabbfb917
This fix also updates the glyphs on the "Keyboard Shortcuts" page based on the user's current keyboard layout (falling back to QWERTY on browsers that don't support keyboard.getLayoutMap()).
Closing for now, feel free to re-open if you have any issues.


Add smb backend

What does this PR change? What problem does it solve?

Adds SMB as a new storage backend in restic. Currently for backing up to SMB, it has to be mounted on the OS or rclone needs to be used. With this change it will be possible to specify SMB details and restic will directly make SMB connections to do the backups.
Was the change previously discussed in an issue or on the forum?

Closes https://github.com/restic/restic/issues/4185
Checklist

[x] I have read the contribution guidelines.
[x] I have enabled maintainer edits.
[ ] I have added tests for all code changes.
[x] I have added documentation for relevant changes (in the manual).
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (see template).
[x] I have run gofmt on the code in all commits.
[x] All commit messages are formatted in the same style as the other commits in the repo.
[x] I'm done! This pull request is ready for review.

I have hardcoded smb credentials as it runs as a local test by installing samba on linux and creating an SMBShare for windows. MacOS smb test set up is pending.
Seems to be some issue with the tests, I will fix them and update.

Parts of this code have been copied from rclone. That means the rclone license should appear somewhere in it:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.


Docs: Revise template creation manual

Context
Prepare our template creation docs for the next batch of templates.
Summary
Update template creation docs with a step-by-step guide and add some structure.
Relevant Technical Choices
N/A
To-do
Maybe add some screenshots.
User-facing changes
N/A
Testing Instructions
N/A
QA

[x] This is a non-user-facing change and requires no QA

UAT

[x] UAT should use the same steps as above.

Reviews
Does this PR have a security-related impact?

Does this PR change what data or activity we track or use?

Does this PR have a legal-related impact?

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

See #6363

@swissspidy @littlemilkstudio Friendly ping.

Since there will be some new masks in the templates, it would be beneficial to also mention how to create the masks. This is currently not documented anywhere.


Revisit GAHM isotach perturbations

Given a Rmax perturbation the GAHM isotachs are currently perturbed by the same absolute amount [n mi]
Let's revisit to see if we can adjust with more physical/theoretical basis , by e.g., preserving the "B" parameter of the GAHM model.

Update on exploring...  Here is an example for a 34-kt isotach at some time of Hurricane Florence:

The original Vr is in blue then I adjusted Vmax by increasing by 10% and reduced Rmax by 10%.
Conserving the B parameter that was found to fit Vmax and r34 in the original curve, we get the new curve and r34

The equation used is simplified Holland model without Coriolis term. I think for our purposes it can be a reasonable approximation.

Another question is are the Rmax values in the track file actually used in GAHM?
Based on https://wiki.adcirc.org/Generalized_Asymmetric_Holland_Model and discussion with Taylor Asher it seems the Rmax is actually computed within GAHM for each quadrant.
One idea to test things by @andypenny is to zero out all the radii values and run GAHM vs including the radii values and running with GAHM to test the effect.

#139


Signal names on docs differ from the names usable in the Godot engine

On the GodotSteam docs, the signals are listed with underscores before them, such as _item_updated, but when using them in engine it returns this error:
ERROR: In Object of type 'Reference': Attempt to connect nonexistent signal '_item_updated' to method 'Control._on_item_updated'.

I was able to get the signal to work only after changing the name from _item_updated -> item_updated without the underscore that was shown on the docs.
Steam.sdk.connect('_item_updated', self, '_on_item_updated') # This returns the aforementioned error D:
Steam.sdk.connect('item_updated', self, '_on_item_updated') # This works perfectly fine :D

Hey there!  Each signal in the docs shows the "under-the-hood" name, which you are referencing but it also shows the signal it emits when it triggers in Godot.  For example:
_dlc_installed

Triggered after the current user gains ownership of DLC and that DLC is installed.
Emits signal dlc_installed in response to function installDLC.

So the docs show the actual signal you need to connect in your code to use the callback.  Hope that helps!

Oh, I see! Thanks.

I was confused by this at first as well. Is the under the hood name actually required for anything? If it isn't, it might be better to hide that in the public documentation.

@komdog Welcome!
@hhyyrylainen Mmm, probably not.  Or at least not that I can think of.  I will change it up with the big docs update!


[32x32 textures]

your feature request
Some time ago you have made an 32x32 therrassium texturepack for me and i was wondering if you could add this to the files for other people to enjoy?
Just the .zip file.
I you would do so thank you

Not all 32x32 texture packs are the same so I won't do this


Raise a more graceful error when fields are None

Currently, whenever fields in Jira tickets are not being filled-in (e.g.
user / email domain fields), we get the following error:
Traceback (most recent call last):
  File
"/home/assisted-installer-deployment/./tools/triage_status_report.py",
line 89, in <module>
    main()
  File
"/home/assisted-installer-deployment/./tools/triage_status_report.py",
line 85, in main
    triage_status_report(client, args.filter_id, args.webhook)
  File
"/home/assisted-installer-deployment/./tools/triage_status_report.py",
line 65, in triage_status_report
    for issue in sorted(_get_issues_data(issues)):
  File "<string>", line 4, in __lt__
TypeError: '<' not supported between instances of 'NoneType' and 'str'

Error is very hard to understand, so this change aims to validate fields
before dataclass logic for comparison actions tries to compare None
value with strings.
In addition, I've added a small message to let the user know when a slack message has been sent (currently it prints nothing which seems very odd)
/cc @omertuc

@omertuc when you have time, PTAL

/lgtm


AndroidX is now stable!

Bumping all the androidx libraries to the stable version
Bumping kotlin to 1.2.71

Looks like it's finally time to publish a new AppIntro release :)
Thanks!

Are we going to do a Major release?

Yes! I'm trying to reach out the other apl developers before releasing to see if they're still going to contribute to the project. @Andrew-Quebe @avluis


Acrylic Issues

Acrylic wont work for some win10 and win11 22H2 (even for me). The problem is with both WPF-UI lib that I use for Acrylic Support and Hurl having a Custom Window.

Fix or Workaround
if u experience the issue, paste the following code into the UserSettings.json. Make sure to do proper json formating for avoiding launch errors. (usually paste it above LastUpdated line)
"AppSettings": {
  "DisableAcrylic": true,
  "BackgroundRGB": [51, 51, 51]
},

In Future
Either

fix the error in the lib or atleast let it support proper fallbacks
simply avoid using acrylic for its poor WPF support
Look for alternatives (tauri or winappsdk or C++). All of them comes with their own limitations.

Working Mica Backdrop

simply avoid using acrylic for its poor WPF support

Had to go with this option for now.
Acrylic Background in new v0.7.x versions is only supported in win11 builds 22523 or above due to library limitations. Mica is now the default background in all win11 builds while win10 is now only limited to black background.


kicad files

is there any way we can get the kicad files so we can generate our own files like all csv and cpl files
the whole thing on pcbway is a lil confusing and seems to be missing parts of the post
thnx

hmmm aright seems i gotta make my own

OK, I spend some more time on this, just for those JLPCB users.
There is a special JLCPCB Zip file that was made with their "production" tool, and I also added the other files they want to the zip file. I tried the upload on their site and it works without complains.
Give it a try.

very nice thank you i send it off to them i suspect it be fine
thnx again


Mismatch of the data label in Eval code

Hi, I am checking your dataset, and the label of "validation_Literature_10" is different from the one in your eval code:
https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/answer_dict_val.json#L2206
where the GT is "D".
However In the dataset, this data point is:
{'id': 'validation_Literature_10', 'question': 'Refer to the description <image 1>, which term refers to the choices a writer makes, including the combination of distinctive features such as mood, voice, or word choice?', 'options': "['Theme', 'Setting', 'Style', 'Tone']", 'explanation': '', 'image_1': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=340x291 at 0x7FFE9C906620>, 'image_2': None, 'image_3': None, 'image_4': None, 'image_5': None, 'image_6': None, 'image_7': None, 'img_type': "['Icons and Symbols']", 'answer': 'C', 'topic_difficulty': 'Easy', 'question_type': 'multiple-choice', 'subfield': 'Comparative Literature'}
where the GT is "C", however.
Can u check it?

The answer in the dataset is correct. Sorry we give the wrong answer at example, now we fixed it! Thank you for pointing out this.


Update: Pulumi.Pulumi version 3.32.0

Converting singleton to multi-file manifests
Microsoft Reviewers: Open in CodeFlow

@wingetbot run


fix: Fix NetworkManager traces

Current dependencies on/for this PR:

main

PR #2885   👈

This comment was auto-generated by Graphite.


image zoom in & out

hi.is there any way to zoom in and out on an image.(when i change size of image container , the size of it's image is constant and add an array of that image inside it.) i want to zoom on image itself.

@emiem69 Unfortunately, LittlevGL does not support image scaling at this time.
This is a workaround, but maybe you could use multiple images of different sizes to give a similar effect in your application?


DBeaver Encoding Issue

Hi There,
Can anyone help please? I have encoding issue with DBeaver Community Edition.
I'm connecting to Oracle 12C DB using JDBC Driver (ojdbc8.jar) and run a query below,
SELECT DBMS_SQLHASH.GETHASH('select * from scott.emp', 2) FROM DUAL;
It returns hash value in SQLPlus as shown below
##Result from SQLPlus
DBMS_SQLHASH.GETHASH('SELECT*FROMSCOTT.EMP',2)
----------------------------------------------|
AE9B5B42B0D67BAB4E8E1F3454B870AD
but DBeaver returns different value as shown below,
##Result from DBeaver

DBMS_SQLHASH.GETHASH('SELECT*FROMSCOTT.EMP',2)

Ñä[BÏ©{ÔNñ 4TÇpÒ

Can anyone please help me fix the issue?
Thanks in advance

It is configurable:


Re-run publish pipeline for nestjs-test-utilities v5.0.1

The pipeline failed for this version unfortunately: https://github.com/jbiskur/nestjs-utils/actions/runs/5325050709/job/14411070465

Sorry about that, I think that was due to a github outage at the time. I could not even try to re-run the pipelines. So I published a new release 5.0.2 where all pass.

Cheers!


Include avatars for system bots with Zulip

At present, system bot avatars come from Gravatar. This is not ideal for self-hosted organizations, as it doesn't allow server admins to control them, and does not work well for air-gapped environments.
We should make system bot avatars be included directly with a Zulip installation. We also plan to update the Notification Bot and Welcome Bot avatars.

CZO thread

@zulipbot claim


error in run flutter-tizen command

Error:
$ flutter-tizen /usr/bin/env: ‘python3’: Permission denied

We have recently removed the python3 dependency from our tooling. Please update your flutter-tizen by typing
git pull

in the flutter-tizen directory and try again.


Clean up linkResolution

We've known this particular module would benefit from a close review and cleanup for quite some time.

A stale list of possible improvements: https://github.com/citp/news-disinformation-study/issues/60


[Issue] Error with engines files for Cef Engine Configuration on platform Windows64!

What platform are you experiencing this issue on?
Windows
What architecture is your platform?
64-Bit
What version of UWB are you using?
Github Master Branch
What Unity version are you running?
2021.3.21f1
Describe what the issue you are experiencing is.
Error with engines files for Cef Engine Configuration on platform Windows64!
UnityEngine.Debug:LogError (object)
VoltstroStudios.UnityWebBrowser.Core.Engines.EngineConfiguration:OnValidate () (at C:/Users/user/Downloads/2/UnityWebBrowser-master/src/Packages/UnityWebBrowser/Runtime/Core/Engines/EngineConfiguration.cs:45)
Error with engines files for Cef Engine Configuration on platform Linux64!
Error with engines files for Cef Engine Configuration on platform MacOS!
Provide reproducible steps for this issue.

downloaded the project from the repository
opened the project, got an error
rebuilding CRS/UnityWebBrowser.sln does not solve the problem

Any additional info you like to provide?
No response

https://projects.voltstro.dev/UnityWebBrowser/articles/dev/setup/


[Question] Does Cerebro learn frequently used applications?

On Windows I search "Power" for Powershell and the one I want is the fifth in the list. I thought after I scrolled down and selected that one a few times Cerebro would start promoting it in the search results because it's what I always choose.
If frequently accessed apps aren't promoted in search results maybe someone could point me in the direction of where that could be implemented and I could try my hand at a PR.

@TheConnMan it has been proposed in https://github.com/KELiON/cerebro/issues/91 already. As @maximbaz suggested it can be implemented using a simple counter

Thanks for initiative, @TheConnMan! Let's track you status in your PR: #250


Create RSpec tests for E1997's (Fall 2019) implementation.

Fall 2019 pull request.
Related E1997's Wiki page for pull request.
No test were created for E1997's submission. RSpec tests need to be created to understand the current state of meta-reviewing functionality. This issue should only cover existing functionality. All E2025's issues should have their own respective RSpec tests added. This should allow for high coverage at the end of the project.

If I create an assignment, then the number of meta-reviews is set to null.

If 'Use metareview deadline' is not enabled in the due dates tab, then the meta-review fields in the review strategy tab are not visible.

If the metareview limit on the assignment is set to 3, then a student will see they need to submit 3 meta reviews

If the metareview deadline is enabled, the assignment cannot be created without a metareview rubric

If the assignment created is in a stage that does not have metareview enabled, a metareview cannot be created

If the assignment does not have any legal meta reviews, then the "Request a new metareview to perform" button is not visible

A student should not be able to request a metareview if they have reached the limit of their allowed reviews

A student should be able to request a metareview if they are above their required but below their allowed reviews

A student should not be able to request a metareview about their own work.

A student should not be able to request a metareview about themselves.

If there is a valid metareview to perform related to two other students, then the metareview should be able to be performed.

If a student has requested two metareviewes but have not submitted it, then they should not be able to request a new metareview.

If the metareview limit on the assignment is set to 1 then a student should not be able to request a second meta review


Error: Unable to resolve module @unimodules/core

Hi, this is a duplicate of https://github.com/enesozturk/react-native-hold-menu/issues/9 you may need the check installation steps for unimodules. This package uses expo-haptic out of the box.

I guess you can reopen this, because unimodules are dead, and I get the same error trying to use this package with expo-modules installed.
https://github.com/expo/fyi/blob/main/expo-modules-migration.md
https://docs.expo.dev/bare/installing-expo-modules/

NVM, bumped to 0.1.3, added expo-blur and expo-haptics to my project, it fixed itself.


Pause animated gifs in extension readmes

VS Code Version: 1.54.2
OS Version: MacOS 11.2

Steps to Reproduce:

Open the extensions panel
Search for comment-autocomplete (or any number of other extensions with animated gifs)

Does this issue occur when all extensions are disabled?: Yes

It is fairly common place for extensions to include animated gifs in their readme. These then show up on the marketplace page on visualstudio.com, as well as in VSCode itself. Animated gifs can be fairly distracting for people with certain cognitive disabilities such as autism. For quite a few people, animations are so distracting, it is essentially impossible for them to read the text. This is captured in the pause, stop, hide requirement of Web Content Accessibility Guidelines.
One way this could be addressed is for VSC to wrap each animated gif in a little widget that adds a small pause / play toggle button in the bottom right (or left for RTL languages). There are some tools to do this out there, such as freezeframe.js The best solution would be only to animate when the user hovers / activates the image. Make sure to make the mechanism to start/pause keyboard accessible.

Not only because it's distracting.
It would also be REALLY useful to be able to pause/play GIFs in general (extension pages and Release Notes page) when they show a "how to use video" (screen recording). It's always playing too fast and you can't understand what it's supposed to be showing until you see it over and over again. And if you miss a step, you have to wait until it loops again and pay really close attention.
Video controls (like pause/play, slow motion) on a GIF would be VERY useful in this case.
If it's weird to show these controls on a GIF, you could just have a "Video Controls" option to toggle when you right click the GIF.
Or, at the bare minimum, just play/pause when you click the image; that would already help a lot.


SourceLink not verifying files compiled by VS 2015?

Trying to add a SourceLink build target to one of my projects at work, found that it wasn't verifying any of the source files. Followed the code in PdbChecksums.fs as best I can, and it looks like the source code is being filtered out because the "stream" length is 92 bytes instead of 88, as specified here.
Looked through the data and picked an arbitrary file out, the file's checksums (with the compiled line-endings), and the pdb data are:
File MD5:
01e341d418646658b3e264e78e134f3f

File SHA1:
8c4bc1ab08ac218b3ca03ec0c0bb22b09fa4bd25

PDB "stream" data:
b8d0123a6cc2d011b44200a0244a1dd2c4454b99e9e6d211903f00c04fa302a10b9d865a1166d311bd2a0000f80849bdec1618ff5eaa104d87f76f496383346014000000000000008c4bc1ab08ac218b3ca03ec0c0bb22b09fa4bd25

I'm not intimately aware of the details of PDB generation, but I can safely say the PDB data ends with the SHA1, and SourceLink is looking for MD5's. :)

Thanks for reporting this! Now we have two people reporting the same thing. @Thorium reported this last month, but haven't had time to look into it yet.

C# Roslyn uses SHA1 and SHA-256 that are 20 bytes and 32 bytes in length. The MD5 is 16 bytes in length. That explains why the stream length is 92 bytes. The guid for SHA1 is ec1618ff5eaa104d87f76f4963833460 and appears in the stream from bytes.[45..50]. The guid for SHA-256 is 0fd02988b8111342878b770e8597ac16. I could check for the guids, but checking the lengths should work again: 88, 92, 104.

@amazingant Can you try out build 281?
source https://ci.appveyor.com/nuget/ctaggart-sourcelink
nuget SourceLink.Fake 1.1.0-b281

or
choco source add -n SourceLink -s https://ci.appveyor.com/nuget/ctaggart-sourcelink
choco install SourceLink --version 1.1.0-b281 -y

After wiping my working directory and setting core.autocrlf = input, everything looks good so far as I can tell. Created a .pdb.srcsrv file to match the main project's output, and while the build script ran, the Project.CompilesNotLinked property contained what looks to be all of my source files.

If you install SourceLink.exe using the choco install, you can use the checksums --check option to test the pdb.

Had some issues with it initially, due to the proxy page I wrote to get to the team's private GitHub repos.
Now, I get back a nice list of files with their checksums, followed by .\Source\<ProjectName>\bin\Debug\<ProjectName>.pdb has 34 source files, 22 indexed, 12 not indexed, 22 passed, 0 failed. Looking at the output, looks like the 12 "not indexed" are six .xaml files and the temporary .g.vb files that MSBuild generated at compile-time for each XAML document.

Thanks! I'll probably release 1.1.0 tomorrow.

In the "not your issue but worth mentioning" category, trying to debug in VS with my new pdb file, it looks like SRCSRV doesn't like the URL I built for it. Organization, repository, commit SHA, etc. are all GET params after a question-mark, and is less than pleased with that.

Correct. It doesn't support ?. See https://github.com/ctaggart/SourceLink/issues/94 for workarounds. I may start throwing an exception. Please add your workaround. I'd like to document solutions for others.

Would you think me insane if my workaround was a custom webserver running in fsi?

Ha! No, I wrote a 60-line Node.js app as a proxy. :-)
http://blog.ctaggart.com/2015/07/sourcelink-10-with-private-github.html
https://github.com/ctaggart/SourceLink-Proxy/blob/master/server.ts
Builds on Suave or ground up?

Ground-up just using a TcpListener, based on some F# async code I was playing with back in January or so? Gist of the server in case you want to laugh at it: https://gist.github.com/amazingant/fb88fedf7b99a758bf4d
Runs on port 8004, because this isn't the first time I gave up by writing a custom server; first time it's been running in fsi though. :smile:


Update AndroidDatabaseConnection.java

Fix May cause sql injection vulnerability

What are you talking about? It's exactly the same code.

Sorry but I don't see any changes here.