Ar10xx driver + others fixes

New driver incoming:

AR1010, AR1011, AR1020 and AR1021 indev driver (WIP)
fixes typos for ili9341
fix I2C transmission for SSD1306

AR10XX not tested yet. Current implementations:
-EEPROM user acces.
-Basics Command (id, save,load, read, write,..)
-All register configurations
-I2C and SPI protocol
-Feedback from command (IRQ/delay)
Todo:
-Basics reading coordinate function + IRQ function
-UART implementation
-Lvgl interupt read update system
-buffered configuration, save/load configs into a struct.

Thank you.
Can you also test the AR10XX drivers?

yes i got a AR1021 touch controller, i will test it end of this week.

Then you for the update!
Is it still work in progress or shall I merge it?

In progress. I will do test soon. I will prevent you. :)

I can't test I2C and i think it will be difficult to port this point.
datasheet:  A 50 us delay is needed before the Stop bit.
Clock stretching not supporting in writing mode :(.
I will continue test next week, i got a cable broken. It is close to work for SPI.

Hi,
Oh, what a strange  expectation. I never heard anything like this before.
I think it's okay it will work with SPI for now.

Okay, i added an error if someone want use AR1020 in I2C mode. Doing a lot of test. Touch controller work very well ! i fixed a lot of mistake and do some rework on "how to receive data" with timeout and small delay ( for system that need sleep or get watchdog). Tested the possibility to write on the EEPROM, load config, save, ... All feel to work. :)
The next big dev stage is how to calibrate the touch controller and sync it with the screen.
I will introduce the rotation system to prepare the possibility to change the orientation dynamically like phone. It will be done with the rotation API and 4 state (0,90,180,270 degree).
device will need to know this:
x1,y1,x2,y2, height, width, rotation.
It is in WIP,  but the current dynamic calibration work. I need finish and enchancce it. The API to do:
/**
 * Wait a event on the screen to save current coordinate as reference
 * @param dev Pointer to the touch controller descriptor
 * @param stage the touch location to do ( screen corner).
 * @param number Number of screen touch to do
 * @param max_delay Timeout in second
 * @return Non-zero if error occurred
 */
int ar10xx_map_screen_coordinate(ar10xx_t *dev, ar10xx_calib_t stage, uint8_t number, uint16_t max_delay);

/**
 * Put touch controller into calibration mode and touch each corner of the screen.
 * It will calibrate the screen output data (12bits)
 * @param dev Pointer to the touch controller descriptor
 * @param max_delay Timeout in second
 * @return Non-zero if error occurred
 */
int ar10xx_screen_calib(ar10xx_t *dev, uint16_t max_delay);

/**
 * Change the coordinate map to correspond to the current rotation
 * @param degree current rotation
 * @return Non-zero if error occurred
 */
int ar10xx_screen_rotation(ar10xx_t *dev,  ar10xx_rot_t degree);

When you init the screen, you can set the default calibration with define. Other thing to think is how to do a good calibration. Each corner is difficult. I think about add a parameter like pixel offset.
To work properly, we need a simple screen function to put a target for the user.
and the target will change each time a touch is detected. How you think we can do this ?
I think about a special lvgl object linked to screen standard API and show target for user and with few setting like corner (topleft,topright,...) offset, timeout and touch number.
the touch controller API need be called before showing a target to the screen and will return error if nobody touch this screen before delay timeout?
Or maybe you know already a way to do it :)

Hi,
Looks great!
Just two question about the API:

wouldn't be better to change ar10xx_rot_t and ar10xx_calib_t to "global types"? Like lv_disp_rotate_t and lv_indev_claib_state_t. Just because They are the same for every screen and touchpad type.
To separate the driver from the GUI I can imagine a function like ar10xx_set_calib_data() instead of ar10xx_map_screen_coordinate and ar10xx_screen_calib. This way we can have a touch pad calibration GUI where we can pas the coordinates to the touchpad driver.

There is a Touchpad calibration application: https://github.com/littlevgl/lv_examples/tree/master/lv_apps/tpcal
It registers the 4 coordinates of the 4 corners. The application can be updated/modified the fulfill or needs.
For calibration I usually use 4 data (x1,x1,y1,y2) of an uncalibrated touchpad:

x_cal = (x_raw - x1) / (x2-x1) * x_res;
y_cal = (y_raw - y1) / (y2-y1) * y_res;

What do you think?
PS:
I will be on a holiday for a next Sunday (29th of April) and probably I won't be able to answer to the emails.

hi,

i agree to get a general rotation struct (it was already in my mind)
Yes, i will use your example to pass  the coordinate to the driver. I will found a way.
I will use this formulas too :)

I will get tme soon to work on it.

Awesome! :)
For the formula is better to change the order of the operations for higher precision:
x_cal = ((x_raw - x1)  * x_res) / (x2-x1);

Hi, i am back to work on lvgl :). I will finish rotation and calibration features.
Then i will so some clean up and documentation before go to next driver.
I got a problem with example "tpcal" and i need some help to understand why.
I can got for a corner an invalid number. depend where i touch. But when i look the input data, i didn't see invalid number.
Can be a problem with return false/true ?
Or maybe that the last input information was not released data (p: 0)
e.g:  the result when i touch screen (top corner and right corner)
AR10XX input result:
--(1)
ar10xx_input_get: p: 0, x: 5, y: 9
ar10xx_input_get: p: 1, x: 6, y: 9
ar10xx_input_get: p: 1, x: 6, y: 9
--(2)
ar10xx_input_get: p: 0, x: 227, y: 13
ar10xx_input_get: p: 1, x: 227, y: 13
ar10xx_input_get: p: 0, x: 228, y: 13

screen corner result:
--(1)
x =  -31024
y = 16383
--(2)
x = 228
y = 13

the C Read function:
bool ar10xx_input_get(lv_indev_data_t * data)
{
    /*Get coordinate*/
    ar10xx_read_t position;
    if (_read_pos(_device, &position))
    {
        return false;
    }
    /*Store the collected data*/
    data->point.x = (((int32_t)position.x - (int32_t)_device->x1) * (int32_t)_device->w) / ((int32_t)_device->x2 - (int32_t)_device->x1);
    data->point.y = (((int32_t)position.y - (int32_t)_device->y1) * (int32_t)_device->h) / ((int32_t)_device->y2 - (int32_t)_device->y1);
    data->state = position.pen ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL; //Depend setting

    debug("p: %u, x: %d, y: %d", data->state, data->point.x, data->point.y);
    return false;
}

Calibration:
I  think  a way to calibrate the input data range  ( raw_x and raw_y).
My first approach was to call a function ar10xx_map_screen_coordinate (will be renamed). This function block until someone touch the screen. When touched, the system will get raw limit x,y.
This limit is adjusted with an offset which is calculated based on the size of the circle displayed on the screen. (offset = the radius of the circle)
If i understand well the tpcal example, it is work like that:

you register driver reading function input
you get point from this function (already screen sized computed) with the driver
then you store this point in a array  p[4].

This is not accurate if we can not retrieve the raw information of the sensor? an idea ?
My idea was to save the raw coordinate each time the screen is touched.
Use ar10xx_set_calib_data will get the raw coordinate and save them.

Hi,
Welcome back! :)
It's very strange because the lv_indev saves the data directly from  lv_indev_data_t.
Only the first point is wrong?
About the tpcal workflow:
Not exactly. I imagined it like this:

You display driver should have two functions: xxx_read and xxx_set_cal_data()
At first run the TP is not calibrated therefore your read function should provide raw data
3.When you touched all four corners you should call the xxx_set_cal_data function in TP_CAL_STATE_WAIT_LEAVE state of tpcal.
xxx_set_cal_data should mark the display as calibrated, save the raw coordinates, and use them in the upcoming calls of xxx_read

Well it is not well documented. I will add these these steps to tpcal to inform users about the intended usage.
Did it help?

Hi, okay then i got 2 function
=> bool ar10xx_input_get_raw(lv_indev_data_t * data);
=> bool ar10xx_input_get_calib(lv_indev_data_t * data);
When i calib, i register raw input function. after calib, i register the calib function for normal usage.
After getting point, i call this function
int ar10xx_set_calib_data(ar10xx_t *dev, lv_point_t* pts, int16_t offset);
It take the array ( order is important. T/L, T/R, B/R, B/L) and a offset border.
The offset border, this information is usefull because the user will target the center of a circle. that mean, he will touch the screen with a offset of some pixel. I use it to determine the raw input at true border because i guess that the touch get linear input function.
I am ready to test it but tpcal is buggy. All points is concerned, and after some test i can tell you. If the last point read from input don't get the released state (p). It will fail.
Last input trig, e.g:
ar10xx_input_get: p: 1, x: 6, y: 9  => fail and get (x:-31024 and y:16383)
ar10xx_input_get: p: 0, x: 6, y: 9  => succes and good coordinate
my call in tpcall function (only 3 line):
        /*
         * TODO Process 'p' points here to calibrate the touch pad
         */
        ar10xx_set_calib_data(&xInputDev, p, CIRCLE_SIZE/2);
        lv_indev_t *indev = lv_indev_get_act();
        indev->driver.read = ar10xx_input_get_calib; //normal usage now

Improvement tpcal:
-Larger circle or offset  circle: to be easier to touch for a person, the algorithm will determine true border.
-Multiple touch : Touch multiple time the same location for an average.

Question about rotation API.How we will work to manage rotation
-use int16_t and use number in degree or use enumerator ?
-use negative rotation ?
e.g AR10XX rotation function:
void ar10xx_set_rotation(ar10xx_t *dev,  int16_t degree)
{
    degree = degree / 90 ;

    //+/-180 degree rotation
    if ((degree == 2) || (degree == -2))
    {
        SWAP(dev->x1, dev->x2)
        SWAP(dev->y1, dev->y2)
    }
    //-90 ou +270 degree rotation (left to right)
    else if ((degree == -1) || (degree == 3))
    {
        int16_t temp = dev->x1;
        dev->x1 = dev->y2;
        dev->y2 = dev->x2;
        dev->x2 = dev->y1;
        dev->y1 = temp;
        SWAP(dev->w, dev->h);
    }
    //+90 ou -270 degree rotation (right to left)
    else if ((degree == 1) || (degree == -3))
    {
        int16_t temp = dev->x1;
        dev->x1 = dev->y1;
        dev->y1 = dev->x2;
        dev->x2 = dev->y2;
        dev->y2 = temp;
        SWAP(dev->w, dev->h);
    }
}

this example use relative rotation, not absolute. It mean that call this function 2 time with 90 degree is like call this function with 180.
But i don't no if we work like this or just use absolute rotation ?

Hi,

The offset parameter is a good idea. You are right, user targets the center of the circle which would result an error.

Using the CIRCLE_SIZE define it's easy to increase circle's size.
The average calculation also sounds great.

I have no idea why do you see wrong coordinates. I already used this app in a real life project and it worked well. So you say always the last coordinate is wrong is no release happen?

For me, in rotation API, using enums sounds the best option. Like: LV_INDEV_ROTATE_90.
By the way, it happened to me a lot of time that the x or y coordinates were inverted (e.g. the left most coordinate was the 2048 and right most was 0) or the x-y coordinates was swapped (x was the vertical coordinate).
I think it should can be implemented in LittlevGL itself because these corrections are the same for all touchpad like devices. That reminds me that the rotation can be part of the internal indev handling as well. It's just a parameter of lv_indev_t and LittelvGL can swap/invert/etc the coordinates in a few lines of code. Maybe adding some API function like: lv_indev_set_orientation() or lv_indev_set_xy_inversion(). This was the drivers can be more simple. What do you think?

Sorry, the last was also me accidentally with an other account :)

Automatic calibration function work perfectly. Tested with different radius. calculation seem good.

I think, we need to add a small cross in the circle center too. ( to help )

Whatever the corner you push, if the input device read function don't send LV_INDEV_STATE_REL as last information for lvgl, it will fail ! I use "dev-5.2" branch (last update today)
debug the input information in your project. If you got always the good information, it will work nicely. Not my case :( . It is very strange. My reading function :

bool ar10xx_input_get_raw(lv_indev_data_t * data)
{
    /*Get coordinate*/
    ar10xx_read_t position;
    if (_read_pos(_device, &position))
    {
        return false;
    }
    data->point.x = position.x;
    data->point.y = position.y;
    data->state = position.pen ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
    return false;
}

Clue: The x and y got strange value when they are not set. That mean when _read_pos is true. the function will return without set the pointer "data".
This function fix the problem. Ugly:
bool ar10xx_input_get_raw(lv_indev_data_t * data)
{
    static int16_t x = 0;
    static int16_t y = 0;
    static int16_t p = LV_INDEV_STATE_REL;

    /*Get coordinate*/
    ar10xx_read_t position;
    if (_read_pos(_device, &position))
    {
        data->point.x = x;
        data->point.y = y;
        data->state =  p;
        return false;
    }
    x = position.x;
    y = position.y;
    p = position.pen ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
    data->point.x = x;
    data->point.y = y;
    data->state = p;
    return false;
}

WIP with your new information.

In fact i got new problem with the new function. when the input device decide to send twice the released state, it like push 2 time.
Input device signal order when you physically touch the device:
case 1:
p:0
p:1
...
p:1
p:0

case 2:
p:0
p:1
...
p:1
p:1

I fixed all problem when i force last input read to be a released state:
bool ar10xx_input_get_raw(lv_indev_data_t * data)
{
    static int16_t x = 0;
    static int16_t y = 0;
    static int16_t p = LV_INDEV_STATE_REL;
    /*Get coordinate*/
    ar10xx_read_t position;
    if (_read_pos(_device, &position))
    {
        if(p) //Protection if last input read was pressed state
        {
            p = LV_INDEV_STATE_REL;
            data->point.x = x;
            data->point.y = y;
            data->state =  p;
        }
        return false;
    }
    x = position.x;
    y = position.y;
    p = position.pen ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
    data->point.x = x;
    data->point.y = y;
    data->state = p;
    return false;
}

Perhaps we need to review the use of the return of the function.
I tested tpcal with "return true" whenever the driver reading is a success.
tpcal considers each reading as a new input corners. funny behavior ^^

Here is my thought on the rotation system:

When initialize the driver you need specify 3 things. Width, height and rotation.
At startup, it is allow the rotation of the screen and touchpad to be different. if the touchpad was put differently for example.
driver_indev_init (dev, 320, 240,  LV_ROT_DEGREE_90);
driver_display_init( dev, 320, 240, LV_ROT_DEGREE_180);

then we can register 2 function in lvgl, one for indev, one for display
these function will turn the screen from origin.
 void lv_indev_set_orientation( lv_rotation_t orientation);
 void lv_display_set_orientation( lv_rotation_t  orientation);

when user will use lvgl API, it will  look like this:
void  lv_set_orientation( lv_rotation_t orientation);

Of course, we need link a indev with a display. We need remove LV_HOR_RES and  LV_VER_RES macros (need to be dynamic).
What did you think? (commit soon if you want take a look)

Hi,
Thank you for the feedback and great work!
Read function
I usually use this structure in my read functions:
bool xpt2046_read(lv_indev_data_t * data)
{
    static int16_t last_x = 0;
    static int16_t last_y = 0;
    bool valid = true;

    int16_t x;
    int16_t y;

   valid = xxx_tp_get(&x, &y);
   if(valid) {
       last_x = x;
       last_y = y;
    } else {
        x = last_x;
        y = last_y;
    }

    data->point.x = x;
    data->point.y = y;
    data->state = valid == false ? LV_INDEV_STATE_REL : LV_INDEV_STATE_PR;

    return false;
}

So far it worked me in every cases. As LittelvGL waits for valid coordinates after every call of read you should save the last valid coordinates.
Orientation
Your idea sound great! The multi display system would require the removal of LV_HOR_RES and LV_VER_RES. At first look it could cause a massive API change. However my plan is to add multi display support in a backward compatible manner. This way LV_HOR_RES/VER_RES can be only initial values of a one-displayed non rotated configuration, but you might have the opportunity to overwrite this settings. I need to examine it deeper.

Okay i take the notes about read function. But what is the purpose to return "false" or "true" ? seem like we never use true.
A question, at tpcal start, i want do this:
    lv_indev_t *indev = lv_indev_get_act();
    if(indev)
    {
        indev->driver.read = ar10xx_input_get_raw;
    }

but it is return NULL. The input driver was register in lvgl just before.
Why the actual device can't be the last input registered/enable ?
You can merge this PR !!
The main logic about calibration and rotation is done !! algorithm work well, need just update tpcal with average to reduce the error.
calibration algorithm need maybe a review to be optimized.
AR10XX driver work well, calibration and rotation same. I am limited for the last point because i can't turn display of 90 degree. ( h and w need change different into lvgl).
The next major PR will be about  cleanup / documentation / code structure /  fixes?.
No need to hurry for the multi-display. Still need some drivers to do and some validation.
The bit per pixels update too :). that will allow me some additional clean-up.

read return value
If returns with true then you indicates that you still have some buffered data to read. In this case LittelvGL continue to read the device until get false.
lv_indev_get_act
lv_indev_get_act return the a pointer of the active indev. The active indev is the one which called an action or callback. So for example you can determine in a button action which indev called it, and e.g. can read the pressed point.
Orientation
Sorry, I'm afraid I missed something and forgot to discuss this: Earlier I mentioned the indev orientation can be handled internally in LittlevGL (without any modification and extension in the driver) with swapping/inverting the coordinates internally in the library. However it's not simple with the display. So my view is to keep the lv_display_set_orientation function but the indev orientation for LittelvGL. The initial orientation adjustment still required to set it according to the current hardware configuration.  What do you think?

I found maybe a bug when using tpcal then. When i change raw input read with this:

bool ar10xx_input_get_raw(lv_indev_data_t * data)
{
    /*Get coordinate*/
    ar10xx_read_t position;

    if (_read_pos(_device, &position))
    {
        if(_device->p == LV_INDEV_STATE_PR) //Protection if last input read was pressed state
        {
            _device->p = LV_INDEV_STATE_REL;
            data->point.x = _device->x;
            data->point.y = _device->y;
            data->state =  _device->p;
        }
        return false;
    }

    _device->x = position.x;
    _device->y = position.y;
    _device->p = position.pen ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
    data->point.x = _device->x;
    data->point.y = _device->y;
    data->state = _device->p;

    return true; //Return true this time to see what happen
}

lvgl consider in tpcal each input read as a new circle touch point when i put my finger and didn't move.
The demo are not affected by this change (visually)

If i understand well, the input dev need to be used once before be considered as active ?
I want that tpcal example change the driver input function callback before begin to retrieve points. How i can do this ?

You are right. It can be a lvgl layer. I got an idea. I created in this PR a new file that got common things.
lvgl don't support rotation yet a guess ? I keep this features to make driver work on current lvgl version, then i remove unnecessary code as lvgl update ?
i will do some changes and think about what i need to do.

Hi,

The tpcal creates a very big button. When you press the screen, really you are pressing/releasing this big button. btn_click_action will be called when you release the screen. So you can move your finger, but nothing will happen until you release the touchpad.

Not exactly. Imagine that you have 2 input devices: a mouse and a touch pad. While lvgl processing the data of the mouse the mouse is active. After it while it processes the data of the touch pad the touchpad indev is active. When both are ready none of them is active.
If you have only one indev you can use: lv_indev_t * indev = lv_indev_next(NULL). But if you have (or might have) more indevs you should create a function yourself, like: get_my_touchpad_indev() or use a global variable.

Sounds very well! You are right, now lvgl doesn't support rotation feature but I can add it v5.2.

So you can move your finger, but nothing will happen until you release the touchpad.

that the problem. the behavior that you describe don't happen.
Everything happen without need release information.
video: VID_20180605_174433.zip

It works for as expected: do nothing until release. Please copy here your read function. Maybe there is a small issue in it.
As you asked I merge this PR! Thank you very much for the updates! :)

I found the problem. it is read to fast when i send return true. So i get alternate pressed/released state.
So it is ok. :)

Great! :)


Can't add users to a project

The list of users doesn't show up. No users can be added to a project.

These issues were caused by the python code cleanup.


Fixed params count and input size for multiple inputs

I faced three issues in the case of multiple inputs for the model,

'total_input_size' was incorrectly calculated by multiplying all the tuple values of 'input_size'.  Suppose, model's forward function requires 2 params of say size [(3, 256, 128), (3, 256, 128)]. Total_input_size was calculated by multiplying all the values { 3x256x128x3x256x128 } instead of multiplying each tuples and adding them { 3x256x128 + 3x256x128 }. The issue was fixed by multiplying tuple and adding them.
The 'total_params' were incorrectly calculated for multiple inputs case, fixed it by calculating from the model directly.
'summary[layer]["output_shape"]' needed to be flattened for computing 'total_output'. This was fixed by using 'funcy' package's flatten method.

the Multiple Inputs demo in read me is actually caused by this bug


SSE?

OpenAI offers SSE to stream results as they come generate. Would be great if this library supported that

Thanks for highlighting, I'll see what's involved in supporting it

Support for streamed results has been added in the sse branch
Usage instructions in Streaming Token Events
Feel free to try it out from this branch, will release after adding a couple more tests.

Lovely. Thank you!

Released in v0.3.0


Fixes the brainfuck executor

I added a compilation step to the brainfuck executor, it gets about 9 seconds to compile and 3 to execute.

It also add the args to the standard input because bf has no access to args.


extendTimeout on sticky message

@sbatson5 I ended up reverting #240 because when reviewing I overlooked the fact that adding ember-concurrency required that dependency to be included in dependencies and not devDependencies.  When I pulled 1.6.0 into our app it broke looking for ember-concurrency.  Given this new information I'm wondering if there is a way to accomplish what you are doing here without ember-currency?  Requiring consumer of ember-cli-flash to include it if they aren't already using it (as we are not) quadruples the size of this addon which is something I'm hesitant to do.

Ah, that's why I didn't see it when we pulled it into our existing app (we already had concurrency).
We can find another solution with the run loop, it will just require more cleanup when destroying the component.

@Dhaulagiri Updated this PR to use the run loop instead of concurrent tasks. I've tested it a few times and everything seems to be working as expected.  Would you be able to pull it into a project and double check?

Worked great in our app 👏

:shipit:

Merged! Think we could cut another release?

Released in 1.6.2


ng serve proper way to stop how in ubuntu

even i use ctrl + c its terminated but still 4200 is running port.
Port 4200 is already in use. Use '--port' to specify a different port.

Terminating the process is the generally accepted method to stop the development server.  This may be OS related.
However, without the information requested in the issue template further analysis is not really possible.

@sambanthar You have to check if something is running on your port 4200.

if i use ctrl + c  in a windows machine its ask me to terminate yes / no.
but in ubuntu machine i use it ctrl + c its nothing ask nothing show . but i use ng serve 4200 is already in use.
what i am asking very simple i use ng serve -o to run the development server how to stop serving

What you are doing is appropriate to stop the development server.
If you are still encountering this issue please open a new issue with the full issue template details so that further assistance can be provided if possible.

webpack: Compiled successfully.
^C
[1]+  Killed: 9               ng serve
webpack: Compiled successfully.
^Z
[1]+  Stopped                 ng serve
If you use Ctrl+Z in Mac you will have ´Port 4200 is already in use. Use '--port' to specify a different port.´later.

@caviroski this is the same issue i am facing in ubuntu machine

@clydin I have the same issue, I've installed angular-cli, created a new project and every time I run yarn start (which runs ng serve) trying to close the server with ctrl-c isn't enough, even after doing ctrl-c (while server is idle and not compiling) the process keeps running.
I've to manually do killall ng to close it.
Pstree shows this while server is running:
 |     \-+= 26715 alex /bin/zsh -l
 |       \-+= 29424 alex node /usr/local/Cellar/yarn/1.3.2/libexec/bin/yarn.js start
 |         \-+- 29425 alex ng
 |           \--- 29427 alex /usr/local/Cellar/node/9.5.0/bin/node<EMAIL_ADDRESS>9d93e901-158a-4cf9-ba1b-2f0582ffcfeb

after ctrl-c the shell (process 26715) doesn't have any child running, while the ng process is running alone as the same PID but just child of PID 00001.
File watcher is still watching files and if I save one I get (in the previous shell):
Date: 2018-02-20T06:04:50.302Z - Hash: 3e9f3ccb9b5102205767 - Time: 746ms
5 unchanged chunks

WARNING in AngularCompilerPlugin: Forked Type Checker exited unexpectedly. Falling back to type checking on main thread.

webpack: Compiled with warnings.

I'm using OSX 10.13.3 and Node 9.5.0, angular-cli 1.7.0
Let me know if you need further debugging and ore something else

We have discovered the same issue after some recent angular cli or related depdency upgrade. I vote for reopening this issue.
We can for sure say that the ng process used to exit properly when it received a SIGINT and the type_checker_worker.js childprocess was not there. Now we have the type_checker_worker.js process and it leaves the ng process dangling on exit (and hence keeps on hogging the port).

I've discovered some more... when I call ng serve directly from bash, I have no problems exiting it with Ctrl+C. However, we typically invoke ng serve from a nodejs script as a node child_process.
Again, this used to work previously and now it doesn't anymore.

After Ctrl+C, fuser -k 4200/tcp(https://stackoverflow.com/a/48145559) command works for me to kill 4200 port, and use "ng serve" command to compile it again.  :dancing_men:

They should have something like
ng serve --stop
Ctrl-C seems somewhat crude to stopping any process.
Have I been stuck in back end java for too long?


Enable IDE0030: UseCoalesceExpressionForNullable

https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0030

Relates to #13791.

I would rather not merge this and close it until the analyzers are fixed.

I would rather not merge this and close it until the analyzers are fixed otherwise it will have to be fixed a second time.

@iSazonov I don't think there is an issue with the IDE0030 analyzer - it is working as designed. If a new analyzer is approved to prefer Nullable<T>.GetValueOrDefault() as a result of https://github.com/dotnet/runtime/issues/33792 we could consider new changes in that instance.

rebased

/azp run


[Bug] I've been added, but my details don't appear in webring

What happened?
My JSON file has been added in PR https://github.com/ericwbailey/a11y-webring.club/pull/157
But my details still do not appear on https://a11y-webring.club/.
Operating systems
Windows 10
Browsers
Firefox, Chrome
Anything else?
No response
Code of conduct

[X] I agree to follow this project's code of conduct

My JSON file has been added to the root directory, which is why I'm not appearing in the webring.

Will be fixed by PR https://github.com/ericwbailey/a11y-webring.club/pull/160


Normalize Lua code formatting

I can't find a code beautifier that formats Lua the way I personally prefer, but any kind of normalization is going to be better than none. After reviewing about half a dozen options the two easiest to implement and most complete seem to be lua_code_formatter and lua-fmt, while luaformatter is interesting in that it is a let less aggressive but still works alright (with honorable mention to FormatLua). We should probably start assuming one of those is our go-to preference for code formatting and run it over most of our existing code base.
I can't find any really comprehensive Lua coding style guides. If anybody knows of one (especially if they like it) let me know.
Worth mentioning, the auto-indent for Lua in NeoVim does not match any of these, but I actually perfer it. None of these tools are customization without forking them.
Here is a little shell script to make it easier to play with various Lua code formatters. It should be used as a filter that takes STDIN and writes STDOUT, and can be called with a single argument of which backend to use.
#!/usr/bin/env zsh

case $1 in
	3|formatter)
		luaformatter -s 2 -t 0 -d unix /dev/stdin
		;;
	2|reformat)
		lua.reformat /dev/stdin >(cat) 1>/dev/null
		;;
	1|fmt|*)
		luafmt -i 2 --stdin
		;;
esac

@alerque, I've implemented Lua re-indenter in ZeroBrane Studio and it satisfies my (picky) requirements quite well. Note that it won't change the line content, only the indentation. You'll need to trigger the re-indentation from the IDE, but if you want to run it as an external command, then something like this may work: zbstudio -cfg "package{onAppLoad = function(self)ide:GetMainFrame():ProcessEvent(wx.wxCommandEvent(wx.wxEVT_COMMAND_MENU_SELECTED, ID.REINDENT))ide:GetDocument(ide:GetEditor()):Save()ide:Exit()end}" %1

@pkulchenko Thanks, I'll have a look at your implementation too — when I can get ZBS to run.

I did a bunch of format normalization along the way in #681, but it was hardly exhaustive, just basic stuff in files that had lint warning.


Update interventions list

Jill & Uri have corrections (strike) & additions (bolded) to the interventions list.
@jsgeiser: Please correct or add / remove any interventions.

After-School Tutoring (ATP)
Attendance Officer
Attendance Contract
Behavior Contract
Behavior Plan
Before School Tutoring
Boys & Girls Club
Community Schools
In-House Counseling: In-House
Outside Counseling: Outside/Physician Referral
ER Referral (Mental Health)
Math Teacher Tutor
Mobile Crisis Referral
MTSS Referral
OT / PT Consult
Parent Conference/Meeting
Phone Call Parent Communication
Peer Mediation
Reading Teacher Tutor
SST Referral
Teaching Plan
Weekly Call/Email Home
X Block Tutor
51a Filing
Other

Current intervention list:

@alexsoble @AmirHadjihabib: Jill discussed how while not specifically an intervention, it would be nice to be able to keep a log / records of things like:

behaviors (not captured in discipline records but collected by teachers in their own classroom logs)
parent contact (communications not specifically tied to an intervention)

She said that the current flow of the interventions would work for recording these additional types of actions: a log history. Suggested "Interventions" >> "Interventions / Information Log, ?, ? ...". Distinction being: interventions = do & apply vs. log = record. Open to ideas.

Not sure what "teaching plan" is. This could be a classroom intervention that the classroom teacher does assigned through MTSS process. That could be labeled instead "classroom academic intervention" and another "classroom behavior intervention".

You could get rid of "before school tutoring" since it would be covered under "reading tutoring" and "math tutoring".

Maybe add "reading services". This would be different from "reading tutor" in that it would be done by the reading specialist.

@jsgeiser: Made the changes. Look good?

After-School Tutoring (ATP)
Attendance Officer
Attendance Contract
Behavior Contract
Behavior Plan
Boys & Girls Club
Classroom Academic
Classroom Behavior
Community Schools
Counseling: In-House
Counseling: Outside/Physician Referral
ER Referral (Mental Health)
Math Tutor
Mobile Crisis Referral
MTSS Referral
OT/PT Consult
Parent Conference/Meeting
Parent Communication
Peer Mediation
Reading Specialist
Reading Tutor
SST Referral
Weekly Call/Email Home
X Block Tutor
51a Filing
Other

Mari's distinction between doing and recording is a good one. The recording would help to share information between staff members and keep it in one place even it is not an action item. That would help save time 'information chasing' and duplicating work by more that one person. Maybe it could go with the intervention (?) but not sure if that would be too confusing and should be separated out.

List looks good. I would add the word "intervention" to classroom academic and behavior. It is a bit repetitive but "intervention" gives it more context and people will know what it means than if it is left out.

Updated in production.


No longer connecting, hangs after logon.

Seen this before, usually js related. Did google change authentication standards again? Attempting to troubleshoot, I went back to 1.5.6 stable but won't connect. Thanks. -B

Same here. I'm seeing on the console:
connect_failed [NetworkError: Forbidden] {   code: 403,   message: 'Forbidden',   body: <Buffer ...... >

1.5.8 beta works.


SQLite Migrations: Ignore schema

Asked by @VorSiechtIP (or a user with the same name) on StackOverflow:
I have a shared model that will be used to create both SqlServer and SQLite databases.  I added the Table attribute onto each one of my model classes and supplied a schema:
[Table("Sites", Schema = Common)]

When I migrate the SQLite database using context.Database.Migrate(), I get a NotSupportedException error.  I know that SQLite doesn't support schemas, so I was wondering if there was an easy way to ignore the schema attribute during migrate?

I suspect the reason this is happening is because the migration was generated with the SQL Server provider active. This would scaffold the schema name into the migration. If SQLite was active, these would not be scaffolded.
This was the original design: Strip schemas out when generating the migration, but throw if the user tries to explicitly specify one since they're note supported on SQLite. This, however, makes creating provider-agnostic migrations unnecessarily difficult and we should consider just ignoring them in the Migrations SQL generator too.

Get the same error if the OnModelCreating (in a DbContext) is called with the line:
modelBuilder.HasDefaultSchema("Maintenance");
As a suggestion, could this not be:
modelBuilder.ForSqlServerHasDefaultSchema("Maintenance");
that way it is configured only for SqlServer and is ignored in other provider types.
As it currently stands, it is implied the the command works for ALL provider types.

In addition to ignoring schemas in Migrations (and EnsureCreated()), we decided to warn during model building if a schema is specified. We'll also warn when a sequence is specified since they are also not supported by SQLite.


using appveyor for docu build now travis still has problems)

Coverage remained the same at 92.42% when pulling 613a7f7da831592f8867d1a1e8d1edcd05408063 on acki-m:bugfix-travis-docu-build into c92ab7c69c98ee9b9aca59fba97648d23cdb0107 on rttrorg:master.

Coverage remained the same at 92.42% when pulling 613a7f7da831592f8867d1a1e8d1edcd05408063 on acki-m:bugfix-travis-docu-build into c92ab7c69c98ee9b9aca59fba97648d23cdb0107 on rttrorg:master.


feat: update honk to do aggregation

Resolves https://github.com/AztecProtocol/barretenberg/issues/1059.
Please read contributing guidelines and remove this line.

Benchmark results
Metrics with a significant change:

batch_insert_into_append_only_tree_32_depth_ms (256): 131 (-69%)
batch_insert_into_append_only_tree_32_depth_hash_ms (256): 0.450 (-69%)
batch_insert_into_indexed_tree_20_depth_ms (256): 182 (-53%)
batch_insert_into_indexed_tree_20_depth_hash_ms (256): 0.483 (-53%)
avm_simulation_time_ms (Token:constructor): 123 (+33%)
avm_simulation_time_ms (Token:mint_public): 300 (+397%)
avm_simulation_time_ms (FPC:pay_refund_with_shielded_rebate): 138 (+123%)
l2_block_processing_time_in_ms (4): 763 (-56%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,700
1,542
698 (-1%)
747 (-1%)
767

proof_construction_time_sha256_30_ms
11,741
3,135
1,402
1,424 (-1%)
1,463

proof_construction_time_sha256_100_ms
43,787
11,981
5,500 (+1%)
5,430
5,363

proof_construction_time_poseidon_hash_ms
78.0
34.0
35.0 (+3%)
59.0 (+2%)
88.0 (+2%)

proof_construction_time_poseidon_hash_30_ms
1,513
418
202
225 (+2%)
269

proof_construction_time_poseidon_hash_100_ms
5,593
1,504
672 (-1%)
723 (+2%)
745 (-1%)

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
708
708
708

l1_rollup_calldata_gas
6,576
6,588
6,588

l1_rollup_execution_gas
584,256
584,419
584,570

l2_block_processing_time_in_ms
:warning: 763 (-56%)
1,416 (+1%)
2,665 (-5%)

l2_block_building_time_in_ms
10,999 (+1%)
21,125
41,885 (-7%)

l2_block_rollup_simulation_time_in_ms
10,999 (+1%)
21,124
41,885 (-7%)

l2_block_public_tx_process_time_in_ms
9,237 (+2%)
19,148
39,720 (-8%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
7,052 (+1%)
9,890 (+1%)

node_database_size_in_bytes
12,709,968
16,945,232

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

GasToken:_increase_public_balance
101 (+3%)
13,790

GasToken:set_portal
18.0 (+25%)
3,339

Token:constructor
:warning: 123 (+33%)
23,692

FPC:constructor
93.1 (+3%)
13,592

GasToken:mint_public
85.1 (+6%)
10,158

Token:mint_public
:warning: 300 (+397%)
19,034

Token:assert_minter_and_mint
53.0 (-18%)
12,925

AuthRegistry:set_authorized
45.7 (+2%)
7,812

FPC:prepare_fee
246 (-4%)
11,068

Token:transfer_public
45.9 (-14%)
44,012

FPC:pay_refund
73.5 (+4%)
15,961

Benchmarking:increment_balance
1,059 (-3%)
11,281

Token:_increase_public_balance
62.3 (-24%)
15,006

FPC:pay_refund_with_shielded_rebate
:warning: 138 (+123%)
17,056

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.155 (+1%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.3 (-2%)
16.6 (-2%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.598 (-2%)
0.510 (-2%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
47.7 (-1%)
75.6 (-3%)
:warning: 131 (-69%)
245
466 (-1%)

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.488 (-1%)
0.465 (-3%)
:warning: 0.450 (-69%)
0.443
0.436 (-1%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
59.2
111 (-1%)
:warning: 182 (-53%)
352
675 (-3%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.500
0.497 (-1%)
:warning: 0.483 (-53%)
0.477
0.463 (-3%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
72.4 (-2%)
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
133
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.515 (-2%)
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,017
666,910

Transaction size based on fee payment method
| Metric |  |
| - |  |


Will this be ported to 3.X?

I was really hoping to use this in a game, but it's still only available for Godot 2.1.X.

I'd love to say yes but I think it needs a whole rewrite to get benefits of godot 3.x new features. Anyway I'll have to finish some other stuff first.

Bump?


Step 3 of ruff integration: add ruff to CI (plus cleanup of different linter stages)

Integrate ruff as linter and add it to pre-commit.
Cleanup of linters, see #942.
Pre-commit changes:

removed flake8 from pre-commit (covered by ruff, see here)
removed pylint from pre-commit (this is too slow for pre-commit; most of it is covered by ruff - anything not picked by ruff will by shown by the CI-linter workflow)
removed isort from pre-commit (covered by ruff, see here)
did not remove black (and do not use the ruff format as this introduces some changes)

Github action changes:

remove flake8 from CI-unittest

Others

removed flake8 from list of required packages
removed actionlint, black from superlinter (already in pre-commit)
removed flake8, isort from superlinter (already in ruff in pre-commit)
removed markdownlint from superlinter (added to pre-commit in PR #940)
replaced superlint yamllint by pre-commit yamllint

Closes #942.

@VictorBarbosaMartins - please review only after #941 is merged to main (otherwise you review the same changes again)

I think we should talk to other groups in DPPS to check what is their approach in this regard. Perhaps repeating checks in the pre-commit hooks and ci linters is not a bad idea.

I think we should talk to other groups in DPPS to check what is their approach in this regard. Perhaps repeating checks in the pre-commit hooks and ci linters is not a bad idea.

Wait - pre-commit is running as linter in CI-linter over all files (this is also how DPPS is doing it). So we are still using all the tools and do a full linting.

Just to make the last point clearer: precommit is running over all files in Ci-linter.yml, see this line: https://github.com/gammasim/simtools/blob/6d10f5bf47956f9722d7a41062a223799944a9f7/.github/workflows/CI-linter.yml#L78

Thanks @VictorBarbosaMartins


Package into executable

Package the app into an executable.
Scope:

Windows 10 (macOS / Linux may come later if needed)
No need to create a build process at this time, just figuring out how to do it locally

Guidelines:
Qt's documentation provides several options:
https://doc.qt.io/qtforpython/deployment.html
For Qt6, seems like cx_Freeze is the one that works best (here).
Nuitka (here) also seems like a good option, but there's a warning at the bottom of the page stating that it doesn't work on macOS.

Using pyinstaller.

Implemented in https://github.com/joaonc/hd_active/pull/52


Expand tox tests to include recent python 3 releases

I just noticed that your python 3 tests only go up to 3.4, 3.5 and 3.6 have since released and are in broad use.
https://github.com/planetarypy/pdsview/blob/master/tox.ini#L2

With the new setup, tox will be more difficult...but why does tox need to test more than one python3 version? Aren't they backwards compatible so I should only test 3.6?

You make a good case and I would agree that it makes the most sense to test the most recent version if you're testing any at all.  Maybe in an ideal world you'd test them all.  Again, your call at this point 😈

So I've been going back and forth between what would be a better: only having py2 and py3 as environments which (I think) will pull from the most up to date python2 and python3 on the system or to include many environments and the setting skip_missing_interpreters=True so the tests pass when developers don't have all/multiple versions of 2.x and 3.x. I'm leaning toward the skip_missing_interpreters option because there are somethings that are not full backwards compatible between python 3 versions (Like formatted string literals). Not sure if you have an opinion on this


Night AOD or aerosol extinction is zero from CCTM_PHOTDIAG3 file  simulated by CMAQv5.3.1?

Daytime

Nightime

If so, any recommendation how to fix this problem?

For a given time step, the photolysis module calculating these diagnostic variables is only called when the solar radiation in a given grid cell is greater than zero (i.e. daytime). During nighttime, there is no photolysis and no light extinction by aerosols. The best way to think about these zero nighttime values is "AOD / aerosol extinction not available", analogous to how satellite products also do not provide any AOD during night. While "real" AOD / aerosol extinction values probably never go down to zero even in the cleanest environments, you could filter by solar radiation from METCRO2D (variable RGRND) to set all zero AOD values to missing when RGRND equals zero if this helps with your analysis.
Please also keep in mind that the primary avenue for answering CMAQ-related questions and providing user support is the CMAQ forum.


Bump version to 16.23.0

https://trello.com/c/1mY4fPN1/857-analytics-for-attachments

Sure - done :-).


Updated App Service scale-out limits for Pv2 plans

App Service scale out limits for Premium v2 has increased to 30 instances (per announcement here: https://azure.microsoft.com/en-us/updates/increased-app-service-scale-out-limits-for-premiumv2-plans/)
The App Service docs have already been updated to reflect this as well, but the subscription limits and quotas roll-up page did not yet reflect the change.

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

@nihaue Thanks for the suggested change, and it does look right. I do want to pass this to an App Service content owner before approving. Thanks for your patience. @cephalin could you take a look and sign off on this? Or just let me know and I'll sign off. #assign:cephalin

#sign-off

@cephalin: I'm sorry - only the author of this article, @rothja, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@rothja LGTM


Easy access to TraceId

I would like to log the traceId in all logs where it is available, the easiest way I found to get the traceId is the following:
const traceId = req.openTelemetry().activeSpan?.spanContext().traceId;

which is not very elegant. Is there a better way and if not, would it be a good idea for this plugin to decorate the request with the traceId?

Unfortunately things can get pretty nested. I think providing easier access to the traceId sounds like a good idea.
What did you have in mind? A top level request decorator (request.traceId), or adding a property to the openTelemetry decorator (request.openTelemetry().traceId)?
If you don't mind opening a PR, we're always open to ideas 🙂

Closing, as the issue/PR has gone stale


[WIP] tests(increase-coverage): weekly tests PR

Context
This is a weekly tests PR

WIP or can i review

CI is failing so lets not merge until I fix this, not sure whats the cause yet since it passes locally


Optimize backfill sync to efficiently use reqresp fetched block data

Motivation
As @tuyennhv pointed out after doing profiler runs, backfill sync could be optimized to use treebacked data from the sync range/block by root.

This PR changes the following:

Use treebacked block's hashtree root of the synced block to get its blockroot to verify parent/child relationship in verify block sequence
Use blockArchive's batch put binary using treebacked block's data
add a hidden cli option --sync.backfillBatchSize to speciify the batch size for backfill sync
Description

Closes #3657

Closing for now since the network code has diverged. This optimization is good and should definitely be included on a future review of backfill sync


Brisbane Mentor Updates, Added MarkC link and VickiC entry

It looks good to me, but when I downloaded it locally it wasn't quite right, so please rollback and bounce PR if it's all awry 😄
Thanks Mark

@broccolinisoup HiYa, can you check and push through my changes please to Add in Vic and my linkedin link. Cheers Mark


Delete confirmation dialog is displayed at unexpected place on the phone

Portrait: Top of the screen
Landscape: Stretched from top to the bottom
Expected: Center of the screen

A part of this issue (Landscape: stretched) is fixed by 5922c99e.
Rendering position seems to be handled by the framework and it can't be fixed.

http://stackoverflow.com/questions/33732210/set-contentdialog-to-show-on-bottom-of-page-in-uwp


Typo in String#match (lib.es2015.symbol.wellknown)

TypeScript Version:  3.0.0-dev.201xxxxx

Search Terms:
typos, string, lib, es2015.symbol.wellknown

I've wiped the majority of the template since this is a typo report.
I was originally going to just make a PR but the template had:

[ ] There is an associated issue in the Backlog milestone (required)

The typo itself is that String#match in lib.es2015.symbol.wellknown has it's param description pasted in the middle of it's method description:
https://github.com/microsoft/TypeScript/blob/d2c5d54242c69effbed0ebb27033047e0c995589/src/lib/es2015.symbol.wellknown.d.ts#L209-L212
My PR replaced it with "with a regular expression" - Let me know what the correct way to proceed with this is 🙂

I've just found a similar typo in the RegExp interface in es5.lib:
https://github.com/microsoft/TypeScript/blob/d2c5d54242c69effbed0ebb27033047e0c995589/src/lib/es5.d.ts#L912-L913
The last part of the comment of the comment doesn't seem relevant:

The regExp argument is a Regular expression object. It can be a variable name or a literal.

My guess is that is the description for the regexp param taken by #match, which reads very similar:
https://github.com/microsoft/TypeScript/blob/d2c5d54242c69effbed0ebb27033047e0c995589/src/lib/es5.d.ts#L416-L420

I have found another comment issue in replace():
/**
 * Replaces text in a string, using an object that supports replacement within a string.
 * @param searchValue A object can search for and replace matches within a string.
 * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
 */
 replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;

This comment is misleading because this function replaces all occurrences when the pattern is a regular expression but only the first occurrence when it is a literal as explained in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace :

The replace() method returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match. If pattern is a string, only the first occurrence will be replaced.

which is confirmed by running the following code:
console.log("foo".replace("o", "O")); // => fOo
console.log("foo".replace(/o/g, "O")); // => fOO


Open an absolute url in the browser with server.open

Clear and concise description of the problem
When developing under some kind of API Gateway or a Proxy server i would like to open a different URL than the actual serving server
eg. vite server will run on http://localhost:3000 but my API gateway us under https://local.web
right now I'm able to set only the pathname, which isn't sufficient in my case.
Suggested solution
  server: {
    port: 3000,
    host: 'localhost',
    open: 'https://local-api-gateway',
  },

Alternative
N/A
Additional context
in webpack it's possible to pass an absolute URL for the browser to be open at.

An absolute URL seems to be working for me locally, and might have been fixed indirectly throughout the course of time. Closing as fixed.


Implement pagination using auto_paginate

It turns out there's no point in manually paginating; the Oktokit docs recommend the use of auto_paginate instead.
This PR changes to using auto_paginate, and introduces an integration test with HTTP record and replay courtesy VCR.  In addition to the automated integration test, I've manually verified this against a test account with 200 EOL Ruby repositories in it.
I'm not sure where the upper bound lies for auto-pagination :)
It also:

Adds some development dependencies to the Gemspec.
Bumps Octokit to 4.22.
Adds style checks with standard to the default Rake task.

Closes #9.

Awesome! Thanks for the contribution, @duncan-bayne! 🎉


Client Stuck when I call DisconnectAsync Method

Hello,
I am using version 2.7.5. I need to verify broker credentials provided by user. I use following code
After verifying broker connection when I call DisconnectAsync() method it stuck here, does not return from DisconnectAsync() method.
public async Task VerifyCredentials(Credentials userCredential)
{
try
{
var factory = new MqttFactory();
var client = factory.CreateMqttClient();
// Ignore untrusted certificate exceptions
IgnoreCertificateAuthorityException(userCredential.SkipTlsVerification);
IMqttClientOptions options;
                options = new MqttClientOptionsBuilder()
                   .WithClientId(_deviceId)
                   .WithCredentials(userCredential.Username, userCredential.Password)
                   .WithTcpServer(userCredential.IP, userCredential.Port)
                   .Build();

            await client.ConnectAsync(options);
            if (client.IsConnected)
            {
				//Alert Message for UI
                UIAlertManager.SendAlert("Credentials Verified", WebSocketIdentifier.Configuration, AlertType.Success);
            }
            await client.DisconnectAsync();
        }
        catch (Exception ex)
        {
			//Alert Message for UI
            UIAlertManager.SendAlert(ex.Message, WebSocketIdentifier.Configuration, AlertType.Error);
        }

}

Hi, thank you for reporting this issue.
I found the issue and released 2.8.0-alpha5 as a nuget package. Please let me know if this version works for you. Please keep in mind that it contains some breaking changes.
Best regards
Christian

Hello, thank you for your fast reply.
I have updated to 2.8.0-alpha5 but I am still getting the same error.

Please try again with 2.8.0-rc1.

It seems to be working fine, Thankyou soo much.
Can you please tell me when it will be available in stable realease?

2.8.0 already has several RC versions. So issume it will be released in a couple of days.


is cuda  inevitable?[MacOS]

It's ok if you use cpu to conduct the edit on CPU, but it may take more times.

Thanks for AW 😀, i try to use 'mps' to accelerate. But it always reminds me “Torch not compiled with CUDA enabled”

hi, we recommend using a GPU, as it may speed up the process. We will also continue to iterate on EasyEdit to support more features.  Do you have any other questions?


Wrong return annotation in errors method in HasError trait

Describe the feature you would like to see
Hey guys I faced with wrong annotation in errors method in HasError trait
Obviously it's not an array<non-empty-string>, based on code at least the annotation should be equal to ErrorResponseParser::getErrorsFromResponse
Latest build.
Current NotFound dump is:
Kreait\Firebase\Exception\Messaging\NotFound^ {#1222
  #message: "Requested entity was not found."
  #code: 0
  #file: "/var/www/master/vendor/kreait/firebase-php/src/Firebase/Exception/Messaging/NotFound.php"
  #line: 60
  -token: null
  #errors: array:1 [
    "error" => array:4 [
      "code" => 404
      "message" => "Requested entity was not found."
      "status" => "NOT_FOUND"
      "details" => array:1 [
        0 => array:2 [
          "@type" => "type.googleapis.com/google.firebase.fcm.v1.FcmError"
          "errorCode" => "UNREGISTERED"
        ]
      ]
    ]
  ]

Obviously 👍
Fixed with 19a466d21dce491383361139979d442bf56fba3e, thanks for the notice!


outdated bower package

the package is outdated in relation to angular-input-masks, the angular-input-masks version is already in v4.2.1 and here it is in version 2.6.0
Needs to be updated to support versions

Bower is no longer supported since version 3.0. I have updated the README to reflect this situation.

right, is there any standalone file, where can I call only this file in my project?
version 4.x


Uncaught RangeError when deleting all of the text

Hey, I think I found a bug in the peritext demo. If I select all of the text and then press delete or backspace, the following exception is raised:

BTW I love the article and demo, it's really a fantastic example of what you can achieve with academic writing 😄

Thanks for this bug report! I was able to reproduce and will look into a fix.
I suspect the problem is that this is trying to delete the paragraph node containing the inline content, but our CRDT only knows about the positions within the inline content, so it can't interpret the delete index correctly.
BTW, on my machine, it seems like you can still delete all the text fine if you use the mouse to highlight all the characters; it only doesn't work if you use ctrl-A to select all the letters. Curious if that's the same for you too.

BTW, on my machine, it seems like you can still delete all the text fine if you use the mouse to highlight all the characters; it only doesn't work if you use ctrl-A to select all the letters. Curious if that's the same for you too.

Yep, it works on my machine if I select the text with the mouse.

Yeah, it works on my computer if I select the text with my mouse.

That is because mod-A is binded to a selectAll command in the baseKeymap.
An AllSelection is different from a normal TextSelection in that it selects the entire document with [0, doc.content.size], not only the ranges accessible by a normal TextSelection (which requires its bound to be within textblocks).
Since from = 0, contentPosFromProsemirrorPos(0) results in -1 which is out of bounds.

Thanks @BrianHung for the helpful notes. I just pushed a fix. @quandary-item could you pull main and confirm it works as expected now?
re: positions once Peritext has block nodes -- not sure yet, positions will definitely get more complicated though.

I've pulled main and tested this out. It works as expected now. I see delete operations for all of the characters that are deleted.


倒入库之后  按照您的方法 一直提示找不见Echo这个类

I have the same problem. Any idea?

is this issue already fix?
can someone comment the solution? thanks


[MIST-1016] Implement automatic fault recovery

This PR resolves #1016 via

Implementing complete checkpointing paths on master and task
Design and implement necessary protocols
Implement single node recovery algorithm

I've addressed your comments, thanks!

LGTM. I'm merging it.


[Future] Named historical version

Though all historical changes are stored in the storage, currently there is no way to explore them in the UI.
We want to support creating named versions and browsing version histories, just like what Google Doc does.

https://github.com/UCLA-IRL/ndn-workspace-solid/pull/71#pullrequestreview-1905945347


Messages for Chargers

This package contains a set of straw-man messages for charging. It is meant to be a starting point for discussing how we will integrate chargers with the rest of RMF. Feedback and changes are welcome.

Roger, applied the changes!

Roger, applied the changes!


Merge pull request #32 from GEOS-ESM/main

Merge request "main-to-develop"

Closing as already done in #32


Angular2, Addons  requireDecimal should add 0 to decimal according to decimalLimit

I'm using the createNumberMask addons to create an amount mask for French amount ( space for grouping, coma for decimal separator, currency as suffix is €).
We keep the decimalLimit to default (2), and set  requireDecimal to true.
When I enter value, the suffix is set to , € but we expect to have ,00 €.
Basic sample application with the issue: https://github.com/ilaborie/a2tm-issues/
You can test it here: https://ilaborie.github.io/a2tm-issues/

I came across the same issue. It makes sense to me to add these padding zeros just based on decimalLimit and requireDecimal parameters (although I may see how it could potentially break someone's e2e-tests).
@lozjackson is it something that you guys would like to discuss or I can just go ahead and make a PR?

Sounds completelly reasonable and it is actually what I expected when I saw config fields related to decimal part. Came here to request the same feature.

+1

Hi, any news regarding this, or maybe some temp workaround?

+1

Any news?

Hmmm... stumbled across this too.  Any news or workaround?

Just found the actual feature request and a workaround: #372


Updated nsurl extension and added some more tests

Current coverage is 71.51%

Merging #18 into master will increase coverage by +13.21% as of 1b79b3b

@@            master     #18   diff @@
======================================
  Files            7       7
  Stmts          295     316    +21
  Branches         0       0
  Methods          0       0
======================================
+ Hit            172     226    +54
  Partial          0       0
+ Missed         123      90    -33

Review entire Coverage Diff as of 1b79b3b

Powered by Codecov. Updated on successful CI builds.

Can you rebase and leave out the update readme commit since that was already merged?


feat: add boost property_tree

as title
need skip url stability check

Hello @bazelbuild/bcr-maintainers, modules without existing maintainers (boost.property_tree) have been updated in this PR. Please review the changes.


Which port is the tool using?

Discussed in https://github.com/solidify/jira-azuredevops-migrator/discussions/507

Originally posted by dacula August  3, 2022
Hello together,
i'm not very skilled with network administration but it looks like the application is blocked by our firewall.
Can you tell me which port i need to open to get access?
Kind regards
dacula

For on-prem use cases, the server where you run the jira migrator will need openings to these:

Your Azure DevOps Server Instance
Your JIRA Server instance

Our Jira Server instance is behind an Akamai CDN with Microsoft OAuth Authentication. Is there a way to Authenticate with Microsoft OAuth?

Nope, you need a valid JIRA API token to authenticate :)

i tried it with an API token but it just gives me an outh http page back
Jira Exporter v2.3.117
Copyright (c) Solidify
[I][09:34:32] Connecting to Jira...
[I][09:34:32] Retrieving Jira fields...
[E][09:34:32] Unexpected migration error.
[System.AggregateException] System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.InvalidOperationException: Response was not recognized as JSON. Content:

Sign in to your account

<meta name="PageID" content="ConvergedSignIn" />
<meta name="SiteID" content="" />
<meta name="ReqLC" content="1033" />
<meta name="LocLC" content="en-US" />

    <meta name="referrer" content="origin" />

    <meta name="format-detection" content="telephone=no" />

<noscript>
    <meta http-equiv="Refresh" content="0; URL=https://login.microsoftonline.com/jsdisabled" />
</noscript>

Then I can't really say, sadly. The rest API token is the preferred way to access the rest API, so that's how we have implemented it. To my knowledge there is no native way to authenticate with the rest API using OAuth tokens. So if you cannot authenticate to the API, how to you expect to be able to run the tool? :)

Alright, i think i used a PAT not an API token, i will try it again with an API token, sorry and thank you!
The API token has to be used as password right?

Yup! You can find some usage examples in the docs. :)
Here is an article that shows you how to manages API tokens in case you need it: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

Thanks a lot!

No worries :)


feat: retrieve SECRET_KEY from env with fallback

There shouldnt even be a fallback for this kind of thing…
PR fulfills these requirements

[ ] Commit message(s) and PR title follows the format [fix|feat|ci|chore|doc]: TICKET-ID: Short description of change made ex. fix: DEV-XXXX: Removed inconsistent code usage causing intermittent errors
[ ] Tests for the changes have been added/updated (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[ ] Best efforts were made to ensure docs/code are concise and coherent (checked for spelling/grammatical errors, commented out code, debug logs etc.)
[ ] Self-reviewed and ran all changes on a local instance (for bug fixes/features)

Change has impacts in these area(s)
(check all that apply)

[ ] Product design
[ ] Backend (Database)
[ ] Backend (API)
[ ] Frontend

Describe the reason for change
(link to issue, supportive screenshots etc.)
What does this fix?
(if this is a bug fix)
What is the new behavior?
(if this is a breaking or feature change)
What is the current behavior?
(if this is a breaking or feature change)
What libraries were added/updated?
(list all with version changes)
Does this change affect performance?
(if so describe the impacts positive or negative)
Does this change affect security?
(if so describe the impacts positive or negative)
What alternative approaches were there?
(briefly list any if applicable)
What feature flags were used to cover this change?
(briefly list any if applicable)
Does this PR introduce a breaking change?
(check only one)

[ ] Yes, and covered entirely by feature flag(s)
[ ] Yes, and covered partially by feature flag(s)
[ ] No
[ ] Not sure (briefly explain the situation below)

What level of testing was included in the change?
(check all that apply)

[ ] e2e
[ ] integration
[ ] unit

Which logical domain(s) does this change affect?
(for bug fixes/features, be as precise as possible. ex. Authentication, Annotation History, Review Stream etc.)

Hi @Robbilie,
On behalf of the whole Label Studio team, I'd like to thank you for bringing this oversight to our attention. We agree with not only your suggestion that SECRET_KEY should be configurable via environment variables, but also as you observed that there should not be a fallback for SECRET_KEY. For this reason, we've cherry-picked your commit from this branch into https://github.com/HumanSignal/label-studio/pull/4690/commits/399cd5203ceaaf41c5447ad728955909c705d130, which will add a system for setting a stable random SECRET_KEY if none exists already, and will be looking to land #4690 as soon as possible. We will also be including this fix in our upcoming open source release, 1.8.2.

Yeah that's sensible to not provide a static fallback :)


feat: implement ValidationWebhook for subscription admission requests

implement webhook server that validates whether the channel name in the subscription routed to it conforms to all the storageclients desired operator subscription or not.
this pr only contains webhook server code and supporting resources to deploy it, deployment of actual ValidatingWebhookConfiguration will be part of different pr.
part of [RHSTOR-5496]
Depends on #89

/hold
testing in progress and review only last two commits.

To reviewers:
There are multiple ways to configure webhook and deploy the server backing it up. This PR represents one possible way, pls let me know if we need a discussion before reviewing this PR.
The other half of registering webhook is still pending.

To reviewers: There are multiple ways to configure webhook and deploy the server backing it up. This PR represents one possible way, pls let me know if we need a discussion before reviewing this PR.
The other half of registering webhook is still pending and is part of different PR.

i assume this can also be handled inside the webhook like ValidateUpdate etc, if yes it would prefer that one as we don't need to worry about starting more than one deployment to handle webhooks. Lets have a discussion on this one

closing in favour of alternate implementation in #98


fixed issue with race conditions when generating temp. pdf files; added option to specify the filename

fixed issue with race conditions when generating temp. pdf files; added option to specify the filename
Issue: #76

before merging, i will wait for @pofider comments, he probably has something to say about this change 😄

Thank you. I think that a benchmark is not so much important here since the pdf generation takes in every case billion times more than an uuid. If the v4 safer, it makes definitely sense to use it.
I don't see the tmpId option useful. But why not, if can give someone option to do something weird. :)
Thank you for contributing back.

@pofider Thank You.


Added MSI GC20 (variant).

I previously put an MSI GC20 taken from Steam configuration. This one coming from a dev software which uses SDL (Godot Joypad Demo Tool).
I remapped it and double checked that was ok. I suggest you to put both lines, considering that the serial is different.

I'm sure that the "guide" button is b8, not b12. Even Steam signals me as "8" button. In steam configuration there was a certain number of repeated GC20 strings; I was taken the most complete, but I'm not sure that's correct. I suppose the first mapping I sent you is coming from another user. My mapping is this one (this pull request).

Have you tested after configuring in Steam (or Godot) that the button’s working as mapped ? You can quit Steam, remove the maps, restart and map again from scratch if you want to double check.

I removed controllers from SDL_GamepadBind and restarted Steam. I tried to remap but the buttons were the same and asked me to quit without save. This is what I found in SDL_GamepadBind:
"SDL_GamepadBind"		"03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux

03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux"
There's no more a GC20 string with a b12 button. So I don't trust of that configuration (the previous pull request).
On godot I verified twice and the string is the same. So I'd accept this pull request and eventually remove the previous line.


Create jerschools.txt

@arad43 The first verification stage is complete: the official domain for  תיכון עירוני ג' על שם מוטה גור מודיעין is modiinapp.com, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: https://modiinapp.com/en/page/2862/ironi-heh-yitzchak-navon-high-school-mamlachti

@philipto modiinapp.com is our city google cite its not the gmail domain,  " https://modiinapp.com/en/page/2862/ironi-heh-yitzchak-navon-high-school-mamlachti" is also not the ironi g. its ironi h
ironi g modiinapp.com is: https://modiinapp.com/he/page/172/תיכון-עירוני-ג-ע-ש-מוטה-גור-בית-ספר-על-יסודי-ממלכתי"
but still its the cite not the gmail domain

@arad43  Thank you for the clarifications. Pull request merged. Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


Show how to customize the scrape path in rabbitmq.config

My PR for #24

Thanks, although I must admit I never seen formatting like this :-)

I'm no Erlang expert, so I built my sample config starting from the /etc/rabbitmq/rabbitmq.config file that is generated by running the entrypoint of the official rabbitmq:3.6.9 docker image.
So if the formatting is funny that is the fault of that entrypoint script and especially its rabbit_array() function :-)


Fix #2015: allow max(tuple)

With an empty tuple, it raises an InternalError.  Can you make it raise something more informative for the user?

Good point, I've fixed the empty tuple issue.

Current coverage is 87.02% (diff: 96.66%)

Merging #2017 into master will increase coverage by <.01%

@@             master      #2017   diff @@
==========================================
  Files           305        305
  Lines         54729      54740    +11
  Methods           0          0
  Messages          0          0
  Branches       5659       5653     -6
==========================================
+ Hits          47620      47635    +15
+ Misses         6183       6182     -1
+ Partials        926        923     -3

Powered by Codecov. Last update fd655f0...fc0ab73

Thanks


nav: show warning with no internet

draft, includes other PRs atm. will get it split out and cleaned up

done in https://github.com/commaai/openpilot/pull/29055


What is the difference between maxAge and cacheFlushInterval?

Hey guys,
Can anybody tell me exactly what's the difference between maxAge and cacheFlushInterval ?

cacheFlushInterval delete everything in the cache at once, on an interval. maxAge represents how long individual items can be in the cache until their expire. The cache's behavior toward expired items is determined by the deleteOnExpire setting.

@jmdobry forgot to say thank you, I appreciate it even a year after :)


Clarification of diagram "Daily badge entry activity"

While translating, I could not figure out what the  diagram "Daily badge entry activity" shows and especially what the strings "projects created since day before" and "projects updated since day before" mean.
Clarification would be appreciated and help with translating the diagram correctly.

https://bestpractices.coreinfrastructure.org/project_stats
PS: Maybe the diagram is not self-explanatory and to be honest, it's difficult to distinguish the overlapping dots for deriving meaning. Also, the colors are not ideal for people with bad monitors or some degree of color blindness.

Maybe this will help. Here is the code that creates this data, from app/models/project_stat.rb :
    # These use 1.day.ago, so a create or updates in 24 hours + fractional
      # seconds won't be counted today, and *might* not be counted previously.
      # This isn't important enough to solve.
      self.created_since_yesterday = Project.created_since(1.day.ago).count

      # Exclude newly-created records from updated_since count
      self.updated_since_yesterday = Project.updated_since(1.day.ago).count -
                                     created_since_yesterday

In the charts you can select on each of the items to hide or redisplay them.

Also - the reason for the colors is to make their relationships more obvious.  Green and blue are their daily values, while dark green and dark blue is the corresponding running average.  I wanted colors that were somewhat similar since they are related measures, while still being possible to distinguish.

Perhaps add below:
The "projects created since day before" is a count of how many projects were created within 24 hours before the query. Similarly, "projects edited since the day before" is a count of the number of projects edited within 24 hours before the query, not including projects created in that time.


No matching distribution found for torchrl

Describe the bug
Unable to install torchrl on a fresh venv that uses the latest torch and cuda with python 3.8
ERROR: Could not find a version that satisfies the requirement torchrl (from versions: none)
ERROR: No matching distribution found for torchrl

To Reproduce
Created a fresh venv using Python 3.8 (I used Pycharm)
I ran pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 on the terminal.
At this point pytorch works perfectly and with cuda.
I then ran pip3 install torchrl and got the error aforementioned.
Expected behavior
TorchRL should install without errors
System info
When I ran python on my venv:
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

My OS:
Windows 10 Professionnel 22H2

NVIDIA RTX 2060 Max-Q
Driver 512.78
Checklist

[x] I have checked that there is no similar issue in the repo (required)
[x] I have read the documentation (required)
[x] I have provided a minimal working example to reproduce the bug (required)

Hi @thomashirtz
From the looks of it, I think it's because we don't have published wheels for windows.
Bear with me while we do that.
ETA one week, as we need to set up the tests and publication of the wheels + nightly.
In the meantime, you could have a go at building the lib from git
pip install git+https://github.com/pytorch/rl.git

Or clone the repo and install it locally.
Let me know how it goes, happy to help further if anything breaks.

Ok ! Thank you for your prompt response
I just checked and it worked

I have the same problem on Mac OS
Just created a fresh env with python 3.9
and when i try pip3 install torchrl i get:
ERROR: Could not find a version that satisfies the requirement torchrl==0.0.3 (from versions: none)
ERROR: No matching distribution found for torchrl==0.0.3

I have the same problem on Mac OS
Just created a fresh env with python 3.9 and when i try pip3 install torchrl i get:
ERROR: Could not find a version that satisfies the requirement torchrl (from versions: none)
ERROR: No matching distribution found for torchrl

MacOS 13.1 with M1 chip

We don't have wheels for M1 but you can simply do pip install git+https://github.com/pytorch/rl and it should work

The latest master crashes with
import torchrl

ImportError: cannot import name 'ProbabilisticTensorDictSequential' from 'tensordict.nn' (/opt/homebrew/Caskroom/miniforge/base/envs/torchrl/lib/python3.9/site-packages/tensordict/nn/__init__.py)

but
git clone https://github.com/pytorch/rl
git checkout 0.0.3

works

You're right, we need to update the tensordict wheels
pip install git+https://github.com/pytorch-labs/tensordict

We'll be uploading the windows binaries soon

Please note that MacOS is not windows.

On. Mac OS the nightly still has this issue
(test) $ pip install torchrl-nightly
ERROR: Could not find a version that satisfies the requirement torchrl-nightly (from versions: none)
ERROR: No matching distribution found for torchrl-nightly

There's a blocker for M1 which is that we don't have access to M1 nodes on pytorch-labs so tensordict cannot produce nightlies or even binaries in general.
One solution would be to do it via torchrl (a bit of a hack but we did it in the past). If anyone wants to give it a shot I'd be happy to support.
The idea would be to copy the pipelines to create binaries in tensordict within torchrl and do a custom GHA workflow that would checkout tensordict and not torchrl, and upload the binaries where appropriate.
Anyone's up for it?


Why not just use zero3 inference to generate sequence in DeepSpeed Chat stage3 training?

DeepSpeed Chat use tensor parallelism via hybrid engine to generate sequence in stage3 training.
I wonder if just use zero3 inference for generation is ok? So that we don't need to transform model params between train and eval mode.
Any explanations about the design of stage3 training would be appreciated. Thanks.

Sry to bother, I review the doc and I see that this transform is used to speedup generation process. But why not use tensor parallelism for both training and generation?

TP alone would be insufficient to fit large models for training, and so we need zero3 and in some cases offloading. TP could be combined with zero3 for training, but that requires TP support in the models, which does not exist for the HF models used in our examples. Our current (automatic) TP design used in hybrid engine is not yet general enough to support training.

BIG thanks for your reply @tjruwase! BTW, why is hybrid engine not supported for llama2 70b yet? Is it because the use of group query attention in llama2 70b?


BVHModel.begin_update() not found

Thank you for your software, it has come in handy many times. I am right now facing a performance problem. I want to check the collision between 2 meshes (BVHModel) but the one changes its vertices dynamically. I have seen in the c++ documentation that there is a function begin_update() which updates the vertices of the mesh immediately without having to regenerate the whole mesh (which is slow) but I can't find it at the python binding. Do you have any further info or another solution to my problem?

Hi @marios-stam, unfortunately this function doesn't have Cython bindings, so it is not available on the python side of things. We would happily accept a PR adding this function if you are able to get to it!


[Last version] Can't start maestro

Describe the bug
When I want to launch maestro I have these error :
Failed to load native library:jansi-2.4.0-5ad4e48582ab46c4-libjansi.jnilib. osinfo: Mac/x86_64
java.lang.UnsatisfiedLinkError: /private/var/folders/xd/b6ln82xn26j6qh063ncnsq3m0000gn/T/jansi-2.4.0-5ad4e48582ab46c4-libjansi.jnilib:
The only working cmd is maestro --help
To Reproduce
Steps to reproduce the behavior, e.g.:
1 - curl install : curl -Ls "https://get.maestro.mobile.dev" | bash
2 - try launch masetro : maestro -v
Expected behavior
Can use maestro
Environment information (please complete the following information):

Host : MacOs Intel

Fixed !
I need to use bash terminal and not zsh terminal

closed as resolved


Update README.md

Added forge build section since forge test fails due to missing dependencies.
Source "solmate/utils/FixedPointMathLib.sol" not found: File not found. in my case.
Cheers!

I don't know if it's something to do with forge, but to run a successful build on a newly cloned repo i need to forge build twice.
The first forge build prints that it's downloading dependencies, but still fails saying it did not found forge-std and solmate deps. The second execution runs successfully.


Browse and load carts directly from the tic.computer website

using cd dir load console commands

done in .25


Set up doctests to catch errors in the examples

Various mistakes have been found in the user guide examples. Examples that don't work are very offputting for new users. We should set up automatic testing of the documentation examples to ensure they run correctly.

Doctests has been set up in #165 to catch errors in docstrings.
However this does not catch errors in the RST examples, so leaving this open


Fix/issue 90 show share sheet not working

Fixed share sheet functionality wherein callbacks should be disregarded in iOS.
Temporary fix for iOS in share sheet functionality wherein it should support multiple instance of universal branch links. Implemented already in Android (https://github.com/BranchMetrics/Cordova-Ionic-PhoneGap-Deferred-Deep-Linking-SDK/commit/b4145360333297013430d9b7ab072bf3cefe47e2) but not yet support in iOS.

:+1:


Visual bug with Settings tab

Describe the bug
The settings tab clips over the other tabs at certain resolutions.
To Reproduce
Steps to reproduce the behavior:

Open Nora
Make the window's height smaller
Settings tab clips the others

Expected behavior
The settings tab should be part of the footer so it doesn't clip the other tabs.
Screenshots

System Information:

OS: Windows 10
Affected App Version: 1.2.0-stable

Thanks for pointing it out. I'll try to fix it in the next update.

Confirmed!


Increase zoom range

Many common PDFs (with small page formats?) cannot be sufficiently enlarged to fit the screen, let alone zoomed into. An increase of the zoom range by a factor of 2, better 4, should fix this.

We can support zooming out further but it's unrealistic to support zooming in further due to how much memory is used by HiDPI rendering.

I see, that is unfortunate. Perhaps an increase by a factor of 1.5 could still be implemented, given that the latest Pixels all have at least 6 GB of RAM. That would already help a lot.
Alternatively, a toggle could be added that increases the zoom range at the expense of available memory.

Do you want the PDF viewer's content to fit width by default?

Any increase in "zoom in factor" would be welcome, even 1.5× (on top of the current max). Of the couple of PDFs I tried to read during the last weeks (e.g. festival timetables, covid certificates) not a single one was readable except for titles etc.
Even a "digital zoom" (pixel based) would help. That way, the PDF doesn't need to be rendered at a higher resolution. Only the rendered output would be projected at the screen with a magnification.

So here's an anecdote about this issue. I went to a pharmacy today to get my digital prescription filled, it came in an e-mail in a PDF.  Fear not, I did get my meds in the end, but the lack of fitness for its intended purpose of this mobile PDF Viewer was surprising.
Thanks for working on this issue, hope the fix gets merged soon.
PS. My PDF took less than 1/3 of the width of the screen in portrait when fully zoomed in. (Landscape didn't help zoom in further at all).

Got the same issue as the previous comment. For reading datasheets on the go it's sufficient but when I want to use the viewer to display digital train, expo or any sort of ticket that got a QR on it, it's always much too small for the reader to pick up the correct code. Right now my workaround is using MuPDF for tickets or anything with a QR or barcode on it and this viewer for regular text. I also didn't know zooming a PDF would eat that much memory honestly but as it's only important for things like a QR or barcodes in my opinion (human eyes are usually better at interpreting text than those digital readers) a pixel based zoom might suffice.

The reason it uses a lot of memory is because we currently always use HiDPI rendering unlike most other PDF Viewers which are using scaling up pixels 2x or 4x. You should be able to see the difference from the appearance of the text compared to a lot of other ones. Using a sandboxed WebView instance with an internally sandboxed pdf.js instance also uses more memory than a whole bunch of memory unsafe C code.
We can implement support for zooming closer but not necessarily another 2x closer, only a bit. We can add support for zooming in even further based purely on scaling rather than rendering the whole page at higher resolution.

I think a toggle to allow zooming based on scaling is the most reasonable approach then. For me text is fine and those scanners surely wouldn't care about how they got the enlarged QR code. Anyways thanks for the effort of maintaining safe apps like this. Always appreciated to need to install another app for something as displaying PDFs.

We can add support for zooming in even further based purely on scaling rather than rendering the whole page at higher resolution.

Thank you, I think that's indispensable.

We can add support for zooming in even further based purely on scaling rather than rendering the whole page at higher resolution

Personally I think this is a good compromise; when I've had trouble reading a PDF at the current maximum zoom, screenshotting it and zooming in with an image viewer resulted in perfectly legible text in the few cases I've tried

We can support zooming out further but it's unrealistic to support zooming in further

Zooming out further would be great! I often get sent PDFs which are scans of documents (like Adobe Scan) and I can never see the entire page on screen because I can not zoom out enough

I really need more zooming for subway maps. This is fully zoomed.

London Underground ("Tube") map on max zoom:

It's planned.

Just curious: any timeline known when higher scaling (zoom in not necessary for my practical use) will be implemented?

Just a quick reminder for this issue.
I have encountered the same practical problem as zygfryd and MDr164 regarding barcode & qr code scanners several times this year. The scanners could never read the codes because I simply could not zoom in far enough. Which is really annoying when, for example, you are at an airport security checkpoint and the whole line is held up because of that.
It got to the point where I considered installing a less secure PDF viewer for this purpose.
In the end, I found a workaround of sorts: Take a screenshot of the pdf and zoom into the picture.
But that is still a bit awkward and shows that it doesn't matter how high quality the zoom is. At least for this use case.

Just a quick reminder for this issue.
I have encountered the same practical problem as zygfryd and MDr164 regarding barcode & qr code scanners several times this year. The scanners could never read the codes because I simply could not zoom in far enough. Which is really annoying when, for example, you are at an airport security checkpoint and the whole line is held up because of that.
It got to the point where I considered installing a less secure PDF viewer for this purpose.
In the end, I found a workaround of sorts: Take a screenshot of the pdf and zoom into the picture.
But that is still a bit awkward and shows that it doesn't matter how high quality the zoom is. At least for this use case.

I switched to an insecure PDF viewer a long time ago and basically never use the builtin one because the only docs I open are either codes that need to be scanned or small text and neither is usable. The security is just not worth it for me if it fails its purpose.

I second this. I cannot use the app for QR codes or barcodes because I cannot zoom in enough to make them readable.


SampleApp not pausing for Authorisation

Briefly summarize your issue:
SampleApp not pausing for Authorisation
$ PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json DEBUG9
configFile ./Integration/AlexaClientSDKConfig.json
Running app with log level: DEBUG9
2022-01-01 11:50:42.696 [  1] W Logger:debugLogLevelSpecifiedWhenDebugLogsCompiledOut:level=DEBUG9:
WARNING: By default DEBUG logs are compiled out of RELEASE builds.
To enable debug logs, rebuild in DEBUG mode by using the cmake parameter -DCMAKE_BUILD_TYPE=DEBUG or (if you really want debug logs in a RELEASE build) use the cmake parameter -DACSDK_DEBUG_LOG=ON.
2022-01-01 11:50:42.696 [  1] W Logger:debugLogLevelSpecifiedWhenDebugLogsCompiledOut:level=DEBUG9:
WARNING: By default DEBUG logs are compiled out of RELEASE builds.
To enable debug logs, rebuild in DEBUG mode by using the cmake parameter -DCMAKE_BUILD_TYPE=DEBUG or (if you really want debug logs in a RELEASE build) use the cmake parameter -DACSDK_DEBUG_LOG=ON.
(SampleApp:30474): GStreamer-CRITICAL **: 13:50:42.751: gst_object_unref: assertion 'object != NULL' failed
(SampleApp:30474): GLib-CRITICAL **: 13:50:42.751: g_main_context_find_source_by_id: assertion 'source_id > 0' failed
##################################
NOT YET AUTHORIZED
##################################
################################################################################################
To authorize, browse to: 'https://amazon.com/us/code' and enter the code: AWAB26
################################################################################################
Failed to create SampleApplication!
What is the expected behaviour?
I thought it would pause until I have authorised it on the amazon website
I do successfully go authorise, run it again but it keeps coming back with different code
Provide the steps to reproduce the issue, if applicable:
I followed this page to install
https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/raspberry-pi.html
everything went well until i got to Step 7: Run and authorize the sample app
Tell us about your environment:

What version of the AVS Device SDK are you using?
  <x.y.z>

not sure, used this command 1 Jan 2022
git clone --single-branch git://github.com/alexa/avs-device-sdk.git
Raspberry Pi
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Hello @davevdm1968,
I have a few questions that could help clarify the situation:

Are you making sure to keep the Sample Application running while you open a separate web browser or device to authorize the application with the code provided? I am asking because, I noticed that in your comments you wrote that you successfully authorize, and then proceed to run the Sample Application again. But when you do run it again, it runs with a different authorization code.
Is the message "Failed to create SampleApplication!" appearing after you input the code provided for the linking? It not, when does this message appear for you?

I ssh into the pi then
I start the app using the following command
PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json DEBUG9
It ends immediately after the code comes up
I thought it needed to be authorised so I opened a separate browser and authorise the code
It comes back successful on the browser
then still in the ssh terminal i try the same command and it has the same result with a different code
terminal recording attached
https://user-images.githubusercontent.com/39761531/147967688-e0175e82-6897-4601-ba3d-a6ecd0f7a6d2.mov

Hello @davevdm1968 ,
It looks like you are experiencing a gstreamer related issue. Could you please try and verify installing gstreamer?
sudo apt-get install gstreamer1.0-alsa

thank you, that worked instantly.


How to get the same results as the published paper?

Sorry to interrupt you. These days  I tried several times again. But I can't get the same results. I'd appreciate it if you could give me some advice.
First, I follow the same data process. I use "depth_flying" as depth_checkpoint and ''checkpoint_113.pth.tar" as scene flow checkpoint at "_https://drive.google.com/drive/folders/1MWX6ekn3k5JYeY3WIGo_QDo6thVTFX5B?usp=sharing_". Then I run python monopl_main_semi_flyingthings3d.py configs/test_monopl_flyingthings3d.yaml.
In the monopl_main_semi_flyingthings3d.py, I only insert "os.environ['CUDA_VISIBLE_DEVICES'] = '0'".
This is the test_monopl_flyingthings3d.yaml

ckpt_dir: test_results/flyingthings3d
resume: resume/scene_fly/checkpoint_113.pth.tar
data_root: /dataset/FlyingThings3D_subset
depth_checkpoint_path: resume/depth_fly
evaluate: True
unsymmetric: True
arch: PLSceneNet_shallow
last_relu: False
allow_less_points: True
use_leaky: True
bcn_use_bias: True
bcn_use_norm: True
batch_size: 1
full: True
scales_filter_map:  [[1., 1, 1, 1],
[0.5, 1, 1, 1],
[0.25, 1, 1, 1],
[0.125, 1, 1, 1]]
dim: 3
num_points: 8192
DEVICE: cuda
dataset: FlyingThings3DMonopl_self
#remove_ground: True
full: True
data_process:
DEPTH_THRESHOLD: 35.
NO_CORR: False #True
print_freq: 1
workers: 8
min_depth_eval: 0.001
max_depth_eval: 35.

Thanks for your interest in this work! As for the 3D sceneflow, we end-to-end train the 3D sceneflow with the depth module, however in evaluation, we do it separately. This is because at that time there was no existing works that estimate real-scale 3D sceneflow from pure images to compare - image based work estimate scale-ambiguous flow and the real-scale 3D sceneflow can be only generated by the point cloud from LiDAR, so for a fair comparison for 3D sceneflow evaluation, we generate point cloud from depth group truth, in this way we could try to bring the initial pointcloud (before translated by sceneflow vectors) to be coarsely at the same position as the pointcloud from LiDAR-based work, so as to conduct a fair comparison to the 3D vectors generated by LiDAR-based works.

Thanks for your reply sincerely.
But monopl_main_semi_flyingthings3d.py uses estimated depth. It seems that there is no evaluation file using depth ground truth. Could you please provide an evaluation of the scene flow using depth ground truth?
Best wishes


"You did not specify a save folder" Errors

I've noticed since I upgraded to 4.2.0 that there is something happening with the destination folder. It comes up with a dot and if I try to download, I get this error:

This is, of course, predictable given that there is not save folder set, however, every time I try to set one, it doesn't seem to be saving it. Here's an example of the error I get when I try to download from a website after setting a destination folder:

While Grabber currently shows the destination folder I chose, if I restart the program, it reverts back to a dot.
I tried editing the settings.ini but it just kept reverting it to a dot for some reason.

If you set the batch download destination folder manually in the table before a download does it allow you to download the batch correctly ? Does the log say anything useful? (I guess not)
I'll try to see where it comes from and push a fix to develop asap. Seems like some folder check is not working properly.

Yes, that did work. I didn't realize you could do that.

Well that's just a temporary solution until I fix the issue but at least you can still use the program in the meantime ^^
It's useful when you have many downloads and they don't all have the same settings.