Q: ResourceServer with custom roles/permissions.

Hi,
We have an application with controllers that need to be protected per user, such as:
@PreAuthorize("hasRole('ROLE_SITE_MANAGEMENT') and hasPermission(#productId, 'PRODUCT', 'WRITE')")
In the current application, we have @EnableGlobalMethodSecurity(prePostEnabled = true) activated. We have a CustomAuthenticationProvider that acts as both AuthenticationProvider and UserDetailsService, and puts roles and permission attributes in the Authentication objects, and a CustomPermissionEvaluator that can check the permission attributes.
Now we want to switch to OAuth2, so we make the application a ResourceServer by using @EnableResourceServer, and authenticate with JWT tokens obtained from an external authorization server (a Spring boot application with @EnableAuthorizationServer). The authorization server puts the username in the JWT token, plus some OAuth2 attributes, so the SecurityContextHolder.getContext().getAuthentication() is now a OAuth2Authentication object.
The @PreAuthorize(...) is now validated for the OAuth2Authentication object, but how can I add custom roles into it that are not provided in the JWT token? Can I wire a UserDetailsService in the OAuth2AuthenticationManager?
My CustomPermissionEvaluator seems to be picked up by the OAuth2MethodSecurityConfiguration, but it doesn't see the permission attributes, so it cannot really do much, unless it would read the permission attributes based on the login name itself.

Apparently, the solution for https://github.com/spring-projects/spring-security-oauth/issues/186 worked for me, too:
@Configuration
public class JwtAccessTokenConverterConfig implements JwtAccessTokenConverterConfigurer {
    @Autowired
    private CustomUserDetailsService customUserDetailsService;

    @Override
    public void configure(JwtAccessTokenConverter converter) {
        DefaultAccessTokenConverter accessTokenConverter = new DefaultAccessTokenConverter();
        DefaultUserAuthenticationConverter userTokenConverter = new DefaultUserAuthenticationConverter();
        userTokenConverter.setUserDetailsService(secUserDetailsService);
        accessTokenConverter.setUserTokenConverter(userTokenConverter);
        converter.setAccessTokenConverter(accessTokenConverter);
    }
}


Suggestion: make the code more generic and portable

Great work. Can't wait for YouTube videos. :-)
I understand you're targeting a specific board, but it may be a good idea to make the code more generic and portable so developers with different boards can follow the tutorial without making huge modifications. One way to do this is to use the AnyPin structs, which can help make your code more portable across different microcontrollers.
For example, in the ch-02 program, the LED is tied to a specific pin (gpio::Gpio8), which may not be the case on all boards. To make the program more generic, you could use the AnyOutputPin struct instead, which allows you to use any output pin that implements the esp_idf_hal::gpio::OutputPin trait.
use esp_idf_hal::{
    gpio::{AnyOutputPin, Output, OutputPin, PinDriver},
    prelude::*,
};
use esp_idf_sys as _;
use std::{thread, time::Duration};

static BLINKY_STACK_SIZE: usize = 2000;

fn main() {
    esp_idf_sys::link_patches();

    let peripherals = Peripherals::take().unwrap();
    let led = PinDriver::output(peripherals.pins.gpio8.downgrade_output()).unwrap();  // <- Gpio8 is downgraded to AnyOutputPin
    // print_type_of(&led); -> You no longer need to print the type name. It is always PinDriver<AnyOutputPin, Output>.

    let _blinky_thread = std::thread::Builder::new()
        .stack_size(BLINKY_STACK_SIZE)
        .spawn(move || blinky_thread(led))
        .unwrap();
}

// this takes AnyOutputPin
fn blinky_thread(mut led: PinDriver<AnyOutputPin, Output>) {
    loop {
        thread::sleep(Duration::from_millis(500));
        println!("LED ON");
        led.set_high().unwrap();
        thread::sleep(Duration::from_millis(500));
        println!("LED OFF");
        led.set_low().unwrap();
    }
}

This way, you can even create an additional thread and blink two LEDs at the same time using the same blinky_thread function.
// ....
let _blinky_thread = std::thread::Builder::new()
    .stack_size(BLINKY_STACK_SIZE)
    .spawn(move || blinky_thread(led))
    .unwrap();

let another_led = PinDriver::output(peripherals.pins.gpio10.downgrade_output()).unwrap();
let _another_blinky_thread = std::thread::Builder::new()
    .stack_size(BLINKY_STACK_SIZE)
    .spawn(move || blinky_thread(another_led))
    .unwrap();

The ch-02 program is such a small example. If you don't see much benefits, take a look at the ch-03 program. Suppose AnyOutputPin struct is used instead of a specific pin in fsm.rs. In that case, I can simply copy and paste the fsm module into my project and initialize a Blinky with whatever pin I have in the main without needing to modify fsm.rs.

Thank you @lonesometraveler!  I've been searching for how to do exactly this!  I'll refactor the examples to use generic IO types.

Repo is refactored to use generic pin passing.


user stories page isn't functional when in lower resolutoin

happened on Arc when I zoomed into the breakpoint that provides 1 entry per row.

Cannot reporoduce - possibly was fixed by https://github.com/metalbear-co/app.metalbear.co/pull/156


Cmd+k in the integrated terminal does not clear the text

VSCode Version: Code 1.17.0 (be377c0faf7574a59f84940f593a6849f12e4de7, 2017-10-05T06:07:51.906Z)
OS Version: Darwin x64 17.0.0
Extensions:

Extension
Author (truncated)
Version

swagger-viewer
Arj
1.4.0

vscode-generate-getter-setter
DSK
0.4.2

xml
Dot
1.9.2

vscode-pandoc
Dou
0.0.8

EditorConfig
Edi
0.10.1

latex-workshop
Jam
3.5.5

vscode-docker
Pet
0.0.18

latex-preview
ajs
0.5.1

vscode-intelephense-client
bme
0.7.2

vscode-eslint
dba
1.3.2

githistory
don
0.2.3

gitlens
eam
5.4.1

tslint
eg2
1.0.9

git-project-manager
fel
1.4.0

php-debug
fel
1.11.1

php-intellisense
fel
1.5.1

php-pack
fel
1.0.1

auto-rename-tag
for
0.0.14

ruby
gro
0.0.6

phpcs
ika
0.7.0

codeacejumper
luc
1.1.5

Go
luk
0.6.66

ruby-symbols
mig
0.1.5

vscode-clang
mit
0.2.2

cpptools
ms-
0.13.1

php-docblocker
nei
1.3.0

advanced-new-file
pat
0.5.0

java
red
0.11.0

vscode-table-formatter
shu
1.2.1

vscode-hexdump
sle
1.4.0

Align
ste
0.2.0

rewrap
stk
1.5.1

gotimeformat
v4r
1.0.1

vscode-todo-highlight
way
0.5.11

In an external terminal window, typing cmd+K clears all text. The default keyboard shortcuts contain the following, indicating that this should work in the integrated terminal too:
{ "key": "cmd+k",                 "command": "workbench.action.terminal.clear",
                                     "when": "terminalFocus" },

Steps to Reproduce:

In the Terminal pane, type cmd+K to clear the text.
Instead of clearing, the status line displays "Waiting for second key of chord".

Reproduces without extensions: Yes

Works for me, do you have any custom keybindings?

I do have custom bindings with a cmd+k prefix. It works if I remove those. Here are the relevant bindings:
    {
        "key": "cmd+k w",
        "command": "editor.action.toggleWordWrap"
    },
    {
        "key": "alt+z",
        "command": "-editor.action.toggleWordWrap"
    },
    {
        "key": "cmd+k f",
        "command": "-workbench.action.closeFolder"
    },
    {
        "key": "cmd+k f",
        "command": "editor.action.formatDocument",
        "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly"
    },

@svenax overriding a coord keybinding is a little fragile, you will notice in the default keybindings that cmd+k is below all the other chord keybindings (except for markdown preview which has a different context). This is intentional and is how they're overridden when the terminal is focused.
The current way around this is to just redefine cmd+k again underneath your custom keybindings:
    {
        "key": "cmd+k w",
        "command": "editor.action.toggleWordWrap"
    },
    {
        "key": "cmd+k f",
        "command": "-workbench.action.closeFolder"
    },
    {
        "key": "cmd+k f",
        "command": "editor.action.formatDocument",
        "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly"
    },
{ "key": "cmd+k",                 "command": "workbench.action.terminal.clear",
                                     "when": "terminalFocus" },


Remember last used playlist choice, show option on menu

YouTube doesn't have this one (yet)...
If I'm adding to a common playlist, I don't want to have to go into "add to lists" every time. Would be nice to show the last used playlist along side the favorites/watch later options.

Hello @tzarebczan, something like this is ok?
When no collection was used (no change)

Collection was used (test):

Video is already in last used collection:

I thikn this is a great start. pr?

Hello @jessopb, sorry for the delay. I just sent the PR. Let me know if you got any comments :+1:


Add LiteLLM Support

Add support for LiteLLM within SWE-agent so people can use any open-source model they want for the agent, rather than just OpenAI or Anthropic APIs.
Edit: Switched from Ollama to LiteLLM as LiteLLM should be a bit more abstract than Ollama and support a wider range of closed source and open source LLMs so the community can have more freedom over what they use.

Turns out that inside of the SWE-agent, you can call ollama models using ollama:<OLLAMA_MODEL_NAME_GOES_HERE already.


Fix: Output minification step breaks SourceMap chain with inlined sourceContents #561

Addresses issue #561

Amazing work, thank you so much for putting together the PR.


test: Add e2e test for Mock tag

resolves #425

-[ ] test if Mock Network tag is present or absent based on whether node env is test or dev or prod

Also peruse/spec is the wrong place for these tests, they are SAFE specific, so should live in the extensions.


Fisheye

Hi and thanks for this awesome library!
I think I don't get all of this but it seems that it's not possible to have a fish eye effect with your library am I right?
Here is two pictures, the first one is from Theta website (original link)

And here is the one I got with pannellum

The two have the same zoom level but the effect is very different.. Is it possible to this with pannellum? Did I miss something?

This is a duplicate of #52. The Ricoh viewer transitions from rectilinear projection to stereographic projection when zoomed out enough. It's something I hope to get to eventually.

Yep thanks to point it out! Thanks for your answer and keep on the good work ;)


Index generation from local in upload period

This patch dose not contain codes for modify index.html when overlap, the feature will be contained in next patch. this is as expected

I've added delete feature to .index file now it now handles removal of overlapping items and removal of entire .index file correctly

@ligangty Although codes definitely needs optimization, we can do smoke test on dev env while I'm absent next week(18th to 21st)


Script To Generate Passwords

Script Description -
what will change -
My idea is to have a script which generates passwords within the range of a given set of parameters. The parameters include the minimum and maximum lengths, occurrence of characters, as well as the valid range for a set of characters.
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed
add pytest/unittest if possible

Please add/delete options that are not relevant.

[x] Adding New Code
[x] Improving Documentation

Programming Language

[x] Python

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server  - https://discord.gg/FXyh2S3
Happy Coding,

@Akshat-Mishra101 Same script is already implemented.
https://github.com/Py-Contributors/awesomeScripts/tree/master/Utility_Scripts/random_password_generator


Adding PagerDuty to the supported providers

Is your feature request related to a problem? Please describe.
It will be ideal to support sending PagerDuty alerts whenever there is an error with any of the pods.
Describe the solution you'd like
Adding support for PagerDuty alerts

@amgadramses Thanks for raising this!


Query Regarding Porting to following FPGA's

Hey there!
Can we port ztachip to the following FPGAs with less than 100,000 LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's (Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than 100,000 LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHubhttps://github.com/ztachip/ztachip/issues/11, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY.
You are receiving this because you are subscribed to this thread.

Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than 100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.
You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi,
Yes thanks for the info. Elderly care is our aim in this standlone device.
Sorry to hear about your aunt. We belive this is the most neglected part of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
2.Create New Application: In the SW/apps directory, create a new directory
specifically for your PoseNet application. This directory will contain all
the necessary code to run PoseNet.
3.Implement Application Logic: Use the existing TensorFlow Lite application
examples in SW/apps/nn as a reference. Adapt this logic to initialize and
run our PoseNet model, focusing on handling multi-person detection outputs.
3.Input and Output Processing: Implement logic for processing input (e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location)
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical path).
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler. This
involves modifying the lexer (Lexer.l), parser (Parser.y), and potentially
adding new instruction generation logic (gen.cpp).
Do we need to modify any existing compiler modifications for this
implementation?
Please do let me know if this process we are following is going good or any
modifications are necessary.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies you
are working on.
For computing performance, I could add something later to measure the ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal. But
you can track heap usage in newlib.c although this only tracks peak usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than 100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.
You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

From: fabricchip @.>
Sent: March 24, 2024 2:58 AM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's (Issue #11)
Hi,
Yes thanks for the info. Elderly care is our aim in this standlone device.
Sorry to hear about your aunt. We belive this is the most neglected part of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
I has a quick look at the graph for PoseNet, PoseNet looks like a typical CNN like Mobinet/SSD-Mobinet, ztachip should work fine but I am not very sure since I did not look very deep into it. Any new layers not supported yet are done in SW/apps/nn folder and not compiler. There is a file dedicated for each layer type, you need to implement a new layer type.
2.Create New Application: In the SW/apps directory, create a new directory
specifically for your PoseNet application. This directory will contain all
the necessary code to run PoseNet.
You dont really need a new folder for PoseNet since the GraphNode for TensorflowLite (TfliteNn) is generic, please reference to document below. I would put your new application under same folder like the example SW/src/vision_ai.cpp
https://github.com/ztachip/ztachip/raw/master/Documentation/visionai_programmer_guide.pdf
3.Implement Application Logic: Use the existing TensorFlow Lite application
examples in SW/apps/nn as a reference. Adapt this logic to initialize and
run our PoseNet model, focusing on handling multi-person detection outputs.
Same as question2, the way you use PoseNet is the same as the way MobiNet as shown in example SW/src/vision_ai.cpp, vision_ai.cpp is a good place to reference.
3.Input and Output Processing: Implement logic for processing input (e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
You can look at SW/src/vision_ai.cpp on how to do this, the example for SSD-mobinet draws rectangle around the detected objet
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
I normally use a test vector for verification, you can look at SW/src/test.cpp, there are example on how to unit test AI model with saved input and saved expected output.
To run unit tests, recompile the code with UNIT_TEST=yes in SW/makefile
For performance, next version there will be some function for it, but for now time benchmark how long it takes for graph completion would give you an idea.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location
vision_ai.cpp is a good example on how to start your app
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
There are example in vision_ai.cpp for image proprocessing
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical path).
Same as above, vision_ai.cpp is a good reference for how to do it.
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler. This
involves modifying the lexer (Lexer.l), parser (Parser.y), and potentially
adding new instruction generation logic (gen.cpp).
Compiler is for generic ztachip acceleration and not related to AI. There is no need to change there
Reference to answer of question1  above.
Do we need to modify any existing compiler modifications for this
implementation?
No
Please do let me know if this process we are following is going good or any
modifications are necessary.
I think there is a good chance what you need to do: preprossing+posenet+display already supported by ztachip.
Seems like what you need to do is similar to what is done at vision_ai.cpp example.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies you
are working on.
For computing performance, I could add something later to measure the ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal. But
you can track heap usage in newlib.c although this only tracks peak usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than 100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.
You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHubhttps://github.com/ztachip/ztachip/issues/11#issuecomment-2016715282, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACSDUFUBAZKTA2LBAKG5LMDYZZ2RVAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWG4YTKMRYGI.
You are receiving this because you commented.

In few weeks, there will be a new ztachip release with micropython support.
Then you also have many of the features available from micropython like networking, file system, web, ...
There is also good community support for micropython
It runs just as fast as native C/C++ since python is used primarily just to setup the graph, all processing is still native speed

From: fabricchip @.>
Sent: March 24, 2024 2:58 AM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's (Issue #11)
Hi,
Yes thanks for the info. Elderly care is our aim in this standlone device.
Sorry to hear about your aunt. We belive this is the most neglected part of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
2.Create New Application: In the SW/apps directory, create a new directory
specifically for your PoseNet application. This directory will contain all
the necessary code to run PoseNet.
3.Implement Application Logic: Use the existing TensorFlow Lite application
examples in SW/apps/nn as a reference. Adapt this logic to initialize and
run our PoseNet model, focusing on handling multi-person detection outputs.
3.Input and Output Processing: Implement logic for processing input (e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location)
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical path).
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler. This
involves modifying the lexer (Lexer.l), parser (Parser.y), and potentially
adding new instruction generation logic (gen.cpp).
Do we need to modify any existing compiler modifications for this
implementation?
Please do let me know if this process we are following is going good or any
modifications are necessary.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies you
are working on.
For computing performance, I could add something later to measure the ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal. But
you can track heap usage in newlib.c although this only tracks peak usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than 100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.
You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHubhttps://github.com/ztachip/ztachip/issues/11#issuecomment-2016715282, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACSDUFUBAZKTA2LBAKG5LMDYZZ2RVAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWG4YTKMRYGI.
You are receiving this because you commented.

Wow that's quick and elaborate. So the main program is vision
SW/src/vision_ai.cpp.
Thanks for pointing out that and also no need to create a new folder
posenet , just a new layer file to be done under nn.
Rest is vision_ai.cpp
Thank you we will follow and update you.
Only one question: does ztachip parallel process work in "dynamic shape
input" since nvidia cuda cores don't work for dynamic shape input, in this
particular mutipose model.
{
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
}
Handling Dynamic Input Shapes:
Dynamic Shape Support: Advanced AI models, including those for pose
estimation that handle varying numbers of detections, require support for
dynamic input shapes.
The ztachip platform might have mechanisms in place to handle tensors with
dynamic shapes, adjusting memory allocation and operation execution as
needed.
Is this assumption correct?
On Sun, Mar 24, 2024, 9:57 PM ztachip @.***> wrote:

From: fabricchip @.>
Sent: March 24, 2024 2:58 AM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hi,
Yes thanks for the info. Elderly care is our aim in this standlone device.
Sorry to hear about your aunt. We belive this is the most neglected part
of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will
stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the
PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If
there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
I has a quick look at the graph for PoseNet, PoseNet looks like a typical
CNN like Mobinet/SSD-Mobinet, ztachip should work fine but I am not very
sure since I did not look very deep into it. Any new layers not supported
yet are done in SW/apps/nn folder and not compiler. There is a file
dedicated for each layer type, you need to implement a new layer type.
2.Create New Application: In the SW/apps directory, create a new directory
specifically for your PoseNet application. This directory will contain all
the necessary code to run PoseNet.
You dont really need a new folder for PoseNet since the GraphNode for
TensorflowLite (TfliteNn) is generic, please reference to document below. I
would put your new application under same folder like the example
SW/src/vision_ai.cpp
https://github.com/ztachip/ztachip/raw/master/Documentation/visionai_programmer_guide.pdf
3.Implement Application Logic: Use the existing TensorFlow Lite
application
examples in SW/apps/nn as a reference. Adapt this logic to initialize and
run our PoseNet model, focusing on handling multi-person detection
outputs.
Same as question2, the way you use PoseNet is the same as the way MobiNet
as shown in example , vision_ai.cpp is a good place to reference.
3.Input and Output Processing: Implement logic for processing input (e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
You can look at SW/src/vision_ai.cpp on how to do this, the example for
SSD-mobinet draws rectangle around the detected objet
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
I normally use a test vector for verification, you can look at
SW/src/test.cpp, there are example on how to unit test AI model with saved
input and saved expected output.
To run unit tests, recompile the code with UNIT_TEST=yes in SW/makefile
For performance, next version there will be some function for it, but for
now time benchmark how long it takes for graph completion would give you an
idea.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location
vision_ai.cpp is a good example on how to start your app
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
There are example in vision_ai.cpp for image proprocessing
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical path).
Same as above, vision_ai.cpp is a good reference for how to do it.
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as
keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this
purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler. This
involves modifying the lexer (Lexer.l), parser (Parser.y), and potentially
adding new instruction generation logic (gen.cpp).
Compiler is for generic ztachip acceleration and not related to AI. There
is no need to change there
Reference to answer of question1 above.
Do we need to modify any existing compiler modifications for this
implementation?
No
Please do let me know if this process we are following is going good or
any
modifications are necessary.
I think there is a good chance what you need to do:
preprossing+posenet+display already supported by ztachip.
Seems like what you need to do is similar to what is done at vision_ai.cpp
example.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies you
are working on.
For computing performance, I could add something later to measure the
ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal. But
you can track heap usage in newlib.c although this only tracks peak
usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following
FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best
use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance
metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than
100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>,
or
unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.

You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016715282>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFUBAZKTA2LBAKG5LMDYZZ2RVAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWG4YTKMRYGI>.
You are receiving this because you commented.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016861001,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHKIUTECMKFBIJSZN73YZ35G3AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHA3DCMBQGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Wow you just released micropython code! "In few weeks, there will be a new ztachip release with micropython support.
Then you also have many of the features available from micropython like networking, file system, web.." Its good to learn this and I am sure our development will pickup pace on this micropython code you just released.

Awesome you have released micropython as indicated earlier this makes the job very easy to port and try out new models. Especially our posenet model. We are actively working on it. I am closing the issue for now this thread now.

The model https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
On the website it shows only FP16 version.
You need to do an extra quantization step to INT8 for ztachip to work however.
If you can get this converted, I can give it a try for you.

From: fabricchip @.>
Sent: March 24, 2024 12:50 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's (Issue #11)
Wow that's quick and elaborate. So the main program is vision
SW/src/vision_ai.cpp.
Thanks for pointing out that and also no need to create a new folder
posenet , just a new layer file to be done under nn.
Rest is vision_ai.cpp
Thank you we will follow and update you.
Only one question: does ztachip parallel process work in "dynamic shape
input" since nvidia cuda cores don't work for dynamic shape input, in this
particular mutipose model.
{
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
}
Handling Dynamic Input Shapes:
Dynamic Shape Support: Advanced AI models, including those for pose
estimation that handle varying numbers of detections, require support for
dynamic input shapes.
The ztachip platform might have mechanisms in place to handle tensors with
dynamic shapes, adjusting memory allocation and operation execution as
needed.
Is this assumption correct?
On Sun, Mar 24, 2024, 9:57 PM ztachip @.***> wrote:

From: fabricchip @.>
Sent: March 24, 2024 2:58 AM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hi,
Yes thanks for the info. Elderly care is our aim in this standlone device.
Sorry to hear about your aunt. We belive this is the most neglected part
of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will
stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the
PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If
there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
I has a quick look at the graph for PoseNet, PoseNet looks like a typical
CNN like Mobinet/SSD-Mobinet, ztachip should work fine but I am not very
sure since I did not look very deep into it. Any new layers not supported
yet are done in SW/apps/nn folder and not compiler. There is a file
dedicated for each layer type, you need to implement a new layer type.
2.Create New Application: In the SW/apps directory, create a new directory
specifically for your PoseNet application. This directory will contain all
the necessary code to run PoseNet.
You dont really need a new folder for PoseNet since the GraphNode for
TensorflowLite (TfliteNn) is generic, please reference to document below. I
would put your new application under same folder like the example
SW/src/vision_ai.cpp
https://github.com/ztachip/ztachip/raw/master/Documentation/visionai_programmer_guide.pdf
3.Implement Application Logic: Use the existing TensorFlow Lite
application
examples in SW/apps/nn as a reference. Adapt this logic to initialize and
run our PoseNet model, focusing on handling multi-person detection
outputs.
Same as question2, the way you use PoseNet is the same as the way MobiNet
as shown in example , vision_ai.cpp is a good place to reference.
3.Input and Output Processing: Implement logic for processing input (e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
You can look at SW/src/vision_ai.cpp on how to do this, the example for
SSD-mobinet draws rectangle around the detected objet
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
I normally use a test vector for verification, you can look at
SW/src/test.cpp, there are example on how to unit test AI model with saved
input and saved expected output.
To run unit tests, recompile the code with UNIT_TEST=yes in SW/makefile
For performance, next version there will be some function for it, but for
now time benchmark how long it takes for graph completion would give you an
idea.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location
vision_ai.cpp is a good example on how to start your app
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
There are example in vision_ai.cpp for image proprocessing
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical path).
Same as above, vision_ai.cpp is a good reference for how to do it.
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as
keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this
purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler. This
involves modifying the lexer (Lexer.l), parser (Parser.y), and potentially
adding new instruction generation logic (gen.cpp).
Compiler is for generic ztachip acceleration and not related to AI. There
is no need to change there
Reference to answer of question1 above.
Do we need to modify any existing compiler modifications for this
implementation?
No
Please do let me know if this process we are following is going good or
any
modifications are necessary.
I think there is a good chance what you need to do:
preprossing+posenet+display already supported by ztachip.
Seems like what you need to do is similar to what is done at vision_ai.cpp
example.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies you
are working on.
For computing performance, I could add something later to measure the
ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal. But
you can track heap usage in newlib.c although this only tracks peak
usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following
FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may experience.
With the ever-growing aging population, there is an urgent need for the
development of fall detection systems. We belive your repo is the best
use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can type
like htop or top to see memory usage dynamically and performance
metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than
100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>,
or
unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.

You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016715282>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFUBAZKTA2LBAKG5LMDYZZ2RVAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWG4YTKMRYGI>.
You are receiving this because you commented.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016861001,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHKIUTECMKFBIJSZN73YZ35G3AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHA3DCMBQGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHubhttps://github.com/ztachip/ztachip/issues/11#issuecomment-2016867414, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACSDUFUFW2HG2VK6QFWX5NLYZ374TAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHA3DONBRGQ.
You are receiving this because you commented.

Sure, we will convert fp16 to int8 for multipose model. Its really worthy
the project.
On Tue, Apr 2, 2024, 10:03 AM ztachip @.***> wrote:

The model
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
On the website it shows only FP16 version.
You need to do an extra quantization step to INT8 for ztachip to work
however.
If you can get this converted, I can give it a try for you.

From: fabricchip @.>
Sent: March 24, 2024 12:50 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following FPGA's
(Issue #11)
Wow that's quick and elaborate. So the main program is vision
SW/src/vision_ai.cpp.
Thanks for pointing out that and also no need to create a new folder
posenet , just a new layer file to be done under nn.
Rest is vision_ai.cpp
Thank you we will follow and update you.
Only one question: does ztachip parallel process work in "dynamic shape
input" since nvidia cuda cores don't work for dynamic shape input, in this
particular mutipose model.
{
https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning
}
Handling Dynamic Input Shapes:
Dynamic Shape Support: Advanced AI models, including those for pose
estimation that handle varying numbers of detections, require support for
dynamic input shapes.
The ztachip platform might have mechanisms in place to handle tensors with
dynamic shapes, adjusting memory allocation and operation execution as
needed.
Is this assumption correct?
On Sun, Mar 24, 2024, 9:57 PM ztachip @.***> wrote:

From: fabricchip @.>
Sent: March 24, 2024 2:58 AM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following
FPGA's
(Issue #11)
Hi,
Yes thanks for the info. Elderly care is our aim in this standlone
device.
Sorry to hear about your aunt. We belive this is the most neglected part
of
our aim to solve this using standlone FPGA based edge device...we would
want to run this as low cost FPGA device eventually . For now we will
stick
to arty a7.
We have made significant progress in compiling the code.
I just wanted to understand to integrate.

https://www.kaggle.com/models/google/movenet/frameworks/tensorFlow2/variations/multipose-lightning

Since tensorflowlite is already supported on ztachip.
We belive the following steps are important for integration:
1.Model Compatibility Check: Verify that all operations used by the
PoseNet
model are supported by the ztachip TensorFlow Lite implementation. If
there
are unsupported operations, you might need to implement these at the
compiler level. Is this correct assumption?
I has a quick look at the graph for PoseNet, PoseNet looks like a
typical
CNN like Mobinet/SSD-Mobinet, ztachip should work fine but I am not very
sure since I did not look very deep into it. Any new layers not
supported
yet are done in SW/apps/nn folder and not compiler. There is a file
dedicated for each layer type, you need to implement a new layer type.
2.Create New Application: In the SW/apps directory, create a new
directory
specifically for your PoseNet application. This directory will contain
all
the necessary code to run PoseNet.
You dont really need a new folder for PoseNet since the GraphNode for
TensorflowLite (TfliteNn) is generic, please reference to document
below. I
would put your new application under same folder like the example
SW/src/vision_ai.cpp

https://github.com/ztachip/ztachip/raw/master/Documentation/visionai_programmer_guide.pdf

3.Implement Application Logic: Use the existing TensorFlow Lite
application
examples in SW/apps/nn as a reference. Adapt this logic to initialize
and
run our PoseNet model, focusing on handling multi-person detection
outputs.
Same as question2, the way you use PoseNet is the same as the way
MobiNet
as shown in example , vision_ai.cpp is a good place to reference.
3.Input and Output Processing: Implement logic for processing input
(e.g.,
camera feed or static images) and for handling the output from PoseNet
(e.g., drawing skeletons on images or calculating pose scores).
You can look at SW/src/vision_ai.cpp on how to do this, the example for
SSD-mobinet draws rectangle around the detected objet
4.Test and Validation:Run our application on the ztachip development kit
and Measure the performance (inference time, accuracy, etc.) of your
PoseNet model on the ztachip hardware.
I normally use a test vector for verification, you can look at
SW/src/test.cpp, there are example on how to unit test AI model with
saved
input and saved expected output.
To run unit tests, recompile the code with UNIT_TEST=yes in SW/makefile
For performance, next version there will be some function for it, but
for
now time benchmark how long it takes for graph completion would give you
an
idea.
Our Development Plan:
1.Load model Function: SW/apps/nn/model_loader.cpp
(Hypothetical.location
vision_ai.cpp is a good example on how to start your app
2.PreprocessInput Function:This function would handle the conversion of
input images or video frames to the format expected by PoseNet, such as
resizing, normalization, and color conversion.
(preprocess.cpp)
There are example in vision_ai.cpp for image proprocessing
3.RunInference Function: The core function where the model inference
happens. It involves feeding the processed input to the model and
retrieving the output.
Possible Location: SW/apps/nn/pose_net_inference.cpp (hypothetical
path).
Same as above, vision_ai.cpp is a good reference for how to do it.
4.ParseOutput Function: After inference, this function interprets the
output tensor(s) from PoseNet to extract pose information, such as
keypoint
locations and confidence scores.
Possible Location: SW/apps/nn/output_parser.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
5.DrawPoses Function: If you plan to visualize the results by drawing
keypoints and skeletons on images, you'll need a function for this
purpose.
Possible Location: SW/apps/nn/visualize.cpp (hypothetical path)
Same as above, vision_ai.cpp is a good reference for how to do it.
6.Compiler Modifications (If Needed based on ztachip architect.feedback)
AddOperation Support: If PoseNet uses TensorFlow Lite operations not
supported by ztachip, you'll need to implement these in the compiler.
This
involves modifying the lexer (Lexer.l), parser (Parser.y), and
potentially
adding new instruction generation logic (gen.cpp).
Compiler is for generic ztachip acceleration and not related to AI.
There
is no need to change there
Reference to answer of question1 above.
Do we need to modify any existing compiler modifications for this
implementation?
No
Please do let me know if this process we are following is going good or
any
modifications are necessary.
I think there is a good chance what you need to do:
preprossing+posenet+display already supported by ztachip.
Seems like what you need to do is similar to what is done at
vision_ai.cpp
example.
Regards
Team fabric
On Wed, Mar 13, 2024, 5:27 PM ztachip @.***> wrote:

Happy that you find the project useful.
I also have an aunt who would have lived if she had the technologies
you
are working on.
For computing performance, I could add something later to measure the
ALU
efficiency of pcores.
For memory usage, ztachip is running on newlib which is bare-metal.
But
you can track heap usage in newlib.c although this only tracks peak
usage.

From: fabricchip @.>
Sent: March 12, 2024 3:45 PM
To: ztachip/ztachip @.>
Cc: ztachip @.>; Comment @.>
Subject: Re: [ztachip/ztachip] Query Regarding Porting to following
FPGA's
(Issue #11)
Hi
Awesome, thanks for the info!
The board perfectly works on arty a7 for now. We will report back on
lattice ecp5.
Falling is among the most damaging event elderly people may
experience.
With the ever-growing aging population, there is an urgent need for
the
development of fall detection systems. We belive your repo is the best
use
case for this project.
We are also going to port few ai models starting with human activity
recognition check it's performance.
https://github.com/CMU-Perceptual-Computing-Lab/openpose
1.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
2.https://github.com/aminullah6264/Activity_Rec_ML-LSTM
This we are doing to solve the problem elderly fall detection.
Performance Question:
I have few questions regarding is there in particular command I can
type
like htop or top to see memory usage dynamically and performance
metrics.
Regards
Fabric Team
On Tue, Mar 12, 2024, 6:05 PM ztachip @.***> wrote:

Current version would fit a Xilinx Artix7-100 or Lattice ECP5-85
But I'm working on next version that would let you scale down to
Artix7/35T. This is probably available by end of year.

From: fabricchip @.>
Sent: March 11, 2024 3:01 AM
To: ztachip/ztachip @.>
Cc: Subscribed @.***>
Subject: [ztachip/ztachip] Query Regarding Porting to following
FPGA's
(Issue #11)
Hello! Can we port ztachip to the following FPGAs with less than
100,000
LUTs:

Digilent Cmod A7-35T: Artix-7 with 35,000 LUTs
Cmod A7-15T: Artix-7 FPGA Module with 15,000 LUTs
CrossLink NX from Lattice Semiconductors (LIFCL-40, 39,000 LUTs)

Please let me know any steps to follow
—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11>, or unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFTO32DVCYYHKVMUTLTYXVJFNAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3TQMZXGIZDAMY>.

You are receiving this because you are subscribed to this thread.
—
Reply to this email directly, view it on GitHub
<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1991551506>,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/BG3JKHIE3TGOC7B7OLYDYQ3YX3ZA7AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJRGU2TCNJQGY>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-1992415807>,

or

unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFVIDYH5HU3ZAGZ3ZWDYX5LNBAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJSGQYTKOBQG4>.

You are receiving this because you commented.Message ID: @.***>
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-1994212299,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/BG3JKHIZK3IP267BIM4GQQLYYA5KRAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUGIYTEMRZHE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016715282>,
or
unsubscribe<

https://github.com/notifications/unsubscribe-auth/ACSDUFUBAZKTA2LBAKG5LMDYZZ2RVAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWG4YTKMRYGI>.

You are receiving this because you commented.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016861001,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/BG3JKHKIUTECMKFBIJSZN73YZ35G3AVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHA3DCMBQGE>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub<
https://github.com/ztachip/ztachip/issues/11#issuecomment-2016867414>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ACSDUFUFW2HG2VK6QFWX5NLYZ374TAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJWHA3DONBRGQ>.
You are receiving this because you commented.
—
Reply to this email directly, view it on GitHub
https://github.com/ztachip/ztachip/issues/11#issuecomment-2031066592,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BG3JKHMTULTGCEZEX4FC4ADY3IYIHAVCNFSM6AAAAABEPXOE2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZRGA3DMNJZGI
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Update rust toolchain version

Description of changes:
Update toolchain version to the latest nightly version.
Resolved issues:
Resolves #747
Call-outs:
There has been a fixed that was pushed to rustc where they now normalize the struct-tail type when satisfying a Pointee obligation. I have not applied the fix yet, and this change keeps the same behavior for rmc. I wasn't able to reproduce the issue posted in the related PR yet. https://github.com/rust-lang/rust/pull/92248
Testing:

How is this change tested?

Is this a refactor change?

Checklist

[ ] Each commit message has a non-empty body, explaining why the change was made
[ ] Methods or procedures are documented
[ ] Regression or unit tests are included, or existing tests cover the modified code
[ ] My PR is restricted to a single feature or bugfix

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

Approved modulo discussion

Thanks. I added the placeholder function as suggested.


handle promises in connected

This is similar to handling promises in event handlers
but allows for the connected callback to do asynchronous
tasks like fetching data when the custom element is connected
to the DOM.

Can you make maybe handle a static method? That way the whole thing is still one single small class. Otherwise this is a great idea.


Fixes warning C4127: conditional expression is constant

Fixes warning C4127: conditional expression is constant

I made an error, will try again


Toyota: use driver torque for torque limits

Just like all the other cars. Chrysler is the only make left, and if that works well with this common method then we can remove EPS torque limiting entirely (from openpilot and panda), as it sometimes limits torque needlessly when the driver isn't touching the wheel at all.
Unclear if this provides much better control or placebo, need to get a route on the same stretch of road and compare.
Might fault without updating panda torque limiting if you try this branch

Tested and working on my 2020 Corolla hybrid. Also not sure if this provides much better control or placebo but its not worse.

While testing the PR to kill steer faults, I noticed it sucked at taking turns where we would drift across multiple lanes and take a long time to recover, turns out it's just the openpilot Toyota EPS torque limiting the torque output heavily!
To clarify, this occurs when the wheel falls back to center too quickly so we cut torque intermittenly to prevent any faults. Then the EPS torque slowly drifts away from the commanded torque as there seems to be a small windup after you set the request bit (which we would do every 20 frames) Here's a plot of the EPS torque being relatively far away from the desired causing it to limit the output and not meet the desired angle/accel

See comments in https://github.com/commaai/panda/pull/936


Fix autocomplete sometimes places undesired quotes

https://github.com/godotengine/godot/issues/86488#issue-2055005951 *

Tested in VSCode and Godot Script Editor
https://github.com/godotengine/godot/assets/1620585/78f33c39-b96e-4216-b285-302606a1880f
https://github.com/godotengine/godot/assets/1620585/dc4ca5d0-6d44-4287-bd1e-363a92d02c2a

Bugsquad edit, closes: https://github.com/godotengine/godot/issues/86488#issue-2055005951

@KoBeWi why was this removed from 4.3? It's only a couple lines of code.

@KoBeWi why was this removed from 4.3? It's only a couple lines of code.

4.3 is in feature freeze and we're trying to avoid introducing any new regressions, so the goal is to merge this PR in 4.4 and cherry-pick it to a 4.3.x point release.

It's in "release freeze". At RC stage, only very low-risk fixes and important regression fixes are considered.
It's a couple of lines, but they might introduce some unforeseen bug. Unless someone knowledgeable can approve the fix and be able to say that it's safe, it will have to wait. Stable release is around the corner though, so it won't take long.


Add GitHub Action on Mac to test the exaslct starter scripts in dry_run mode

Background:

we can't test the whole system on Mac on Github Actions, because it doesn't support Docker, but we can test the starter_scripts in a dry_run mode in which we don't execute the docker command

Acceptance Criteria

implement dry run mode for starter scripts (Use Environment Variable as switch)
Add Github Workflow to test the starter scripts and install scripts on Mac
Fix exaslct for MacOsX

Shelving, because we don't want to spend the capacity to support Mac for the slct at the moment.


Require @private/@public in all block comments.

Enforce all block comments to include YUIDoc style @private or @public access declaration.
// good

/**

 This thing is private.

 @private
*/
export function somePrivateThing() {}

/**

 This thing is private.

 @public
*/
export function somePublicThing() {}

// bad

/**
  Something without access documented.
*/
export function someNonDeterminedThing() {}

/**
  This thing has @private and @public in the text description but not
  as an actual YUIDoc attribute.
*/
export function ambiguousThing() {}

Hmm, looks like we need to distinguish between block comments (/* ... */) and API docs (/** ... */). That was your intention, right, @rwjblue? We have some JSHint comments in our code, and this rule is picking those up too.


Integrate emilio

Overview
Add emilio erlang linter to ensure unified style.
Testing recommendations

do a fresh clone and run ./configure (make sure bin/emilio script is created)
run ./configure again and make sure it doesn't try to install emilio again
Update any erlang files in any dependency (except files mentioned in ignore section of emilio.config)
Run make emilio and make sure that:

produced warnings are only for (± 3) updated lines
make fails with non 0 exit code

Run bin/emilio -c emilio.config src | bin/warnings_in_scope -s 0 to see warnings from emilio

make sure produced warnings are only for updated lines

Run bin/emilio -c emilio.config src and make sure dependencies mentioned in ignore section of emilio.config are ignored
test it on windows if you have access to it (I don't have access to windows :-()

Related Issues or Pull Requests
Checklist

[x] Code is written and works correctly;
[ ] Changes are covered by tests;
[ ] Documentation reflects the changes;

Interesting, will look at this in more detail later

I'm digging this up again. Could we look at adding this into the CI flow without adding support for windows? Its going to be hard to do that.

@garrensmith If you or @iilyak can freshen this PR to not have a conflict on Makefile, I'll have a look at configure.ps1.

Also, if you can move the source branch into the apache/couchdb repo, I can PR against it with the Windows changes. Otherwise, I'll just post a diff here that you can apply yourself.

Awesome thanks that will be great

From: Joan Touzet<EMAIL_ADDRESS>Sent: Thursday, April 2, 2020 6:25:51 PM
To: apache/couchdb<EMAIL_ADDRESS>Cc: garren smith<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [apache/couchdb] Integrate emilio (#1944)
Also, if you can move the source branch into the apache/couchdb repo, I can PR against it with the Windows changes. Otherwise, I'll just post a diff here that you can apply yourself.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/apache/couchdb/pull/1944#issuecomment-607950128, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AABL2AWI62VREKF2UT6BBPLRKS4A7ANCNFSM4G2LMMSA.

@wohali cloudant-labs/emilio#3 is merged.

CI is failing with unrelated issue 😢
[2020-04-03T11:40:38.315Z] ==> couch_replicator (compile)

[2020-04-03T11:40:38.662Z] /home/****/workspace/****-cm1_PullRequests_PR-1944/src/couch_replicator/src/couch_replicator_httpc.erl:16: can't find include lib "ibrowse/include/ibrowse.hrl"

@iilyak
I also can't build your branch, either in the CI environment or locally. Here's what I'm doing:
rm -rf couchdb
git clone https://github.com/cloudant/couchdb
cd couchdb
git checkout integrate-emilio
./configure --with-curl
make dist

This fails in the same way as Jenkins is failing.
I don't get the same failure from apache/couchdb:master.
Also you still need to apply the diff I provided in comment.
Perhaps close this PR and reopen it by doing the branch off of apache/couchdb instead of cloudant/couchdb? Maybe it's because cloudant/couchdb:master is ~1400 commits behind, I don't know. @rnewson might have a better idea.

Possibly of interest: https://medium.com/@elbrujohalcon/are-formatters-better-than-linters-cbab91189be3

@wohali: Thank you for your help with Windows part.


Add readme style edits

Most of these are small changes, among which we have

renaming ReadTheDocs to Read the Docs (I've never seen the former, and
the latter is how the platform self-refers)
using proper em-dashes ("—"s) instead of " -- "s
adding commas in places that feel natural

It has been a while... Any reason why this did not get merged @lmcinnes ?

Simply slipped through the cracks would be my guess.

Looks good to me


Ability to promote staging repository

To have less manual clicking and/or to make releasing to Maven Central automatic from CI server It would be useful to have an ability (another task?) to promote (probably also drop) staging repository from the plugin.
It should be probably possible with Nexus REST API.

What do you propose to use instead of HTTPBuilder? Running curl process from OS?

HttpClient or better HttpURLConnection. Thinking about it, I don't actually want the functionality in this plugin. It should be a separate, complimentary plugin.

I am going to close this issue. It should be easy to write a plugin that applies and augments the functionality of the Nexus plugin with tasks using the Nexus API. Either way I don't see the functionality in this plugin. Also, I'd expect quite a bit of maintenance & required testing code coming out of this functionality which I won't have the time for. Should you ever create such a plugin, let me know and I am going to link to it from this plugin's documentation page.

I decided to write that plugin and in the end it turned out that there are some corner cases to support (so probably good that you haven't decide to have that feature).
My plugin is upload mechanism agnostic (it just uses REST API), but I was thinking about better integration with gradle-nexus-plugin (when available). I wanted to reuse credentials provided for your plugin, but looking at your code it seems I could only try to find nexusPassword/nexusUsername or try to find upload task(s) and get credentials from they (if available). Do you have any other idea what could be done on that field?

I am not quite sure what other credentials you are looking for other than username/password. If you can give me more information, I might be able to give you a better answer.

After post my comment I realized that your plugin does not keep credentials itself, but only set authentication in a repository.
I was able to implement getting credentials with manually configured authentication section, but to use credentials set by your plugin I would need in addition to call my code in taskGraph.whenReady {} closure. That needs #47 and in addition one question to you: do taskGraph.whenReady {} closures are executed in the order they were created or it is not guaranteed?

Order is not guarenteed by Gradle.

Order is not guarenteed by Gradle.

So to be sure to be after taskReady do I have to it in doFirst in my task or there is a better way?

I think I'd have to see the code but doFirst is a valid option. The only downside is going to be that you can't use the fields as input properties for your tasks.


SPACE SPY RECOVERY OF ALL KIND OF CRYPTOS

My contact with Space Spy Recovery, where they assisted in recovering my cryptocurrency investment of $725,000 USD, has restored my faith in cryptocurrency transactions. When it disappeared out of my wallet with no transaction history, I felt I was lost for good! However, I received my money back thanks to Space Spy Recovery's kind assistance. Communicate your message:
Email<EMAIL_ADDRESS>WhatsApp: +1<PHONE_NUMBER>
Telegram: @spacespy65
Skype: live:.cid.2b75b0cf1ce9bf69

I am very delighted to share this amazing testimonies, The best thing that has ever happened in my life is how I won the Powerball lottery. I have always believed that one day I will win the lottery. Finally my dreams came true when I came across some amazing testimonies of Dr Benjamin on how he had helped a lot of people won the lottery so I gave it a try, he directed me on what to do and I followed his instructed diligently to my biggest surprise I won the power ball lottery of $699.8 Million, when I first contacted him I told him I need the lottery numbers that I have spent so much money on tickets just to make sure I win and he promised me that he's going to help me win so I decided to give him a try.  he did a spell and gave me the winning lottery numbers that was how I won. All thanks to Dr Benjamin for this life changing encounter. If you need same life changing encounter with him here is his personal contact information.
Whatsapp:+17066036031
Website: https://dr-benjamin.com
Email<EMAIL_ADDRESS>


Show Obj's ctnr in detail view

Resolves https://github.com/OSU-Net/cyder/issues/936

Is there any danger of this attempting to show containers for objects that do not have a container? It doesn't look like it makes any checks to determine if the object actually has a container.

   if detail_view and objects and hasattr(objects[0], 'ctnr'):

       self.show_ctnr = True

   else:

       self.show_ctnr = False

Don't know how I missed that. Looks good to me.

Out of curiosity, how does this solution compare to adding a container tuple in each model's detail() method? I'm kind of worried about how procedural (i.e., anti-OO) our presentation code is becoming.

Alright, I guess we don't want containers in list views, so it would require a new method, like detail_detail() or something.

Yeah, normally I'd rather do as @drkitty suggested but that was the issue.


Does not work with Model Driven Forms (FormBuilder)

I have downloaded the new package and tried to import as so:
import MaskedInput from 'angular2-text-mask'
but I am getting cannot find module 'angular2-text-mask' error.

I was able to reproduce the issue. I think the problem was with the missing index.d.ts. I added it and things seemed to work. I published an update to npm. Please npm i angular2-text-mask again and hopefully this time it'll work.
(Sorry, I'm new to TypeScript!)

thanks @msafi , it imports now, but I get a new error.  I have this code:
import MaskedInput from 'angular2-text-mask'

@Component({
  selector: 'my-verify-phone',
  template: require('./verify-phone-template.html'),
  styles: [require('./verify-phone-style.css')],
  directives: [MaskedInput]
})

export class VerifyPhoneComponent {
}

    <input #phoneInput  [textMask]="{mask: '(111) 111 1111'}" [ngClass]="{submitted: numberSubmitted}" type="tel" name="usrtel" placeholder="Phone Number" class="gui-input" [ngFormControl]="enterPhoneNumberForm.find('phoneNumber')" />

The error I get is
Can't bind to 'textMask' since it isn't a known native property
It is importing something, but it doesn't seem to be the directive?

@Ckearns1210 I can't reproduce this issue.
Using angular2-webpack-starter, I installed angular2-text-mask and I changed app.component.ts of angular2-webpack-starter to make it look like this:
/*
 * Angular 2 decorators and services
 */
import { Component, ViewEncapsulation } from '@angular/core';
import { RouteConfig, Router } from '@angular/router-deprecated';

import { AppState } from './app.service';
import { Home } from './home';
import { RouterActive } from './router-active';
import MaskedInput from 'angular2-text-mask'

/*
 * App Component
 * Top Level Component
 */
@Component({
  selector: 'app',
  pipes: [ ],
  providers: [ ],
  directives: [ RouterActive, MaskedInput ],
  encapsulation: ViewEncapsulation.None,
  styles: [
    require('./app.css')
  ],
  template: `
    <input [textMask]="{mask: '(111) 111 1111'}" [(ngModel)]="myModel" type="text"/>

this.appState.state = {{ appState.state | json }}

  `
})
@RouteConfig([
  { path: '/',      name: 'Index', component: Home, useAsDefault: true },
  { path: '/home',  name: 'Home',  component: Home },
  // Async load a component using Webpack's require with es6-promise-loader and webpack `require`
  { path: '/about', name: 'About', loader: () => require('es6-promise!./about')('About') }
])
export class App {
  angularclassLogo = 'assets/img/angularclass-avatar.png';
  loading = false;
  myModel = ''
  name = 'Angular 2 Webpack Starter';
  url = 'https://twitter.com/AngularClass';

  constructor(
    public appState: AppState) {

  }

  ngOnInit() {
    console.log('Initial App State', this.appState.state);
  }

}

/*
 * Please review the https://github.com/AngularClass/angular2-examples/ repo for
 * more angular app examples that you may copy/paste
 * (The examples may not be updated as quickly. Please open an issue on github for us to update it)
 * For help or questions please contact us at @AngularClass on twitter
 * or our chat on Slack at https://AngularClass.com/slack-join
 */

And it seems to be working. Are you sure you're using<EMAIL_ADDRESS>You can try to get the installed version with npm list angular2-text-mask in your repo.

I am using<EMAIL_ADDRESS>maybe it is a local problem.  Will update you if I figure out.

I was able to get it to show up on a different input with [(ngModel)].  Seems to only work with 2 way data binding which isn't my use case.  Thank you for helping.

@Ckearns1210 Oh yeah, that's true. It does require ngModel to be present on the element. Is that a problem? I assumed the only meaningful way to read an input out of an Angular 2 element is to have ngModel on it.
I see that you're referencing the input element with #phoneInput. Is that how you're grabbing the value from the input? I don't think that's the Angular way of doing things, right? Aren't we supposed to use ngModel for things like that?

I am not using #phoneInput to grab the value.  Angular 2 has 2 new ways of doing forms.  One is a template driven form using Controls and a Control Group.  The other is using the FormBuilder API, and creating the control objects in your component.  I am using the latter.  ngModel implements 2 -way data binding similar to Angular 1.
In my component I inject the FormBuilder API, and create a control group.
  constructor(private _fb: FormBuilder, private _phoneService: PhoneNumberService) {
    this.sendCodeMessage = "SEND CODE"
    this.enterPhoneNumberForm = this._fb.group({
      phoneNumber: ['', Validators.required]
    });
  }

and I attach it to my template by declaring the form as ngFormModel and connecting the input to it's Control Object.
  <form [ngFormModel]="enterPhoneNumberForm" (ngSubmit)="sendCode()" novalidate>

          <input #phoneInput  [ngClass]="{submitted: numberSubmitted}" type="text"  placeholder="Phone Number" class="gui-input" [ngFormControl]="enterPhoneNumberForm.find('phoneNumber')" />

Alright, I'll look into making it work with FormBuilder API soon. Thanks for explaining!

@Ckearns1210 I removed the requirement for ngModel to be present on the element and published a new version to npm. Could you try again and let me know if it works?

@msafi I still receive the same error:
Can't bind to 'textMask' since it isn't a known native property
with version 0.9.1

I tried to reproduce the issue with ngFormControl, but couldn't. It seemed to work.
Anyway, supporting Angular 2 turned out to be harder than I expected, given I'm not an Angular 2 user. So, I've added a disclaimer to warn people that this module is experimental.
So, I'm gonna mark this issue as not supported. Sorry for your trouble!

Is this still not supporting reactive forms with FormControl?  You have built out an example with such a use case in your angular2 code, but I'm still receiving the error: "Cannot bind to 'textMask' since it isn't a known property of input."

That does sound like the directive is not recognized. What version are you using?

Thanks for the quick response, but never mind the issue.  I hadn't imported into the component-specific module, just my application base module.  Resolved.

For those having following issue when trying to run npm test:
Can't bind to 'textMask' since it isn't a known property of 'input'. ("
<input [ERROR ->][textMask]="{mask: mask}" ...
It works if you add in karma.config.js  in files: [
// Text Input Mask
'node_modules/angular2-text-mask/dist/angular2TextMask.js',
'node_modules/text-mask-core/dist/textMaskCore.js'
And in you spec file import:
import {TextMaskModule}  from 'angular2-text-mask';
and add it in import of TestBed:
beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [AppComponent],
        imports: [TextMaskModule],

for me it worked!

Still doesn't work.

Still doesn't work.

@raysuelzer @AndersonBP the directive still works with model driven forms, I just did a quick test based on the newest angular cli. If you believe there is an issue, please open a new issue with an appropriate error description.

It doesnt work

Then please open an issue and provide an example where the error can be reproduced.

karma.config.js

I resolved it as follows:
I entered the file located at node_modules / angular2-text-mask / karma.conf.js
and changed the browsers property to Chrome

karma.config.js

I resolved it as follows:
I entered the file located at node_modules / angular2-text-mask / karma.conf.js
and changed the browsers property to Chrome

Para aqueles que têm o seguinte problema ao tentar executar o teste npm:
Não é possível vincular a 'textMask', pois não é uma propriedade conhecida de 'input'. ("
<input [ERROR ->] [textMask] = "{máscara: máscara}" ...
Funciona se você adicionar karma.config.js nos arquivos: [
// Text Input Mask
'node_modules / angular2-text-mask / dist / angular2TextMask.js',
'node_modules / text-mask-core / dist / textMaskCore.js '
E em sua importação de arquivo de especificação:
import {TextMaskModule} from 'angular2-text-mask';
e adicione-o na importação do TestBed:
beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [AppComponent],
        imports: [TextMaskModule],

para mim funcionou!

I resolved it as follows: I entered the file located at node_modules / angular2-text-mask / karma.conf.js
and changed the browsers property to Chrome

Para aqueles que têm o seguinte problema ao tentar executar o teste npm:
Não é possível vincular a 'textMask', pois não é uma propriedade conhecida de 'input'. ("
<input [ERROR ->] [textMask] = "{máscara: máscara}" ...
Funciona se você adicionar karma.config.js nos arquivos: [
// Text Input Mask
'node_modules / angular2-text-mask / dist / angular2TextMask.js',
'node_modules / text-mask-core / dist / textMaskCore.js '
E em sua importação de arquivo de especificação:
import {TextMaskModule} from 'angular2-text-mask';
e adicione-o na importação do TestBed:
beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [AppComponent],
        imports: [TextMaskModule],

para mim funcionou!

I resolved it as follows: I entered the file located at node_modules / angular2-text-mask / karma.conf.js
and changed the browsers property to Chrome