text:
[WIP] Implement the policy report fields creation flow

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/43684
PROPOSAL: N/A
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[ ] I linked the correct issue in the ### Fixed Issues section above
[ ] I wrote clear testing steps that cover the changes made in this PR

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Open a new PR - https://github.com/Expensify/App/pull/44275.


text:
Update en.ts

Details

Fixed Issues

$
PROPOSAL:
Tests

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@pecanoro please give a final review and merge. I ran prettier, so cannot merge

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/pecanoro in version: 9.0.9-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 9.0.9-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/mountiny in version: 9.0.9-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 9.0.10-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

source: gharchive/pull-request

authors: MonilBhavsar OSBotify jamesdeanexpensify pecanoro

repo: Expensify/App

license: MIT

license_type: permissive

license_source: github-api


text:
Fix: Header content in Members RHP overflows

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/45854
PROPOSAL: https://github.com/Expensify/App/issues/45854#issuecomment-2241302410
Tests

Go to staging.new.expensify.com
Submit an expense to any user
Go to transaction thread
Click Description
Enter at least 4 lines of description
Right click on the system message > Reply in thread
Click on the thread header

[x] Verify that the description is truncated to one line on report details page

Click Members

[x] Verify that the subtitle is truncated to one line below Members header

[x] Verify that no errors appear in the JS console

Offline tests

Same as test steps
QA Steps

Same as test steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/5ef3c94d-a979-4711-b872-185d6bd1307d

Android: mWeb Chrome

https://github.com/user-attachments/assets/52dfa73c-6a5d-455e-910f-ddb2fbbb4479

iOS: Native

https://github.com/user-attachments/assets/a6cae6d5-b994-472f-a418-beae7a74c191

iOS: mWeb Safari

https://github.com/user-attachments/assets/c82314fc-05fa-40e6-b30c-86514213a866

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/1f67c566-783f-4db4-8655-5b2449daa6b0

MacOS: Desktop

https://github.com/user-attachments/assets/34c22478-fb6e-4206-a458-eba35bd597eb

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/user-attachments/assets/3d1d5500-0ede-41d5-a6a7-6e33830a4be3

iOS: Native

iOS: mWeb Safari

https://github.com/user-attachments/assets/65ec06b6-4eec-4d73-bb0f-3adf7ba193f1

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/52dfdd44-5abe-4ef6-9a34-e081197b9670

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/dangrous in version: 9.0.15-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 9.0.15-9 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify etCoderDysto hungvu193


text:
Stop displaying some advanced filters when they have no data

Explanation of Change
This PR adds logic to hide Category, Tag and Tax rate search filters if there is no data corresponding to specific filter.
Also added very small code tweaks and renames.
Fixed Issues
$ https://github.com/Expensify/App/issues/50564
PROPOSAL:
Tests

Open Search and open Advanced filters RHP
verify that there is no tag filter displayed if user has no tags
verify that there is no category filter displayed if user has no categories
verify that there is no tax filter displayed if user has no taxes

Offline tests
QA Steps

Open Search and open Advanced filters RHP
verify that there is no tag filter displayed if user has no tags
verify that there is no category filter displayed if user has no categories
verify that there is no tax filter displayed if user has no taxes

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/3c76b26a-f366-4fc8-8304-ed73e7b472b4

MacOS: Desktop

@luacmartins I need some advice here.
The code is written in the most (IMO) straightforward way. That is - if you have no data for category/tag/tax then don't show the filter.
However the original issue mentions something else: that if you do not have any policy selected, then you still get categories.
However I tested today and if you create a fresh account on new dot, then indeed you do get some general categories set in your onyx even if you have no policy. How should I handle that? I'm not sure how to discern between "general categories" that we should ignore, and "normal" categories that you could choose?
freshly created account

@Kicu I think we can exclude those by comparing the policy type. Those default categories should belong to a policy with type = personal. So filtering on the policy type might help.

Thanks for your explanation @luacmartins the PR is updated according to your suggestion and is ready for review

@fedirjh all yours. Please prioritize this review!

Hi! I'am Adam from SWM and I have worked recently on Search v2. @Kicu is currently OOO but I can answer some questions. I believe the observed behavior is as expected. Search retrieves data for display from Onyx, thus we have no way of knowing whether expenses tagged with disabled tags exist. This is why I think we should allow users to search using these tags (or categories or tax rates). Alternatively, we can adjust the logic to receive information from the BE about the existence of such expenses.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

This PR is failing because of issue #52361

will take a look at both

@Kicu can you also take a look at https://github.com/Expensify/App/issues/52378?

@mjasikowski yup already asked a colleague to work on this

authors: 289Adam289 IuliiaHerets Kicu OSBotify luacmartins mjasikowski


text:
Show Empty Chat with draft messages in LHN

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/6619
Tests | QA Steps

Make sure the focus Mode is not on from the Preference Page.
Open any new chat that does not have any messages yet.
Check that it is listed in LHN when active.
Create a draft message on the same chat.
Switch to another chat.
Confirm that the old chat is still visible in LHN with the pencil icon.
Open the old chat.
Clear the draft.
Switch to another chat.
Confirm that chat is not more visible in LHN.

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots

Web

https://user-images.githubusercontent.com/24370807/145628834-d9e41fc3-2fe1-44f4-9644-d2049e73d54a.mp4
I think other videos are not needed I just moved one flag from Focus mode to both modes and thus it should work if it works on one platform.
Mobile Web

Desktop

iOS

Android

Oh yeah, overlooked that. Thanks for noticing

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @roryabraham in version: 1.1.20-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by @Julesssss in version: 1.1.21-1 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify parasharrajat


text:
Implement unix uniq command interface.

Implement unix uniq command interface and offer additional for dejavu configuration with sane defaults.
Shoud be done as extra project 'uniqish'?

done

source: gharchive/issue

license: mit

license_source: bigquery


text:
getting error while trying to install f5-sdk

Hi Experts,
I am getting this error when trying to install f5-sdk with : sudo -H pip install f5-sdk
    copying setup_requirements.txt -> /System/Library/Frameworks/Python.framework/Versions/2.7/.
    error: [Errno 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/./setup_requirements.txt'

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/tj/hycb0kl92xzfv9cmnqyhky9d_63sjc/T/pip-install-7rUIoV/f5-sdk/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/tj/hycb0kl92xzfv9cmnqyhky9d_63sjc/T/pip-record-TGmSIU/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/tj/hycb0kl92xzfv9cmnqyhky9d_63sjc/T/pip-install-7rUIoV/f5-sdk/

Does anyone know how to fix this?
Thanks.

@farhadkam you need to have sufficient privileges to install it. Use sudo to install it.

Hi caphrim007I am already using sudo -H to run this but getting the error above.
Interesting is if I run with pip3 it works!
Any suggestions?

@farhadkam my best guess is https://stackoverflow.com/questions/33004708/osx-el-capitan-sudo-pip-install-oserror-errno-1-operation-not-permitted

closing the issue as no response


text:
开源精神

我刚接触bcos，但是看得出bcos明摆着是base on ethereum改的，那为什么上传源码的时候不fork ethereum再改呢，readme里面也没有提，仿佛是自己新写的代码一样，不厚道啊，有损开源精神

@cyjseagull @JimmyShi22 @bxq2011hust

FISCO BCOS fork自BCOS，BCOS最初是从以太坊继承而来。FISCO BCOS有关以太坊的代码都保留了其copyright，但是大部分核心代码都是自研的，可以通过阅读源码进一步了解

authors: huahuayu wheatli

repo: FISCO-BCOS/FISCO-BCOS


text:
Adjusted menus

This pr is for fixing/cleaning/optimize a bit of stuff in the menus
It's gonna stay as draft until im done with doing
Related to spritesheets stuff: no I didn't use animate, I did it all manually LOL

Fixed Main Menus Spirtes offsets (NOw they wont move anymore)
Made the Title Enter spritesheet better cleaned
Fixed Coop text in freeplay (Now the dark text background will resize based on it): https://streamable.com/5gd1js
Restored Credits Menu (Will download data directly from Github): https://streamable.com/3n8qkg

In the future I might upload more changes to the credits menu

W commit fr

Hehe

W commit fr

agreed

authors: MemeHovy NexIsDumb lunarcleint

repo: FNF-CNE-Devs/CodenameEngine


text:
Append the short commit revision to version on frontend

Description of PR

What component(s) does this PR affect?

[ ] Back-End (Database, Detection/Configuration/etc. Microservices)
[x] Front-End (Flask, API, UI, etc)
[ ] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[x] Build System

Does the PR require changes on other components? If yes, please mark the components:

[ ] Back-End (Database, Detection/Configuration/etc. Microservices)
[ ] Front-End (Flask, API, UI, etc)
[ ] Monitor (RIPE RIS, BGPStream RV/RIS/CAIDA, etc.)
[ ] Docs (incl. wiki)
[ ] Build System

Related Issue

Resolves #400
Solution

Type

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs update
[ ] None of the above

Checklist:

[x] I have read the contributing guide and my code conforms to the guidelines.
[ ] This change requires a change in the documentation.
[ ] I have updated the documentation accordingly.

Should we do this only for frontend or also for the other containers? Does it change anything in the logic of the latest version publishing? Or is it sth within travis only?

Should we do this only for frontend or also for the other containers? Does it change anything in the logic of the latest version publishing? Or is it sth within travis only?

we only print the version on the frontend so I don't think we need any further changes

authors: slowr vkotronis

repo: FORTH-ICS-INSPIRE/artemis


text:
[Feature Request] ISPmanager 6

I would like to see integration with a free control panel, ispmanager 6, is this possible? I couldn't do it myself
https://www.ispmanager.com/docs/ispmanager/ispmanager-api

Closing this and rolling all control panel integration requests into one larger issue #1362

authors: evrifaessa onmen

repo: FOSSBilling/FOSSBilling


text:
Automatic Launchpad Re-Connection on client and server side.

Reconnect the launchpad to the robot without having to restart the robot code.

Launchpad is being replaced with a zero delay joystick controller and buttons.


text:
LIDAR Lite v3 Research  (Cube Sensing)

Given that we're aiming to be able to detect cubes without contact, we'd like to look into using the LIDAR Lite v3 from Garmin that we have. The module supports both I2C and PWM, we need to find which works best for us over the wire distance (~5-10ft) and is easier and more robust to program.

So... I can't seem to find any evidence that the Rio has native PWM input, so that might make it more difficult... I'd look into I2C; we could go into the Arduino, but that's just more unneeded obscurity.

Here's some relevant code samples from teams 401 and 3467... if you need a walkthrough of either of these examples, I can put you in touch with their software mentors; please let me know.
https://github.com/team401/2017-Robot-Code/blob/511f43203a2e8907310df10e172844a745c58f0e/src/main/java/org/team401/lib/Lidar.java
https://github.com/WHS-FRC-3467/Skip-5.5/blob/master/src/org/usfirst/frc3467/subsystems/LIDAR/LIDAR.java

Would it hurt so much to run all of the Lidar functions throught the arduino, and send the results to the RoboRio?

The RoboRio is connected to the Arduino via I2C anyway... the code should be very similar to read from the LiDAR or the Arduino. Thus it doesn't make sense to go through the Arduino and add more complexity.

If you are picking this up for an Arduino, make sure you have a hefty capacitor on the power line, it pulls a fair bit of current on turn-on, they recommend a 680uf cap.

Oh, never mind that last one, I didn't realize that u commented.

We won't need to connect the yellow wire, obviously..

Don't worry about the electrical part, Jared/Blake/Ben/myself can probably handle that; can you please focus on the code component that uses the LiDAR over the I2C bus as per their spec sheet and the above examples?

I found an easy link that we could just edit, and the only complication would be to incorporate the arduino, which we've already done.
I'm currently unable to find what kind of data the lidar itself outputs, and how to read on the roboRio.

This document should explain everything about the data that LiDAR exports, and we need to write our own I2C code for the reading values for the Rio.
http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf
Although the Arduino is another point of failure, that's not my primary concern. Reading values from the I2C bus is the same whether we get it from the Arduino or the LiDAR. You're writing virtually the same code anyway. Only, the former has it going through the Arduino instead of directly.
Please look through the above examples in more depth and I can help you more as need be.


text:
Integrate simple fps indicator

see previous issue here: https://github.com/FRUK-Simulator/Simulator/issues/22
and sample implementation

This should be a part of #39 as well

authors: JamesWP zhiquanyeo

repo: FRUK-Simulator/SimulatorCore


text:
Spurious abstraction violation with eta contracted functions

Some of the code I used to have on summer school slides started breaking:
http://prosecco.gforge.inria.fr/personal/hritcu/teaching/aarhus2017/slides/out/pure-fun/pure-fun.html#/sec-using-refinement-types-for-stacks
It works with --use_two_phase_tc false but fails with --use_two_phase_tc true:
fstar.exe --use_two_phase_tc true  RefinedStack.fst
RefinedStack.fst(11,62-11,63): (Error 189) Interface of RefinedStack violates its abstraction (add a 'private' qualifier to 'push'?): Expected expression of type "Prims.list Prims.int"; got expression "s" of type "RefinedStack.stack" (see also RefinedStack.fst(11,43-11,44))

Writing let is_empty s = Nil? s instead of let is_empty = Nil? makes it work.

This is not a two phase tc problem. I can reproduce it even in the single phase:
module Test

abstract type stack = list int

abstract val is_empty : stack -> Tot bool
let is_empty = Nil? #int

abstract val empty : s:stack{is_empty s}
let empty = []

Note the implicit argument #int to Nil? in is_empty.
It comes up in two-phases because the first phase adds this argument and then typechecks again.
My guess is: somewhere in checking the application of Nil?, we are unfolding the expected type stack -> Tot bool to list int -> Tot bool, and that gets annotated on the let-binding.

Did one more test and it seems there is nothing special about the projector here. I can define my own and the problem still happens:
module Bug1427

abstract type stack = list int

abstract val is_nil : #a:Type -> list a -> Tot bool
let is_nil #a xs =
  match xs with
  | Nil -> true
  | Cons _ _ -> false

abstract val is_empty : stack -> Tot bool
let is_empty = is_nil #int

abstract val empty : s:stack{is_empty s}
let empty = []

Here is the problem:
When typecheking is_empty, we first typecheck the body of the function Nil? #int as list int -> Tot bool. Then, we weaken the type as per the annotated type stack -> Tot bool. In this case, the weakening is trivial (a simple unfolding of stack does the trick), and so, the next step is to set the type of the let binding as stack -> Tot bool.
This is where the current code has a bug:
https://github.com/FStarLang/FStar/blob/master/src/typechecker/FStar.TypeChecker.Util.fs#L1132
We set the res_typ in the lazy comp lc, not doing anything for the embedded comp thunk inside it (which still has the return type list int -> Tot bool). Down the line, the code reduces this comp thunk and annotates the let binding with the comp result type. And so, the lc.res_typ is effectively ignored. For the rest of the module, is_empty has type list int -> bool, and we try to apply it to a stack, which is abstract, this gives an error when checking for abstraction violations.
It works when the implicit argument is not given, because in that case, there is a uvar in the wp of the body, which means that the weakening is not trivial and we don't go into this branch of weaken_result_typ.
(More to follow.)

The fix for this problem is to set the result type in the comp thunk inside lcomp as well. I tried that fix, but it breaks some other examples, which were incorrectly going through earlier.
One such instance is examples of the following form:
let f () = e <: Lemma phi

In this case, we first typecheck e to let's say _:unit{psi}. At this point, the code checks and sets the expected type to unit. After that it checks for the expected effect, trying to prove Tot unit <: Lemma phi, which it is unable to prove (https://github.com/FStarLang/FStar/blob/master/src/typechecker/FStar.TypeChecker.TcTerm.fs#L378),
This used to work earlier since the code (incorrectly) ignored the setting of the result type in the comp thunk. So effectively we were checking Tot _:unit{psi} <: Lemma phi, which could be provable.
The fix for this problem is to not check the expected type separately, rather just check the expected effect. With that fix, I noticed some other regressions, both in smt and in unification.
Need to debug more.

This is fixed in master. The change required tweaking some existing proofs, see this commit: https://github.com/FStarLang/FStar/commit/181af51d958e4add25f0b82ab3df4285f7c25b4d.

authors: aseemr catalin-hritcu

repo: FStarLang/FStar


text:
Add bitwise operators to typechecker/normalizer

These should really come for free:
let _ = assert (FStar.UInt64.logor 0x8000000000000000UL 0x8000000000000000UL = 0x8000000000000000UL)

let _ = assert (FStar.UInt64.logand 0x8000000000000000UL 0x8000000000000000UL = 0x8000000000000000UL)

let _ = assert (FStar.UInt64.lognot 0x8000000000000000UL = 0x7FFFFFFFFFFFFFFFUL)

(+ via assert_norm)
I'm going to give this a go on Bug Squashing Monday; shouldn't be too hard to do in a day I hope.

I remember being confused by that one. Uniformity would be good, e.g. normalize all integer operatiors.

https://github.com/FStarLang/FStar/commit/bfc3b4b62c4cd55c83b14a3b5a67aace49e3203b and subsequent commits, e.g. 03f47c7ad

The shifts remain to be implemented. Please open a new issue if need be.
Thanks,
Jonathan

authors: fournet msprotz wintersteiger


text:
Cannot match on negative integer literals

There doesn't seem to be a way to match on a negative integer.  Here's a small reproduction:
module ExampleMatch

let sign = (z:int{z = 0 \/ z = (-1) \/ z = 1})

let example_1 (s:sign) : string =
 match s with
 | (-1) -> "negative"
 | 1 -> "positive"
 | 0 -> "zero"

There is a syntax error in the -1 case, with or without parentheses.
I initially ran into this case while trying to use an optional sign so Some (-1) has the same problem.

Workaround:
let example_3 (s:sign) : string =
 match s with
 | v when v = (-1) -> "negative"
 | 1 -> "positive"
 | 0 -> "zero"

I'm not sure in what contexts the "match ... when" syntax is supported. I've gotten the error "When clauses are not yet supported in --verify mode; they will be some day" when I attempted to use it previously, so it's not clear what is OK and what isn't.

It is a parser issue, negative int literals are not supported as patterns in the parser.
As a workaround, you could also use if then else:
let example_1 (s:sign) : string =
  if s = -1 then "n"
  else if s = 1 then "p"
  else begin
    assert (s == 0); //not necessary, just for illustration
    "z"
  end

let example_2 (s:option sign) : string =
  match s with
  | None -> "none"
  | Some s -> example_1 s

when clauses are not yet supported for all practical purposes. (The typechecker has an internal "lax" mode of operation that does not verify code, that's where when may be used.)

authors: aseemr mgritter


text:
Unresolved uvar error on just using an unresolved identifier

fn test (x:ref bool)
    requires pts_to x true
    returns ctxt:some_random_identifier
    ensures pts_to x true
{
  admit()
}

Fails with

Tactic logged issue:
Internal error: unexpected unresolved (universe) uvar in deep_compress: 10

And

Tactic logged issue:
Could not infer implicit arguments in
x: ref bool -> stt some_random_identifier (pts_to x true) (fun _ -> pts_to x true)

Addressed by PR #112
some_random_identifier is a free in the annotated type and is then abstracted as an implicit argument. However, this implicit argument has type Type u#a and the unresolved universe variable leads to the failure.

Previously, since the elaborated type on which F* was called has no range, the entire Pulse function would be blamed. Now, only the type annotation is blamed.

Also, previously, F* would call deep_compress without checking if there are any unresolved uvars/univ_vars, which would result in a hard failure. That is fixed in F* PR 3084

repo: FStarLang/steel


text:
Assignments for session 7

1 Reading assignment

Read Paper: Uldam, Julie. “Online Civic Cultures: Debating Climate Change Activism on YouTube.” International Journal of Communication 7 (2013): 1185–1204. (available on Whiteboard: CSMA / Resources / 7)

Evaluate in a commentary of 150 words whether and how ML methods could to add to the insights from the paper above.

Submit on Github (reply to issue) until 16 Dec 12h00 (noon)

2 Seminar project preparation

Continue to work on your group project idea on Discord and add elements to the GSheet: https://docs.google.com/spreadsheets/d/1DdkST3KZV4x9D5nGsHgevIASmu_rFkK0Bx2r4AeBGPE/edit?usp=sharing

If you haven’t found a topic or group yet, you can a) either join an existing group, b) propose a new topic and ask others to join or c) pick one of the example topic indicated by instructors. Use the GSheet in these decisions.

Be aware that a first short paper about the research project (concept) has to be submitted until 7 January 2021. In order to prevent work during the winter break, you should already start to work for this assignment. Let us know if you have questions in this regard.

In the Paper the authors seem to have done a kind of clustering based on topics the comments did talk about. As there are a lot of comments on the video, doing this by hand takes a long time and is prone to miss comments if just done on a sample size. Machine learning can aid here to cluster all comments in a short amount of time. According to my experiences from last session, it works quite well on youtube comments, giving clusters of similar comments. Also they tried to find out if there are discussions happening or if the comments are mostly one sided or just short sentences without regard to previous comments and without any intent to provoke a discussion. My experiences with ML on youtube comments did show me that our pipeline could also help in finding comment chains that present a meaningful discussion, clustering them together and making them more easy to be identified in the big cesspool of hate or one-line comments.

In this scientific paper researchers Julie Uldam and Tina Askanius took a case study of intense online debates generated around the online mobilization video (“War on Capitalism”) of an activist network Never Trust a COP (NTAC), which called for protest against the 15th United Nations Climate Change Conference. In this paper they investigated how this video was received by the public both in Denmark and in other countries in general. Their focus was the debate around the video. Therefore, they analyzed the comments posted to the video on YouTube and analyzed the role of the platform in “extending the political involvement mobilized around protest events” (Uldam & Askanius, 2013, p. 1185).
Although not clearly stated in the paper, I assume the analysis of the comments was done manually by the researchers, following a cluster-type coding model, comprised of two dimensions and multiple categories within each dimension (e.g., date of upload, gender, age and country of origin, values, affinity, etc.). ML algorithms might have helped here with the speed of cluster analysis (when done manually, the cluster analysis takes longer), as well as with the size of data analyzed (many more comments can be included). Furthermore, the ML algorithms might have also identified more easily certain types of comments, such as, in the case of this study, short sentences or exclamations, which don’t seek to start a discussion, or abusive comments, and might have attached them faster to a category within the clustering method.

The paper conducts analysis of one particular video on YouTube called “War on Capitalism”. As the authors state, they considered 391 comments, many of which are just short statements, exclamations, or abuses that do not add relevant information to the main discussion. At the same time, the researchers have a clear goal to find out if YouTube can be a platform that provides a space for engaging people into civil debates and facilitates their self-organization. Therefore, I believe this study does not lack extra machine learning methods. The number of comments is manageable to read and, more importantly, in order to gain meaningful insights the researchers have to dive in lengthy discussions of “politics, neoliberal governance, or Marxist ideologies”. Some comments were even divided into several postings to convey an idea or to argue a point and I think only a person with appropriate training can trace the development of such discussions and draw an appropriate conclusion.

Teammate: @yaozheng600
Comment:
In this paper, Uldam et al. explored YouTube’s role in potentially extending the political involvement mobilized around protest events by studying the activist network NTAC and videos to the COP15 protests. In their study, machine learning played an important role. Firstly, they studied the comments in two dimensions. One through sociodemographic categories and one focuses on the comment content itself. In the second part, semantic analysis was used to cluster the ‘enemy as legitimate’ and ‘the enemy as not legitimate’ and the similarity comparison should have also been used to extend their study into a larger dataset. Besides, machine learning was also used to distinguish dialogue and abusive commenting which may contain certain words, punctuation or follow the certain pattern. This work could be very time-wasting without the help of machine learning. We have applied the semantic analysis to the videos we chose, but it seems like we cannot cluster the comments as well as it is showed in this paper. We think the reason for it is the size of our data is too small. We will try to apply our pipeline to a larger dataset instead and see if there are some similar results for the climate change topic.

The study by Julie Uldam and Tina Askanius analyzes the comments of the video “War on Capitalism” authored by an activist network called "Never Trust a COP" (NTAC) in the prelude to the COP15 protests.
Rather than specifically studying the impact of youtube on the Copenhagen protest, the aim of this Paper is more generally to analyze the role of Youtube in the formation of communicative spaces that are prerequisites for the emergence of civic cultures.
Two different aspects of the comments were analyzed: socio-demographic (gender, age, country of origin ...) and aspects that focus more on the semantic itself.
Due to the limited number of comments and the complexity of the analysis performed, I think that using machine learning tools would not have led to significant benefits. However, I believe that at an early stage of the semantic analysis, an algorithm that clusters comments by similarity would have been useful for the authors in order to explore the data from another point of view and could have helped them to gather new ideas.

The study by Julie Uldam and Tina Askanius focuses heavily on one single video on Youtube, which only had 391 comments. The analysis conducted by hand on these comments is able to produce clearer results than if it was conducted with ML. However, this is only possible because of the singular focus on one video with a small amount of comments. One could argue that to make statements about Youtube as a whole platform one would need to analyze a far larger sample size and then compare that to the in-depth analysis that was performed by hand. Since such a large scale analysis is not possible by hand, ML would be quite useful. These new results could then confirm or alter the study's results and lend greater credibility and applicability to the conclusions.

The paper's authors explored Youtube's role in the politics of climate justice by assuming participation in video comments as a way of political engagement. They did it by analyzing online debates, in this case, comments on the "War on Capitalism" video.
It seems the authors built the analysis only by following an analytical framework (civic cultures), that is, reading the comments one by one, and did not make use of any machine learning method to support it.
This analytical framework consists of two phases, as they stated in the paper:  the first one aims to get to know the audience, who speaks, and who is listening. This aspect might be understood by studying features related to comment posters such as gender, age, date of upload, etc.
In the second phase, the analysis focuses merely on the content of the comments, and this analysis includes five different categories according to the civic culture model.
Clustering techniques such as (K-Medoids or K-Means algorithms) and the Universal Sentence Encoder would help to carry out the categorization for the second phase, as these techniques are meant to find and group semantically similar comments. It is clear that machine learning results have to be supervised by researchers, and this would be quite useful just as a starting point for the analysis or as a point of comparison.

In this paper of Julie Uldam and Tina Askanius they analyzed the comments posted to a video on YouTube and analyzed if the platform extends the political discussion about the topic of the 15th United Nations Climate Change Conference. For the analysis they used 391 comments from one YouTube video and basically did the analysis by hand.
While machine learning would not have hepled much with the analysis they did, it would have given the opportunity to analyse bigger data. Maybe the authors just focussed on these little comments, because they could not handle more by hand.
Also the visualizations they did, where obviously made with Microsoft Excel. There are many machine learning visualization-tools, that could do more interesting graphs that could transfer more information. Also a sentiment-analysis would defentily give quite interesting insights in the commenters since a political debate is often determined not only by the objective information but also by the emotional layer of the messages.

Evaluate in a commentary of 150 words whether and how ML methods could to add to the insights from the paper above.
The Authors of the Paper tried to find out if the platform mechanics of YouTube play a role in forming communicative spaces. They analyzed 391 comments from the video “War on Capitalism” and used two Dimensions. Firstly they created categories by the comments poster and secondly by the comments contend. It is not clear to which extend  Machine Learning may or may not have been used during the study. However Machine Learning could be a great help in the clustering of the comments. Groupings which the authors presented such as “short statements or exclamations” or “isolated abusive utterances” could be identified with ML and the filtered from the rest of the data. This would speed the analyzing process up and especially in large comment data sets reduce the number of comments greatly. ML would also prove a great help in identifying discussion chains and user who comment multiple times. I don't think the analysis could have been improved in a significant way with Machine Learning, but it might have allowed the authors to analyze a video with more comments or a cluster of videos to a certain theme by providing the tools to categorize larger amounts of data.

There are already very interesting and diverse comments of my fellow students on the question if machine learning methods would have helped with the study from the paper. I think I can't add any new arguments here. I agree with those who are answering 'no' or 'not really', because the sample size with less than 400 comments was very small and so ML is not needed and would not have improve the accuracy of the manually human generated results. But I also agree with those who think that a manually made analysis would not have been possible for larger data sets without the help of machine learning. So as always, it depends on the objective. Maybe the researchers are or were not used to coding and machine learning. Learning this stuff would have maybe cost more time than just doing it by hand, at least for the small data set.
Also I have to agree with Tobi that the figures look like being from a school project or so. There are definitely better visualization tools.

The paper focuses on the video “ War on Capitalism” on YouTube aiming with exploring the role of YouTube in potential mobilization around protest events. The study is interested in two dimensions:  related to comment posters (date of upload, gender, age, and country of the user)
and related to the content of the comments.
In general, ML enables dealing with big datasets and testing many approaches and hypotheses, but for the case study in the paper where there is one video with a few numbers of comments (N = 391), ML could be helpful but not indispensable in detecting correlations between the dimensions (if each of the time, the gender, the age, and the country is related to the content of the comments), or clustering the similar comments and attitudes.
On the other hand, the researchers analyzed the content of the comments based on five processes of the civic cultures circuit, I believe that ML can not serve as an alternative to the grounded theory when we deal with abstract concepts such as identities, but it may add another point of view.

Machine learning algorithms became very common in the present time. However, it is sometimes not clear for an average person which benefits can we get from using them and how they could affect the way people get the new information. We can look into the use of machine learning algorithms in the research by looking at the paper written by Julie Uldam and Tina Askanius, where they tried to analyze the comments for the uploaded on YouTube video called “War on Capitalism”. For the analysis, the unsupervised clustering algorithms were chosen. Using them, they could get the clusters, where each cluster could represent similar comments. It is possible to understand if there was a discussion or not, or which opinion is presented at most. It goes without saying, that machine learning algorithms while providing a relatively good analysis, save a lot of time and allow to analyze big amount of data.

It is easy to reach the limits of humans' abilities. Especially when analyzing big data. That’s where ML algorithms come into play and not only saves (lives) time but provide new insights and allow us to look at the problem from a different angle. In the paper written by Julie Uldam and Tina Askanius, one can appreciate how clustering algorithms can provide quite good results while staying extremely time effective. The clusters are used to understand what are the main topics of the discussion, how many comments are stating the relatively same opinion, and even allow to understand if there is a discussion or only one-sided comments. The use of ML algorithms allowed the researchers to use a much bigger amount of data than it could be used if they were analyzed manually. Furthermore, it allows easy use of multiple categories, such as the date of upload, gender, age, country of origin, and so on.

The authors used the framework of civil culture proposed by Dahlgren to examine the online debate emerged around a particular transnational protest event. They used an mobilization video ("War on Capitalism") of the NTAC on YouTube as a case to explore the political engagement mobilized around the YouTube video and how the political debate helps to foster civil culture.
The author analyzed the comments under the video to explore six (actually, I think only 5 are discussed in the paper. I don't know if I counted it wrongly or there was a typo.) dimensions of the civic culture framework. Without explicitly denoting their analysis method, I assume that they did the research manually by viewing all the comments one by one as what we have done for first assignment, and tried to find out the comments which described or reflected one of the dimensions.
I think machine learning methods can help in following ways:
(1) Data visualization.
By analyzing the dimension of democratic values, they displayed figure one to show the agonistic values.  To be honest, they picked single representative comments and assigned them labels, I can still hardly understand how they analyze the comments for this dimension and how they come to the conclusion of this distribution.  With a ML algorithm, we can easily find what label is a comment assigned to and we can also predefine the keywords we want to focus on by data preprocessing. Otherwise, ML algorithms can provide different visualization methods.
(2) Clustering and Topic Modeling
The fourth dimension the authors analyzed was "Knowledge" by mentioning "numerous comments cluster around the recurring theme", therefore, they analyzed several threads of comments.  I think it is a good use case of algorithms such as clustering or topic modelling. They can use clustering to easily find the comments around a recurring theme and they can also use time series clustering to reorganize the comments around a certain theme on a specific timeline.
(3) Information Extraction
For the analysis of the first dimension "Visibility and Reach", the researchers can easily use ML method to get the demographic data such as gender, age, country of origin, etc.  Actually for these information they don't need any ML method but if the researchers want to figure out how people from different cultural background involve in online debate, or the influence of their demographic characteristics on their political engagement, they may use ML regression methods for analysis.
(4) Video analysis
The author mentioned that although YouTube allows other forms of user responses such as video responses (P.1189), only text-based comments are included in the final data set. I assume because it is demanding to analyze video comments manually. Deep Learning algorithm can obviously help with this, from speech/voice recognition to lip reading.
End of all, I still think that we always need manual work since researchers can explore the meaning of expressions from another perspective than machines and may find the political metaphors or hidden information.

I found this article very interesting, because it provided totally different approach to the analysis of YouTube videos, than what we have seen so far in the seminar in other papers. I find such quantitative analysis of a single video insightful, since it gives the researcher better understanding of what exactly is going on in the comments section. The downside of this method is that it cannot be used for processing a higher number of videos. Therefore, that's where the machine learning methods (such as the pipeline introduced in the seminar) could improve process and knowledge gained from various videos by increasing the dataset size. It helps to better understand general views and positions, so bunch of videos on the same topic could be analyzed by combining both quantitative and qualitive methods (for instance on topics such as politics and political movements, or more narrow: climate change).

Machine Learning methods could add to the insights from the paper, even though I find, that the authors did really well in substantially analysing the nature of the debate of the comments section of the "War on capitalism video" by implementing Dahlgrens framework of civic cultures. Nevertheless, with a set of limited categories, and therefore a predefined perspective, conclusions are restricted to the chosen domain of research. A topic modelling approach could be of interest, to find categories that were not pre-thought and might lead to irritation and further insight. This approach would also lead to a more efficient analysis process because it saves time. Furthermore, it would be really interesting to analyze platform-specific characteristics of the comment section and to analyze cross-references. How did users navigate on the platform and how did they reach this specific video?

The authors of this paper Julie Uldam and Tina Askanius explored comments on a particular Youtube video with the title “ War on Capitalism”. They did this exploration with the aim to analyze the political engagement and mobilization Youtube as a platform has.
Performing analysis by hand on the comments the researches were able to show better results as if the analysis were performed with an ML pipeline. At this point I agree with what most of my fellow students opinion.
An ML model would not show better results but I think in this case a manual research was possible as the scope of exploration was limited only on the comments on one particular video with a manageable amount of comments. But I think to make a statements about the whole platform ML could help to gather insights on comments of a larger number of videos. One could compare the insights collected on the larger sample with the results of manual analysis.

Uldam and Askanius (2013) are exploring ways in which a comment section can be understood as a civic space and commenting as “a mode of political engagement” (p. 1186). The methodology the researchers adopted is similar to the one we adopted in this course as it is focused on analyzing YouTube comments. However, in contrast to the methods we adopted so far categories relating to the content of the comment and the socio-demographic dimension of the commenter are evaluated mainly. In total, they analyzed a little less than 400 comments posted over two channels. In regard to evaluating comments on both content-related and socio-demographic dimensions, their dataset could be used as a baseline classifier, which is then applied to larger datasets for classification. A gain would be to have more than 400 comments as a basis. Finding more videos aligning with their narrow frame of reference for video selection could pose a challenge, though.

This study focuses on the YouTube video "War on Capitalism" and how comments act as a way of political engagement. They used 391 comments from the video and analyzed them using grounded theory. With that they could analyze who the audience is and what the content of the comments is.
Since the amount of comments is rather small and they only focused on one video, their approach is really precise, but in my opinion it maybe would've been better to not focus only on one video, but rather analyze more videos focusing on the same topic. And with that ML methods come into play. As we read last week, results of grounded theory and ML algorithms are comparable and can give similar insights. By analyzing a bigger data set (thus more comments) they could also achieve good results using ML algorithms like clustering. It is not as precise as by doing it by hand but larger studies can give a deeper insight on how people politically engage in the comment section.
In addition, algorithmic analysis offers many more options for visualization of the data and results.

The paper by Uldam and Askanius (2013) analyses the comments regarding the YouTube video “War on Capitalism” with respect to visibility and reach of the comments as well as by categorizing them along four other dimensions (values, affinity and identity, knowledge, and, dialogue and abusive commenting). The researchers manually analysed 391 comments. And this is exactly where ML could come into play. Firstly the number of comments seems quite low if we want to capture the political debate regarding a global issue. ML is the perfect tool to scale the main steps applied by the authors and therefore increase the significance of the study. The main steps being: creating statistics of the demographics and clustering comments with respect to categories. Secondly I feel like by doing those steps manually it happens that single comments are being attributed too much weight. It could well be that some commenter took less time and thought to write their comment than the authors dedicated to its analysis.
As mentioned in the paper, many of the commenters do not engage in a debate and rarely respond to other comments. Therefore I believe that for these rare cases where an actual thread forms a manual analysis is to be preferred.

The paper is a case study on the YouTube video "War on Capitalism", which called for protest against the 15th United Nations Climate Change Conference, for which they analyzed text comments under this video. This analysis includes for example the origin of the commenters (mainly Denmark), but mainly their political affiliation/believes. Several statistics are extracted from the comment section, such as the correlation between the denunciation of the enemy and the attitude towards damage in protests (which I found especially interesting). It is also generally concluded, that YouTube doesn't promote a natural discussion as it would occur under more "natural" circumstances, since the use of online spaces can "pose threats to their safety". Two groups that frequently interact in the comments are also identified:

activists vs citizens (with regards to for example violence)
radical vs reformist environmentalists

I could not find the video featured in this paper, and think that the number of comments is pretty low (391 across two channels), but I also think that for an insight this complex (political believe, intention), manual review does at the moment provide the best results.

The paper by Uldam and Askanius was very interesting. The investigation of the data set (containing 391 comments) resulted in findings regarding the distribution of same-minded groups, their agonistic enemies and YouTube’s potential to provide a communicative space for a dialogue and discussion.
The comments were manually reviewed, which is only possible for a data set of limited size. To perform the same or a similar analysis on much more commented video, ML algorithms need to be used for the similarity clustering of the comments and the topic generation. The categories for the two dimension (categories related to comment posters and categories related to the content of comments) were also predefined by the authors. Here, the category creation could possibly be refined by neural network technologies, that automatically identify the most significant features. This could furthermore lead to new insights about correlations of features within the comment space.

The paper by Uldam and Askanius presents a typical example of conducting a quantitative content study in social science. Expect from the possibilities mentioned (unsupervised methods such as clustering & topic modeling) by the fellow students above. I would suggest applying supervised learning methods, which would expand their research scope and remain their analytical approach at the same time. The drawback of such a comment classifier would be the huge work load to annotate the data (>1k for ML and >10k for DL) and the ML method's explainability.

In the research paper "Online Civic Cultures: Debating Climate Change Activism on YouTube" by Uldam and Askanius, the
researchers want to get an insight into video activism on YouTube. Therefor they chose a video called "War on Capitalism"
which was a reaction to the COP15 conference in Copenhagen. They then conducted an analysis on the comments of this video.
Unfortunatly they do not describe their methodology in depth, but it can be assumed that they used some kind of
computer-assiseted automation, because they mention a coding frame using two dimensions: data about users and semantic
data from the comments. They also mention their use of the Dahlgren's civic cultures framework but it is unclear what exactly
that consists of.
Looking at their results it seems they first divided the comments into different categories an then analized how many
comments in each categorie saw their enemy as 1) not legitimate 2) unclear or 3) legitimate.
It is unclear to me if they used ML to detect the categorie of a comment and its view on the enemy. If they
did not ML could be an approach accerlerate their analysis by using semanticaly clustering the comments, assigning
categories and maybe clustering them again into 3 groups according to their view on the enemy.

authors: Alioio Aylin-00 ChristyLau Cloudz333 DanielKirchner Einnmann Francosinus JuliusBro Moritzw Rahaf66 SabinaP17 adrianapintod anastasiia-todoshchuk budmil iraari isaschm jtembrockhaus milanbargiel mrtobie raupy satorus simonsimson travela xixuanzh yuxin16


text:
Externalizing the core functionality (i.e. the non-Grunt parts)

Would there be interest in externalizing the core functionality of this task? I'm thinking that a part of this task can exist in its own module to allow reuse by other libs (e.g. plugins for other task runners). Selfishly I'm interested in writing a Metalsmith plugin that combines SVG files but I want to avoid duplication of work.

Good idea, I could write a Gulp plugin.

authors: PavelGavlik whymarrh

repo: FWeinb/grunt-svgstore


text:
JavaDoc grammar issue: 'Emits an game event'

The sentence 'Emits an game event' should read 'Emits a game event'.
https://github.com/FabricMC/yarn/blob/5a3bdbd522adfa5ad26bd4220ce5ca7cfefff269/mappings/net/minecraft/world/WorldAccess.mapping#L7

That sentence does not add useful information to be honest. It's repeating the method name.

I think there's still some value in providing javadoc for such methods; the ability to show that a method is noteworthy is one of the benefits.

authors: andantet apple502j enbrain

repo: FabricMC/yarn


text:
16-stackable Filtering Bug

Describe the Bug
Setting funnel filters to a 16-stackable item automatically sets it to 64 items instead of the * (allow any) setting.
Reproduction Steps

Place a brass funnel, any orientation
Acquire a 16-stackable item such as armour stands or eggs
Set the filter on the funnel to said item and observe the error.

Expected Result
Expected behaviour would be for it to have the * (allow any) setting after one click as is the case for any other 64-stackable item
Screenshots and Videos
N/A
Crash Report or Log
N/A
Operating System
Windows 11
Mod Version
0.5.1d
Minecraft Version
1.20.1
Other Mods
None, just Create.
Additional Context
Note that singleplayer 0.5.1f seems to work correctly but it is currently untested in multiplayer.

can't reproduce on any version

authors: TropheusJ cshcrafter

repo: Fabricators-of-Create/Create


text:
"count" item ingredient parameter not supported

Describe the Bug
Have I overlooked something or does Create not support the "count" parameter?
   "type": "create:compacting",   "heatRequirement": "heated",   "ingredients": [     {       "count": 4,       "item": "garnished:cracked_peanut"     }   ],   "results": [     {       "amount": 4050,       "fluid": "garnished:peanut_oil"     }   ] }
Reproduction Steps
Create a datapack with this (above) recipe
Expected Result
4 cracked nuts
Screenshots and Videos

Crash Report or Log
No response
Operating System
Windows 11
Mod Version
0.5.1f
Minecraft Version
1.20.1
Other Mods
No response
Additional Context
No response

it does not, you need to duplicate the ingredient  times

Why don't you add that?
Is it because packing is based on shaped recipes that have one item per slot?

inputs are ingredients, not item stacks. They don't have counts.

authors: MrRedstoneToGo TropheusJ