Do a release (4.13.4)?

Given those deps bumps, I guess that this justifies a release asap.
Could you please release a new version with all those fixes?

@dougwilson you are the only one that can release at the moment. Can you add @hacksparrow (his npm username is "hacksparrow") to the npm package so he can?

@ritch, the current master branch is not in a state ready for release. I'm happy to help and can transfer after going over release procedures, what still needs to be done on the master branch to make it release-ready, etc.

@hacksparrow has yet to reach out for what the procedures are.

4.13.4 appeared in npm somehow

Thanks!

But there was no release https://github.com/strongloop/express/releases :)


which distribution is used in the pretrain phase?

As mentioned in the Ferminet paper, the probability distribution used in the pretrain phase is the average between the HF one and the output from Ferminet output.

However, the implementation here seems doing something different:
In the master branch, even though we concat the walkers from both HF and Ferminet, but it seems only the ones from HF are used.

(My understanding is that in the pretrain_hartree_fork function, only the first tf.distribute.get_replica_context(). num_replicas_in_sync walkers are used, which are basically the ones from HF).
On the other hand, in the JAX branch, it seems to me we are only using the ferminet output as the probability distribution when doing the pretrain. (Sorry I'm not that familiar with JAX. It's just that I can't find anything related to HF distribution around the pretrain code)
Is my understanding correct? Or does it mean the distribution used in pretrain is not that critical? Thanks!

Nice spot. Sorry, this is a bug in the TF code introduced when porting parallelisation over multiple GPUs from TF-Replicator to Distribution Strategy. The results in the FermiNet paper used TF-Replicator, which has a slightly different API to Distribution Strategy. With TF-Replicator, we are using the concatenated distribution on each GPU. The line you highlighted should read
concat_data = tf.concat([self.hf_data_gen.walkers, self.data_gen.walkers], axis=1)

We made a couple of different design decisions in the JAX version. We are currently only using the FermiNet as the distribution in pretraining. I think the pretraining distribution is not super critical -- the most important thing is to train the network such that it's closer to the ground state wavefunction and that the determinants aren't extremely low rank. Without pretraining, the network can start with an energy in the 1000s of hartrees (positive!) and optimising the network through that energy landscape is ... let's say painful. Certainly we don't see any noticeable difference in training FermiNet after pretraining in the TF or JAX codes.

Nice spot. Sorry, this is a bug in the TF code introduced when porting parallelisation over multiple GPUs from TF-Replicator to Distribution Strategy. The results in the FermiNet paper used TF-Replicator, which has a slightly different API to Distribution Strategy. With TF-Replicator, we are using the concatenated distribution on each GPU. The line you highlighted should read
concat_data = tf.concat([self.hf_data_gen.walkers, self.data_gen.walkers], axis=1)

We made a couple of different design decisions in the JAX version. We are currently only using the FermiNet as the distribution in pretraining. I think the pretraining distribution is not super critical -- the most important thing is to train the network such that it's closer to the ground state wavefunction and that the determinants aren't extremely low rank. Without pretraining, the network can start with an energy in the 1000s of hartrees (positive!) and optimising the network through that energy landscape is ... let's say painful. Certainly we don't see any noticeable difference in training FermiNet after pretraining in the TF or JAX codes.

Got it. Thanks a lot for the detailed explanation!

Got it. Thanks a lot for the detailed explanation!

Whilst we don't believe this makes a significant difference, the TF version on master is now updated to sample from both distributions during pretraining.


Allow for a Dev Terraform

Description

Refactors the custom hostname into it's own module
Creates a new deploy folder for dev, which does not use shared state (so can individually deploy to your own dev resource group)

Checklist

[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
Fixes #<issue_number>; Fixes #<issue_number>; Fixes #<issue_number>...

confirmed this deploys the staging and can deploy the local dev


Refactored into MVC pattern.  Added support for SyncFusion widgets.  …

…Changed naming conventions to C# style.  Incremented demo to <IP_ADDRESS>.  Implemented RubberDuck folder comments.  Fixed typos throughout source code.

I also removed the not-referenced MD5 library

I would love some help getting this code working on my local machine. I think this is a great idea to make access more modern looking.

I would love some help getting this code working on my local machine. I think this is a great idea to make access more modern looking.

I'm in a rush now, but I would be happy to help you. I will make some YouTube video to help people with the code
Thanks for your interest!
Alain

I would love some help getting this code working on my local machine. I think this is a great idea to make access more modern looking.

I'm in a rush now, but I would be happy to help you. I will make some YouTube video to help people with the code
Thanks for your interest!
Alain

That would be amazing I would really like that thank you keep me updated.

Sure Alain.  Btw, my name is Scott.
I elected to refactor it to use the MVC pattern, mostly because you were about 90% there already.  All I did, really, is take a component and break out the VBA code which I call Controllers, renamed the templates to views and you already had models.  So aside from the necessary name changes, the logic is exactly the same as you had it.
Also, I elected to go with C# naming conventions because even though I learned OOP in VBA initially, I'm a full stack C# developer now and have learned to dislike Hungarian notation.  So, mostly I just got rid of prefixes, and any public member starts with a Capital letter, and any private member, lower case.  I tried to be thorough but I admit, I might have missed a few...
I also got rid of the Updater and MD5 code because those weren't referenced anywhere in the rest of the project.    I did keep the JSON converter code though because I saw that's how you're passing route params around.
Over all, I'm INCREDIBLY impressed with the clever ways you've managed to execute JS from VBA, VBA from JS, pass data around and intercept Submit buttons!  You've really done some fantastic work here, my friend.  All I wanted to do was inch the ball a little close to a library that I can use.
Lastly, I used RubberDuckVBA's folder annotations to organize code into 'folders' in their Project Explorer.  If you haven't seen that free add-in, I HIGHLY recommend you take a look.  Well done and highly useful tools, including unit testing which I intend to backfit into xhv very soon.
But, I agree with you, that is a lot of code to review.  Would you prefer that I just rename my fork something like HandleView-MVC or some such instead?  I don't expect you to have to crawl through all my code changes if you don't want to.
I'm about to embark on a complete rewrite of an Access app that I have had in production since 2006 and have been beating my brains out to figure out how to put a modern UI on it - and you've done it!  All I wanted to do with these code changes is to set it up in a pattern that I know very well (mvc) and contribute back to your project.  Let me know if you'd rather I just keep my fork separate from yours.

Alain,
I’ve pushed quite a few changes this week.  Just wanted to circle back with you about PRs.  Are you at all interested in my updates?  If not, I’ll cancel the PR and not send you anything new.  On the other hand, if you do want me to keep you updated, I’m glad to lean in with you.  You’ve got a great thing started here and I don’t want to get too far out ahead of you so just let me know.
Just so you are aware, my fork has been getting some attention from other devs lately that want me to press on but I don’t want to steal your thunder here without at least checking in with you.
I’ve also started documenting via the Wiki.  If you want those changes you are welcome to any of it.
Take care,
Scott
From: Alain Guerard<EMAIL_ADDRESS>Sent: Wednesday, February 10, 2021 7:09 AM
To: apguerard/HandleView-DevPreview<EMAIL_ADDRESS>Cc: Scott Reeves<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [apguerard/HandleView-DevPreview] Refactored into MVC pattern. Added support for SyncFusion widgets. … (#5)
Hi.
That's a lot of code to review :)
Can you explain what is your point of view in refactoring into MVC pattern ?
Maybe we can chat about your orientation
Thanks
Alain
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/apguerard/HandleView-DevPreview/pull/5#issuecomment-776729944, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACVCD6TJRBKYXY32773LWQTS6KHRNANCNFSM4XMHLNAQ.

Hi Scott,
Sure I'm interested in your update and want to keep growing the base code with you and some other developers that have great ideas too. I think we can revive Access development with this project :)
You can contact me directly at<EMAIL_ADDRESS>to continue the discussion about future plan.
Thanks!


Test(tests): Added tests for lib/publish/transport

Coverage increased (+0.78%) to 76.35% when pulling dd7b5ed0858126b86bb2c5928a73aac9b8fa9d47 on feature/lib-publish-tests into f90740d9d78af27907c9dde9ca050bd21975fa73 on master.

Coverage increased (+0.78%) to 76.35% when pulling dd7b5ed0858126b86bb2c5928a73aac9b8fa9d47 on feature/lib-publish-tests into f90740d9d78af27907c9dde9ca050bd21975fa73 on master.

I would contribute to this next week.


SMART Genomics APO

What part of SMART Genomics API are you using?

At the time, we were using an extension of this resource: https://smartgenomics.wikispaces.com/GeneticObservation.
This allowed us to get Gene, Animo Acid, and Nucleotide information in a functional way as, at the time, the "appropriate" way to package and query for this information was still being debated by the FHIR spec creators.
You might be able to get a better understanding of how the data was nested by looking at this class: https://github.com/dcarbone/smart-genomics-precision-cancer-medicine/blob/master/SMART Genome Precision Cancer Medicine/FHIRDataHelper.m


Unusable with automatically hiding panel

When trying to use the plugin in a panel, which hides automatically, it becomes unusable:
The panel hides, when hovering over a preview/right-click menu. This results in the preview/menu becoming unclickable/click-through.
Expected behaviour: The panel does not hide when hovering previews and right-click menus and the previews/menus are clickable as they should be.

This is a duplicate of #12. I'm going to close this; please continue discussion on this issue there.


proposal: errors: change interface error

Hello,
Another day I talked with a workmate and we perceived that's package has an interface validate only method Error() maybe we should validate likewise Is/As/Unwrap.
See lines below:

Unwrap
https://github.com/golang/go/blob/0e08b02ac54c9232759704812f41a5836f920cff/src/errors/wrap.go#L15-L17

Is
https://github.com/golang/go/blob/0e08b02ac54c9232759704812f41a5836f920cff/src/errors/wrap.go#L50-L52

As
https://github.com/golang/go/blob/0e08b02ac54c9232759704812f41a5836f920cff/src/errors/wrap.go#L96-L98

Interface error
https://github.com/golang/go/blob/0e08b02ac54c9232759704812f41a5836f920cff/src/builtin/builtin.go#L280-L282

I will propose two ways then we need to choose only one.

Add these methods to the interface error

type error interface {
	Unwrap() error
	Is(error) bool
	As(any) bool
	Error() string
}

Create a new interface public

type Error interface {
	Unwrap() error
	Is(error) bool
	As(any) bool
	Error() string
}

Does this make sense?
see ya Gophers

See these:

#39539
#40356

Duplicate of #39539

@seankhliao is not exactly equal to the issue you commented on but is similar. I saw other issues similar to it so I did understand why you closed it. Thanks a lot

@renanbastos93
Adding methods to an existing interface definition is not backwards compatible. There essentially no circumstances under which new methods will be added directly to error. It would break a lot of existing code.

@DeedleFake thanks a lot for explaining to me.


Exception when - in column name during transform

The following example on AdultIncome dataset fails due to - in feature names (for example, capital-gain).
import pandas as pd
from openfe import OpenFE, transform

if __name__ == '__main__':
    label = 'class'
    train_data = pd.read_csv('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
    test_data = pd.read_csv('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')

    train_y = train_data[[label]]
    train_x = train_data.drop(columns=[label])
    test_y = test_data[[label]]
    test_x = test_data.drop(columns=[label])

    train_x = train_x[['age', 'sex', 'capital-gain']]
    test_x = test_x[['age', 'sex', 'capital-gain']]

    # FIXME: Uncomment to avoid exception
    # train_x.columns = ['age', 'sex', 'capital']
    # test_x.columns = ['age', 'sex', 'capital']

    ofe = OpenFE()
    features = ofe.fit(data=train_x, label=train_y, n_jobs=4)
    train_x, test_x = transform(X_train=train_x, X_test=test_x, new_features_list=features, n_jobs=4)

The error looks like this:
Traceback (most recent call last):
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/openfe/utils.py", line 102, in _cal
    _data = pd.read_feather('./openfe_tmp_data.feather', columns=base_features).set_index('openfe_index')
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pandas/io/feather_format.py", line 132, in read_feather
    return feather.read_feather(
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pyarrow/feather.py", line 226, in read_feather
    return (read_table(
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pyarrow/feather.py", line 262, in read_table
    table = reader.read_names(columns)
  File "pyarrow/_feather.pyx", line 114, in pyarrow._feather.FeatherReader.read_names
  File "pyarrow/error.pxi", line 100, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Field named gain is not found

Traceback (most recent call last):
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/openfe/utils.py", line 102, in _cal
    _data = pd.read_feather('./openfe_tmp_data.feather', columns=base_features).set_index('openfe_index')
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pandas/io/feather_format.py", line 132, in read_feather
    return feather.read_feather(
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pyarrow/feather.py", line 226, in read_feather
    return (read_table(
  File "/home/ubuntu/.conda/envs/code/lib/python3.8/site-packages/pyarrow/feather.py", line 262, in read_table
    table = reader.read_names(columns)
  File "pyarrow/_feather.pyx", line 114, in pyarrow._feather.FeatherReader.read_names
  File "pyarrow/error.pxi", line 100, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Field named capital is not found

Proposed Fix:
Either add support for feature names with -, or sanitize internally the column names to avoid the error.
You may also want to be wary of the edge-case scenario with 3 feature names : A, B, A-B

Yeah, I found that mistake too.


Use python to access the device

I use libcaer/bindings/python_swig/example/davis.py to read events from DAVIS240C. Because I want to get events histogram, I wrote a piece of code which accumulated events to generate events histogram. But it can not work in real time, and it has huge delays. Can you give me some advice?

The python code is expected to be less performant than C code, but you should still get close to real-time performance. It really depends on your code, we generally use numpy to handle big arrays of data.
Without seeing your code we cannot help you more, sorry.

if name == "main":
import davis
import cv2
cv2.namedWindow("DVS",0)
camera = davis.DAVIS()
flag = 1
while flag:
    if camera.read_events() == True :
        img=np.zeros((180,240),dtype=np.uint8)
        for i in range(len(camera.x)):
            if img[camera.y[i],camera.x[i]] < 7:
                img[camera.y[i],camera.x[i]]+=1
        # print("succesfully read events from the device")
        # print("pixels x:"+str(camera.x))
        # print("pixels y:"+str(camera.y))
        camera.x=[]
        camera.y=[]
        # print("pixels ts:"+str(camera.ts))
        # print("pixels pol:"+str(camera.pol))
        # print("camera frames:"+str(len(camera.frame)))
        cv2.normalize(img,img,255.0,0.,cv2.NORM_MINMAX)
        cv2.imshow("DVS",img)
        cv2.waitKey(1)

else:
print("nothing read from the device")
cv2.destroyALLWindows()
The above is my main function, but it can work in real time. Can you give me some advice?


Import character customizations from character creator file

Would it be possible to just create/save designs with imports of the character creator file? I mean the FFXIV_CHARA_##.dat files.

the following is just a question unrelated to the feature request above, but i'd rather not open a new issue for this: is there anything i need to look out for to not get in trouble in game? like not using the barber or something?


Spaces in dictionary parse as the non-erroneous errors

Description
Trying to parse the below input with the Typst Rust library (from main: 0e8492eac1606edba86748c4de547a2c758cd232)
#((d: 2 ,))

produces the following AST:
Markup: 11 [Hashtag: "#", Parenthesized: 10 [LeftParen: "(", Dict: 8 [LeftParen: "(", Named: 4 [Ident: "d", Colon: ":", Space: " ", Int: "2"], Error: " " (expected named or keyed pair, found space), Comma: ",", RightParen: ")"], RightParen: ")"]]

and calling .erroneous() on the node returned from parse() returns false (no error in the node).
A couple of questions:

Should the parsing be more tolerant of the space in this position?
If it is an error, why is the .erroneous() call not returning true?

Reproduction URL
No response
Operating system
Linux
Typst version

[X] I am using the latest version of Typst

I think the error node is coming from validate_dict, which doesn’t ignore space tokens.

I believe this is fixed now


how to set column width

Hello,
how to set column width?
Thanks,

Hello @ifaungthiha you can set a column width that will apply to all columns (there is no individual column support and no plans for it) like so via theme:
import React from "react";
import ReactDOM from "react-dom";
import MUIDataTable from "../../src/";
import { createMuiTheme, MuiThemeProvider, withStyles } from '@material-ui/core/styles';

class Example extends React.Component {

  getMuiTheme = () => createMuiTheme({
    overrides: {
      MUIDataTable: {
        root: {
          backgroundColor: "#FF000",
        },
        paper: {
          boxShadow: "none",
        }
      },
      MUIDataTableBodyCell: {
        root: {
          backgroundColor: "#FFF",
          width: "50px"
        }
      }
    }
  })

  render() {

    const columns = [
      {
        name: "Name",
        options: {
          filter: true,
        }
      },
      {
        name: "Title",
        options: {
          filter: true,
        }
      },
      {
        name: "Location",
        options: {
          filter: false,
        }
      },
      {
        name: "Age",
        options: {
          filter: true,
        }
      },
      {
        name: "Salary",
        options: {
          filter: true,
          sort: false
        }
      }
    ];

    const data = [
      ["Gabby George", "Business Analyst", "Minneapolis", 30, 100000],
      ["Aiden Lloyd", "Business Consultant", "Dallas",  55, 200000],
      ["Jaden Collins", "Attorney", "Santa Ana", 27, 500000],
      ["Franky Rees", "Business Analyst", "St. Petersburg", 22, 50000],
      ["Aaren Rose", "Business Consultant", "Toledo", 28, 75000],
      ["Blake Duncan", "Business Management Analyst", "San Diego", 65, 94000],
      ["Frankie Parry", "Agency Legal Counsel", "Jacksonville", 71, 210000],
      ["Lane Wilson", "Commercial Specialist", "Omaha", 19, 65000],
      ["Robin Duncan", "Business Analyst", "Los Angeles", 20, 77000],
      ["Mel Brooks", "Business Consultant", "Oklahoma City", 37, 135000],
      ["Harper White", "Attorney", "Pittsburgh", 52, 420000],
      ["Kris Humphrey", "Agency Legal Counsel", "Laredo", 30, 150000],
      ["Frankie Long", "Industrial Analyst", "Austin", 31, 170000],
      ["Brynn Robbins", "Business Analyst", "Norfolk", 22, 90000],
      ["Justice Mann", "Business Consultant", "Chicago", 24, 133000],
      ["Addison Navarro", "Business Management Analyst", "New York", 50, 295000],
      ["Jesse Welch", "Agency Legal Counsel", "Seattle", 28, 200000],
      ["Eli Mejia", "Commercial Specialist", "Long Beach", 65, 400000],
      ["Gene Leblanc", "Industrial Analyst", "Hartford", 34, 110000],
      ["Danny Leon", "Computer Scientist", "Newark", 60, 220000],
      ["Lane Lee", "Corporate Counselor", "Cincinnati", 52, 180000],
      ["Jesse Hall", "Business Analyst", "Baltimore", 44, 99000],
      ["Danni Hudson", "Agency Legal Counsel", "Tampa", 37, 90000],
      ["Terry Macdonald", "Commercial Specialist", "Miami", 39, 140000],
      ["Justice Mccarthy", "Attorney", "Tucson", 26, 330000],
      ["Silver Carey", "Computer Scientist", "Memphis", 47, 250000],
      ["Franky Miles", "Industrial Analyst", "Buffalo", 49, 190000],
      ["Glen Nixon", "Corporate Counselor", "Arlington", 44, 80000],
      ["Gabby Strickland", "Business Process Consultant", "Scottsdale", 26, 45000],
      ["Mason Ray", "Computer Scientist", "San Francisco", 39, 142000]
    ];

    const options = {
      filter: true,
      filterType: 'dropdown',
      responsive: 'stacked',
    };

    return (
      <MuiThemeProvider theme={this.getMuiTheme()}>
        <MUIDataTable title={"ACME Employee list"} data={data} columns={columns} options={options} />
      </MuiThemeProvider>
    );

  }
}

ReactDOM.render(<Example />, document.getElementById("app-root"));

:(
thank you for reply

Hi,
I spotted similar issue during development and that's how I managed to set column width:
getMuiTheme = () => createMuiTheme({
  overrides: {
    MUIDataTableHeadCell: {
      root: {
        '&:nth-child(2)': {
          width: 70
        }
      }
    }
  }
})

Basically, you need to apply css rule to specfic column by using :nth-child(X) selector (or :first-child() selector). It's not a pretty solution, but what's important, it works.

Hi Igor,
I tried your solution but it's not working to resize the width, only the color is changed. Below is my code:
`import MUIDataTable from "mui-datatables";
import { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';
const customTheme = createMuiTheme({
overrides: {
MUIDataTableHeadCell: {
root: {
'&:nth-child(4)': {
width: 30,
backgroundColor: "#FF0000"
}
}
}
},
typography: {
useNextVariants: true,
},
});
class HomePage extends React.Component {
/**

Class constructor.
*/
constructor(props, context) {
super(props, context);
}

/**

Render the component.
*/
render() {
return (

 );

}

}
}
`
Thank you.

@NickRadu did you manage to fix the custom width issue ?

Yea, I cant get that to work at all either.

TBH What I did that helped in my case was just removing the padding by wrapping the Datatable into a customTheme that would overwrite MuiTableCell padding to 0px like this:
const customTheme = createMuiTheme({
        overrides: {
            MuiTableCell: {
                root: {
                    padding: '0px',
                },
            },
        },
    } as ThemeOptions);

I had to define it as ThemeOptions because TS was complaining since mui-datatables types are not defined into materialUI library.

@ToddHerron customBodyRender works great for noWrap, but how to set column width? I tried adding Grid components with breakpoints, and while that appears to work for the row data, the table row header appears unaffected...

Does noWrap work? I'm using a customRender with noWrap on all my columns, but as you can see, it doesn't appear to work.

In fact, the whole table then expands beyond the page width, which is annoying :( Er, help?

The only thing that worked for me was adding a constant style as:
const columnStyleWidthSmall = {
top: '0px',
left: '0px',
zIndex: '100',
position: 'sticky',
backgroundColor: '#fff',
width: '100px',
}
Then in each column options add:
{
name: 'name1',
label: 'File Left',
options: {
filter: true,
customHeadRender: ({ index, ...column }) => {
return (

{column.label}

)
},
},
flex: 1,
},

Wrap the MUIDataTable with a container and give it a style
const DataTableContainer = styled('div')(() => ({
background: 'red',
'& .MuiTableCell-root': {
'&:nth-child(1)': {
width: '100px',
paddingLeft: '1rem',
},
},
}));

Simplest solution is to wrap your content in a span and style that:
          <Cell>{item.key}</Cell>

  .clipText {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 20rem;
  }

You can define width for specific column with setCellHeaderProps
const columns: MUIDataTableColumnDef[] = [
    { name: 'id', options: { display: false, filter: false }},
    { name: 'fixedWidth150', label: '150px', options: { filterType: 'textField', setCellHeaderProps: () => ({ style: { width: "150px" }})}},
    { name: 'fixedWidth300', label: '150px', options: { filterType: 'textField', setCellHeaderProps: () => ({ style: { width: "300px" }})}}
]

Solved: Handling Ellipses in Column Text for Data Tables
I recently faced an issue with truncating long text in a data table column, where I needed to show ellipses (...) when the text exceeded a certain length. Here's the solution I came up with:
const truncateText = (text, length) => {
  if (typeof text !== 'string') {
    return '';
  }
  return text.length > length ? `${text.slice(0, length)}...` : text;
};

// Usage in component

  {truncateText(value, 100)} {/* Adjust length as needed */}

Solved: Handling Ellipses in Column Text for Data Tables
I recently faced an issue with truncating long text in a data table column, where I needed to show ellipses (...) when the text exceeded a certain length. Here's the solution I came up with:
const truncateText = (text, length) => {
  return text.length > length ? `${text.slice(0, length)}...` : text;
};

// Usage in component
customBodyRender: (value) => (
              <Box maxWidth={300}>{truncateText(value, 120)}</Box>
            ),


Generic submodule handling

We recently discussed how best to handle many submodules in a simple and transparent manner. For example, in cases where the interior can be handled by either SPIDER or Aragog.
This can be done by having an interior.py file (for example) which handles generalised interior stuff, and then calls the appropriate submodule-specific functions (e.g. RunSPIDER in spider.py) as necessary. This will reduce the amount of duplicate code and therefore also make things easier to maintain.
Touches on #74 and #62

I agree. We could format the proteus package directory like so:

src/proteus/

interior/

__init__.py
spider.py
aragog.py

atmosphere/

__init__.py
janus.py
agni.py
dummy.py

And so on

@nichollsh I was just about to make this post, this is exactly what I had in mind as well! 😅
Eventually, all files in the plot, utils, tools directories and proteus.py should either move somewhere under src/janus. Or, if they are simply scripts that you expect users to edit (i.e. these do not provide any library functions), we can move them under ./scripts or ./examples.

The structure above sounds reasonable to me. What do we do with "interface" modules, such as the future atmodeller module, and ZEPHYRUS? Could all go in one of the two, but then MORS becomes a bit weirdly placed.

I think we just follow the main proteus script, each tick being a subdirectory:

stellar flux (Mors)
escape (Zephyrus, dummy, others...)
atmosphere(agni, janus, dummy..)
outgassing (atmodeller, others...)
interior (Spider, aragog, ...)

Ok, makes sense to me. Let's call "stellar flux" "star" for simplicity?

Just to not duplicate the work, I have started this in the atmos_wrapper branch.


[3pt] Add and implement methods

Add all methods visible in the diagram.
Implement methods:

can_be_archived?() in the Item class
should return true if published_date is older than 10 years
otherwise, it should return false
move_to_archive() in the Item class
should reuse can_be_archived?() method
should change the archived property to true if the result of the can_be_archived?() method is true
should do nothing if the result of the can_be_archived?() method is false

Closing the issue as the task has been completed in Pull Request No. 27


Automated Package Upgrade

:tada: This PR is included in version 7.0.209 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


s_client -curve list: is the list comma-separated, or space-separated

https://www.openssl.org/docs/man1.1.1/man1/openssl-s_client.html says:
-curves curvelist

    Specifies the list of supported curves to be sent by the client. …

Is the list space-separated, or comma-separated?
These commands
$ openssl s_client -connect mail.aegee.org:443 -showcerts -curves "secp224r1 prime256v1"
Error with command: "-curves secp224r1 prime256v1"
$ openssl s_client -connect mail.aegee.org:443 -showcerts -curves "secp224r1,prime256v1"
Error with command: "-curves secp224r1,prime256v1"

fail, while these work:
$ openssl s_client -connect mail.aegee.org:443 -showcerts -curves "secp224r1"
$ openssl s_client -connect mail.aegee.org:443 -showcerts -curves "prime256v1"
$ openssl version
OpenSSL 1.1.1l  FIPS 24 Aug 2021

It is separated by colon.

What happens if the curve name contains a colon?

What happens if the curve name contains a colon?

Don't do that :-)

Marking as inactive, will be closed at the end of 3.4 dev barring further input.


Block checkpointer

For java and go , with the current implementation I don't think it is possible to checkpoint block 0 .

For java and go , with the current implementation I don't think it is possible to checkpoint block 0 .

Checkpointing block 0 should set the checkpoint block number to 1 (blockNumber + 1). What issue are you seeing?

For java and go , with the current implementation I don't think it is possible to checkpoint block 0 .

Checkpointing block 0 should set the checkpoint block number to 1 (blockNumber + 1). What issue are you seeing?

0 can be a zero value (java and go) , and in case of block checkpointer how can we differentiate zero value since we don't have transaction ID to check for null value ?

An unset checkpointer would have block number zero and no transaction ID. A checkpointer after checkpointing block zero would have block number one and no transaction ID since checkpointing a block sets the checkpointer to the next block number. You can’t checkpoint a block and still have block number zero in the checkpointer.


Documentation and Setup github actions

Write a README.md with setup instructions and comments in code explaining key decisions.
Configure GitHub Actions to automate the build and test process.

Part 1 - Project setup, font family and readme added  PR: "https://github.com/ringale95/govlab-org-team/pull/6"

PR: https://github.com/ringale95/govlab-org-team/pull/16
PR: https://github.com/ringale95/govlab-org-team/pull/17


What do you mean by 'restarted'?

Say I have a timer of interval 200 millisecond, I started it and then stopped it after 150 millisecond. If I again start it, does it give the next tick after 50 millisecond or 200 millisecond?

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

ID: a2268034-f5b5-3453-4c82-7e3f4cdfe4a7
Version Independent ID: 983e7e95-56d3-baaf-16e4-1af075d7af4f
Content: DispatcherTimer.Start Method (Windows.UI.Xaml) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.ui.xaml.dispatchertimer.yml&version=GBlive&_a=contents
Service: unspecified
Product: windows
GitHub Login: @wdg-dev-content
Microsoft Alias: wdg-dev-content

@MuziburRahman,  restarted means it starts at the beginning again. In your example, the next tick would happen after 200 milliseconds.


Firebase analytics added

🗃 Github Issue Or Explanation for this PR. (What is it supposed to do and Why is needed)
#1586
✅ Checklist

[x] Github issue details are up to date for people to QA.
[x] I have tested all my changes.

🕵♂ Notes for Code Reviewer
Service added, Initially just tracking the bottom bar pressing event.
👯♀ Paired with
"nobody"

Ill close this for now


Add scraper for AI

Closes: https://github.com/openZH/covid_19/issues/159

Just a second. Forgot to update STATUS.

Nice, short, clean. I really like it!


View's style incorrectly overrides TextInput's style

The container view adds its style to the child component, TextInput. It's not actually overriding. For example, if the container view's shadow color is set to BLACK and child component TextInput's shadow color is set to RED, the child component will have both BLACK and RED shadow. I cannot remove child component's shadow if I set shadow on the parent component.
JSX:
<View style={styles.codeContainer}>
  <View style={styles.codeInputWrapper}>
    <TextInput style={styles.codeInput} ref={"d1"} maxLength={1} onChangeText={(text)=>{
      this.d1 = text;
      this.refs.d2.focus()}
    }></TextInput>
  </View>
  <View style={styles.codeInputWrapper}>
    <TextInput style={styles.codeInput} ref={"d2"} maxLength={1} onChangeText={(text)=>{
      this.d2 = text;
      this.refs.d3.focus()}
    }></TextInput>
  </View>
  <View style={styles.codeInputWrapper}>
    <TextInput style={styles.codeInput} ref={"d3"} maxLength={1} onChangeText={(text)=>{
      this.d3 = text;
      this.refs.d4.focus()}
    }></TextInput>
  </View>
  <View style={styles.codeInputWrapper}>
    <TextInput style={styles.codeInput} ref={"d4"} maxLength={1} onChangeText={(text)=>{
      this.d4 = text;
      this.rightButtonHandler();
      }
    }></TextInput>
  </View>

Style:
const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'column',
  },
  textContainer: {
    flex: 1,
    flexDirection: 'row',
    alignItems: 'flex-end',
    padding: 5
  },
  codeContainer: {
    flex: 1,
    alignItems: 'flex-start',
    flexDirection: 'row',
    justifyContent: 'center'
  },
  codeInputWrapper: {
    shadowColor: "#000000",
    shadowOpacity: 0.8,
    shadowRadius: 2,
    shadowOffset: {
      height: 1,
      width: 0
    },
    height: 50,
    width: 50,
    borderWidth: 1,
    borderColor: '#525357',
    borderRadius: 2,
    margin: 10,
  },
  codeInput: {
    shadowColor: "#FFFFFF",
    shadowOpacity: 1,
    shadowRadius: 0,
    shadowOffset: {
      height: 0,
      width: 0
  }
);

needs work!

@facebook-github-bot icebox

iOS, Android, both?

Hi there! This issue is being closed because it has been inactive for a while. Maybe the issue has been fixed in a recent release, or perhaps it is not affecting a lot of people. Either way, it does not seem like there has been any traction on this issue for some time.
The issue is being copied over to our feature request tracker at Canny: https://react-native.canny.io/admin/board/feature-requests/p/views-style-incorrectly-overrides-textinputs-style
There you can upvote issues that are important to you. This will help contributors identify the issues that the community cares about.
If you think this issue should definitely remain open here in the issue tracker and not on Canny, let us know.


first attempt at the Auction emulator

Thank you for the detailed feedback Bruno! It will help me a lot reiterate
my next version.
On Thu, Sep 19, 2019 at 8:47 PM Bruno Guisard<EMAIL_ADDRESS>wrote:

@bguisard commented on this pull request.
Thanks for this first PR, this is a good first step.
I have left several comments that I think will simplify this first version.
Most notably what is missing from this first step is a toy dataset (we can
take the first 100 rows of the iPinYou dataset for example) and a very
simple agent that interacts with this environment, let's say the only thing
it does is constantly bid $1 for every bid request it receives. That way we
can at least test if things are working as expected.
Also I think now it would be a great time to clean up your repo and
replace the placeholders on the template repository with the pieces we will
use. This should be done in a separate branch and most likely doesn't need
a PR.
In
src/gym-auction_emulator/gym_auction_emulator/envs/auction_emulator_env.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326453895
:

\ No newline at end of file

   self.bids = []

missing newline at end of file
In src/gym-auction_emulator/gym_auction_emulator/envs/main.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326453921
:

@@ -0,0 +1,14 @@

+import gflags
+
+"""
+Dataset column indexes
+TODO: replace dummy indexes with real indexes
+"""
+
+FLAGS = gflags.FLAGS
+
+flags.DEFINE_integer('market_price', 10, 'mkt price index inside the bid reqs')
+flags.DEFINE_integer('click', 11, 'click index inside the bid reqs')
+flags.DEFINE_integer('conversion', 12, 'conversion index inside the bid reqs')
missing new line at end of file.
In src/gym-auction_emulator/gym_auction_emulator/envs/main.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326457770
:

@@ -0,0 +1,14 @@

+import gflags
Do we really need to use gflags here? What benefits will it bring down
the line?
I think that for the time being we can get rid of main.py and replace it
with a config file. We should probably start with tools from the python
standard library until we have a good reason to move away from them.
I'd create a file named config.cfg with the following structure:
[bid_request]
market_price = 10
click = 11
conversion = 12
then you can create a hidden function on your class to load this config
file and call it when you initialize your agent.
For example:
def _load_config(self):
    cfg = configparser.ConfigParser()
    cfg.read('./config.cfg')
    self.bid_request_fields = {}
    for item in cfg['bid_request']:
        self.bid_request_fields[item] = int(cfg['bid_request'][item])

In
src/gym-auction_emulator/gym_auction_emulator/envs/auction_emulator_env.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326457951
:

   """

   Args:

       file_in: Dataset input file

   Populates the bid requests to self.bids list.

   """

   fin = open(file_in, 'r')

   self._step = 0

   self.bids = []

   for bid in fin:

       bid_vals = bid.split(" ")

       self.bids.append(bid_vals)

   self.num_episodes = len(self.bids)

   fin.close()

def _get_bid_fields(self):

This function should probably return a dictionary with the field name and
the value instead of using predetermined variable names. That way we can
easily change what gets passed to the user by changing config.cfg as I
suggested in the main.py file.
What is the benefit of having mkt_price, click and conversion stored at
the class level?
In
src/gym-auction_emulator/gym_auction_emulator/envs/auction_emulator_env.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326459728
:

the bid requests reading the dataset files.

"""
def init(self, file_in):

   """

   Args:

       file_in: Dataset input file

   Populates the bid requests to self.bids list.

   """

   fin = open(file_in, 'r')

   self._step = 0

   self.bids = []

   for bid in fin:

       bid_vals = bid.split(" ")

       self.bids.append(bid_vals)

   self.num_episodes = len(self.bids)

   fin.close()

A more pythonic way of writing this function would be:
with open(file_in, 'r') as f:
    self.bid_requests = [br.rstrip('\n').split('\t') for br in f]

We should probably also think about a nice way to deal with very large
datasets. Our training data will probably not fit in memory, so we could
load only one (or two) day(s) at a time.
In
src/gym-auction_emulator/gym_auction_emulator/envs/auction_emulator_env.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326461052
:

 def reset(self):

   pass

   """

   Reset the OpenAI Gym Auction Emulator environment.

   """

   self._step = 0

   bid_request = self.bids[self._step]

we don't need to assign this value to a new variable, we can read directly
from self.bids[self._step] when needed.
In src/gym-auction_emulator/setup.py
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1#discussion_r326461143
:

@@ -3,5 +3,5 @@
setup(
name='gym_auction_emulator',
version='0.0.1',

install_requires=['gym']

install_requires=['gym', 'gflags']

missing new line at end of file.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/venkatacrc/Budget_Constrained_Bidding/pull/1?email_source=notifications&email_token=ACLTR5O3OAYRDIGIJMXQ3R3QKRBUJA5CNFSM4IYQIOTKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCFLUOUY#pullrequestreview-290932563,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACLTR5IRNOTBQ6RZ54Z4LNDQKRBUJANCNFSM4IYQIOTA
.

I've removed myself from the reviewers. Can you add me again once this is ready for another round of review?


RPYrT Support. Format checked.

Test data / coverage
Tested in SITL and flight arena. Here goes a link to the folder with the logs:
https://drive.google.com/open?id=1Ja1JjI3Ggmw383kDTZMdCB0cr3Hd5gfp
All data exchange happens through a SiK Radio (433Mhz), which is way less than ideal for the rates at which we are controlling - I am publishing at 100Hz, but I am pretty sure it can't handle such rates.

The rpyt folder has the data using this PR. It looks good, except for some points in which the telemetry radio looses connection (makes the UAV drop), but it recovers from it pretty fine. Both position and attitude changes are tested. It seems that the LPE sometimes drops to 0.2m in Z - is there any param I am missing to set? I am running this on an arena with MoCap.

Describe problem solved by the proposed pull request
Essentially fixes the ignore_bodyrate for all axes, and adds functionality for single-axis only. At the moment, it targets just yawrate control mode.
Describe your preferred solution
Added offboard control mode yawrate, which ignores x and y rates, and uses the z rate as the setpoint for the rate controller. Roll and Pitch setpoints are still used for the attitude control to set the desired UAV attitude. At the moment, the yaw angle is kept to the same one that the UAV has (suggestions for this are welcome!)
Describe possible alternatives
Additional context
Flight tests show that RPYrT setpoints work as expected, as the UAV successfully converges to the right setpoints.

I'm not sure about this one. If I understand the change correctly aren't we going to have multiple rate setpoints publishing simultaneously?

@dagar  I have more flight tests + working version merged with latest master v1.9 . Let me know if I should push it to this branch to be merged

Discussed in the dev call. @Pedro-Roque rebases on 1.9 master and we take a look and do tests such that we can merge it.

@Pedro-Roque Thanks for rebasing 😉

@Pedro-Roque Thanks for rebasing

Thank you for helping on it! Updated log folder and PR description. Let me know if there is anything else I can help with

@MaEtUgR wierd VTOL SITL error. Re-run, or is there something wrong with it?

I created a copy to untangle the changes from existing commits on master: #12061

@MaEtUgR ok what am I reviewing?

@MaEtUgR ok which pull request should I now review?

I think the now that @MaEtUgR  created, @julianoes .


Ingress not functional when creating ingress rules with service targets pointing to DNS entries created for workloads.

Rancher versions: 2.0 Build from master -Mar 3
Steps to reproduce the problem:
Create few workloads.
This results in service discovery entries created.
Create Ingress that has service rules that point to these  service discovery entries.
Ingress is not functional.
When accessing ingress url , we get a "503 Service Temporarily Unavailable"
Should we even allow for creating ingress rules with these  service targets ?
If this should not be allowed ,

API should error out in this case.
UI should not show them as options.

Currently auto created service discovery entries for workloads and other ingresses are shown when attempting to create service ingress rules.

@sangeethah the port on the service should match the port on ingress (https://kubernetes.io/docs/concepts/services-networking/ingress/#the-ingress-resource). If you haven't specified any ports for the workload, the service that we auto generate, would have port 42. Ingress won't find the targets for this port. Try creating the workload with port 80 exposed (internal). Then you'll get the service with 80:80, and the ingress should work. If that works, you can open a low priority ticket for the UI, so we can may be filter out services based on the ports picked, so we only show the ones having the same port exposed.

@alena1108 When workloads are created with port type "Internal Cluster Ip" (80:80) and DNS entries for this service is used as service targets to Ingress , ingress directs traffic to the workload pods as expected.


Just a bug idk what it is LOL

when i am triyng to build the game this error message pops up: source/PlayState.hx:3379: characters 17-32 : Class<webm.WebmPlayer> has no field SKIP_STEP_LIMIT
C:/Program Files/HaxeToolkit/haxe/lib/polymod/git/polymod/format/XMLMerge.hx:189: characters 10-23 : Warning : This typedef is deprecated in favor of haxe.xml.Access
C:/Program Files/HaxeToolkit/haxe/lib/polymod/git/polymod/format/XMLMerge.hx:189: characters 30-43 : Warning : This typedef is deprecated in favor of haxe.xml.Access

no worries of this matter. MP4 will soon be supported on the kade engine.

it isnt a bug you are supposed to wait and eventually it will continue building the game


Target Platforms in apiport visual studio addin. (netcoreapp vs asp.netcore)

I am using visual studio plugin for apiport.  In Tools->Options the target platform list contains netcoreapp 1.0/1.1, netstandard 1.0-1.7 and ASP.NET core 1.0.
We have a .net based calculation library that we are researching to port to .net core and potentially run it within an asp.net server on linux.  What i am not sure about is should I be running APIPort with target platform set to netcoreapp1.1 or asp.netcore 1.0 ?  Running against asp.net core 1.0 results in a huge list of api's that are incompatible where as against netcore app 1.1 its a much smaller managable list.   What is the difference and which should I target against ?
Also, I havent found any documentation about targetting an application to asp.netcore.  Most blogs/documents talk about asp.net core server targetted to .net core app.  So what is ASP.NET core 1.0 in the target platform list in APIPort really?

@terrajobst The set of APIs listed under ASP.NET Core 1.0's API Catalog profile do not include .NET Framework dlls. Is this the correct profile?

It contains the .NET Core, as well as ASP.NET Core libraries. You will want to analyze against a .NET Standard, since you are porting a library. The lowest supported standard is the ideal, as it ensures it will be supported across the most platforms. See https://docs.microsoft.com/en-us/dotnet/articles/standard/library for more information


CSI-Plugin support FC protocol

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
CSI-Plugin support FC protocol
Special notes for your reviewer:
Release note:

CSI-Plugin support FC protocol

Coverage remained the same at 43.218% when pulling 97e8b7fc8ec1a19d58e355060c4fe6381c4eec9f on BaiHuoYu:FC_1107 into 14c0f442f94f6b4ec4c5426f5abf7392c12c2d07 on opensds:development.

Overall it looks good, @xing-yang what do you think?

I'm fine with this but it needs a rebase.  Are you going to fix the nbp next?


ElasticSearch id parsing is too picky

Posting this:
{"id":"1234","biography":"Oh lala","bones":5} will fail parsing: {"success":false,"status":400,"error":{"type":"org.elasticsearch.index.mapper.MapperParsingException","message":"failed to parse [id]","cause":{"type":"java.lang.IllegalArgumentException","message":"Integer value passed as String"}}}
Sure, the id should have been passed as an int, but I tend to think SpaceDog should be lenient on this and just parse the int out.

dang even your response on a valid id agrees with me :-)
You do return a string despite the fact my schema specifies an int!
{"success":true,"status":201,"id":"1234","type":"dog","location":"https://farcloser.spacedog.io/1/data/dog/1234","version":1}


error when using google speech

16384: The class Google\Cloud\Speech\Result is no longer supported in /usr/share/php/vendor/google/cloud-speech/src/Result.php on line 59
16384: The class Google\Cloud\Speech\Connection\Rest is no longer supported in /usr/share/php/vendor/google/cloud-speech/src/Connection/Rest.php on line 58
my code:
use Google\Cloud\Speech\SpeechClient;
$speech = new SpeechClient(['languageCode' => $language]);
$results = $speech->recognize(fopen($filename, 'r'), ['encoding' => 'LINEAR16', 'sampleRateHertz' => 8000]);

Hello! You are receiving warnings from the @deprecated PHP annotation.
The class Google\Cloud\Speech\SpeechClient has been deprecated. Instead, use the class Google\Cloud\Speech\V1\SpeechClient. The methods are different as well so please see the Speech samples for help. Here's a few to get your started:

Speech Async Recognize
Speech Sync Recognize


added the authSource configuration

we want to support the authSource  connection option o mongodb from configuration
Specify the database name associated with the user’s credentials, if the users collection do not exist in the database where the client is connecting. authSource defaults to the database specified in the connection string.

It would probably be trivial to resolve the conflicts. May i help somehow?

@thundo Thanks for pointing me at this issue again, this was originally not merged b/c of the requested changes which already have been made though, but went under the radar somehow. You're welcome to help though :) I will quickly merge this for this one, as it is really just a quick change that is needed.


"can run on browsers, node scripts or serverless environment", but HOW?

Documentation says that this library "can run on browsers, node scripts or serverless environment", but how do we use it inside a browser, without node.js?

Same shoes, now.

Serverless means different things depending on the context. It could mean using third party managed services like Firebase, or it could mean an event-driven architecture style. It could mean next generation compute service offered by cloud providers, or it could mean a framework to build Serverless application

https://www.serverless.com/blog/node-rest-api-with-serverless-lambda-and-dynamodb

+1 for this question!
I want to run a simple code with JS in Browser: Get all devices in a JSON, and work with the data. Repeat it in every minute. So far I did:

install nodejs
install ewelink-api with npm
install browserify with npm
convert ewelink-api code into a local js file with this command: browserify -r ewelink-api > el.js
made html including this js file, and tried to run the example code:

<html>
<head>
<script src='el.js'></script>
<script>
const ewelink = require('ewelink-api');

(async () => {

  const connection = new ewelink({
    email: '<the email>',
    password: '<password>',
    region: 'eu',
  });

  const devices = await connection.getDevices();
  console.log(devices);
})();
</script>
</head>
<body></body>
</html>

In console, I've got an error:
Access to fetch at 'https://eu-api.coolkit.cc:8080/api/user/login' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
As far as I understand, it will never work this way, beacuse I would need to add some header parameters to the call. Could anyone help how to run it from brwoser?


Handle Client responses

Introduces a new ClientHandler class that has a request() and notify() method for sending requests and notifications. Both return a promise, the request() promise is resolved with the result from the client. The IdGenerator manages unique IDs for requests.
ProtocolReader/Writer now use the EventEmitter from Sabre.

Current coverage is 90.22% (diff: 78.04%)

Merging #128 into master will decrease coverage by 0.53%

@@             master       #128   diff @@
==========================================
  Files            32         34     +2
  Lines           747        757    +10
  Methods         100        103     +3
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            678        683     +5
- Misses           69         74     +5
  Partials          0          0

Diff Coverage
File Path

••••••     60%
new src/ClientHandler.php

••••••     66%
src/Client/Window.php

•••••••    75%
src/LanguageServer.php

•••••••••• 100%
src/ProtocolStreamWriter.php

•••••••••• 100%
src/Client/TextDocument.php

•••••••••• 100%
src/LanguageClient.php

•••••••••• 100%
src/ProtocolStreamReader.php

•••••••••• 100%
new src/IdGenerator.php

Powered by Codecov. Last update bec2438...1c3159f


[feature-request] Add icon to only show all modified files (non source control).

Hi,
It'd be pretty good if there was an icon in the activity bar that showed all the files that are modified. I know that the source control icon does this but I don't want to compare the changes. It would be easier to view the listed modified files in one place than have to navigate the entire app (sometimes a really large app) to search for changed files. Thanks.

all the files that are modified...

@Kvek - modified relative to what? Aren't you willing to use Git as integrated with VSCode? Are you aware how the context menu from the Changes list also lets you open the file rather than the comparison?

showed all the files that are modified

I beg your pardon, I should have phrased it better. I meant the files that have been edited relative
to their previous versions.

Are you aware how the context menu from the Changes list also lets you open the file rather than the comparison?

I wasn't aware of this, thanks. This is essentially what I was talking about, but instead of having having to click on 'Open file' from the context menu for each file. I was thinking of a list that just shows all the edited files (without the diffs).

I don't understand why the Changes list doesn't meet your need. All the edited files will display there with the "M" badge. Is your problem that a lot of other files list there with the "U" badge, because they are untracked, i.e. not yet under source control?

@Kvek As @gjsjohnmurray mentioned the changes view shows you modified files related to your current version. Please let us know what is missing there?


Replace process.nextTick with queueTick

See random-access-storage/random-access-storage#12.

I think nextTicks here are actually unneeded in general! I'll test :)

Yep, fixed in master by removing the ticks! (the parent class adds them)


Can define drush as a custom command?

Is there any way this command can work with ddev and this plugin?
thanks
Cypress.Commands.add('loginAs', (uid) => {
  cy.exec(`drush uli --uid=${uid}`, {failOnNonZeroExit: false}).then((response) => {
    cy.log("response is " + stdout);
  })
})

I'm no expert, but drush isn't available as is inside the cypress container, so this would somehow have to be executed in the web container. It would be a useful thing. I do think there are other approaches to cypress testing that use the cypress capabilities inside the web container.

Thanks for your comment, I'll look into another alternative.
Being able to use drush in a custom cypress command would be very useful.
Regards.

@abelperezlindo
Closing. Sorry, this add-on uses a cypress container, that, by design, is unable to see the drush (web) container.
You could try setting up an API endpoint that runs the drush command and returns the needed data. Make sure you limit it to test environment though. :)


NPSP Contact Merge throwing error related to shadow records

This org just installed 2.12 and built a new rollup a couple months ago.  The rollup is on Account and calculates data from the Contact record.  It is a realtime calculation.  When they try to use the NPSP Contact Merge they get the error in the screenshot.  The Lookup Rollup Summaries Tools tab is blank.  Ideas on how to resolve this issue?
Here is the text of the error - "Scheduled rollups are running in legacy mode and are unable to resolve corresponding shadow rollups. Please visit the Lookup Rollup Summary Tools rab for more information and steps to resolve."

@nonprofitdatageeks did you try following the instructions in the error message? Was there a problem doing that?

Yes, when I visit the Lookup Rollup Summaries Tools tab as directed there is no content, just the title header...

@afawcett Any insights on this issue?  Please advise.  Thanks!

@afawcett We have had to turn off rollups at this org in order to be able to merge contacts. Any additional info that could be helpful?

@afawcett , I'm also seeing the same thing but with a different notification.

@afawcett I'm also seeing the same issue as the OP. Attempting to merge accounts will show this message. Visiting the "Lookup Rollup Summaries Tools tab shows a header and no content. Are you able to post the steps from that page here so we can review them?

I found the page that lists the steps to resolve this error:
https://github.com/afawcett/declarative-lookup-rollup-summaries/wiki/Attention:-Need-to-delete-unused-field-on-dlrs__LookupRollupSummaryScheduleItems__c

Run a report or create list view on the Lookup Rollup Summary Schedule Items object that filters for records that do not contain a value in the Lookup Rollup Summary 2 field. If you have records like this its possible they are very old, since this field has been being populated since v1.15 and beyond. If you want you can delete these records and re-run a full calculate for the associated Rollups.
Next you need to go to the Object Manager in Setup and find the Lookup Rollup Summary Schedule Items object. Locate the field Lookup Rollup Summary (its a Master-Detail) with the API name dlrs__LookupRollupSummary__c.
Delete this field and don't worry about accidentally deleting others the platform will block this. This will not effect any other data in your org as it is was purely used for the operation of the tool in prior releases and is now no longer needed.

I'm attempting this fix and for some reason am unable to delete the dlrs__LookupRollupSummary__c field. From the field list, I only have "Edit" as an option, and not delete. I have all the necessary permissions. The system also indicates that this is no longer part of the managed package and that it can be deleted, but there is simply no delete option. Any thoughts?

@TiminMaine I had this same issue. You have to switch to classic and the delete option is available there.

Thanks, @AMG7525 - I found the same thing and posted on the Hub and forgot to post here. What was strange is that I did not have the same experience in my production org. The Delete option was there. I am curious as to why there was a difference, but now that everything is working, I guess it doesn't matter. Thanks.

Updated the docs - thanks all

Marking this as closed. The docs were updated but if further updates are needed please heads over to https://github.com/SFDO-Community-Sprints/DLRS-Documentation and help us make any changes needed.


[HOSTING-492] add Kotlin 1.x Standard Library

Description

[x] https://github.com/casz/kotlin-v1-stdlib-jdk8-plugin
[x] https://github.com/casz/kotlin-plugin-pom
[x] https://issues.jenkins-ci.org/browse/HOSTING-492
[x] https://issues.jenkins-ci.org/browse/HOSTING-512

Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[x] Add link to resolved HOSTING issue in description above

For a new permissions file only

[x] Make sure the file is created in permissions/ directory
[x] artifactId (pom.xml) is used for name (permissions YAML file).
[x] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[x] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

The Kotlin plugin pom is not overriding the group id anymore, good or bad ❓

@daniel-beck @oleg-nenashev we should be good to go 👍


Event date-time in Events Manager incorrect when there is no location

Describe the bug
Currently, time conversion from event location's timezone to UTC is dependent on event location. If Event does not have location or if the location is invalid (like online events), the time conversion is incorrect.
To Reproduce
Steps to reproduce the behavior:

Login to Events Manager
Create a new event without specifying a location or edit an existing event and remove it's location.
After adding/editing the event, the time displayed in the event page as well as the one in the database are incorrect.

Expected behavior
If there is no location, it can be assumed that the event is taking place in the central time zone (this is a temporary assumption until we request more details from the user like timezone, address, etc.) and the event's time needs to be correctly converted to UTC and stored in the database. The displayed event time will need to be what the user entered.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

Version 2.1.1

Additional context
Add any other context about the problem here.

This is fixed by requesting time zone information from user. Closing.


Kibana seeding

License check failed: run mvn -N license:format to update all licenses, commit, squash & force push please.

Tests failed.

Tests failed.

@jcantrill regarding the username hashing, that is this line: https://github.com/fabric8io/openshift-elasticsearch-plugin/pull/14/files#diff-33428050655bed70b01ac20b8db7fa9fR156
regarding the resource json files, they can be considered as samples; I wasn't sure if I would be using them and replacing the specific fields after reading them in or creating a document builder.. I'll move them to a location to reflect them being samples.
I'm not sure which line your first comment is referring to, there is no line number associated with it...  is it this line? https://github.com/fabric8io/openshift-elasticsearch-plugin/pull/14/files#diff-7a8c5fa1143836e1ad63eaeec49af5baR121

@ewolinetz  move them into the test resources.  First comment is to import static

@sosiouxme made updates to handle the GetFieldMappingsResponse and Requests

@jcantrill @sosiouxme PTAL - removed kibana seeding logic; now just rewrites kibana user indexes

@ewolinetz  LGTM. squash and merge

@jcantrill squashed
[merge]


[Flink-32356][doc] Add doc for procedure

What is the purpose of the change
To add the doc for call procedures
Brief change log

Add the doc for how to develop a procedure
Add the doc for how to call the procedure

Verifying this change

N/A

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

The title of the PR should be changed to  [Flink-32356][doc] Add doc for procedure

@hackergin Thanks for review. Merging....


implementation and features rewrites

Moved the copy I wrote previously into "Features", matching the https://braiins.com/stratum-v2 organization, and wrote summaries of the roles and sub-protocols for "Implementation.md"

addresses #28

Woah, thanks @Kodylow for tackling this, before we dig into reviewing it, could you confirm my understanding of the process.
So for now, you've used overview and features pages from https://braiins.com/stratum-v2 and re-wrote them from scratch?

I copied over everything from that page for content, features and overview, then rewrote it as I read through. Some examples
Ex.1: on the braiins site it has 4 roles with 1 sentence summaries, but per the spec there's actually 5 roles (template provider is separated out as a different role) so I detailed those differences.
Ex.2: the site refers to hashrate consumers instead of just pools, but we're referring to pools through the rest of the site so changed that role to pools and added a couple more lines explaining it. On the braiins site the copy is:
Hashrate Consumer
An upstream node to which shares (i.e. completed jobs) are being submitted. The most common hashrate consumers are pools.
I changed this to:
Pools (Hashrate Consumers)
Pools operate as communication nodes to coordinate hashrate and distribute mining rewards. They create jobs for end-mining devices, validate blocks and shares, and propagate found blocks to the the Bitcoin Network. Pools do not custody or control hashrate. End-mining devices compatible with the Stratum protocol can switch between pools in minutes. Pools therefore compete for hashrate based on latency, ease-of-use, payout reliability, and associated networking services, all of which StratumV2 can significantly improve.

For the specs I think that's a @SeraBocca question on whether we can directly link those from a separate github repo but I think it should be possible. Rachel ported the entire spec into markdown files in the sv2-spec repo and vuepress looks like it autoformats markdown nicely, we could just adjust the spacing/headings to match Serabocca's design for the site. If we can't directly link it we could just copy the same markdown files over into this repo.
The parts that I rewrote so far here are separate from the spec though, they're from the braiins site (although there's a good amount of overlap with "03-Protocol-Overview" from the spec)

Yes, thanks for the detailed explanation, I just wanted to be sure.


create carto-package.json file

One of https://github.com/CartoDB/onpremises/issues/575

@lekum @skgsergio
For the record, it also needs: libcairo2-dev, libpango1.0-dev, libjpeg8-dev and libgif-dev for server side canvas support (not sure about libgif-dev).


ImportError: cannot import name 'main'

I am unable to run the example. stuck in first import line. Code is running as it has no module name main. None of the other help in form of docstring is available. Kindly rectify the issue at your earliest.
Issue:
 ImportError                               Traceback (most recent call last)
<ipython-input-2-3a7d49ef9779> in <module>()
----> 1 from imagecluster import main

ImportError: cannot import name 'main'

This looks like an installation issue. How did you install the package? If with pip, what does pip show imagecluster say? Note that we use Python 3, so your system might have a separate pip3 command (Debian-ish systems, I guess). You can also just set PYTHONPATH=$PYTHONPATH:/path/to/imagecluster, given that you have all dependencies listed in setup.py already installed. Can you import imagecluster? If so, what's the output of imagecluster? in ipython?

Closing due to inactive OP.


Rule manager: remove blocking channel in main

Addressing @krasi-georgiev's TODO
Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

LGTM

Oh my, I spent ~20m to figure out on https://github.com/thanos-io/thanos/pull/2876 why manager Run behaviour is totally opposite than it use to be. It's public method after all. I would love some programming Go API release notes.... :cry:
cc @pracucci @owen-d @be careful on Cortex side as well.

Thanks for the heads up ❤


Adding ignore_eos_token support in Chat Completions API Schema

Description
ignore_eos_token is commonly used additional parameter to help standardize LLM benchmarks by forcing the requests to generate a consistent output seq len.
-Will this change the current api? How?
It will be adding the ignore_eos_token as additional optional field in the request body.
-Who will benefit from this enhancement?
Anyone who is trying to do benchmark or gain a better understanding of the performance
References

https://docs.djl.ai/docs/serving/serving/docs/lmi/user_guides/lmi_input_output_schema.html.
The same feature is already supported in the "Additional LMI Dist Generation parameters" and "Additional vLLM Generation Parameters". "Additional TensorRT-LLM Generation Parameters" also has flag of 'min_length', achieving similar behavior.

@sindhuvahinis


Position in browser screen

This is a minor annoyance. In the browser screen, the Queue Prompt panel (in regular browser mode) blocks the "Move" icon for the panel. I've checked off the "Save menu position", too. However, if I "F11" to full screen, I can get to the "Move." I use Firefox. Is there a setting to allow the "Move" in a normal screen environment?
Nothing crucial. Thanks for any input. I do love the meters, though.

Hi @Metairieman55 I understood, but it is a natural behavior of comfyui, not my extension, btw, try without my extension to known that

That's fine and thanks for your quick reply. If you get any further inquiries about the same, just tell them to 'full window" the browser and they'll get to the "hidden" controls.
Thanks!


Include missing templates

These are missing and should probably be included in the repo.

waitinglist/survey_invite_subject.txt
waitinglist/survey_invite_body.txt
waitinglist/survey.html
waitinglist/thanks.html
waitinglist/list_signup.html.html
cohorts/cohort_list.html
cohorts/cohort_create.html
cohorts/cohort_detail.html

Hi is there anyone looking into this

@stepmr Are you interested in creating a PR for this? We'd appreciate it! :)

@ossanna16 sure, I'll have some time at the end of the month to cleanup my implementation :)

@stepmr Thank you so much! :+1:

let's put these templates into pinax-theme-bootstrap instead of this app.  Templates by their very nature tend to have bias towards certain framework.  Please put send your pull request with templates there.


Drop HorizonFrame alias and just use astropy.coordinates.AltAz

i agree

@MaxNoe do you plan to work on this?

I don't know when I will have time for working on ctapipe again. At the moment I'm in the middle of starting a new  MC production for FACT.

Closed by merging #975


[BUG]: Gemini Encountering 500 Internal Server Error on Content Generation

How are you running AnythingLLM?
All versions
What happened?
I ran into an issue while trying to generate some content. I got the following error message:
[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:streamGenerateContent?alt=sse: [500 Internal Server Error] An internal error has occurred. Please retry or report in https://developers.generativeai.google/guide/troubleshooting
It seems like an internal server error. Could someone look into this and let me know what might be causing it or if there's something I should do on my end?
Thanks!

Are there known steps to reproduce?
No response

Bizarrely enough, this is not from AnythingLLM. It's directly from Google! Did they have downtime recently? As the error message suggests this might need to be posted or better answered on

Please retry or report in https://developers.generativeai.google/guide/troubleshooting

Gemini's problem

how did you fix this?


Update config.js to reflect geoenrichment updates

FYI @LindsayThomas
Related to #157
We need to update our config.js files to reflect recent changes to field names on the geoenrichment service.  These changes affect BusinessSummaryFields section on the "Business" tab, which currently displays "null" for three of the four Business Summary fields.

BusinessSummaryFields: [
                                {
                                    DisplayText: "Businesses",
                                    FieldName: "IndustryByNAICSCode.DN01_BUS"
                                }, {
                                    DisplayText: "Revenue",
                                    FieldName: "IndustryByNAICSCode.DN01_SALES"
                                }, {
                                    DisplayText: "Employees",
                                    FieldName: "IndustryByNAICSCode.DN01_EMP"
                                }, {
                                    DisplayText: "Unemployment",
                                    FieldName: "Industry.UNEMPRT_CY"
                                }
                            ]

To fix, remove the initial "D" from the field names (determined from http://la.arcgis.com/databrowser/index.html):
BusinessSummaryFields: [
                                {
                                    DisplayText: "Businesses",
                                    FieldName: "IndustryByNAICSCode.N01_BUS"
                                }, {
                                    DisplayText: "Revenue",
                                    FieldName: "IndustryByNAICSCode.N01_SALES"
                                }, {
                                    DisplayText: "Employees",
                                    FieldName: "IndustryByNAICSCode.N01_EMP"
                                }, {
                                    DisplayText: "Unemployment",
                                    FieldName: "Industry.UNEMPRT_CY"
                                }
                            ]

updated in LG and SG config.js verified fixed


'SH1107_I2C' object has no attribute 'large_text'

Dear,
Thanks for you time.
I'm trying to tes your SH1107.py software on a 0.96 display 128x64 dot.
On my side, adress

I'm using I2C protocol and my adress are 0x3C (not 0x3D). I'm in trouble with Large texte features. I 'already place Framebuf2 on my PICO software and I'm using thonny to develop code.
I don't know why but I have :
Traceback (most recent call last):
File "", line 138, in
AttributeError: 'SH1107_I2C' object has no attribute 'large_text'
Could you help me with this error ?
Best regards
stephane

Hi stephane,
I can try and help you. However, to help I will need more information on the problem you have found.
First can I check: On your PICO there should be at least three files: the module code: sh1107.py and framebuf2.py, plus also the program that you are running. Is that correct?
Secondly, I would need to see the log output from much more of your program, ideally all of it, so that I can see the error in context. Can you paste that in your reply?
best
Peter

Hi stephane,
I'm still happy to try and help if you can send some more information about the problem you encountered - as per previous message. I am also keen to understand if you might have come across a bug in the module code. Or maybe you have been able to solve the problem.
Let me know. If I don't hear from you in a week or so I will close the issue.
best
Peter

Closing this issue.
Let me know if the problem reoccurs.


public chat bot enhancement

These features are requested by @oleg-schmidt:

Save customer chat to browser local storage, only removing it when the customer restarts.
View all customer chats on the bot dashboard.

@oleg-schmidt, please update if anything is incorrect.

Hey @oleg-schmid, v0.0.31 has been released with the following two enhancements. You can watch the demo here: https://twitter.com/dialoqbase/status/1706741206477423025

Closing this. If you have any issue or request, please reopen it


Include system environment variables by default

I've just been bashing my head against the wall as to why my test kept throwing an IOException with Access Denied when trying to create a temp file. It was trying to create a file under C:\Windows because the system environment variables weren't being included as part of the run configuration. By simply checking Include system environment variables, the files were being created under C:\Users\username\AppData\Local\Temp correctly.

Closed as per #28


⚠ GitLab Server has degraded performance

In 24de574, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 5580 ms

Resolved: GitLab Server performance has improved in 0408a84.


Code Cleanup - Improve empty check style  by using isEmpty String method

Description
Improve empty string check by making use of isEmpty string method to make code more readable. Below is an example:
!"".equals(clause.toString().trim())
Steps To Reproduce
This is a type enhancement issue, NO steps to reproduce here.
Actual Behavior
Having comparisons like the one below in the code:
!"".equals(clause.toString().trim())
Expected/Desired Behavior
Do string empty checks by doing something like clause.toString().trim().isEmpty()
Screenshots (if appropriate)

None

Additional Context

None

Hi  Mallo
I like to contribute to this bug and Am new to github opensource. Can you help me to kick start.
Thanks.

Hi Mallo
I like to contribute to this bug and Am new to github opensource. Can you help me to kick start.
Thanks.

Hi @Jeevananthammoorthy, this is not really a bug it's an enhancement to improve a bit more readability of our code. If you are happy to take this enhancement you are more than welcome to do it. You can clone the repo, create your own branch (ideally name it with the issue id or a descriptive name), and then search and update all the occurrences we have in the code for a comparison like the one mentioned in this ticket.
Thanks,
Daniel.

Hi @MalloD12  Sure, will raise the PR as early as possible.

Hi @MalloD12 Sure, will raise the PR as early as possible.

Appreciate it.

@MalloD12  Kindly find the PR: https://github.com/liquibase/liquibase/pull/3804
Need your approval to pass the build check fir the below error
A member of Liquibase team needs to apply label 'SafeToBuild'!

@MalloD12  Update the PR, Kindly do the review https://github.com/liquibase/liquibase/pull/3804
Thanks,
Jeevanantham.

@MalloD12  Updated the PR, Kindly do the review.
Thanks,
Jeevanantham.

@MalloD12  Gentle reminder, to review the PR.
Thanks,
Jeevanantham.

@MalloD12  I noticed, you've made additional changes. Not sure what went wrong on my changes. Can you help to understand?
Thanks,
Jeevanantham.

Yeap, as part of the review one of the team members pointed out we don't use org.apache.commons.lang3.StringUtils, we use import liquibase.util.StringUtil. So basically, I replaced isEmpty(), isBlank() and isNotBlank() calls to make use of our String methods and don't need to rely on another dependency.
Also, as a heads up for some reason, there are some unit tests still failing and I need a bit more time to investigate this, but also have some other priorities. I'll do my best to resume this work during this sprint.
Thanks,
Daniel.

@MalloD12  Thanks for the clarification, This is my first PR towards opensource, missed to notice on the stringUtil package . will learn things on the go. Let me know what should be my next step.
Thanks,
Jeevanantham


Update Image.ios.js

Fixed a tiny typo.

By analyzing the blame information on this pull request, we identified @JoelMarcey and @charpeni to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Sign CLA and I'll ship it

I am mobile. But wasn't this already fixed in master? Or maybe there is another PR out to fix it?

Oh, I missed: we accept PRs only to master


Update cache keys for github action

$subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/950455172

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/950455172
Status: cancelled


Implement Debug on Closures

As per the discussion in #1387 I kept this one simple, the Debug output for a Closure is simply Closure { ... }. I don't think there's currently any more useful information we could provide anyway.
resolves #1387

Awesome, thanks!


[Core] Support Arrays

Currently Dojo does not natively support storing arrays in models.
This would be an extremely helpful feature.
I am unsure of the best implementation.

I would like to take this up, could please assign this to me. Thanks

Hello @ponderingdemocritus I would like to take this up, could you please assign this to me. Thanks

Great! Do you mind sharing the approach you are thinking before starting on the work?

So

Hello @ponderingdemocritus I would like to take this up, could you please assign this to me. Thanks

Great! Could you please share the approach you are thinking before starting on the work?

Hello @tarrencev, So I was thinking of two approaches :

Is where we implement the StorageAccess trait for the Array
Have like a Legacymap of the value and have like another variable like a counter

@Akashneelesh I think 1. is probably a good solution for now. I wonder if we should do something similar to https://github.com/starkware-libs/cairo/blob/4821865770ac9e57442aef6f0ce82edc7020a4d6/corelib/src/starknet/storage_access.cairo#L665
We will have to serialize array members to a Span first then write them to storage in order to support structs. Perhaps we can start with supporting primitives first though

So

Hello @ponderingdemocritus I would like to take this up, could you please assign this to me. Thanks

Great! Could you please share the approach you are thinking before starting on the work?

Hello @tarrencev, So I was thinking of two approaches :
1. Is where we implement the StorageAccess trait for the Array

2. Have like a Legacymap of the value and have like another variable like a counter

Hey @Akashneelesh happy to see you around!
To complement the Tarrence's statement about serializing the array member, Dojo database system does not actually use the Store trait of types.
Instead, it relies on types being serializable.
Therefore, the approach to take here should be a bit different than regular storage. Dojo database uses the storage syscalls directly.
Let me break down the process and let me know if you want to clarify some part of it:

Starknet storage can be seen as a ledger of 2^251 storage slots, each slot can store a felt252. To know the address of a storage slot, starknet usually computes a hash on some keys. Lastly, the storage contains slot segments, a contiguous regions of 256 storage slots that can be access by simply adding one to the offset (u8).
Here note that computing a hash on keys is considered expensive compared to do +1 on an offset, so taking advantage of slot segment is important.
Dojo database relies on storage functions that takes a list of keys to identify the first storage slot (at offset 0 in a segment). Then, the offset is used to actually store the model. Currently using only one slot segment, which causes dojo to be limited to a serialized (and packed) model of 256 felts at most!
To have a more efficient storage, dojo database is packing the values, by using a layout. A layout is no more than the number of bits expected to represent the type, this awareness of length is called introspection. The packing ensures that we use most bits of a felt252.
Finally, as dojo is using a custom compiler plugin, when a model is generated, every fields of the model is serializable, and the layout can be retrieved. This is what arrives on-chain by calling set_entity on the world contract.
So you can see the dojo database as accepting as input a model data that is completely flat (Span<felt252>) corresponding to the serialized data. And with this, a Span<u8> which contains the layout for each element in the data. The keys are never stored, only used to compute the storage slot where storage must start.

The objective to support array, would be to add the same logic as ByteArray storage, but at the storage level of dojo. Doing so, we will be able to store models of any size.
As Tarrence mentioned, you can make a first version that only supports array of primitives, you've an example here in the introspect module where primitives are handled.
I would break down the path to achieve this as follow:

Add array support into introspection (at cairo and rust compiler plugin level).
This will ensure that the arrays (or spans) can be serialized + their layout can be retrieved to follow the current dojo model.
You may only support primitives in a first version.

Add support for slot segments as ByteArray impl does, but for the dojo storage. The packing should not be affected though.
Here the thing is that, when you compute the storage slot address by hashing the key, this gives you a slot, that's the first slot of a segment (offset 0). Let's call it the original address.
Then, you hash a new key (poseidon([original_address, chunk_index, 'DojoChunk'])) when you've fully used the original address segment. This gives you the next storage segment to use to continue the process until all data are stored.

I hope this gives you more context, don't hesitate if you have any question or an alternative approach.
Note aside: The ByteArray does not need packing as it's internal logic already pack the bytes. In a ByteArray, any felt252 that is inside the data field is guaranteed to have 31 bits of data.

So

Hello @ponderingdemocritus I would like to take this up, could you please assign this to me. Thanks

Great! Could you please share the approach you are thinking before starting on the work?

Hello @tarrencev, So I was thinking of two approaches :
1. Is where we implement the StorageAccess trait for the Array

2. Have like a Legacymap of the value and have like another variable like a counter

Hey @Akashneelesh happy to see you around!
To complement the Tarrence's statement about serializing the array member, Dojo database system does not actually use the Store trait of types. Instead, it relies on types being serializable.
Therefore, the approach to take here should be a bit different than regular storage. Dojo database uses the storage syscalls directly.
Let me break down the process and let me know if you want to clarify some part of it:

Starknet storage can be seen as a ledger of 2^251 storage slots, each slot can store a felt252. To know the address of a storage slot, starknet usually computes a hash on some keys. Lastly, the storage contains slot segments, a contiguous regions of 256 storage slots that can be access by simply adding one to the offset (u8).
Here note that computing a hash on keys is considered expensive compared to do +1 on an offset, so taking advantage of slot segment is important.
Dojo database relies on storage functions that takes a list of keys to identify the first storage slot (at offset 0 in a segment). Then, the offset is used to actually store the model. Currently using only one slot segment, which causes dojo to be limited to a serialized (and packed) model of 256 felts at most!
To have a more efficient storage, dojo database is packing the values, by using a layout. A layout is no more than the number of bits expected to represent the type, this awareness of length is called introspection. The packing ensures that we use most bits of a felt252.
Finally, as dojo is using a custom compiler plugin, when a model is generated, every fields of the model is serializable, and the layout can be retrieved. This is what arrives on-chain by calling set_entity on the world contract.
So you can see the dojo database as accepting as input a model data that is completely flat (Span<felt252>) corresponding to the serialized data. And with this, a Span<u8> which contains the layout for each element in the data. The keys are never stored, only used to compute the storage slot where storage must start.

The objective to support array, would be to add the same logic as ByteArray storage, but at the storage level of dojo. Doing so, we will be able to store models of any size.
As Tarrence mentioned, you can make a first version that only supports array of primitives, you've an example here in the introspect module where primitives are handled.
I would break down the path to achieve this as follow:

Add array support into introspection (at cairo and rust compiler plugin level).
This will ensure that the arrays (or spans) can be serialized + their layout can be retrieved to follow the current dojo model.
You may only support primitives in a first version.
Add support for slot segments as ByteArray impl does, but for the dojo storage. The packing should not be affected though.
Here the thing is that, when you compute the storage slot address by hashing the key, this gives you a slot, that's the first slot of a segment (offset 0). Let's call it the original address.
Then, you hash a new key (poseidon([original_address, chunk_index, 'DojoChunk'])) when you've fully used the original address segment. This gives you the next storage segment to use to continue the process until all data are stored.

I hope this gives you more context, don't hesitate if you have any question or an alternative approach.
Note aside: In the case of the ByteArray, they don't need packing as it's internal logic already packs the bytes. In a ByteArray, any felt252 that is inside the data field is guaranteed to have 31 bits of data. So at Dojo level, a ByteArray that is serialized can be seen with a layout of 251 bits for each element as it can't be packed anymore. We may omit the variable length of the pending_word a consider it 251 bits layout too for simplicity.

Thanks alot @glihm for giving enlightening me with the whole process, Based on what you have mentioned I'll take this approach and try implementing it. And if I face a better approach or have any stops , I'll surely shoot a question here.
Thanks.

I will close this one as the first phase was done in #1533. Need to check on the Torii side how this will be indexed.


[Policy Assistant] user experience for specifying pods/traffic

Parent issue: #150
TL;DR
Write go code to get a Deployment/DaemonSet from a cluster and create a corresponding TrafficPeer (see struct referenced below).
Overview
Our KubeCon demo (video, slides, code) used hard-coded Pods and traffic (Pod a to Pod b on port 80 and 81).

Of course, a user should be able to specify their own Pods/traffic. Ideally, a user can:

Quickly/easily specify traffic of interest.
Reference Pods in a Kubernetes-native way.

Ideas
A helpful starting point is Matt's Traffic struct. Here's a snippet of this example json:
{
  "Source": {
    "IP": "<IP_ADDRESS>"
  },
  "Destination": {
    "Internal": {
      "PodLabels": {"pod": "a"},
      "NamespaceLabels": {"ns":  "y"},
      "Namespace": "y"
      // we will also need NodeLabels for AdminNetworkPolicy's node selector
    },
    "IP": "<IP_ADDRESS>"
  },
  "Protocol": "TCP",
  "ResolvedPort": 80,
  "ResolvedPortName": "serve-80-tcp"
}

It would be nice if a user could instead reference a Pod/Deployment/DaemonSet, and then Policy Assistant queries someone's cluster to fill in:

pod labels
namespace labels
node labels
IP (or IPs of a Deployment, for instance)

We could start by building go code to convert a Deployment or DaemonSet to a TrafficPeer for a user's Kubernetes cluster.
Separate Discussion: what should be the CLI Experience?
For the command in the screenshot above, should a user specify that configuration in JSON like so?
policy-assistant analyze --mode walkthrough --traffic-file traffic.json

where traffic.json is like:
{
    "Traffic": [
        {
            "From": "ns-dev/deployment/frontend",
            "To": "ns-dev/daemonset/backend",
            "Protocol": "TCP",
            "PortName": "serve-80-tcp"
        },
        {
            "From": "<IP_ADDRESS>",
            "To": "ns-dev/daemonset/backend",
            "Protocol": "UDP",
            "Port": "81"
        },
    ]
}

/assign

Hey @huntergregory , i think we can close this issue!

/remove-lifecycle stale

Thanks for the reminder here @gabrielggg. Have we tested the end to end experience of specifying pods/traffic in the cli ? Based on the foundations you set in #227

Thanks for the reminder here @gabrielggg. Have we tested the end to end experience of specifying pods/traffic in the cli ? Based on the foundations you set in #227

Hey @huntergregory , you are right, that part is missing to close this issue, i think that as soon as this PR (https://github.com/kubernetes-sigs/network-policy-api/pull/245) gets merged, i will begin work on a new PR for achieving the full end to end experience!

Hey @gabrielggg , just merged #245 ! If you're still interested, I'm excited to see what you build! We're looking to cut a release for policy assistant by about Nov 5 if you could possibly raise a pr before then

i'm working on this, i think i will make it on time! @huntergregory

Hey @gabrielggg how's this change going?


Update Maven

Bintray is discontinued, causing issues when building with it.
Please update the Maven

Looking into it. For now, use JitPack

Fixed, v2.0.1 was released into https://maven.cafeteria.dev


change example

This PR changes the usage example to fit the modules name.

Codecov Report

Merging #10 (e21082e) into main (f980073) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #10   +/-   ##
=======================================
  Coverage   80.87%   80.87%
=======================================
  Files          19       19
  Lines        1307     1307
  Branches      169      169
=======================================
  Hits         1057     1057
  Misses        190      190
  Partials       60       60

Flag
Coverage Δ

sanity
22.48% <ø> (ø)

units
78.19% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

plugins/modules/system/sap_system_facts.py
69.23% <ø> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Auto-hide the URL bar when the user scrolls down

The bar at the top of the proxified pages can sometimes block page elements, especially menus made to stay at the top. This change makes the bar disappear when the user scrolls down the page and shows it again when scrolling up.
I tested this with a different file that has major styling changes but it's pretty simple and should work fine for the 'vanilla' php-proxy.

I do like this idea actually.

Closing this pull request in favour of my new one.