Add theme chooser

@cobraz I see that this logic for selecting is similar with issue #42. I think that we can create component with box and two buttons and add highlighting of selected item in the KIT project. With that we will be have possibility for code reusing. What do you think?

Nice idea! Let's do that!


some sentences in the code block

Threshold_graph=Threshold*ones(1,length(M_n));
Threshold_graph(idx-L-1)=1.15;

I face some problems in understanding the intention of these two sentences. If you are free, would you please give me some guidance? thank you ahead of time.

Hi there !
Threshold_graph =1.15 is used as the indicator to mark out which packet is selected and plotted in GUI.
Note the red vertical line in GUI.
I will update Readme.md for more information next day.

thank you a lot


Remove gRPC compiler invocation from Bazel build

@wally-the-cartographer merge

Merge requested by authorized user cschuet. Merge queue now has a length of 1.


Fix doc comment

Description
The parameter does not exist for the functions
Checklist

[ ] I have linked to any relevant issues.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have updated the documentation where relevant (API docs, the reference, and the Sway book).

[ ] If my change requires substantial documentation changes, I have requested support from the DevRel team

[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
[ ] I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
[ ] I have requested a review from the relevant team or maintainers.

 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 2 committers have signed the CLA.:white_check_mark: GearedPaladin:x: K1-R1You have signed the CLA already but the status is still pending? Let us recheck it.


Add shyft mainnet and testnet

Fixes # .
Changes proposed in this pull request:

network id 7341 shyft mainnet
network id 11437 shyft testnet
have also deployed multicall to these:
http://bx.shyft.network/address/0xceb10e9133D771cA93c8002Be527A465E85381a2/contracts
http://bx.testnet.shyft.network/address/0x407159bAA564dA0c3b14D1215d8E2654cEEE73F4/contracts

Hi @svanegmond Looks good, can u update this branch with the master branch


Text limit constraint and other thoughts

Hello Danesprite
I really like this app and thanks for creating it and make it open source!
I had personally tried to creat a similar (toy) app that does similar stuff. Instead of using the share action. I opted to use the text action (my use case is use the app to read long articles), so I can select all text (in reader mode in firefox) and then click on the read to have the article read to me.
Due to nature of most of the articles, I found the built-in text limit for android tts too low for most of them, therefore I used a splitter to split long text (by new line) to work around that limit.
Just wondering, would you accept pull request that

work around the text to speech limit like I described above?
add a text action that is similar to sharing but one less click? :smile:

Hello Kevin,
You're welcome, glad you like it.
Using the text action for this is a good idea.  That and the share action
should be able to coexist, I think.  I would welcome a pull request from
you on that; I also have found the additional share menu click to be a
minor annoyance.
Regarding the built-in text limit, (I think it is 5000 characters,) I must
tell you that TTS Util already splits long lines as you suggest.  I came
across the limitation the same way as you, actually.  Do please let me know
if some part of the app is not reading long text correctly.

Hello Danesprite,
Will create a PR for text action soon.
Regarding the limit on length, after going through the code, I did realize that you had done it. Sorry for the misunderstanding.
I encountered several cases where the app stop speaking during a long Chinese article which is why I initially thought the functionality is not implemented. Based on my understanding, tts-util converts text to byte array and the spliting is done afterwards, which might be the cause as Chinese characters takes 3 bytes (and my toy app which just naively spliting long string seems to work fine). Will play around more and see if I can find anything.

Hello Danesprite,
Will create a PR for text action soon.
Regarding the limit on length, after going through the code, I did realize that you had done it. Sorry for the misunderstanding.
I encountered several cases where the app stop speaking during a long Chinese article which is why I initially thought the functionality is not implemented. Based on my understanding, tts-util converts text to byte array and the spliting is done afterwards, which might be the cause as Chinese characters takes 3 bytes (and my toy app which just naively spliting long string seems to work fine). Will play around more and see if I can find anything.

actually it looks like this is an issue I c, I had changed the code to add text action and reading long article from there seem to have caused the issue.

Hello Kevin,
I have now tested your PR.  It works quite well.  Reading text this way is
certainly easier than sharing.
I was able to replicate the issue you mentioned with the new activity and
Theme.NoDisplay.  It occurs when the activity is the first one initialised
by the application.  The error only occurs for me when the activity
doesn't immediately finish (in the onCreate() method).  It seems that the
AppCompatActivity class may not be used with this theme.
This particular problem may be resolved by using Theme.AppCompat.DayNight
(or some other AppCompat theme) instead.  This will leave the interface
visible in the case mentioned above.  Ideally, the Activity class would
be used instead.  I'll see if I can fix that at a later date.
I think you may be right about battery optimisation causing that problem.
The application could also handle background tasks a little better than it
does.

Hello Dane,
I have pushed a fix that reverted to use the AppCompact theme for now.

Thanks again for implementing this useful feature.
Regarding the issue of text-to-speech output occasionally stopping, I'll
try to improve the application's handling of background processing at some
point.


Upgrade camel to 4.7.0

The failure is to be expected. The example repository does not contain the staging repo, therefore the error  The following artifacts could not be resolved: org.apache.camel:camel-yaml-dsl:jar:4.7.0 can not be prevented. I checked manually that the dependency is present in staging repository.

Rebased from main + removed staging repo.

Do we usually add a note about deleted extension and deprecated extensions ?

We usually just cover it by linking to the Camel release notes in our release announcement blog post.


[bug] arrow key not work on 2.0.0.beta.4

Describe the bug
Arrow keys don't work，The direction keys are invalid. This problem occurred when I upgraded from beta.2 to beta.4.
Beta.2 does not have this problem.
Reproduction
No response
Expected behavior
No response
Full tauri info output
[✔] Environment
    - OS: Mac OS 14.2.1 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.76.0 (07dca489a 2024-02-04)
    ✔ cargo: 1.76.0 (c84b36747 2024-01-18)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 20.11.0
    - pnpm: 8.10.2
    - yarn: 4.0.2
    - npm: 10.2.4

[-] Packages
    - tauri [RUST]: 2.0.0-beta.4
    - tauri-build [RUST]: 2.0.0-beta.3
    - wry [RUST]: 0.36.0
    - tao [RUST]: 0.26.0
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli [NPM]: 2.0.0-beta.3

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:3000/
    - framework: React
    - bundler: Vite

Stack trace
No response
Additional context
No response

The same problem, too terrifying!

This is fixed in beta.6. Even the dev tool menu is opening by hot keys now.
@yetone @drl990114


docs(changelog.md): add release 0.29.0

Signed-off-by: maxgio92<EMAIL_ADDRESS>
What type of PR is this?
/kind documentation

What this PR does / why we need it:
This PR adds the changelog for the 0.29.0 version
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: maxgio92
To complete the pull request process, please assign mstemm after the PR has been reviewed.
You can assign the PR to them by writing /assign @mstemm in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/hold

/unhold

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leodido, maxgio92
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leodido]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Page presets: Linear gradient should be disabled for a Page

Bug Description
Bug from UAT for #2585
Currently, it is possible to assign some presets with gradient + opacity to Page background.

Expected Behaviour
Presets with opacity should not be allowed for Page background.

Steps to Reproduce
See https://github.com/google/web-stories-wp/issues/2585#issuecomment-651207162

Remove all the color swatches in the saved colors section
Add a shape and apply a gradient to it. Add to color preset
Select the page bg and click on the new color with opacity. You'll see that you can add that color to the page

Screenshots

Additional Context

Plugin Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Verified in QA


Cursor position lost upon closing the app

When we reopen the app the cursor is gone. For example place the cursor on some point in text.  Now close the app and reopen the app. Well it should have opened just like the state we had when we closed it but I didn't.

Sure the same line might still be in the middle of the screen, but what about our cursor?


1.1.9 broke our app

Upgrading to 1.1.9 changed the item exported by this library from a directly-usable react component to an object with a default property.  Does it require a newer version of React now (should be reflected in dependencies?) or perhaps this is an interface change that warrants a major version number change?
We're on React 0.13.x, if that matters

Oh drat, with the change to ES2015, we switched the module style from commonjs. That was unnecessary and I just switched it back and released 1.1.10. Let me know if it works now.
Thanks for reporting the issue!

Looks like 1.1.10 isn't built correctly. When i install it, i still see that react-spinkit exports ES6-like module with constructor in default property.
$ npm install
<EMAIL_ADDRESS>/Users/zbigg/projects/tiq_backend/web
└──<EMAIL_ADDRESS>Object.defineProperty(exports, "__esModule", {
exports.default = Spinner;

Note, that i've checked-out v1.1.10 and it builds correctly:
$ git checkout v1.1.10
Previous HEAD position was eedffc4... 1.1.9
HEAD is now at 9c19e73... 1.1.10
|1|x86_64| zbigg@antari:/Users/zbigg/projects/react-spinkit
$ npm run build
(...)
src/index.jsx -> dist/index.js
|1|x86_64| zbigg@antari:/Users/zbigg/projects/react-spinkit
$ grep exports dist/index.js
module.exports = Spinner;

Oh boo. Some of my projects auto build on publishing and others don't... this one didn't and I forgot to build it. Just published 1.1.11. Hopefully that fixes things. Thanks for the report.


add space before the header value in getAllResponseHeaders

This pull request add a single space before header value (after colon).  then the polyfilled getAllResponseHeaders() will return the same format value with native

The origin http header

Parsed response header

The return value of polyfilled getAllResponseHeaders()
The space lost here

The FIRST CHAR LOST.
Some 3rd libraries like  azure-sdk-for-js makes http request by using XMLHttpRequest and parses header by itself just like following code
https://github.com/Azure/azure-sdk-for-js/blob/744e51acb755db2c565c71a8856d8d13e6ec345b/sdk/core/core-https/src/xhrHttpsClient.ts#L129
If the return value from the polyfilled function XMLHttpRequest.getAllResponseHeaders() is not keeps the exact same format (Date: Thu, 01 Oct 2020 05:18:27 GMT\r\n) as the original value, some thing will broken.

Sorry for contributing rules. I will close this pull request and create an issue


Vault balance and value

Small tweaks to show vault balance and underlying asset balance in a different way that is more clear for people to understand the value the are earning. Also some changes to wallet balance label and vault balance label.
Changed the interest rate to APY (controversial change).

@fameal
Hey, thanks for submitting this PR. There is an error on line 495 on src/vault/vault.jsx (the double "? ?")

Then once fixed, it still looks a little messy. The spacing isn't nice when you have invested something. This gets worse when you have invested a large balance (1 000 000 yUSD for instance).

One more thing, Lets say I have depositted 1 ETH into the vault.
When you enter an amount to withdraw and you have for instance 1.005 ETH (1 yETH)
When I enter "1" into the input field, I expect to receive 1 ETH with the way that the balance is displayed. What you are actually telling the system is give me 1 yETH.
Although this difference is quite small at the moment while 1 ETH is almost the same price as 1 yETH, there will come a time where 1 ETH = 0.5 yETH and the system needs to reflect that.
So for this reason, the value in the brackets should be the converted value, the value outside of the value should be the vault's value.

Thanks a lot for the reply and all the explanation. I understand the issues. Next time I have to test better, and I will continue testing ways to show people what they've earned with more clarity and get back to you with a different thing.
Again, thanks for the feedback. I really appreciate it.

This is replaced by PR #79


Add TYIpcDragSort component

Owner

[x] Nickname(Tuya): 伽拉

Description
tuya-panel-ipc-sdk add TYIpcDragSort component.
Package

[x] tuya-panel-ipc-sdk

Type of change
Please select the relevant option.

[x] New feature (non-breaking change which adds functionality)

Codecov Report

Merging #69 (627ece5) into main (1869223) will decrease coverage by 0.69%.
The diff coverage is 25.22%.

@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
- Coverage   58.69%   57.99%   -0.70%
==========================================
  Files         137      139       +2
  Lines        5241     5352     +111
  Branches     1230     1249      +19
==========================================
+ Hits         3076     3104      +28
- Misses       2163     2246      +83
  Partials        2        2

Impacted Files
Coverage Δ

...ya-panel-ipc-sdk/src/ty-ipc-drag-sort/dragSort.tsx
24.54% <24.54%> (ø)

...a-panel-ipc-sdk/src/ty-ipc-drag-sort/res/index.tsx
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1869223...627ece5. Read the comment docs.

Add TYIpcDragSort Component

4ee38b153b84c4a7089890c26ace4ad8ef6373ca
Add TYIpcDragSort Component


Use structured binding in fixWorkspaceArrangement

Just some cleanup

LGTM

@Duckonaut I see I could already merge without the CI/CD having finished, maybe we should enable the branch protection rule 'Require status checks to pass before merging' for the main branch?
https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule#creating-a-branch-protection-rule

Fair, now that we have CI I'll enable it


Cql4bonnie param fix

Chris added code to ParameterRef in support of libraries. Added fix for parameters in children contexts. Reverted findValueSet code back to original state. All but one CalculateAge unit test pass now. CalculateAge unit test passes sometimes (Moesel can explain in more detail why that happens).

Regression Test run, only change is expected as user has to re-upload measure.  All others are equal.
hmdmtjc
-: CMS ID: CMS113v6 FIRST BRANCH HAS MORE PASSES (57 > 50)


GitHub Workflows security hardening

This PR adds explicit permissions section to workflows. This is a security best practice because by default workflows run with extended set of permissions (except from on: pull_request from external forks). By specifying any permission explicitly all others are set to none. By using the principle of least privilege the damage a compromised workflow can do (because of an injection or compromised third party tool or action) is restricted.
It is recommended to have most strict permissions on the top level and grant write permissions on job level case by case.

Hello, sashashura. I'm waiting for one of the admins to verify this patch with /ok-to-test in a comment.

@kabir FYI

Thank you @sashashura :-)
Before merging your first WildFly contribution we need to ask a question:
We require that all contributions be made under the terms of the MIT License, http://www.opensource.org/licenses/mit-license.php. Do you agree to the these terms?

Yes.

Thanks @sashashura !


Fix code mistake

Fix the code mistake by removing the semicolon (;) at the start of the line before the output.

Thanks for contributing to rrule!
To submit a pull request, please verify that you have done the following:

[x] Merged in or rebased on the latest master commit
[x] Linked to an existing bug or issue describing the bug or feature you're
addressing
[x] Written one or more tests showing that your change works as advertised

this isn't a code mistake, it's necessary to break the statements so that it's not interpreted as
rruleSet.toString()(...)


@PureHing I'm sorry to say you have to check the result layer by layer. Otherwise, we can not locate the problem.
You can

export the fp32 layer result by (* 2 ^ -exponent)
save it as a array in C/C++
check the result correctness by Tensor.check_element()

@yehangyang
Hi,It seems that my model output has a problem from the first layer.
first layer(name: l0): conv2d,1x80x80x1->1x80x80x4, kernel size:3x3,pad=(1,1,1,1,)
My steps:
1.get fp32 result of first conv2d layer from onnx model
2.on eps32s3:
    int16_t *score = model.l0.get_output().get_element_ptr();
    int size_out = model.l0.get_output().get_size();
    for (int i = 0; i < size_out; i++)
    {
        result[i] = score[i] * pow(2.f, -12);
        printf("%f,",result[i]);
    }

the size_out is 82824
3.The result gap is very big.

@PureHing

export result from PC as ground truth
the result from PC should be in fp32
so we turn it to quantization, by ( * 2 ^ - exponent)
save the ground truth quantization result as C/C++ array
check the result correctness by Tensor.check_element()

@yehangyang Hi
code:
    input.set_element(IMAGE_ELEMENT).set_exponent(-8).set_shape({IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNEL}).set_auto_free(false);
    input.print_shape();
    DMMODEL model;
    // model forward
    latency.start();
    model.forward(input);
    latency.end();
    latency.print("detect", "forward");
    // parse
    printf("\n--------\n");
    int size_out = model.l0.get_output().get_size();
    model.l0.get_output().print_shape();
    printf("\nSize_out:%d\n", size_out);
    int16_t *score = model.l0.get_output().get_element_ptr();
    if (NULL == score)
    {
        printf("failed\n");
    }
    model.l0.get_output().check_element((int16_t *)l0data);
    printf("\nend\n");

Log:
shape = (0 + 80 + 0, 0 + 80 + 0, 1(1))
detect::forward: 20965 us

--------
shape = (1 + 80 + 1, 1 + 80 + 1, 4(4))

Size_out:26896
shape = (1 + 80 + 1, 1 + 80 + 1, 4(4))
element[0, 0, 0]: 32767 v.s. -8918

end

the firtst element is wrong . the same my way.

@PureHing Would you mind changing the first layer's padding style from "SAME" to "VALID". There is some problem with it. We've planed to cancel the "padding in advance" strategy in the next version. At that time, this problem will not happen.

@yehangyang Does it  only need the first layer need to be designed like thisl1(Conv2D<int16_t>(-2, get_l1_filter(), get_l1_bias(), get_l1_activation(), PADDING_VALID, 2, 2, "l1"))?

@PureHing , Yes, just avoid the first layer using PADDING_SAME.

let me try.

@yehangyang stride=2 or maxpooling downsample follow floor or ceil?

@PureHing, follow, it should be same as Tensorflow's

@yehangyang ok  thanks

input.set_padding_size({1,1,1,1})

    input.set_element(IMAGE_ELEMENT).set_exponent(-8).set_shape({IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNEL}).set_auto_free(false);
    input.set_padding_size({1,1,1,1});
    model.forward(input);

is it right?

@PureHing , Yes.

input.set_padding_size({1,1,1,1})

    input.set_element(IMAGE_ELEMENT).set_exponent(-8).set_shape({IMAGE_HEIGHT, IMAGE_WIDTH, IMAGE_CHANNEL}).set_auto_free(false);
    input.set_padding_size({1,1,1,1});
    model.forward(input);

is it right?
@yehangyang
the result is wrong by this way.

Or, You can call input.set_padding_size({1,1,1,1}), just before send input into Model.call(input), right now.

the inference is wrong by this way.

@PureHing Didn't you say the result is correct on the call before?

@Auroragan

Would you mind changing the first layer's padding style from "SAME" to "VALID".

I changed my model to avoid the padding problem in firtst layer,then forward output is correct between on esp32s3 comparing to PC.
If I use the old model which first layer padding is "SAME" and adding input.set_padding_size({1,1,1,1}), then forward output is wrong on esp32s3 comparing to PC.

@yehangyang
Hi,It seems that my model output has a problem from the first layer.
first layer(name: l0): conv2d,1x80x80x1->1x80x80x4, kernel size:3x3,pad=(1,1,1,1,)
My steps:
1.get fp32 result of first conv2d layer from onnx model
2.on eps32s3:
    int16_t *score = model.l0.get_output().get_element_ptr();
    int size_out = model.l0.get_output().get_size();
    for (int i = 0; i < size_out; i++)
    {
        result[i] = score[i] * pow(2.f, -12);
        printf("%f,",result[i]);
    }

the size_out is 26896 , //80x80x4=25600 with padding to 26896
3.The result gap is very big.
4.

export the fp32 layer result by (* 2 ^ -exponent)
save it as a array in C/C++

Do you mean the result on esp32s3?

@PureHing Hi, can you share your code of step 1?

If I use the old model which first layer padding is "SAME" and adding input.set_padding_size({1,1,1,1}), then forward output is wrong on esp32s3 comparing to PC.

@yehangyang HI
Am I using this method wrong?

@yehangyang @Auroragan The first layer is such a configuration, the result is still incorrect.
model like this:

@PureHing the result of first layer or the final result?

@Auroragan
Neither is right

Would you mind changing the first layer's padding style from "SAME" to "VALID".

I changed my model to avoid the padding problem in firtst layer,then forward output is correct on esp32s3 comparing to PC.

the one you just showed is another model using PADDING_VALID without adding set_padding_size?

input setting like this
input.set_element(IMAGE_ELEMENT).set_exponent(-8).set_shape({IMAGE_HEIGHT,IMAGE_WIDTH, IMAGE_CHANNEL}).set_auto_free(false);

@PureHing Is there any difference between this model that gets the wrong result and the previous model that's correct?

no

yes

@Auroragan @yehangyang
Have you received my model and engineering code？I sent it to shiqiqi.

yeah got it. Can you also provide the pickle file and the test input for pc (npy file)?

@Auroragan Please give me your email address

please send to shiqiqi

Got it

@Auroragan
    with open('test80.pickle', 'rb') as f:
        test_images = pickle.load(f)
    calib_dataset = np.expand_dims(test_images,axis=1)

Conv layer name: Conv_0, output_exponent: -12
Conv layer name: Conv_2, output_exponent: -12
Conv layer name: Conv_4, output_exponent: -11
Conv layer name: Conv_6, output_exponent: -11
Conv layer name: Conv_8, output_exponent: -11
Conv layer name: Conv_10, output_exponent: -11
Conv layer name: Conv_12, output_exponent: -11
Conv layer name: Conv_14, output_exponent: -11
Conv layer name: Conv_16, output_exponent: -11
Conv layer name: Conv_18, output_exponent: -11
Conv layer name: Conv_20, output_exponent: -12
Conv layer name: Conv_22, output_exponent: -11
Conv layer name: Conv_24, output_exponent: -11
Conv layer name: Conv_26, output_exponent: -11
Conv layer name: Conv_28, output_exponent: -11
Conv layer name: Conv_30, output_exponent: -11
Conv layer name: Conv_32, output_exponent: -12
Conv layer name: Conv_34, output_exponent: -12
Conv layer name: Conv_36, output_exponent: -12
Conv layer name: Conv_38, output_exponent: -12
Conv layer name: Conv_40, output_exponent: -11

sorry, I mean the generated pickle file of quantization table. and the floating point input you used as ground truth so that I can know the correct result of each layer.

@Auroragan the first layer and last layer gt output is in image.hpp

@Auroragan the gt output of first and last layers are in image.hpp

Does this work for you？

the gt output of first and last layers are in image.hpp

@Auroragan Does this work for you？

hmmm the last layer is not the same as the gt you provided, and Conv_0_data is not the result after relu right? If you can provide the pickle file(quantization table) and the fp input, it'll be easier for me to know what's wrong.

pickle-file.zip
@Auroragan

@PureHing problem found:

at the beginning, int16 API for S3 only support channel = 16*n, now it doesn't have this limitation but the code for exporting the coefficient for 16-bit is out of date so the filter_element for first layer and last layer is incorrect. will fix it ASAP.
For Conv_6, Conv_12, Conv_18, should use PADDING_SAME_MXNET not PADDING_SAME, because different platform has different strategy for padding when stride  = 2, I'm guessing this model is not from tensorflow.
the output exponent for Conv_40 should be -11 according to the pickle file you provided

I'm getting the correct result after doing the above modification now.

@Auroragan
Can u send  your modified project to me?

ok

@Auroragan
1.

at the beginning, int16 API for S3 only support channel = 16*n, now it doesn't have this limitation but the code for exporting the coefficient for 16-bit is out of date so the filter_element for first layer and last layer is incorrect. will fix it ASAP.

For my test model, my channels are all multiples of 16, why the first layer of quantization is wrong.
If I retrain the model, how can I avoid this error？

2. For Conv_6, Conv_12, Conv_18, should use PADDING_SAME_MXNET not PADDING_SAME, because different platform has different strategy for padding when stride  = 2, I'm guessing this model is not from tensorflow.

Is the method of s3 downsampling the same as the padding method of maxpooling in tensorflow?

the input channel of first layer is 1, please wait for fix. if you want to avoid it for now:

for 16-bit. input/output channel should be 8*n, n>=1 (typo before) , first layer use c==3 not c==1
or use 8-bit

what do you mean by s3 downsampling?
the out_data is correct, but the initialization of this layer is incorrect:
Conv_40(Conv2D<int16_t>(-10, get_Conv_40_filter(), get_Conv_40_bias(), NULL, PADDING_VALID, 1, 1, "Conv_40")) {}
it's not a must, if you want to use PADDING_SAME, you need to add input.set_padding_size()
it's normal to have some offset due to quantization. the result won't be exactly the same as fp32 result.

the input channel of first layer is 1, please wait for fix.

@Auroragan BTW,When will it be fixed?
the outout channel should be 8*n?

@PureHing will send you the lib first, you can use it without any limitation

@Auroragan  sorry to disturb you.
When I replaced the calibrator.so which you gave, the requantized conv_0 filter element was different from the one you gave me this afternoon. I can parse the correct result that you gave me this afternoon,but incorrect for new lib.
generated by new lib:
    const static __attribute__((aligned(16))) int16_t Conv_0_filter_element[] = {
          2077,  -4268,   1845,   7087,   7273,   3863,  -2932,   5966,  -3911,  -5610,  -8973,   7078,   2121,  -7769,   4165,  -4981,  -3858,   1996,   3599,  -5371,   3071,   3103,  -7424,  17486,  -5771,  14175, -20329,   1741,   6661,   2254,  -2040,   3083,   1824,   3516,   1443,   1566,   3942,   5003,  -3172,   -707,  13029,   2335, -10934,    963,   5642,  10067,    489,   -326,  -1002, -19053,    751,   7626,  -9285,  11625,  -6636,   2608,   4242,  -2172,  14463,   -901,   8887,   6514, -10002,    994,    715,   -586,    512,   3579, -21433,  -2547,  22241,  -2228,  -6197, -12812,   1593,   7742,  24893,  -3850,   -209, -11986,    989,   9886,  -7551,   7236,  10315,   1597, -15835,   2864, -11546,   3574,  11251, -14135,  -6187,  13756,     20,  -5940,   5874,   1973,  -4873,   -119,   2842,  -3484,   -273,  -4700,  -3700,   -896,  -5572,  -2543,   5573,   1937,   4858,  -4018,  -3804,   1043,  -6315,  -8327,  -7253, -13258,   7717,   2014,  19076, -14446,  -3168,   4038,  -2180,   1960,   8047,  17826,   2918,   6284,   1141, -11618,  -1900, -11310, -10216,  -5555,    447,   2940,  -8804, -12618,   1900,  16678,   5533, -10553};

Have you tried the new one?

But I need to re-convert the new model. This dynamic library doesn't work for me.

what do you mean?

@Auroragan I did not receive a new one today.
I retrained a new model, now I want to convert it and deploy on esp32s3,but the result is incorrect,too.

@Auroragan Sorry, can you send it to my email(zhengxc@topband.com.cn), I can’t contact shiqiqi.

@Auroragan HI,
Do you use the new dynamic library to test the first layer output of the model I gave you?

@Auroragan sorry to disturb you.
When I replaced the calibrator.so which you gave, the 16-bit quantized conv_0 filter element was different from the one you gave me this afternoon. I can prase the correct result that you gave me this afternoon.
generated by new lib（Same model） :
    const static __attribute__((aligned(16))) int16_t Conv_0_filter_element[] = {
          2077,  -4268,   1845,   7087,   7273,   3863,  -2932,   5966,  -3911,  -5610,  -8973,   7078,   2121,  -7769,   4165,  -4981,  -3858,   1996,   3599,  -5371,   3071,   3103,  -7424,  17486,  -5771,  14175, -20329,   1741,   6661,   2254,  -2040,   3083,   1824,   3516,   1443,   1566,   3942,   5003,  -3172,   -707,  13029,   2335, -10934,    963,   5642,  10067,    489,   -326,  -1002, -19053,    751,   7626,  -9285,  11625,  -6636,   2608,   4242,  -2172,  14463,   -901,   8887,   6514, -10002,    994,    715,   -586,    512,   3579, -21433,  -2547,  22241,  -2228,  -6197, -12812,   1593,   7742,  24893,  -3850,   -209, -11986,    989,   9886,  -7551,   7236,  10315,   1597, -15835,   2864, -11546,   3574,  11251, -14135,  -6187,  13756,     20,  -5940,   5874,   1973,  -4873,   -119,   2842,  -3484,   -273,  -4700,  -3700,   -896,  -5572,  -2543,   5573,   1937,   4858,  -4018,  -3804,   1043,  -6315,  -8327,  -7253, -13258,   7717,   2014,  19076, -14446,  -3168,   4038,  -2180,   1960,   8047,  17826,   2918,   6284,   1141, -11618,  -1900, -11310, -10216,  -5555,    447,   2940,  -8804, -12618,   1900,  16678,   5533, -10553};

But I need to re-convert the new model. This dynamic library doesn't work for me.

Today’s library has the same result as yesterday’s library, which is inconsistent with your hand-tuned

The results can be run normally, thank you very much


Feature/math utilities

Merging in cylindrical coordinate transform utilities.

Discussed with @CnlPepper who suggested the method names could be more compact. Changes implemented and review complete.


Lettable

Dependent upon angular/devkit#345

Maybe blacklist importing the whole rxjs library by adding this to tslint.json "import-blacklist": [true, "rxjs", "rxjs/operators"]

@CDDelta Importing from rxjs/operators won't cause any bundle size problem in runtime:

Let alone this change is for cli tasks only.

@trotyl I just thought it would be a good idea since that was what @CaerusKaru was pushing for, but you are right this is more of a style thing than a tree-shaking thing.


Cache and set pending audio low latency properties

Summary: Delays the setting of low latency properties if the sink has not yet been attached to the pipeline.
Type: Feature
Test Plan: UT/CT/Netflix Games Fullstack
Jira: RIALTO-619

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59726/

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59728/

build-brcm-refboard3 Console Log uploaded to Gist URL: https://gist.github.com/rdkcmf-jenkins/b70151971231b7168339883d14ef7a03

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59730/

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59732/

Sanity tests for ['RPI4 IPSTB'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59733/

Sanity tests for ['BCM 7216OTT Refboard VA'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59748/

Sanity tests for ['BCM 7216OTT Refboard VA'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59754/

Sanity tests for ['BCM 7216OTT Refboard VA'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/59758/


Fixes regarding textdraws and /war

Fixed some sizes in textdraws and fixed a bug regarding missing
textdraws in /war and finally a bug regarding textdraws in the round
it's self.

new iString[160], TeamAName[7], TeamBName[7];
I see that you changed size from 6 to 7, is that needed for the fix? Can you test with 6 as size?

You need to make the size 7 to account for the null terminator.


[Improvement] Support System.gc() with periodic GC interval

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

What would you like to be improved?
Invoke System.gc() with periodic GC interval.
Refer spark ContextCleaner::periodicGCService
How should we improve?
Refer: https://spark.apache.org/docs/latest/configuration.html#memory-management

Are you willing to submit PR?

[ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
[ ] No. I cannot submit a PR at this time.

how do you think about? cc @pan3793  @yaooqinn
also cc @lightning-L

FYI:
The memory usage is high, after I execute jmap -histo:live, the memory usage is low.
Note that: jmap -histo:live will trigger gc.

@pan3793  how do you think about?

+1

+1 for introducing this feature


Meaningful error message when transferring to non-existent remote path

For reference, error messages in this case:
scp:
scp: /path: No such file or directory

rsync:
rsync: [Receiver] change_dir#3 "/path" failed: No such file or directory (2)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(825) [Receiver=3.2.3]

qft: '~/tmp_tesd/dsa/dsa/dsa' doesn't exist


AbuseProtectionResponseMissingAllowedOrigin on connect

I follow these steps and received the exception on connect in browser:

WebSocket connection to 'wss://my-pubsub-dev.webpubsub.azure.com/client/hubs/Chat?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkZiIsIm5iZiI6MTY0MjgxMjk2NiwiZXhwIjoxNjQyODE2NTY2LCJpYXQiOjE2NDI4MTI5NjYsImF1ZCI6Imh0dHBzOi8vZW9zY2xvdWQtcHVic3ViLWRldi53ZWJwdWJzdWIuYXp1cmUuY29tL2NsaWVudC9odWJzL0NoYXQifQ.yvCbeYf9pgyfnZBt9HTnh0B82retlXyP572vd5v-d-8' failed:

in trace tool:

{"time":"2022-01-22T00:56:08.2802497Z","logLevel":"Warning","eventName":"AbuseProtectionResponseMissingAllowedOrigin","message":"Abuse protection missing allowed origins: ","exception":null}

but I can receive OPTIONS call which successfully returns * for Webhook-Allowed-Origin according to https://docs.microsoft.com/en-us/azure/azure-web-pubsub/howto-develop-eventhandler#upstream-and-validation

Could you please suggest?

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

ID: 6fc0961a-70a2-32c4-0feb-934aa5356b25
Version Independent ID: eff95be1-41e1-353c-9b88-e151d8c598ed
Content: Tutorial - Create a chat app with Azure Web PubSub service
Content Source: articles/azure-web-pubsub/tutorial-build-chat.md
Service: azure-web-pubsub
GitHub Login: @vicancy
Microsoft Alias: lianwei

@Marusyk Thanks for the feedback! We are currently investigating and will update you shortly.

Could you try some other tunnel service to see if it is ngrok that swallowed the header response(which I met before), for example, https://loophole.cloud/docs/?

the loophole works well

@Marusyk We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Do Not Expose sensitive information to browser

Describe the task
Currently sensitive information like client_secret et.. are exposed to broswer, changes needs to be made to make sure sensitive information like credentials are not send over to browser.

Yes @mishraomp - aware of this issue, We had to make changes in Openshift so that the web app picks up env values from config map config.js. The web app was not taking the values when we tried setting it up directly as key value pair in config map or secrets. This change introduced this issue. We will be sorting it out.

secret is now removed from the browser

nicely done :)


TCP /multi /IPv6 FreeRTOS_Routing module

Description
The purpose of this commit is the go through reviewing. Please do not use these branches for any development.
The complete /multi /IPv6 release can be viewed here.
Test Steps

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This PR should have gone into FreeRTOS:feature/ipv6_multi_beta in stead of master.
It is now replaced by #85, closing this one.


Review 8: BudgetPLCollection.js and  Footer.jsx

Overview
Please pay attention too:

Javascript issues
React components

Review Branch
review-8
Files to review

BudgetPLCollection.js
Footer.jsx

Checklists

Architecture
Design
JS
React

Due date
Monday, 11/4/2024
For more information
The review process is documented at: http://courses.ics.hawaii.edu/ics414s21/morea/review/reading-idpm-review.html

BudgetPLCollection.js:
JS-03: The spread operator can be used for updateData on line 48 instead of using the const.
JS-05: Arrow functions can be used for subscribeBudgetPL on line 93 and subscribeBudgetPLAdmin on line 104.
Footer.jsx:
Design-01/08: The different sections of the footer could be refactored into a separate const and then just mapped for each column in Footer to avoid repetition.
REACT-01: On top of refactoring, the column layout and props could be set up in a subcomponent and then just called into the Footer component.

BudgetPLCollection.js
The define, update, and removeIt functions should incorporate error handling.
Footer.jsx
Each column section of the footer element contains duplicated code, the hyperlink tags and the line break tags, that should be restructured.

BudgetPLCollection.js
L145: REACT-03: Should this instead be a default export with the same name?
Footer.jsx
ESLINT-02: Should add an ID for future TestCafe

BudgetPLCollection.js

JS-05: Use arrow functions when appropriate. Functions in this file can be converted to arrow functions.

Footer.jsx

TestCafe ID's Required
Design-08: Ensure code is DRY, some duplication with the columns.

BudgetPLCollection.js:
Use arrow functions where appropriate, such as in subscribeBudgetPL and subscribeBudgetPLAdmin, and consider adding error handling to define, update, and removeIt for better robustness.
Footer.jsx:
Refactor repeated column elements into a separate constant and map them to each footer column to enhance readability and keep the code DRY.

BudgetPLCollection.js:

add error handling for define, update, and remove for invalid inputs
export const should have the same name as class
Footer.jsx:
ensure code is DRY, consider refactoring repetitive code

BudgetPLCollection.js
Publication method could be split based on role. More roles will be added, making the method larger than needed.
But would require changing base collection.
Footer.jsx
Some additional padding on y axis could be added for container. L12

Overview of Review Meeting
New Issues:

Implement Error Handling for define, update and removeIt in BudgetPLCollection.js
Split publication method by roles in BudgetPLCollection.js
Refactor to reduce duplication in Footer.jsx


Larger Dataset to Try

@Favourj-bit try this dataset:
https://github.com/cBioPortal/datahub/tree/master/public/brca_tcga_pan_can_atlas_2018

@Favourj-bit Could you add the GitHub commit number or links to this code?


Use ruff to format strings to single quotes.

Description
Based on a discussion from #6386 I updated the ruff configuration to enable Q000 https://docs.astral.sh/ruff/rules/#flake8-quotes-q rule and configured it to use a single quotes string.
We have many double quotes string, but less than single quotes.
This PR does not change the quotation of docstrings (""") and multiline strings (""") as they are already enforced by ruff configuration and could be easy changed.
to se configuration changes please use: https://github.com/napari/napari/pull/6407/commits/a422ad7515c04c386eb97eea364d60444ba89af5
cc @jni @brisvag

The single quotes look weird to me, but not needing to use shift is a plus?
Eitherway, being systematic about is good. I assume ruff precommit will autoformat when making new PRs?
How will the process look for open PR? Will a merge of main into an open PR trigger pre-commit to fix? or scream about conflicts? or some other option?

I assume ruff precommit will autoformat when making new PRs?

yes

How will the process look for open PR? Will a merge of main into an open PR trigger pre-commit to fix? or scream about conflicts? or some other option?

There may be a scream, and then there will be a need to update pre-commit config to allow pre-commit to fix the problem.

Okies, I think we just need to have a clear set of instructions for contributors once this is merged that we can copy-paste into open PRs if it ends up with something screaming or needing to do something extra.

If contributor has curl the command could be:
curl https://github.com/napari/napari/commit/a422ad7515c04c386eb97eea364d60444ba89af5.patch | git apply -

Is it ok?

@Czaki @psobolewskiPhD why wouldn't merging main work?

Oh sorry I just saw what the commit was pointing to 😅

@Czaki do you want me to merge this or should I wait or for #6652?

I think that we should wait in #6652

Huh, you merged main into this and pre-commit from this branch fired and fixed the quotes?
So I guess if one merged this, then merge main into other PR would make precommit do the work?

if there will be no conflict then yes

I'm convinced. Gonna merge! 🚀


TestPeerConnection_Renegotation_AddTrack failing sometimes

Your environment.

Version: a4353b3668055610a40d50d311cf5c6ddd01f486
Browser: n/a
Other Information - https://travis-ci.org/pion/webrtc/jobs/652037403

What did you do?
When creating PR #1038 a the test-suite on travis failed and it had seemingly nothing to do with my change (add a method for users that's never used by pion itself).
After a force push with no changes, to trigger a rebuild, the test suite was green.
What did you expect?
Test suite being green.
What happened?
The TestPeerConnection_Renegotation_AddTrack test seems to sometimes fail. I have no idea how to reproduce it. See link to the travis build above.

It can be reproduced locally by running the test a lot of times.
On success,
--- PASS: TestPeerConnection_Renegotation_AddTrack (0.73s)
=== RUN   TestPeerConnection_Renegotation_AddTrack
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-local-offer
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-remote-offer
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Checking
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: checking
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Checking
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: checking
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Connected
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: connected
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Connected
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: connected
pc INFO: 2020/03/10 22:44:47 peer connection state changed: connected
pc INFO: 2020/03/10 22:44:47 peer connection state changed: connected
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-local-offer
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-remote-offer
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable

** OnTrack called **

pc WARNING: 2020/03/10 22:44:47 Failed to accept RTP SessionSRTP has been closed
pc WARNING: 2020/03/10 22:44:47 Failed to accept RTCP SessionSRTCP has been closed
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Closed
pc INFO: 2020/03/10 22:44:47 peer connection state changed: closed
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: closed
pc WARNING: 2020/03/10 22:44:47 Failed to accept RTP SessionSRTP has been closed
pc WARNING: 2020/03/10 22:44:47 Failed to accept RTCP SessionSRTCP has been closed
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Closed
pc INFO: 2020/03/10 22:44:47 peer connection state changed: closed
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: closed

On failure,
--- PASS: TestPeerConnection_Renegotation_AddTrack (0.73s)
=== RUN   TestPeerConnection_Renegotation_AddTrack
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-local-offer
pc INFO: 2020/03/10 22:44:47 signaling state changed to have-remote-offer
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Checking
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: checking
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable
pc INFO: 2020/03/10 22:44:47 signaling state changed to stable
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Checking
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: checking
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Connected
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: connected
ice INFO: 2020/03/10 22:44:47 Setting new connection state: Connected
pc INFO: 2020/03/10 22:44:47 ICE connection state changed: connected
pc INFO: 2020/03/10 22:44:48 signaling state changed to have-local-offer
pc INFO: 2020/03/10 22:44:48 signaling state changed to have-remote-offer
pc WARNING: 2020/03/10 22:44:48 RTPReceiver Receive failed the DTLS transport has not started yet
pc INFO: 2020/03/10 22:44:48 signaling state changed to stable
pc INFO: 2020/03/10 22:44:48 signaling state changed to stable
pc WARNING: 2020/03/10 22:44:48 Failed to start Sender: the DTLS transport has not started yet
pc INFO: 2020/03/10 22:44:48 peer connection state changed: connected
pc INFO: 2020/03/10 22:44:48 peer connection state changed: connected

pc.startRenegotation() is called before finishing pc.dtlsTransport.Start().

I think this block
https://github.com/pion/webrtc/blob/be9fde1fd3cfad91450f1d090b84afe119405c76/dtlstransport.go#L238-L289
should be continuously locked.
And/or other APIs using DTLS/SRTP/SCTP should return error if pc.dtlsTransport.Start() is not completed.
@Sean-Der Will you take this issue?

@Sean-Der feel free to take this issue if you want!

:+1: really sorry for burning your time on this :( I will get this fixed tonight!

Fixed by 825b5e41f7bc12863e08e443c22f3803af147f3c
The issue was that we would process RemoteDescriptions concurrently. We know how hold a lock and make sure they are processed sequentially.

Also interesting thing is I see server frames (but no client ones) maybe reading the trace wrong!

hmm, dtls handshaker routine must be always existing unless the connection is closed or handshake is errored, but client side handshaker seems not there. That's strange.

The last 19 builds in master have passed, so I think this is fixed!
@at-wat If you see it again re-open right away and happy to jump in on it.


Apply openapi3 extension on Security schemes

fix #3555

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@typespec/http
:x:@typespec/openapi3

Show changes

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/3732/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/3732/


Expert Mailing List

Based on a discussion with @tobyhodges regarding the Code of Conduct (see PR #20), it would be important that experts who sign up are given the option of being added to a mailing list through which we can contact them to make them aware of participants that have reportedly breached the CoC.
Ideally...

...we'd have a sign-up option on the page that is displayed upon submission of the form (see #18)
...we'd be able to build the mailing list on our Gmail account and send the emails out from there

However, Gmail doesn't seem to offer a functionality for having people sign up into a Google Contacts list, and the only real option I found by some quick googling requires two third-party services (see here).
My best guess would be to set up a link to a Google form, which I believe can output a CSV, from which the addresses can easily (though not automatically) be imported as contacts.
Any thoughts on this or any better suggestions? If not, I'll try to set this up tonight.

Added information to the CoC (PR #20) and to the site (PR #37). Closing.


Most of operations are not supported for Edge TPU

Hello everyone,
When I convert my yolo v4 model to tflite int8 or float 16, I have no problem.
However, I have the following error when trying to convert to full_int8:
Traceback (most recent call last):
File "convert_tflite.py", line 111, in
app.run(main)
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/absl/app.py", line 299, in run
_run_main(main, args)
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/absl/app.py", line 250, in _run_main
sys.exit(main(argv))
File "convert_tflite.py", line 106, in main
save_tflite()
File "convert_tflite.py", line 80, in save_tflite
tflite_model = converter.convert()
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/tensorflow_core/lite/python/lite.py", line 469, in convert
self.experimental_new_quantizer)
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/tensorflow_core/lite/python/lite.py", line 243, in _calibrate_quantize_model
inference_output_type, allow_float, enable_mlir_quantizer)
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/tensorflow_core/lite/python/optimize/calibrator.py", line 81, in calibrate_and_quantize
enable_mlir_quantizer)
File "/home/vinorth/anaconda3/envs/yolov4-tflite/lib/python3.7/site-packages/tensorflow_core/lite/python/optimize/tensorflow_lite_wrap_calibration_wrapper.py", line 115, in QuantizeModel
return _tensorflow_lite_wrap_calibration_wrapper.CalibrationWrapper_QuantizeModel(self, *args)
RuntimeError: Max and min for dynamic tensors should be recorded during calibration
If you suspect this is an IPython 7.15.0 bug, please report it at:
https://github.com/ipython/ipython/issues
or send an email to the mailing list at<EMAIL_ADDRESS>You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.
Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
%config Application.verbose_crash=True
Here is my command:
python convert_tflite.py --weights /home/vinorth/darknet/saved_models/yolo_v4_full_dataset_74000_epochs/yolo-obj_best.weights --output ./data/output/tflite_models/yolov4-int8.tflite --quantize_mode full_int8 --dataset /home/vinorth/darknet/data/train_full_dataset.txt
Thank you for your help

Does your train_full_dataset.txt file contain hard coded paths to each of your training images? As well as the bounding boxes and classes?

Thank you very much it worked now:
However, now I have a problem when trying to compile to edge_tpu, in fact most of operations are not supported for Edge TPU as you can see here :
edgetpu_compiler ./data/output/tflite_models/yolov4-full_int8.tflite
Edge TPU Compiler version 2.1.302470888
Model compiled successfully in 495 ms.
Input model: ./data/output/tflite_models/yolov4-full_int8.tflite
Input size: 62.26MiB
Output model: yolov4-full_int8_edgetpu.tflite
Output size: 62.17MiB
On-chip memory used for caching model parameters: 3.00KiB
On-chip memory remaining for caching model parameters: 7.84MiB
Off-chip memory used for streaming uncached model parameters: 0.00B
Number of Edge TPU subgraphs: 1
Total number of operations: 961
Operation log: yolov4-full_int8_edgetpu.log
Model successfully compiled but not all operations are supported by the Edge TPU. A percentage of the model will instead run on the CPU, which is slower. If possible, consider updating your model to use only operations supported by the Edge TPU. For details, visit g.co/coral/model-reqs.
Number of operations that will run on Edge TPU: 1
Number of operations that will run on CPU: 960
See the operation log file for individual operation details.
yolov4-full_int8_edgetpu.log
Is there a way to bypass this problem?
Thank you

@vinorth05 I've tried tensorflow==2.1.0 and tensorflow==2.20 the former yields the same result (only 1 of 961 ops on Edge)
The latter was 1 of 886 because ValueError: Didn't find op for builtin opcode 'LEAKY_RELU' version '2'

@vinorth05 and @a-rich I am interested in running this model on a TPU as well. I previously had trouble converting to full int 8 because leaky_relu is not supported. We changed this operation to regular relu, retrained, and it seems to have worked (for full int8, have not tried TPU compiling).
You can try to follow what we have done https://github.com/hunglc007/tensorflow-yolov4-tflite/issues/53, or I can give you one of my tflite files with regular relu. I might also try TPU compiling myself. Is it still a web compiler?

Yes, I am interested in getting your tflite files as well as your cfg file for training your yolo files.
Did you try for yolov3 or v4? I am also interested in doing the same for SSD if anyone tried it before.
Yes, it is still a web compiler with "edgetpu_compiler" command.

@sterlingrpi when you converted your standard RELU model --quantization full_int8 what was the ratio of ops converted for Edgetpu?
When I try with LEAKY_RELU ops, I get
Input model: yolov4_2.tflite
Input size: 62.67MiB
Output model: yolov4_2_edgetpu.tflite
Output size: 62.58MiB
On-chip memory used for caching model parameters: 3.00KiB
On-chip memory remaining for caching model parameters: 7.84MiB
Off-chip memory used for streaming uncached model parameters: 0.00B
Number of Edge TPU subgraphs: 1
Total number of operations: 962
Model successfully compiled but not all operations are supported by the Edge TPU. A percentage of the model will instead run on the CPU, which is slower. If possible, consider updating your model to use only operations supported by the Edge TPU. For details, visit g.co/coral/model-reqs.
Number of operations that will run on Edge TPU: 1
Number of operations that will run on CPU: 962

@sterlingrpi I did as you did in #53 i.e. changing
conv = tf.nn.leaky_relu(conv, alpha=0.1)
to
conv = tf.nn.relu(conv)
and converted using --quantization full_int8...
When I run through the edgetpu_compiler I get:
Edge TPU Compiler version 2.1.302470888

Model compiled successfully in 677 ms.

Input model: yolov4_RELU.tflite
Input size: 62.66MiB
Output model: yolov4_RELU_edgetpu.tflite
Output size: 62.56MiB
On-chip memory used for caching model parameters: 3.00KiB
On-chip memory remaining for caching model parameters: 7.84MiB
Off-chip memory used for streaming uncached model parameters: 0.00B
Number of Edge TPU subgraphs: 1
Total number of operations: 849
Operation log: yolov4_RELU_edgetpu.log

Model successfully compiled but not all operations are supported by the Edge TPU. A percentage of the model will instead run on the CPU, which is slower. If possible, consider updating your model to use only operations supported by the Edge TPU. For details, visit g.co/coral/model-reqs.
Number of operations that will run on Edge TPU: 1
Number of operations that will run on CPU: 848
See the operation log file for individual operation details.

and the log shows:
Edge TPU Compiler version 2.1.302470888
Input: yolov4_RELU.tflite
Output: yolov4_RELU_edgetpu.tflite

Operator                       Count      Status

LOGISTIC                       6          Tensor has unsupported rank (up to 3 innermost dimensions mapped)
EXP                            72         Operation is working on an unsupported data type
MAX_POOL_2D                    3          More than one subgraph is not supported
QUANTIZE                       15         More than one subgraph is not supported
QUANTIZE                       154        Operation is otherwise supported, but not mapped due to some unspecified limitation
MUL                            72         More than one subgraph is not supported
RESHAPE                        3          Tensor has unsupported rank (up to 3 innermost dimensions mapped)
TANH                           72         More than one subgraph is not supported
ADD                            95         More than one subgraph is not supported
RESIZE_NEAREST_NEIGHBOR        2          More than one subgraph is not supported
PAD                            7          More than one subgraph is not supported
CONCATENATION                  10         More than one subgraph is not supported
CONCATENATION                  3          Tensor has unsupported rank (up to 3 innermost dimensions mapped)
CONV_2D                        109        More than one subgraph is not supported
CONV_2D                        1          Mapped to Edge TPU
SPLIT_V                        3          Tensor has unsupported rank (up to 3 innermost dimensions mapped)
DEQUANTIZE                     144        Operation is working on an unsupported data type
DEQUANTIZE                     6          Tensor has unsupported rank (up to 3 innermost dimensions mapped)
LOG                            72         Operation is working on an unsupported data type

Seems like a lot more operation substitutions are required to get YOLOv4 running on the Edgetpu.

@a-rich nice work! sorry I was slow getting back to you. I cannot find the web compiler. Seems like it's a download and install? I'll have to set that up. https://coral.ai/docs/edgetpu/compiler/
Good work on trying the changes I made. Like I said I had to do that to get full int8 to work because leaky_relu was not a supported operation. We may have to substitute more operations. Usually the relu is included in the 2D convolution. I wonder if that is what the TPU compiler is designed to use.
Is there a list of TPU supported operations? Have you gotten the TPU compiler to work for other tflite files?

Here are the supported operations: https://coral.ai/docs/edgetpu/models-intro/#supported-operations
However, as you can see in our log files, even some supported operations in this link are not supported for us just because "they have more than one subgraph" or because they are "not mapped due to some unspecified limitation". So I wonder how we need to do quantization-aware training for yolo.

after some googling I am considering jumping ship for mobilenet SSD. It works similar to YOLO (single shot detection) but is better supported by tensorflow and TPU. And is designed/benchmarked for mobile.

Can someone link me to the TPU web compiler? I can't find it. Only the one I have to download and it requires a Linux system.
I have been working in a SSD repo (https://github.com/ChunML/ssd-tf2). I made my own model using the TF functional API, and not a subclass so it is supported by tflite. I defined every layer so I can be sure all the layers are supported. Before I go through annotating all the data and doing a thorough training I want to be sure it converts to TPU.

Managed to compile the TPU files with a linux VM. Wasn't a big deal at all. Looks like even the custom model I wrote in SSD isn't fully supported by TPU (42 out of 52). But still better than the YOLO model with regular Relu (22 out of 47). Question now is how to determine which of the operations were not supported?

ok cool. so the TPU compiler prints a nifty log file showing which ops go where. Looks like all the convolution (contains relu) and max pooling is done on the TPU. So should be pretty zippy. I'll try it on the TPU next.

Hi @sterlingrpi thank you for your ideas. Can you please tell us in which file did you define every layer?
And maybe even share this file? so I could also try for my MobileNetv3-SSD model.

@vinorth05 I am working off of this repo https://github.com/ChunML/ssd-tf2. Right now the changes I made are kind of a mess and not fully vetted. When it's a  little bit better I plan to branch it off and share it.

@vinorth05 the whole repo isn't ready to be submitted. But here is a VGG16 SSD model I defined using the tensorflow functional API.
def get_VGG16_SSD_300(image_size, num_classes):
inputs = tf.keras.Input(shape=(image_size[0], image_size[1], image_size[2]))
x = layers.Conv2D(64, 3, padding='same', activation='relu')(inputs)
x = layers.Conv2D(64, 3, padding='same', activation='relu')(x)
x = layers.MaxPool2D(2, 2, padding='same')(x)
x = layers.Conv2D(128, 3, padding='same', activation='relu')(x)
x = layers.Conv2D(128, 3, padding='same', activation='relu')(x)
x = layers.MaxPool2D(2, 2, padding='same')(x)
x = layers.Conv2D(256, 3, padding='same', activation='relu')(x)
x = layers.Conv2D(256, 3, padding='same', activation='relu')(x)
x = layers.Conv2D(256, 3, padding='same', activation='relu')(x)
x = layers.MaxPool2D(2, 2, padding='same')(x)
x = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
x = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
block_4_features = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
x = layers.MaxPool2D(2, 2, padding='same')(block_4_features)
x = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
x = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
output_vgg16 = layers.Conv2D(512, 3, padding='same', activation='relu')(x)
x = layers.BatchNormalization(beta_initializer='glorot_uniform', gamma_initializer='glorot_uniform')(block_4_features)
conf4 = layers.Conv2D(4 * num_classes, kernel_size=3, padding='same')(x)  # conf 4th block0
conf4 = layers.Reshape((conf4.shape[1]*conf4.shape[2]*conf4.shape[3]//num_classes, num_classes))(conf4)
loc4 = layers.Conv2D(4 * 4, kernel_size=3, padding='same')(x)  # loc 4th block
loc4 = layers.Reshape((loc4.shape[1]*loc4.shape[2]*loc4.shape[3]//4, 4))(loc4)

x = layers.MaxPool2D(3, 1, padding='same')(output_vgg16)
x = layers.Conv2D(1024, 3, padding='same', dilation_rate=6, activation='relu')(x)
x = layers.Conv2D(1024, 1, padding='same', activation='relu')(x)
conf7 = layers.Conv2D(6 * num_classes, kernel_size=3, padding='same')(x)  # conf 7th block
conf7 = layers.Reshape((conf7.shape[1] * conf7.shape[2] * conf7.shape[3] // num_classes, num_classes))(conf7)
loc7 = layers.Conv2D(6 * 4, kernel_size=3, padding='same')(x)  # loc 7th block
loc7 = layers.Reshape((loc7.shape[1]*loc7.shape[2]*loc7.shape[3]//4, 4))(loc7)

x = layers.Conv2D(256, 1, activation='relu')(x)  # extra_layers 8th block output shape: B, 512, 10, 10
x = layers.Conv2D(512, 3, strides=2, padding='same', activation='relu')(x)
conf8 = layers.Conv2D(6 * num_classes, kernel_size=3, padding='same')(x)  # conf 8th block
conf8 = layers.Reshape((conf8.shape[1] * conf8.shape[2] * conf8.shape[3] // num_classes, num_classes))(conf8)
loc8 = layers.Conv2D(6 * 4, kernel_size=3, padding='same')(x)  # loc 8th block
loc8 = layers.Reshape((loc8.shape[1] * loc8.shape[2] * loc8.shape[3] // 4, 4))(loc8)

x = layers.Conv2D(128, 1, activation='relu')(x)  # extra_layers 9th block output shape: B, 256, 5, 5
x = layers.Conv2D(256, 3, strides=2, padding='same', activation='relu')(x)
conf9 = layers.Conv2D(6 * num_classes, kernel_size=3, padding='same')(x)  # conf 9th block
conf9 = layers.Reshape((conf9.shape[1] * conf9.shape[2] * conf9.shape[3] // num_classes, num_classes))(conf9)
loc9 = layers.Conv2D(6 * 4, kernel_size=3, padding='same')(x)  # loc 9th block
loc9 = layers.Reshape((loc9.shape[1] * loc9.shape[2] * loc9.shape[3] // 4, 4))(loc9)

x = layers.Conv2D(128, 1, activation='relu')(x)  # extra_layers 10th block output shape: B, 256, 3, 3
x = layers.Conv2D(256, 3, activation='relu')(x)
conf10 = layers.Conv2D(4 * num_classes, kernel_size=3, padding='same')(x)  # conf 10th block
conf10 = layers.Reshape((conf10.shape[1] * conf10.shape[2] * conf10.shape[3] // num_classes, num_classes))(conf10)
loc10 = layers.Conv2D(4 * 4, kernel_size=3, padding='same')(x)  # loc 10th block
loc10 = layers.Reshape((loc10.shape[1] * loc10.shape[2] * loc10.shape[3] // 4, 4))(loc10)

x = layers.Conv2D(128, 1, activation='relu')(x)  # extra_layers 11th block output shape: B, 256, 1, 1
x = layers.Conv2D(256, 3, activation='relu')(x)
conf11 = layers.Conv2D(4 * num_classes, kernel_size=3, padding='same')(x)  # conf 11th block
conf11 = layers.Reshape((conf11.shape[1] * conf11.shape[2] * conf11.shape[3] // num_classes, num_classes))(conf11)
loc11 = layers.Conv2D(4 * 4, kernel_size=3, padding='same')(x)  # loc 11th block
loc11 = layers.Reshape((loc11.shape[1] * loc11.shape[2] * loc11.shape[3] // 4, 4))(loc11)

confs = layers.concatenate([conf4, conf7, conf8, conf9, conf10, conf11], axis=1)
locs = layers.concatenate([loc4, loc7, loc8, loc9, loc10, loc11], axis=1)
model = tf.keras.Model(inputs=inputs, outputs=[confs, locs])

model_VGG16 = VGG16(weights='imagenet')
for i in range(18):
    model.get_layer(index=i).set_weights(model_VGG16.get_layer(index=i).get_weights())

return model

@sterlingrpi the TF repo has pre-compiled MobileNetSSD models, use them

@sinclairnick thank you. But I have a custom dataset. I'm actually having much better success with image segmentation now using a custom loss function that weights the classes

@sterlingrpi ah ok, no worries then

Is anyone able to share an integer quantized yolov3.tflite or yolov4.tflite model trained on the coco 80 dataset and compiled for the edge TPU? Have been trying to use the the scripts in this repo to get a quantized model of either version; however,  getting some strange Python abort errors (see #166) when trying to do the quantization. Ultimately am looking to train on my own dataset, but trying to get something working as a baseline to build from.

@raryanpur
Hi~
https://github.com/hhk7734/tensorflow-yolov4
I tested yolov4-tiny-relu on edgetpu. But not optimized yet.

@hhk7734 great! Thanks for sharing. What fps were you able to achieve with the TPU? Were you able to get all of the TF operators to compile for the Edge TPU, or just a subset?

@raryanpur
Failed to compile the whole. Some sequence or operations are not compiled. The part that failed compilation was replaced by numpy.
Edge TPU Compiler version 14.1.317412892

Model compiled successfully in 566 ms.

Input model: test/yolov4-relu-tiny-int8.tflite
Input size: 5.74MiB
Output model: yolov4-relu-tiny-int8_edgetpu.tflite
Output size: 5.86MiB
On-chip memory used for caching model parameters: 5.69MiB
On-chip memory remaining for caching model parameters: 448.75KiB
Off-chip memory used for streaming uncached model parameters: 0.00B
Number of Edge TPU subgraphs: 1
Total number of operations: 51
Operation log: yolov4-relu-tiny-int8_edgetpu.log

Model successfully compiled but not all operations are supported by the Edge TPU. A percentage of the model will instead run on the CPU, which is slower. If possible, consider updating your model to use only operations supported by the Edge TPU. For details, visit g.co/coral/model-reqs.
Number of operations that will run on Edge TPU: 46
Number of operations that will run on CPU: 5
See the operation log file for individual operation details.

TPU consume 55 ~ 60ms, other is 35 ~ 40ms. FPS is 10~11.

@hhk7734 Awesome! Thanks for info. BTW how do you get the yolov4-relu-tiny or how do you make /yolov4-relu-tiny?

I forked this repo and changed some code.
Using the below script, yolov4-relu-tiny.weights was created.
But mAP50 is 25%. so I'm trying to figure out why mAP is low.
python3 -m pip install yolov4 -U

from tensorflow.keras import callbacks, optimizers
from yolov4.tf import SaveWeightsCallback, YOLOv4

yolo = YOLOv4(tiny=True)

yolo.classes = "/content/drive/My Drive/Hard_Soft/NN/coco/coco.names"

yolo.input_size = 608
yolo.batch_size = 64
yolo.subdivision = 32

initial_epoch = 0

yolo.make_model(activation1="relu")
yolo.load_weights(
    "/content/drive/My Drive/Hard_Soft/NN/yolov4-tiny.conv.29, weights_type="yolo"
)

train_data_set = yolo.load_dataset("/content/drive/My Drive/Hard_Soft/NN/coco/train2017.txt")
val_data_set = yolo.load_dataset("/content/drive/My Drive/Hard_Soft/NN/coco/val2017.txt", training=False)

epochs = 15000
lr = 1e-4

optimizer = optimizers.Adam(learning_rate=lr)
yolo.compile(optimizer=optimizer, loss_iou_type="ciou")

def lr_scheduler(epoch):
    if epoch < 500 + initial_epoch:
        return ((epoch - initial_epoch + 1) / 500) * lr
    elif epoch < int(epochs * 0.8):
        return lr
    elif epoch < int(epochs * 0.9):
        return lr * 0.1
    else:
        return lr * 0.01

yolo.fit(
    train_data_set,
    epochs=epochs,
    callbacks=[
        callbacks.LearningRateScheduler(lr_scheduler),
        callbacks.TerminateOnNaN(),
        SaveWeightsCallback(
            yolo=yolo, dir_path="/content/drive/My Drive/Hard_Soft/NN/trained",
            weights_type="yolo", epoch_per_save=500
        ),
    ],
    validation_data=val_data_set,
    validation_steps=100,
    validation_freq=100,
    initial_epoch=initial_epoch,
    verbose=2,
)


Hugo workflow improvements

Add a docker based workflow

make to preview locally
make new TITLE=my-post to create frontmatter

Update the archetype to actually create the date and title fields

Update the readme to reflect that

Fix missing code block ending in archetype

@menski @meyerdan review requested :)

@afirth I don't have any input here as I'm not producing content for this blog. Maybe @ThorbenLindhauer  or @yanavasileva can give you feedback.


Diagnosis information for HMC

Currently the information that can help diagnose the HMC sampling is limited to basic things like accept ratio, tuned step size and pre-conditioning matrix. It would be interesting to include the Bayesian fraction of missing information (see 6.1 from https://arxiv.org/abs/1701.02434).

Closed as this is already proposed in https://github.com/TuringLang/Turing.jl/issues/454


Fix: correct running of the example experiment

This PR helps with debugging the problem with running the example experiments. It also enables supporting CPU for running the example experiments. Lastly, it cleans the model.py script by removing the repetition of the same code twice.

basic.py and basic_sweep.py in zoology/experiments/examples/ looks like to be bugged/outdated. DataConfig expects separate config for train and test.
Added support for running the example experiment with CPU. Haven't checked if this supports running any experiment on CPU.
model.py has repeated codes. Removed the repeatition.

Thanks!!


Read format option is broken / confusing

tableland version: 4.0.5
There are a few issues that I can see with the formatting options:

The docs say that the default is table:

 --format               Output format. One of 'pretty', 'table', or 'objects'. [string] [choices: "pretty", "table", "objects"] [default: "table"]

But in reality the default is objects:
tableland read "select * from pets_31337_4"
{
  meta: { duration: 60.74254131317139 },
  success: true,
  results: [
    { name: 'Maru', owner_name: 'Austin', type: 'cat' },
    { name: 'Icey', owner_name: 'Blair', type: 'dog' },
    { name: 'Maxie', owner_name: 'Blair', type: 'dog' },
    { name: 'Rex', owner_name: 'Carolina', type: 'dog' },
    { name: 'Harambe', owner_name: 'Dani', type: 'bird' },
    { name: 'Syd', owner_name: 'Dani', type: 'dog' },
    { name: 'Artemis', owner_name: 'Dani', type: 'cat' },
    { name: 'Mr. Muggles', owner_name: 'Donald', type: 'cat' },
    { name: 'Meowser', owner_name: 'Donald', type: 'cat' },
    { name: 'Donald', owner_name: 'Donald', type: 'cat' },
    { name: 'Hodor', owner_name: 'Eliza', type: 'bird' },
    { name: 'Bumpkin', owner_name: 'Georgina', type: 'horse' },
    { name: 'Secretariat', owner_name: 'Hillary', type: 'horse' },
    { name: 'Socks', owner_name: 'Hillary', type: 'dog' },
    { name: 'Sir Barks-Alot', owner_name: 'Liam', type: 'dog' },
    { name: 'Harry Potter', owner_name: 'Leland', type: 'horse' },
    { name: 'Xerses', owner_name: 'Michael', type: 'horse' },
    { name: 'Zeus', owner_name: 'Michael', type: 'cat' },
    { name: 'Rocket', owner_name: 'Phoebe', type: 'cat' },
    { name: 'Kermit', owner_name: 'Sherry', type: 'dog' },
    { name: 'Hector', owner_name: 'Sherry', type: 'dog' },
    { name: 'Essy', owner_name: 'Sherry', type: 'dog' },
    { name: 'Samwise', owner_name: 'Sherry', type: 'dog' },
    { name: 'Jenkins', owner_name: 'Zed', type: 'horse' }
  ]
}

table doesn't do anything (it returns data w/ the same format as above, which looks like objects to me)

tableland read --format=table "select * from pets_31337_4"
{
  meta: { duration: 60.74254131317139 },
  success: true,
  results: [
    { name: 'Maru', owner_name: 'Austin', type: 'cat' },
    { name: 'Icey', owner_name: 'Blair', type: 'dog' },
    { name: 'Maxie', owner_name: 'Blair', type: 'dog' },
    { name: 'Rex', owner_name: 'Carolina', type: 'dog' },
    { name: 'Harambe', owner_name: 'Dani', type: 'bird' },
    { name: 'Syd', owner_name: 'Dani', type: 'dog' },
    { name: 'Artemis', owner_name: 'Dani', type: 'cat' },
    { name: 'Mr. Muggles', owner_name: 'Donald', type: 'cat' },
    { name: 'Meowser', owner_name: 'Donald', type: 'cat' },
    { name: 'Donald', owner_name: 'Donald', type: 'cat' },
    { name: 'Hodor', owner_name: 'Eliza', type: 'bird' },
    { name: 'Bumpkin', owner_name: 'Georgina', type: 'horse' },
    { name: 'Secretariat', owner_name: 'Hillary', type: 'horse' },
    { name: 'Socks', owner_name: 'Hillary', type: 'dog' },
    { name: 'Sir Barks-Alot', owner_name: 'Liam', type: 'dog' },
    { name: 'Harry Potter', owner_name: 'Leland', type: 'horse' },
    { name: 'Xerses', owner_name: 'Michael', type: 'horse' },
    { name: 'Zeus', owner_name: 'Michael', type: 'cat' },
    { name: 'Rocket', owner_name: 'Phoebe', type: 'cat' },
    { name: 'Kermit', owner_name: 'Sherry', type: 'dog' },
    { name: 'Hector', owner_name: 'Sherry', type: 'dog' },
    { name: 'Essy', owner_name: 'Sherry', type: 'dog' },
    { name: 'Samwise', owner_name: 'Sherry', type: 'dog' },
    { name: 'Jenkins', owner_name: 'Zed', type: 'horse' }
  ]
}

ie, there are no rows or columns fields. The docs site looks to be wrong as well regarding this: https://docs.tableland.xyz/cli#8ba613646761444aa900dd7bd84ceb80

The output w/ objects (which appears to be the default?), is not JSON:

tableland read "select * from pets_31337_4" | jq
parse error: Invalid numeric literal at line 2, column 7

This should return results as JSON to they can be piped to jq or a file. This usage pattern is what led me here. Both table and objects should return valid JSON.

I noticed 3 as well. It's because the keys aren't surrounded by "s. Agree it should be proper JSON.

@carsonfarmer Looks like we'll need to go back to the stringified version of the JSON once and for all. What gets piped is valid JSON within JavaScript file, but it isn't serialized for other uses. I'll can swap the console.dir for console.log(JSON.stringify()) version.

Yeh that fixes point 3 above, but then we'll need to actually fix the regression from the different output formats. Additionally, we might want to make sure that the output format names now match those used in the SDK and APIs? I think there are like 4 possibilities here:

Pretty (which is just the console.table version of all().results
Objects (which is just the default all().results)
Table (which is probably the old rows, and columns?
Raw (which is just raw().results I think)?


Open configured terminal with Ctrl + Shift + C

This tutorial shows how to open an external terminal. The problem is that the terminal that is opened is the default terminal for the OS?

What will be useful in my opinion is to have possibility to open the terminal that is selected in your configuration:

After that selection when one presses: Ctrl+Shift+C (for Windows).

Set terminal.external.windowsExec to whatever you want ctrl+shift+c to open


Freshness checks are warning/failing

We've started to get some warnings (which will shortly be errors) in our source freshness checks: https://california.getdbt.com/deploy/6/projects/10/runs/5414
Unsure if the issue is with the checks or with the relay process right now, @pingpingxiu-DOT-ca-gov can you take a look?

@pingpingxiu-DOT-ca-gov the freshness checks are now failing, are you able to take another look?

My latest 3 day’s changes on ES had some bug that impacted data relay, which I fixed.
However, the freshness check continue to fail.
 Now, the source data, is the remaining cause. I checked on the Oracle source table,

And found the SELECT * FROM PEMS.DETECTOR_CONFIG_LOG where time_id >  TRUNC(SYSDATE) – 2
returns empty data. And it is the case for the DETECTOR, STATION and CONTROLLER.
 Ken, is there any upstream changes that cause the stale for the config tables?

From: Ian Rose @.>
Sent: Friday, October 4, 2024 8:56 AM
To: cagov/caldata-mdsa-caltrans-pems @.>
Cc: Xiu, @.*** @.>; Mention @.>
Subject: Re: [cagov/caldata-mdsa-caltrans-pems] Freshness checks are warning/failing (Issue #411)
EXTERNAL EMAIL. Links/attachments may not be safe.
@pingpingxiu-DOT-ca-govhttps://urldefense.com/v3/__https:/github.com/pingpingxiu-DOT-ca-gov__;!!LWi6xHDyrA!97aMtB7LRI2XcWjdleMwxBss753BNqDz6y5v_cjvH3KFt6uLakW8Z83oTaWiXj25L9rtS9BNvFe1kT1MMQtrM6tMSppU320$ the freshness checks are now failing, are you able to take another look?
https://california.getdbt.com/deploy/6/projects/10/runs/5449https://urldefense.com/v3/__https:/california.getdbt.com/deploy/6/projects/10/runs/5449__;!!LWi6xHDyrA!97aMtB7LRI2XcWjdleMwxBss753BNqDz6y5v_cjvH3KFt6uLakW8Z83oTaWiXj25L9rtS9BNvFe1kT1MMQtrM6tMsLFpEQU$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/cagov/caldata-mdsa-caltrans-pems/issues/411*issuecomment-2394010826__;Iw!!LWi6xHDyrA!97aMtB7LRI2XcWjdleMwxBss753BNqDz6y5v_cjvH3KFt6uLakW8Z83oTaWiXj25L9rtS9BNvFe1kT1MMQtrM6tMMDvXSzk$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/BDVOYUMO6NDKKT25FACAVSTZZ23AZAVCNFSM6AAAAABPKE2N6CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJUGAYTAOBSGY__;!!LWi6xHDyrA!97aMtB7LRI2XcWjdleMwxBss753BNqDz6y5v_cjvH3KFt6uLakW8Z83oTaWiXj25L9rtS9BNvFe1kT1MMQtrM6tMAdq2P2Y$.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Good morning and I see that the last equipment set update occurred on 10/1/24 for D3. It looks like the D8 daily equipment feed update last occurred on 9/16/24. I will follow up with our consultant to see what may have changed to affect the D8 feed but since all other equipment feeds require manual updates they are not updated as frequently.

Per @kengodleskidot the issue appears to be that the districts are not sending data updates. He will follow up with them to see if there is a failure on there side or if this is expected behavior.
If this is expected, @pingpingxiu-DOT-ca-gov says we can add a new timestamp which would detect if the data relay is the issue vs. the equipment data feed.

I added https://github.com/cagov/caldata-mdsa-caltrans-pems/pull/436 PR for making less sensitive on the detector config log freshness.


How does introspection token strategy work?

Hi,
I'm trying to set oauth2 plugin for endpoint. When I set the token_strategy as jwt, it showed that I need authentication, and then it went throug after I got a token from oauth server. However, when I set the token_strategy as introspection, it just went through without a valid token.
Here's my config for oauth2 plugin:
{
  "name": "uaac",
  "oauth_endpoints": {
    "token": {
      "listen_path": "/token/*",
      "upstreams": {
        "balancing": "roundrobin",
        "targets": [
          {
            "target": "http://<IP_ADDRESS>:4000"
          }
        ]
      },
      "strip_path": false,
      "append_path": true,
      "methods": [
        "POST"
      ]
    },
    "introspect" : {
      "listen_path" : "/introspection",
      "methods" : [
        "GET",
        "POST"
      ],
      "strip_path" : false,
      "append_path": true,
      "upstream_url" : "http://<IP_ADDRESS>:4000"
    }
  },
  "token_strategy" : {
    "name" : "introspection",
    "settings" : {
      "use_auth_header" : true,
      "auth_header_type" : "token"
    }
  }
}

OK, I checked the source code, and I found I set a wrong config for oauth plugin.

How to solve it?
{"log":"{\"api_name\":\"example\",\"error\":\"You need to set a JWT secret\",\"level\":\"error\",\"msg\":\"Error executing plugin\",\"name\":\"oauth2\",\"time\":\"2019-12-31T23:20:05+08:00\"}\n","stream":"stderr","time":"2019-12-31T15:20:05.396673601Z"}


cannot insert datetime directly

I got a python datetime object, and wanted to insert data via
s.insert([ ["id",e.id],["created_at",e.created_at],..)
Got error message

failed to insert Object of type datetime is not JSON serializable

Workaround is to call e.created_at.isoformat()
Ideally the python SDK can accept native datetime objects

(Jove Github Bot) moved this ticket out of the GitHub project(up to 1200 tickets for one project).


Removing published flag

Event.published was unnecessary and annoying, so this PR:

Removes it from the model.
Rewrites the generators for upcoming and unpublished events to use the logic we actually want.
Refactors tests to put event generation in a common place.
Modifies some tests to reflect the changes above.

On Sat, Jun 13, 2015 at 07:57:10AM -0700, Greg Wilson wrote:

Event.published was unnecessary and annoying…

+1 for more DRY :).  But we don't want to confuse people with
unintended side effects, so we need to make sure we're communicating
the backend logic to folks who are entering the information driving
that logic.

Do admins need an "(un)published" indicator? Would they need to take some actions if an event was (un)published?
I'm +1 for the notion of "incomplete" event. If we can generate Eventbrite registration forms from AMY, or copy/send Google Docs surveys, then we probably don't want to send them to events that should not yet start.
So maybe "unfit/ready" instead of "(in)complete"?
Additionally, if you agree with me about Eventbrite events and GDocs surveys, then we need to decide what makes an event ready for publication. A slug? Daterange? Valid homepage? Not-null admin fee?

On Mon, Jun 15, 2015 at 03:15:22PM -0700, Piotr Banaszkiewicz wrote:

Do admins need an "(un)published" indicator? Would they need to take
some actions if an event was (un)published?

Only published events show up here 1, although I'm not actually sure
how that view is populated from AMY data.  The current export view
doesn't seem to be about events 2.

I'm +1 for the notion of "incomplete" event. If we can generate
Eventbrite registration forms from AMY, or copy/send Google Docs
surveys, then we probably don't want to send them to events that
should not yet start.

Yeah, these should also be tied to our “unpublished” logic (whatever
we want to call it).

Additionally, if you agree with me about Eventbrite events and GDocs
surveys, then we need to decide what makes an event ready for
publication. A slug? Daterange? Valid homepage? Not-null admin fee?

I think the new logic is reasonably clear (if currently undocumented
in the UI).  See discussion here 3.

@wking updated.

I'm going to merge this with my fixes:

'published' fields removed from EventForm and EventFilter
undid Site model on_delete undo (it was on_delete=models.PROTECT, then rolled back to nothing, now I'm changing back to on_delete=models.PROTECT)
removed migration 0017_* that was introduced because of above change (from on_delete=… to nothing)


log of swift package resolve shoud be in output rather than the terminal?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Not sure if it's the standard way to put the log of swift package resolve and other similar logs in the output section of VSCode. right now it's in the terminal.
It seems other extesions print it in the output section and it's easy to choose task from the dropdown list for example, LSP,  LLDB, SwiftFormat
Feel free to close it if you think currently it's the best way
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

It is standard for all VS code tasks to output to a terminal.
Background processes like LSP don't have a related task so use a output pane.


Return all countries from getAvailableCountries

@jodastephen - any concerns with this? We want a more complete list of contracts to expose as a dropdown in the UI


gravity header

hi, can i set gravity header?
thanks

Hi @dwinetralizme,
could you please explain in more details what your need is. Do you want to set the gravity to any view in a header cell, or do you need to set the gravity to a TextView in a header cell, or do you want to set the gravity to the sorting indicators, or something totally different?
Best regards,
Ingo

mr @ISchwarz23 yes i need to set the gravity position centre and set position right to the sorting indicators. can you help me.
thx

The (Sortable)-TableView provides the native RTL support. So, if you have set the android:supportRtl="true" in your manifest file, the columns as well as the sorting indecators will be rtl or ltr corresponding to the locale/language. But unfortunatelly there is no way to define the position of the sorting indicators. In ltr they are on the left and in rtl they are on the right. There is no way on setting this programatically. The only thing you can adapt is the header cell for each column header. There you can do what ever you want by implementing an TableHeaderAdapter. You can also create your own SortingStateViewProvider which gives an DrawableResource that will be shown for a certain SortState, but the position of the provided image resource will be defined by the table.
So the short answer to your question is: No, unfortunatelly it is not possible.