Use callback for backlight fade

This adds a callback to the backlight fade which allows for setting the backlight again before the previous fade is complete.

This still doesn't work on the FreeTouchDeck. Not from HA or from the command line...
I(m not sure why I would get different results from you, but this needs to work flawlessly on all devices.

If you could test the branch without pulling to master it would make things cleaner IMHO.  Less back and forth with different commits and pull requests.
I don't have enough information to know why it doesn't work for you, but it looks like FreeTouchDeck uses an older ESP32.  Maybe that is the problem, although I would expect some compile error if the function wasn't supported.  Perhaps the best solution is to only enable for ESP32-S3 like so: https://github.com/presslab-us/openHASP/commit/584689cd6ae623c5f38c55afbc2c423348f53a0a

Well, imho, new features need to be fully tested before a PR is sent. I can do a code review but I cannot test new features on all 20+ devices before merging. That would just take a up too much time. Please test this on multiple devices first.
I thought there was a very low risk in adding this feature, but apparently it is much more complicated than initially thought. My default mode is to just revert the change, as it is more important to have a stable binary.
Another more elegant way is to make your new feature s electable by adding a define USE_HASP_BACKLIGHT_FADE and put the changes into a macro. This way, users can easily test the new feature and disable it quickly without touching any code.

I only have one device to test it on; I'm not going to buy 20+ other devices for testing, that's not practical for me either.
I guess my point was that you could have built from my branch and tested that on your device rather than merging it into master and then testing it that way, that's all I was saying.  It's possible to do that through VSCode.

It's fine, you don't have to buy anything, just don't shift the testing stage onto the maintainer. You can gather other users on the GH discussion board or Discord channel. There are plenty of people that can help you test it.
If I had known this wouldn't work properly, then it wouldn't have been merged. Like I said, if there is a problem I will just roll back.


[$500] Bank account - Server side error on bank account displays red dot on all workspaces

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
To trigger server side error, open settings->workspaces->any workspace->bank account->connect manually->fill in step 1, step 2 details, in step 3, select first selectable date (23-08-1873 for current example) and click save
Exit the RHN and open settings again
Open workspaces and observe that it shows red dot to all workspaces instead of only one in which we had triggered the error

Expected Result:
App should only display red dot next to workspace in which we have triggered the server side error
Actual Result:
App displays red dot next to all the workspaces even though error was only triggered in one workspace
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: v1.3.70-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/7af00881-8c84-4a18-babb-89026d70c38d

Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692808524671409
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01fd74490d817c4df4
Upwork Job ID:<PHONE_NUMBER>312627200
Last Price Increase: 2023-09-15

I believe this is expected because when connecting a bank account in one workspace you can pickup where you left off in a another. So experiencing an error connecting in one workspace seems reasonable to show across all workspaces - If you went to connect in any of them you would see the error


Update main.tf to add an nfs server if a flag is set

Use tfvars for flags:

NFS_ENABLE = true/false
NFS_DISK_SIZE = 500G

Set up cpu, memory,etc in variables.tf

Will keep NFS_DISK_SIZE  in variables.tf and rename it to disk_size. disk_type and disk_storage will also reside in variables.tf


Dev

readying master branch for noctua upgrade.  Encapsulates many changes.

Catch master up for Monday update.

People have been testing for a while, ready to do.


New version: DiffEqSensitivity v4.1.3

Registering package: DiffEqSensitivity
Repository: https://github.com/JuliaDiffEq/DiffEqSensitivity.jl
Created by: @ChrisRackauckas
Version: v4.1.3
Commit: 88c9a8944699c7c7c27cb86f1d4a1101fad6fac3
Reviewed by: @ChrisRackauckas
Reference: https://github.com/JuliaDiffEq/DiffEqSensitivity.jl/issues/111#issuecomment-550245655

Please fix the compatibility bounds for the next release such that it will be automatically merged.


Fix incomplete buffer conversion

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Fixes an issue in the Default Buffer Converter.lvclass where convert buffers between engine and string can be too small.
The VIs in Default Buffer Converter.lvclass have shared reentrancy, which means any thread can use those VIs to perform data conversion. In the existing implementation, the convert buffers used in these VIs are allocated on first call using the maximum size of the transfer used on the first call and are saved in feedback nodes to prevent more allocations. This is a problem if another transfer is then swapped to use this clone instance because it is possible that transfer requires a buffer that is larger than what was initially allocated.
This change moves those convert buffers into class data. This works because each thread gets its own instance of a buffer converter and knows the maximum size of all transfers. The VIs can remain shared reentrant because the buffers are no longer stored in these VIs.
Why should this Pull Request be merged?
When multiple threads have transfers of different sizes, data conversion can be incomplete without this change. This change fixes the issue in AB#2420151.
What testing has been done?
Manual testing of multiple threads with differing data sizes transferred between Windows and RT using the UDP plugin.

@rtzoeller I didn't implement this with DVRs, but I can definitely do that if desired. Unfortunately, the code won't compile without actions that happen during build, so I can't profile buffer allocations. There is a place to destroy the DVR, so it would be perfectly acceptable to use that implementation.


Date Range start date and end date can't pick same date

when i clicked same date on daterangepicker that always selected start date into input. please help

Interesting. It's working for me when I use the "Date range for one datepicker" example on Firefox and Windows 10.
I click the first date and then the same date with no issue.


AnimatedSprite with "Playing" enabled in the editor causes changes to scene files on every save.

Godot version:
beta2 mono
OS/device including version:
Windows 10 1709
Issue description:
An AnimatedSprite with "Playing" enabled will have its frame property changed in the editor. This is expected, however saving the scene will save the new value of the frames property. This becomes a problem when using source control, as you end up with unnecessary changes to scene files.
This is made even worse by the fact that the scene is saved whenever you click the "play" button in the editor, and even if the scene hasn't changed as long as the frames property is currently different it will still save.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Download file will save the morphology even if u deleted it

When you download the genome file, it is expected to contain the complete list of morphologies. However, it appears that if a morphology is added and then deleted, it still remains in the list. Similarly, deleting an existing morphology does not remove it from the list.
To reproduce the bug:

Click add morphology
Fill it
Click on the morphology list
Click on the morphology you created
Delete that
Download genome and find your morphology there even if you deleted it.

Add is now part of the issue with the new morphology


Unmerged changes from Gerrit

This PR preserves open, unmerged changes from Gerrit.

This change is

Review status: 0 of 4 files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


[Spec] #AUDIO as alternative to #MP3 to specify audio file

Suggestion
Historically, the #MP3 header field is used to specify the audio file.
However, mp3 files are not the only supported audio format.
Thus, one could argue that #AUDIO would be a better name for the field.
But this could only be done as an alternative to #MP3 to not break compatibility with the thousands of existing txt files.
So there is no clear winner:

On the one hand, #MP3 is a misleading name for the header field.
On the other hand, two header fields with the same purpose might also be confusing.

What do you think?
Use case
For newbies and tutorials, it might be more intuitive to use and show #AUDIO instead of #MP3.
But it is only a minor issue.
Extra info/examples/attachments
No response

I would favor the support for #AUDIO (in addition to #MP3 for backwards compatibility). If USDX and others implement support, they could convert #MP3 to #AUDIO on save. The Syncer could convert it as well, but ideally usdb would support it as well so that it’s adoption spreads.
(related: why not use #VOCALS and #INSTRUMENTAL instead of the longer #VOCALAUDIO and #INSTRUMENTALAUDIO?)

#VOCALS makes no sense to me. It's just #AUDIO, #MUSIC, #AUDIOFILE.
For Karaoke #INSTRUMENTAL, #KARAOKE or #KARAOKEAUDIO would be nice

#VOCALS makes no sense to me

This discussion has its own issue: https://github.com/UltraStar-Deluxe/format/issues/20
Please use this issue here only for "#AUDIO as alternative to #MP3".

Thanks for your discussion. So we have a consens here. ✅
I've put #AUDIO to the Overview Version spreadsheet mentioned in #31 .

Lets write a conclusion as the completed message so it doesnt get lost in translation :)

SUMMARY / FINAL RESULTS 🏁
So here are the final results for this issue.
We add this tag in version 1.1.0:
#AUDIO: Artist - Title of the song.mp3

We deprecate this tag in version 1.1.0:
#MP3: Artist - Title of the song.mp3

#MP3-Tag will be removed in version 2.0.0 (probably in 1-2 years).
The description in the spec (website) is:

#AUDIO
Definies the audio file that contains the whole music in one (consisting of VOCALS (the singers voice(s)) and INSTRUMENTAL(S). This is the new tag for the deprecated #MP3 tag.


import goprocam error

ImportError: No Module named request
Can you please help with this error. I do not understand what is wrong.
I also did: pip install request, but that didn't solve the problem.

Library works with Python 3.6 and above.


Automatic Slideshow using HTML CSS

Describe your issue.
We can create a slideshow using HTML and CSS.
Screenshots (if applicable).
No response
Additional context (if any)
No response

Sure.
Don you want to give it a try? Or shall I leave it open?

I wanna give it a try.please assign this to me


'useInheritedMediaQuery' is deprecated and shouldn't be used

'useInheritedMediaQuery' is deprecated and shouldn't be used. Remove this parameter as it is now ignored. MaterialApp never introduces its own MediaQuery; the View widget takes care of that. This feature was deprecated after v3.7.0-29.0.pre.

Wow, I just thought of making this change and your PR was already here.
Thank you very much for your contribution!


Create conftest file

Creating a single file with all fixtures.
Moving all the fixtures to this file.
Adding default variables for the fixtures.
That will make the code readable and maintainable, mainly for future work.
close #43, #53

Hi Eden, are there any logic (tests code changes) or any kind of refactoring (any of var/method/class change) changes included?

Hi @ormergi, I made this PR.
And yes of course!
I added some default variables for the fixtures and moved all the fixtures to one file.

Hi @ormergi, I made this PR. And yes, of course! I added some default variables for the fixtures and moved all the fixtures to one file.

I am so sorry, I confused between you two :man_facepalming:
Would you please separate to another commit these changes, so there will be one commit for moving and another for refactoring?
It will make it much easier to follow how the code is changed, at the current state this kind of changes are
pretty much "hidden".

state

You are right.
I will change it.

Hi @ormergi, I made this PR. And yes, of course! I added some default variables for the fixtures and moved all the fixtures to one file.

I am so sorry, I confused between you two 🤦♂
Would you please separate to another commit these changes, so there will be one commit for moving and another for refactoring? It will make it much easier to follow how the code is changed, at the current state this kind of changes are pretty much "hidden".

You are right.
I will change it.

@ormergi I separate those changes to another commit.
I hope that is better.


Support timer for points in SeriesHelper

Hi all, thank you for library.
Currently SeriesHelper class support bulk_size parameter for dumping points to Influx.
But there might be situations when I have for example bulk_size=5 and 4 points in current cache.
Points will be sent only when 5th point event occured. But it could happen in 1 hour/day/month, previous points been hiding there the whole time.
In other hand, I can't set bulk_size=1, because there could be a hundred requests
Don't you think that expired_time  (or something like this) parameter makes a sense? And sending logic will be based on batch_size and time from last point.

@iskrich if this issue is immediately problematic, your best bet is to extend the SeriesHelper class and implement this timer in your application. While this feature seems useful, it may not be high on the list of features slated for the near future. We are always happy to field pull requests however!


Push HTML Pubs to Publishing API

Pushes all current (published, withdrawn or draft) HTML Attachments
with the correct status.
Takes about 30 seconds to run on VM, then about an hour to process the
queue.
/cc @gpeng

:+1:


Fixes

Hi,
this PR fixes

an infinite recursion that can arise when exiting the console
the inability to insert text at the beginning of the prompt line
unexpected cursor movement to end of line when pressing home/left keys
loopholes that allowed the user to edit text outside the prompt region

For the last point, I had to set control to readonly, which removes a few non-essential but nice-to-have editting features such as Ctrl+Z/Ctrl+V/Ctrl+backspace. I will likely add these in a followup PR.
Best, Thomas

Morning @coldfix,
Thanks again for another set of nice fixes, the Ctrl+Z/Ctrl+V/Ctrl+backspace would definitely be a good addition for those of us who are a bit more lazy :)
Cheers,
Marcus


Add semantic types to questionnaire builder

We could really elevate the questionnaire experience by adding a few semantic types that speed data entry:
Address - Love it when we get address autocomplete
Email - Provide validation for proper format
Phone Number - data validation for area codes, country codes, # of digits

Won't Fix


Consider using redis-rs

Redis Rust library recently released an async API. I think it's worth considering re-implementing this around it.
https://docs.rs/redis/0.9.0/redis/#async

@gabisurita Why do you think this is worth considering and what motivation is there for anyone to do this?

Redis-rs has many static checks for method calls and return types, as well as several libs implemented around it's API. It's as far as I know the most stable redis client implementation in Rust.


New Crashplan version 11.1.1 released

Current Behavior
Crashplan 11.1.1 is released
User devices begin automatically upgrading June 13, 2023, unless your administrator configured an update delay.
https://support.crashplan.com/hc/en-us/articles/16540361598989-CrashPlan-app-version-11-1-release-notes
https://download.crashplan.com/installs/agent/cloud/11.1.1/2/install/CrashPlanSmb_11.1.1_2_Linux.tgz
Expected Behavior
No response
Steps To Reproduce
No response
Environment

OS:
OS version:
CPU:
Docker version:
Device model:
Browser/OS:

Container creation
Normal
Container log
[06.15.23 11:40:17.960 WARN  3756_DwldMgr 42.service.history.HistoryLogger] HISTORY:: Download of upgrade failed - version<PHONE_NUMBER>1111, connection lost.

Container inspect
No response
Anything else?
No response

Jlesage,
any update to this docker package coming soon?
Hal

Yes, I'm working on this!

Looks like the new release covers this

Correct, new image is now available.


v4 support

Thnx for this container! Any plans for adding v4 support?

Absolutely.  I'll try to add it today.

I've published a pre-release version of the container: v4.0.0-pre.1
https://github.com/felddy/weewx-docker/releases/tag/v4.0.0-pre.1
I'm currently testing it on my weather station and watching the logs.  If everything continues to look good I'll publish the v4.0.0 release in an hour or two.

This is awesome! Thnx

Would it be possible to add the mqtt plugin by default? I’m extending your container now.

The testing was without issue.  I've published the final version of v4.0.0 to docker hub.   Please open up another issue with the MQTT request.
https://github.com/felddy/weewx-docker/releases/tag/v4.0.0


Decide on opt-in or opt-out of localization

Most applications aren't localized. However, we currently automatically localize the Material widgets and the overall directionality if we recognize the user's locale.
This mostly is not a big deal except in the specific case of an app that's written in a left-to-write language, but used in a right-to-left locale by the user. When the app puts the user's RTL name into a string, the whole reading order will be flipped. For example, say they have the string 'hello $username, how are you':
An LTR app would with an LTR name would show a left-aligned: "hello fred, how are you?"
An RTL app with an LTR name would should a right-aligned: "hello fred, how are you?"
An LTR app would with an RTL name would show a left-aligned: "hello FRED, how are you?"
An RTL app would with an RTL name would show a right-aligned: "?how are you ,DERF hello"
The last one is wrong.
We should avoid this problem. We can do it in various ways, some of which include:

we could hard-code the locale in the template app to English, with a comment saying that if you localize your app you should remove that and at a minimum support all the RTL languages we support in the framework.

we could by default only support English and LTR, and require that the developer opt-in to localized strings from the specific languages they support in their app, if they want to support any.

cc @HansMuller @abarth @yjbanov

I like the opt-in model where widgets localize automatically based on Localizations.of but there's only one switch for the developer to flip to enable localization everywhere. A similar problem that @HansMuller and I discussed is whether we want a global set of supported locales for the app. It wouldn't be a good user experience if their app is only partially localized because one widget supports a different set of locales from another widget in the same app. Here too we probably want one place for the developer to control the set of supported locales.

Hans' patch where there's a defined list of supported locales seems to handle this pretty well.

I like the opt-in model too: an explicit list of locales is, well, explicit.  The developer then knows what they will need to localize their text into, and knows that we won't try and display a localization that they're not ready to coexist with.


drivers: sensor: lsm6dsl: Added support for lis3mdl as a external sensor

Added code to support lis3mdl to be used as an external sensor for lsm6dsl in sensorhub mode
This has been tested with STM32H743VIH6 MCU with LSM6DSL and LIS3MDL. LIS3MDL is connected via I2C to LSM6DSL. SD0/SA1 pin of LIS3MDL is pulled up.

Maybe you also need to write the commit header properly adding the signoff and so on. https://docs.zephyrproject.org/3.2.0/contribute/guidelines.html

@valkjsaaa pls don't forget this one

Maybe you also need to write the commit header properly adding the signoff and so on. https://docs.zephyrproject.org/3.2.0/contribute/guidelines.html

@valkjsaaa pls don't forget this one

Thanks. Fixed now

OK, I'm approving the PR based on code review only, but I'm assuming that has been tested somewhere. Can you add in the PR description a note about what h/w setup you used to test it? Thanks very much

Thanks! I have updated my hardware setup.


Function naming conventions?

I noticed a lot of function names that use underscore notations are deprecated, like buffer_name() is replaced by bufname(), but there're still new functions that use underscore notations, like reg_recording(). Just wondering if there's a standard naming convention for vim api?

I noticed a lot of function names that use underscore notations are
deprecated, like buffer_name() is replaced by bufname(), but
there're still new functions that use underscore notations, like
reg_recording(). Just wondering if there's a standard naming
convention for vim api?

It changes over time.  It's not so much about using or dropping an
underscore, but being consistent, and making it easier to find what you
are looking for.
I have added functions with a prefix, such as "term_", "timer_", "test_"
and "win_", just to make it easier to read it back.  It doesn't mean
every new function should have a prefix like that.
--
Our job was to build a computer information system for the branch banks.  We
were the perfect people for the job: Dean had seen a computer once, and I had
heard Dean talk about it.
(Scott Adams - The Dilbert principle)
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


[Enhancement Request] SliverAnimationSwitcher with transitionBuilder

Hi! Thanks for the grateful plugin.
I have used SliveAnimationSwitcher but it currently only support the fade transition. It will be beautiful if SliverAnimationSwitcher supports transitionBuilder for custom transitions like the AnimatedSwitcher.

Hi @sed1ka, SliverAnimatedSwitcher is simply a preconfigured normal AnimatedSwitcher
If you want to have a different transitionBuilder you can use the regular AnimatedSwitcher and set its layoutBuilder to SliverAnimatedSwitcher.defaultLayoutBuilder (see the docs of SliverAnimatedSwitcher)


[BUG] Calling wp.atomic_add() does not update array arg write flag.

Bug Description
Calling wp.atomic_add() from within a Warp kernel does not update the read/write flag of the array that is passed to this function. This means wp.config.verify_autograd_array_access = True does not detect array overwrites properly if this function is used.
System Information
No response

This should be fixed by 089633b16442e7a0538f8106137a0d932881248b


The searchable legend doesn't look good on Safari

input type="search" does not accept styles in the way as they passed in to it in SearchableDiscreteColorLegend;
flex: 0 for the input field of the container is not working on Safari as well.

Chrome:

Safari:

I'm going to mark this as closed, feel free to re-open


Minor doc, links edits

What changes does this PR introduce?
doc

@jrscott I would not mind, in this PR,  to add back the missing reference in KPP doc that @navidcy mentioned in
issue #543 so that this would be fixed (and could close issue once this PR is merged).

@jrscott  I looked at the changes related to missing ref in KPP code and instructions in state-estimation part  and both are good.
@jahn if you could check the changes from Travis to GitHub action it would be great.


Add Analytics

Adding Analytics will help surface what actions are used most often, whether users are able to find the appropriate settings, and overall help build a better understanding of how people use Muzei. Ideally this should also allow slicing data by what art source is currently active (to narrow down issues caused by particular sources) and help with crash reporting by allowing segmentation by device and Android version.
This could be done via Google Analytics or indirectly through Google Tag Manager (which would feed data to Google Analytics).

If you're going to do this, please show a notice on the first start after the update to let users opt out if they want.

Basic, totally anonymous analytics have been added.


Roll engine dd081bea0389..bf3af4d157cc (2 commits)

git@github.com:flutter/engine.git/compare/dd081bea0389...bf3af4d157cc
git log dd081bea0389..bf3af4d157cc --no-merges --oneline
2019-09-19<EMAIL_ADDRESS>Roll src/third_party/skia e2a903e18b59..6344cbd1df76 (3 commits) (flutter/engine#12357)
2019-09-19<EMAIL_ADDRESS>Roll src/third_party/dart cb80ea7ba9..ea969c358e (52 commits)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Auto-roller completed checks. About to merge.


[PAY HUZAIFA][HOLD ON #15212] [$1000] The 'new messages' floating indicator doesnt go away after clicking it

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open a chat with more than 50 messages (just so we can scroll 2-3 times page height)
Go to a message in the middle of the chat
Mark it as unread
Now click on the 'New Messages' floating button that should not be visible, it will scroll to bottom on click
Now scroll to top
Notice the 'New Messages' button is still there.

Expected Result:
The floating 'new messages' button should disappear after it is pressed and user is scrolled to bottom
Actual Result:
The floating 'new messages' button remains visible
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.30-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/11ae8d7b-253a-49f6-b571-c26450e9fcf5
https://github.com/Expensify/App/assets/43996225/5f5177f1-65b2-4add-9795-00bd1cfcc619
Expensify/Expensify Issue URL:
Issue reported by: @huzaifa-99
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686833432496709
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b010060f9e3fbd46
Upwork Job ID:<PHONE_NUMBER>008094208
Last Price Increase: 2023-06-22

Weird one - I can repro on v1.3.30-5.

Proposal
Please re-state the problem that we are trying to solve in this issue.

The problem is that when we press on New Messages button it takes us to the latest message but doesn't mark it as read.
Also when we scroll manually down to the latest message it doesn't mark it as read too.

What is root cause of that problem?

The root cause of this problem is that we are not setting newMarkerReportActionID as empty string when we are pressing on `New Messages`` button or when we are scrolling manually down to the latest message.

What Changes do you think we should make in order to solve the problem?
Affected File Code:

We should set newMarkerReportActionID as empty string when we are pressing on New Messages button.
https://github.com/Expensify/App/blob/e6c4b4e2f0bf9f42e57bebdd7720ee776ab6c93a/src/pages/home/report/ReportActionsView.js

    scrollToBottomAndMarkReportAsRead() {
        ReportScrollManager.scrollToBottom();
        Report.readNewestAction(this.props.report.reportID);
+       this.setState({newMarkerReportActionID: ''});
    }

And also call same function scrollToBottomAndMarkReportAsRead when we are scrolling manually down to the latest message.
https://github.com/Expensify/App/blob/e6c4b4e2f0bf9f42e57bebdd7720ee776ab6c93a/src/pages/home/report/ReportActionsView.js#L311-L314

    trackScroll({nativeEvent}) {
        this.currentScrollOffset = -nativeEvent.contentOffset.y;

+       // If the user scrolls to the top of the list, we want to mark the report as read
+       if(nativeEvent.contentOffset.y === 0 ) {
+           this.scrollToBottomAndMarkReportAsRead();
+       }

        this.toggleFloatingMessageCounter();
    }

Fixed:
https://github.com/Expensify/App/assets/78416198/8a857416-cfcf-4752-abb0-8bdd29053e33
What alternative solutions did you explore? (Optional)

N/A

In ReportActionsView.js (line 8), initialize the state property newMarkerReportActionID to an empty string:
constructor(props) {
super(props);
this.state = {
newMarkerReportActionID: ''
};
}
Inside the scrollToBottomAndMarkReportAsRead function (line 12), set newMarkerReportActionID to an empty string:
scrollToBottomAndMarkReportAsRead() {
ReportScrollManager.scrollToBottom();
Report.readNewestAction(this.props.report.reportID);
this.setState({ newMarkerReportActionID: '' });
}
In the trackScroll function (lines 20-24), check if the user has scrolled to the top of the list, and if so, call scrollToBottomAndMarkReportAsRead:
trackScroll({ nativeEvent }) {
this.currentScrollOffset = -nativeEvent.contentOffset.y;
// If the user scrolls to the top of the list, we want to mark the report as read
if (nativeEvent.contentOffset.y === 0) {
    this.scrollToBottomAndMarkReportAsRead();
}

this.toggleFloatingMessageCounter();

}
By making these modifications, when the user presses the "New Messages" button or manually scrolls to the top of the list, the scrollToBottomAndMarkReportAsRead function will be called, and the newMarkerReportActionID state will be set to an empty string, achieving the desired behavior.

@thehamzaasif please use this template for your proposal. More info about contributing guide can be read here.

Please re-state the problem that we are trying to solve in this issue.
The problem we are trying to solve is that when the user presses the "New Messages" button or manually scrolls down to the latest message in the Expensify application, the message is not marked as read. This behavior is undesirable as it can lead to confusion and difficulty in tracking unread messages.
What is the root cause of that problem?
The root cause of this problem is that the current code does not include the necessary logic to mark the message as read when the user performs these actions.
Changes:
Instead of relying on the newMarkerReportActionID state, we can modify the code to directly mark the message as read when the user triggers the "New Messages" button or manually scrolls down to the latest message. Here's an alternative approach:
In the scrollToBottomAndMarkReportAsRead function (ReportActionsView.js):
Remove the line this.setState({ newMarkerReportActionID: '' }); as we won't be using the newMarkerReportActionID state.
In the trackScroll function (ReportActionsView.js):
Remove the check for nativeEvent.contentOffset.y === 0 and the call to this.scrollToBottomAndMarkReportAsRead();.
Update the onClick handler for the "New Messages" button:
Locate the code that handles the "New Messages" button click event and add the following line after scrolling to the latest message:
Report.readNewestAction(this.props.report.reportID);
Update the code that handles manual scrolling to the latest message:
Locate the code that handles the manual scrolling event to the latest message (e.g., in a scroll event listener).
After scrolling to the latest message, add the following line:
Report.readNewestAction(this.props.report.reportID);
By making these alternative changes, the message will be marked as read directly when the user triggers the "New Messages" button or manually scrolls down to the latest message. This approach bypasses the need for the newMarkerReportActionID state and ensures that the message is correctly marked as read, addressing the problem effectively.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The 'new messages' floating indicator doesn't go away after clicking it and the scroll reaches the bottom
What is the root cause of that problem?
We are not adding isUnread check here
https://github.com/Expensify/App/blob/e6c4b4e2f0bf9f42e57bebdd7720ee776ab6c93a/src/pages/home/report/ReportActionsView.js#L343-L344
Also when the scroll reaches the bottom, we are not removing the marker and reading the newest action.
What changes do you think we should make in order to solve the problem?
We can add ReportUtils.isUnread(this.props.report) check here
https://github.com/Expensify/App/blob/e6c4b4e2f0bf9f42e57bebdd7720ee776ab6c93a/src/pages/home/report/ReportActionsView.js#L343-L344
and modify the trackScroll function to
    trackScroll({nativeEvent}) {
        this.currentScrollOffset = -nativeEvent.contentOffset.y;

        if (this.currentScrollOffset === 0) {
            Report.readNewestAction(this.props.report.reportID);
            this.setState({newMarkerReportActionID: ''});
            return;
        }

        this.toggleFloatingMessageCounter();
    }

according to this comment:
What alternative solutions did you explore? (Optional)
N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.
Once unread message is checked, the 'New Messages' indicator won't be disappeared.
What is the root cause of that problem?
The current code does not update the state - newMarkerReportActionID after unread message is checked.
What changes do you think we should make in order to solve the problem?
We can update this state - newMarkerReportActionID to check the message is checked or not.
    scrollToBottomAndMarkReportAsRead() {
        ReportScrollManager.scrollToBottom();
        Report.readNewestAction(this.props.report.reportID);
        // should update state
        this.setState({newMarkerReportActionID: ''});
    }

If the user scrolls to the top of the list, we want to mark the report as read
    trackScroll({nativeEvent}) {
        this.currentScrollOffset = -nativeEvent.contentOffset.y;
        if(nativeEvent.contentOffset.y === 0 ) {
            this.scrollToBottomAndMarkReportAsRead();
        }
        this.toggleFloatingMessageCounter();
    }

What alternative solutions did you explore? (Optional)

@fedirjh got a few proposals, could you take a look? Cheers!

Thanks for surfacing this one @fedirjh - I'll add this one to the master issue and add HOLD onto this label. I actually think I'm assigned another tracking indicator GH, and the consensus was to HOLD to see if the master issue resolved things.

On hold.

On Hold

Oh hold

Still on hold

On hold

On hold

On hold!

This should be fixed! We can retest and close this.
Here the expected result is

The unread marker is and floating button is visible unless user leaves the chat

Awesome stuff!
It looks like @huzaifa-99 needs to be paid as the bug reporter. I'll spin up a job and pay him $250. Thanks everyone!

@huzaifa-99 Upworks is error-ing out on me. Can you please apply here? https://www.upwork.com/jobs/~0114cf334b1532eb43
Thanks!

Offer sent, thanks @huzaifa-99

All paid and job closed!


Added net40 TFM to also support lower versions of .NET

I wanted to use this mime type map in my WPF applications but they are currently target .net45. So I added the .net40 target framework to support lower versions of .NET without any assembly bindings (from .NET Standard).

Thank you for your contribution.

@dbeuchler I ended up having to revert this PR. After merging it I was unable to package the project on my Windows 10 machine. I tried finding and installing various .NET 4.0 downloads and most of them refused to install due saying unnecessary or did not resolve the issue.
If you can advise how to resolve this issue and be able to compile with these changes, I'll be happy to re-open and merge again.

@samuelneff How do you execute the build? Because this project has no solution file, I executed the build with dotnet build and it works for me without any problems on my Windows 10. Which build environment are you using? The TFM net45 is also enough for me - is net45 working for you (because 4.5.2 is working)?

I use dotnet pack and net452 is working fine. Here's the full output (whitespace added for legibility).
C:\projects\MimeTypeMap>dotnet pack
Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  Restored C:\projects\MimeTypeMap\MimeTypes.csproj (in 182 ms).
C:\Program Files\dotnet\sdk\3.1.301\Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644:
  The reference assemblies for .NETFramework,Version=v4.0 were not found.
  To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application.
  You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [C:\projects\MimeTypeMap\MimeTypes.csproj]
  MimeTypes -> C:\projects\MimeTypeMap\bin\Debug\net48\MimeTypes.dll
  MimeTypes -> C:\projects\MimeTypeMap\bin\Debug\net452\MimeTypes.dll
  MimeTypes -> C:\projects\MimeTypeMap\bin\Debug\netcoreapp3.1\MimeTypes.dll
  MimeTypes -> C:\projects\MimeTypeMap\bin\Debug\netcoreapp2.2\MimeTypes.dll
  MimeTypes -> C:\projects\MimeTypeMap\bin\Debug\netstandard2.0\MimeTypes.dll

Does net45 works for you? As I know, the SDK is required on your local machine. I think it should work because net452 is already a target.


Calendar Events not loading on first load but appearing after clicking on Next and Pre button

https://dev.azure.com/sede-ds-adp/XXXXX/_apps/hub/ms-devlabs.team-calendar.team-calendar?team=XXXXXXX

Calendar is empty on first load

Then I click on Next and Prev Buttons and the events appear:

This is on Edge browser.
On chrome the events never appear even after clicking on Next and Prev buttons.
Full 404 error:
| (anonymous) | @ | Fetch.js:118
-- | -- | -- | --
  | (anonymous) | @ | Fetch.js:36
  | (anonymous) | @ | Fetch.js:17
  | a | @ | Fetch.js:8
  | Promise.then (async) |   |
  | l | @ | Fetch.js:10
  | (anonymous) | @ | Fetch.js:11
  | i | @ | Fetch.js:7
  | t.issueRequest | @ | Fetch.js:57
  | e._issueRequest | @ | RestClientBase.js:119
  | (anonymous) | @ | RestClientBase.js:86
  | Promise.then (async) |   |
  | (anonymous) | @ | RestClientBase.js:79
  | (anonymous) | @ | RestClientBase.js:36
  | (anonymous) | @ | RestClientBase.js:17
  | (anonymous) | @ | RestClientBase.js:11
  | i | @ | RestClientBase.js:7
  | e.beginRequest | @ | RestClientBase.js:76
  | (anonymous) | @ | WorkClient.js:884
  | (anonymous) | @ | WorkClient.js:46
  | (anonymous) | @ | WorkClient.js:27
  | (anonymous) | @ | WorkClient.js:21
  | a | @ | WorkClient.js:17
  | t.getTeamIterations | @ | WorkClient.js:876
  | updateUrls | @ | VSOCapacityEventSource.ts:407
  | e.initialize | @ | VSOCapacityEventSource.ts:432
  | (anonymous) | @ | Calendar.tsx:436
  | (anonymous) | @ | Calendar.tsx:49
  | (anonymous) | @ | Calendar.tsx:30
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | a | @ | Calendar.tsx:21
  | Promise.then (async) |   |
  | l | @ | Calendar.tsx:23
  | (anonymous) | @ | Calendar.tsx:24
  | s | @ | Calendar.tsx:20
  | t.initialize | @ | Calendar.tsx:356
  | t.componentDidMount | @ | Calendar.tsx:310
  | za | @ | react-dom.production.min.js:216
  | Ba | @ | react-dom.production.min.js:220
  | (anonymous) | @ | react-dom.production.min.js:250
  | t.unstable_runWithPriority | @ | scheduler.production.min.js:18
  | Ls | @ | react-dom.production.min.js:250
  | Ts | @ | react-dom.production.min.js:249
  | Es | @ | react-dom.production.min.js:248
  | ws | @ | react-dom.production.min.js:245
  | Qa | @ | react-dom.production.min.js:243
  | Ps | @ | react-dom.production.min.js:253
  | Os | @ | react-dom.production.min.js:253
  | Fs.render | @ | react-dom.production.min.js:261
  | (anonymous) | @ | react-dom.production.min.js:264
  | Cs | @ | react-dom.production.min.js:251
  | Ns | @ | react-dom.production.min.js:264
  | render | @ | react-dom.production.min.js:266
  | (anonymous) | @ | Calendar.tsx:453
  | (anonymous) | @ | Calendar.tsx:455
  | (anonymous) | @ | Calendar.tsx:456
  | n | @ | bootstrap:19
  | (anonymous) | @ | bootstrap:83
  | (anonymous) | @ | bootstrap:83

We're closing old issues so we can get back to actively maintaining the extension. Feel free to reopen if this is still an issue for you.


Decommission pool request

Adds functionality to partially sign transaction to be able to pass it to a cold wallet and sign there.
The process of decommissioning is as follows:

create a pool from hot wallet with decommission key from cold wallet
call staking-decommission-pool-request from hot wallet
copy the output and paste it to node-sign-raw-transaction command in cold wallet
copy the output and paste it to node-submit-transaction command in hot wallet to broadcast

TODOs:

[ ] generate qr for output
[ ] integrate in gui
[ ] decommission key in create pool command should not be optional
[ ] make decommission key in create pool a destination with an address, instead of a public key

I added a missing point in the description


duplicates typed text to some other files

Issue Type: Bug
when i change something in main.py, it also adds the same line in different files, i thought I just copy-pasted but i was not, it itself doing many times every time i run a script it shows this error. Fix it :)
VS Code version: Code 1.40.2 (f359dd69833dd8800b54d458f6d37ab7c78df520, 2019-11-25T14:54:40.719Z)
OS version: Linux x64 5.0.0-37-generic snap

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz (4 x 2291)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: disabled_softwareviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
1, 1, 1

Memory (System)
3.73GB (0.12GB free)

Process Argv
--force-user-env --no-sandbox --unity-launch --no-sandbox

Screen Reader
no

VM
0%

Extensions (13)

Extension
Author (truncated)
Version

vscode-sqlite
ale
0.8.1

spellright
ban
3.0.48

django-html
bib
1.3.0

vscode-markdownlint
Dav
0.32.0

vscode-postman
eri
1.0.2

shortcuts
giz
0.0.1

python
ms-
2019.11.50794

vscode-xml
red
0.9.1

LiveServer
rit
5.6.1

markdown-preview-enhanced
shd
0.5.0

html-preview-vscode
tht
0.2.5

python
tht
0.2.3

markdown-all-in-one
yzh
2.6.0

/needsMoreInfo
Is it reproducible without extensions?
You can try this with F1 and >Developer: Reload Window With Extensions Disabled

the filename is different. Actually, it happened 5-6 times with opened files in the closet tab, but not happening always, few times. I think it's just a bug.

The question is if it's a bug with editor itself or some extension. Therefore confirmation that this might happen with all extensions disabled needed.

ok I will close the issue, it like a bug, but not happening all the time. Thanks :)


Designed and Added Rapidoc logo to the Header #39

PR Description
I have Designed and Added the Rapidoc logo to the Header of the Website

Following is the Screenshot of the implementation with in the code

Checklist

[ ✔] I have gone through the [contributing guide](## PR Description
Designing and adding the Rapidoc logo to the Header of the Website

Related Issues: Issue for which you are raising a PR for

Closes #39

Issue
[#39]Add a logo for RapidDoc
Checklist

[✔ ] I have gone through the contributing guide
[ ✔] I have updated my branch and synced it with project main branch before making this PR
[ ✔] Is this a bug fix/enhancement/documentation changes

Undertaking
I declare that:

The content I am submitting is original and has not been plagiarized.
No portion of the work has been copied from any other source without proper attribution.
The work has been checked for plagiarism, and I assure its authenticity.

[✔] I have updated my branch and synced it with project main branch before making this PR
[ ✔] Is this a bug fix/enhancement/documentation changes
[ ✔] Part of GSSOC
[ ✔] Tested for any breaking changes
[✔ ] Other relevant checks completed

I understand that any violation of this undertaking may have legal consequences that I will bear and could result in the withdrawal of any recognition associated with the work.

[✔ ] I Agree

@Anishkagupta04  Can you please take a look mam ?

@varshith257 Can you please review and merge my PR sir

Thankyou for your contribution!!


Sabnzbd empty history tab

Don't know what's happening here. It worked perfectly last days, but now it's just empy. I'v got a pretty large history at the moment, around 70 items.

Hi! thanks for reporting this issue. Would you provide me with htpc-manager log. And can you go to http://ip:port/sabnzbd/GetHistory. Does anything turn up there?

http://ip:port/sabnzbd/GetHistory returns "null".
The log is showing two errors regarding sabnzbd:
modules.sabnzbd ERROR Cannot contact sabnzbd Invalid control character at: line 1 column 380 (char 379)
modules.sabnzbd ERROR Cannot contact sabnzbd Invalid control character at: line 1 column 409 (char 408)

Okei, is history the only thing that isnt working? can you grab the history data manually from sabnzbd webui and paste that to pastebin?

Indeed, history is the only thing that's not working.
You've got mail (gmail)

what mail was that? i think the one hithub shows is just a fake one, not even sure it exists.. :p

<EMAIL_ADDRESS>?

ah, thats just a dummy.

A new error in sabnzbd came up. I think the '@' isn't the problem:
2015-02-27 16:50:31 modules.sabnzbd ERROR Cannot contact sabnzbd Invalid control character at: line 1 column 7536 (char 7535)

Ok, is a probably invalid characters in the json returned from sabnzbd. I'll try to fix it later tonight.

@kooimens Can you update and try again?

Fixed! Many thanks!


Xubuntu session icon

Could you include icon for Xubuntu session? It's showing Ubuntu logo.

What do you mean? Do you mean XFCE? Xubuntu is not a window manager nor a desktop environment I don't see how it can pop up in lightdm. But XFCE should already display correctly so I don't understand your issue

Do you mean XFCE? XCFE is already present.

Xubuntu has it's own session icon, other than XFCE.

The check was looking for 'ubuntu', which matched 'xubuntu', explaining your issue. This should have been fixed in the 3.2.0.


Implement monitoring functionality

sanoid has some functionality to support monitoring, specifically by nagios.
SnapsInAZfs is planned to implement that, but in a way that can be extended for use with other monitoring systems.
The first release, however, will omit this feature, and I will plan to implement it in a point release, after the first stable release of SIAZ.
Initially, it will likely be restricted to the same nagios-based monitoring options sanoid has, but with a configuration style that will make extending it easy. As a stretch goal, if it isn't too crazy, I may have daemonized SIAZ expose SNMP variables that can be queried through standard methods.
Monitoring functionality, in general, is likely to diverge from sanoid quite significantly, once I start expanding it.
For now, this feature is on hold, as I'm assuming this feature isn't used by most users, since most or all of it can be gotten from ZFS itself or SNMP, through other means. I'm making the decision to focus on other features and deployment, first, and will get to this after the first stable release of SIAZ.

I am strongly considering not matching the sanoid functionality at all, here.
Instead, I'm leaning toward generating SNMP traps, and potentially also exposing SNMP variables, which will work with a wider range of monitoring systems without requiring extensions to SIAZ.

I've decided to go a different direction with monitoring and expose generic interfaces that can be used by a wide range of monitoring platforms.
I will be closing this issue and opening new issues for monitoring via other methods.


Make Injection vs. Pill Handling more Elegant

Make the injection logger provide unique mL vs pill and such for when the selected medication is a pill and not an injectable

Pill logging has been added for 24-hr pills.  Need some updates to deal with 12-hr doses


Added code to perform Refresh Token grant requests

I'm not trying to say my code is perfect or anything, but judging by the output logs and by reviewing other pull requests, I don't think these build tests are functioning correctly. To be honest, I'm kind of doubting that the master branch itself would pass them.

@marcusball I think you're right. In the output logs all builds fail in the same point:

Undefined index: oauth_token_secret
/home/travis/build/sudocode/ohmy-auth/src/ohmy/Auth1/Flow/ThreeLegged.php:66

Maybe something is wrong with the tests.


Fr/rediscover

Changes in DeviesAPI:

added rediscovery flag to get devies
replaced devices with get() method (similar to other APIs)
removed properties: controllers, orchestrators, edges, vsmarts -> instead now filter can be used

vManages = devices.filter(personality=Personality.VMANAGE)

fixed get_device_details and count_devices
fixed all Unittest for DevicesAPI

This issue was migrated from an old repository: https://github.com/CiscoDevNet/catalystwan/pull/118


cannot import name 'TimeNumeric' from 'astropy.time.formats'

I am trying to work with 2.0.dev.  I get the following error.  It appears that TimeNumeric can not
be imported from astropy.time.formats:
(base) [kmighell@ARSLA17110292:~/top/github/lightkurve]$ python
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.

import lightkurve as lk
Traceback (most recent call last):
File "", line 1, in
File "/Users/kmighell/top/github/lightkurve/lightkurve/init.py", line 22, in
from .time import *
File "/Users/kmighell/top/github/lightkurve/lightkurve/time.py", line 7, in
from astropy.time.formats import TimeNumeric, day_frac
ImportError: cannot import name 'TimeNumeric' from 'astropy.time.formats' (//anaconda3/lib/python3.7/site-packages/astropy/time/formats.py)

Closed the PR and submitted an issue.


Remove duplicate word

Change Summary
Remove a duplicate word "an" in docs/index.md.
Related issue number

Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[ ] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

thanks


Fix error when there is no playlist

When there is no playlist, there is an error generated which causes things to not work - and also spams the log. This fix should resolve it.

Actually, this didn't work. I don't care about the Playlist data, so I just removed it.

@JonLaliberte I have added
-currentState['playlist'] = currentPlaylist.name()
+currentState['playlist'] = currentPlaylist.name() || "";

which doesn't provide errors. The || "" means to define currentState['playlist'] as  currentPlaylist.name() if defined, otherwise ''.


Inheritance - TypeAdapter for child class is broken

Steps to Reproduce
Given this inheritance tree:

BaseUser extends HiveObject, has some HiveField-annotated properties
User extends BaseUser, has some more properties

When generating a TypeAdapter for User, its read() method is broken. It does not call the constructor with all of its arguments, that is, without the inherited properties. Strangely though, the write() method is fine and perfectly writes out all the inherited properties too.
 Note how the read and write methods don't match in the fields that they use.

class UserAdapter extends TypeAdapter<User> {
  @override
  final int typeId = 2;

  @override
  User read(BinaryReader reader) {
    final numOfFields = reader.readByte();
    final fields = <int, dynamic>{
      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
    };
    return User(
      email: fields[30] as String,
      referrer: fields[31] as String,
      location: fields[32] as Location,
      dateOfBirth: fields[33] as DateTime,
      ageVerified: fields[34] as bool,
      settings: fields[35] as UserSetting,
      notificationSettings: fields[36] as UserNotificationSetting,
    );
  }

  @override
  void write(BinaryWriter writer, User obj) {
    writer
      ..writeByte(18)
      ..writeByte(30)
      ..write(obj.email)
      ..writeByte(31)
      ..write(obj.referrer)
      ..writeByte(32)
      ..write(obj.location)
      ..writeByte(33)
      ..write(obj.dateOfBirth)
      ..writeByte(34)
      ..write(obj.ageVerified)
      ..writeByte(35)
      ..write(obj.settings)
      ..writeByte(36)
      ..write(obj.notificationSettings)
      ..writeByte(0)
      ..write(obj.id)
      ..writeByte(1)
      ..write(obj.publicId)
      ..writeByte(2)
      ..write(obj.firstName)
      ..writeByte(3)
      ..write(obj.lastName)
      ..writeByte(4)
      ..write(obj.studentVerified)
      ..writeByte(5)
      ..write(obj.gender)
      ..writeByte(6)
      ..write(obj.work)
      ..writeByte(7)
      ..write(obj.school)
      ..writeByte(8)
      ..write(obj.about)
      ..writeByte(9)
      ..write(obj.interests)
      ..writeByte(10)
      ..write(obj.pictures);
  }

// Cut some out for brevity
}

Version

Platform: iOS, Android
Flutter version: 1.22.1
Hive version: 1.4.4+1
hive_generator: 0.8.1

I should add that I'm aware of #70 where @leisim explicitly states that it should be possible to just annotate the parent class' fields, which is the approach followed here.

any update ?

Duplicate of #442


ng-projects list

Hi,
There is this side which have list of projects in angular. Do you want them to be added here http://angularexpo.com/ ?

@sumitarora  They are not open source I guess so I am not sure.

@ashish173 some of them are around 70% I think


Fix a couple of crossScalaVersions values

Current coverage is 81.43% (diff: 100%)

Merging #430 into master will increase coverage by 0.14%

@@             master       #430   diff @@
==========================================
  Files            78         78
  Lines          2101       2101
  Methods        1948       1948
  Messages          0          0
  Branches        153        153
==========================================
+ Hits           1708       1711     +3
+ Misses          393        390     -3
  Partials          0          0

Powered by Codecov. Last update f04aab2...9e3aa99


⚠ Fox Sports has degraded performance

In 20fd7b6, Fox Sports (https://foxsports.com) experienced degraded performance:

HTTP code: 200
Response time: 1263 ms

Resolved: Fox Sports performance has improved in 140d65b.


The time does not get inserted properly

When using the form ext polyfill for the input type "datetime", the time does not get inserted properly, when the hour is 12 a.m.,
For example, clicking Now has this inserted in the form field:
05/26/2015 :49
When the expected result is:
05/26/2015 12:49 AM

will fix this sunday.

Thanks.


Move API handling to common location in codebase

Collect asynchronous API methods under a new asyncs directory  (where any other future async actions can go too) so that they're not dispersed between various component files.
I'm also adding a base interface for API responses to give a type to the common JSON returned by endpoints (which can be extended for more specific responses).

This is purely a development QoL improvement, any other code changes are just formatting done by Prettier. I left the fetchers.ts file untouched since those async methods are all called statically and so don't interact with component state, etc.

I removed the base API interface from this PR in the interest of getting the code reshuffling in. Will need to revisit it and homogenise the backend responses at the same time.


review refactors

closes #287

first commit is removes the implicit conversion helper with explicit cloned() calls
the second commits splits-up the shared/types module - there are no functional changes

Looks good! Conflicts need to be resolved.

Thank you, I've resolved the conflicts


vue 3 support ?

FYI: https://github.com/AustinGil/vuetensils/search?q=vue+3&type=commits

@myomyintaung1411: Short answer is  yes. There may be some bugs though.
@danielterwiel: Thanks for the help triaging this :)


Add top bar overlay so user can't click it

#7779

this was merged to master but seems to be sticking around as a PR. closing


Question about the regression problem

Hi, I have a question about the method of regression. In section 4.2 in your paper, why use kl-divergence loss between p(yu | xin) and the scaled score (y−vl)/(vu−vl) (loss = loss_fct(logits.view(-1, 2), labels)), but not cross entropy loss? The logits and labels here are both probability distribution on the 2 polarities.
Thanks in advance!

Thanks for the question. It should be possible to use either one.

Thanks for the question. It should be possible to use either one.

Thanks for the quick reply!


Add URL parameter mechanism to automatically progress to game states

This enhancement is intended to speed up development by allowing developers to quickly jump to the game state they are currently working on.
Phaser has an API that provides for easy parsing and access to parameters that the user can provide via the web URL.
For example,
http://locahost:8081/gjweb/index.html?state=MainMenu
http://locahost:8081/gjweb/index.html?state=Game
When the Preloader state is ready to progress to the "next" state, it should look to see if the user provided the "state" parameter. If so, the value should drive the name of the state which is changed to next.
Extra credit or additional enhancement:
If possible, do a quick check to see if such a state with the supplied name exists. If it does not, issue an error message to the console error log.

Added ability to jump straight to a screen after preloader completes, by specifying state parameter in the host URL.


Panda Antivirus detected W32/Exploit.gen

Panda antivirus detected malicious code.
Is this a false positive?

Yes. Similar issue.
Even my own antivirus (bitdefender) detects the 32 bit version as a virus (but not the 64 bit version). ¯_(ツ)_/¯
But if you're really worried about it you can run from source.


Areas do not overlap with CSGs.

Godot version:
3.1

OS/device including version:
Windows 10, 10.0.17134

Issue description:

Areas do not register overlapping with CSGs that have Collision enabled.
Steps to reproduce:
Intersect an Area's CollisionShape with a StaticBody. Note that it correctly registers the Static Body as overlapping.
Now do the same thing, but use a CSG with collision enabled instead of a StaticBody. Note that the Area does NOT recognize the CSG as overlapping at all.
This minimal preproduction project has 2 Areas, one overlapping with a StaticBody, and one overlapping with a CSG. Only the one overlapping the StaticBody fires any overlap events, or recognizes that they are overlapping in get_overlapping_bodies().
Minimal reproduction project:

CSG Area Bug.zip

Probably related, signals, like body_entered, are also not triggered between a CSG and an Area.

Does #32031 solve this?

Running the minimum reproduction project in 3.2.2.stable, I get as output:
Body Entered event for AreaTest_CSG
Body Shape Entered event for AreaTest_CSG
Body Entered event for AreaTest_StaticBody
Body Shape Entered event for AreaTest_StaticBody
CSG testing Area is overlapping something.
StaticBody testing Area is overlapping something.
CSG testing Area is overlapping something.
StaticBody testing Area is overlapping something.
etc...

Looks fixed to me.


Is Data Layout configurable?

I want to cite Charm++ in a paper and try to describe and understand Charm++'s features clearly. Could you please answer the following questions for me? I have read the documentation, but still could not find the answer.

Is data layout fixed for creating 2D array? Is it column-major or row-major? https://charm.readthedocs.io/en/latest/parfum/manual.html#data-layout

How can users handle memory collection? Should users use C++'s malloc and free?

Charm++ does not prescribe data layout in memory.
Charm++ arrays are designed to provide an abstraction for interactions between objects, generally for parallelization in a distributed memory context.    How memory is used within an object is entirely up to the user.   We recommend the new/delete operators as the preferred approach for memory management in C++ applications, but Charm++ can also be use in C or Fortran, where new/delete would not be appropriate.
The ParFUM framework you reference (now deprecated) was an abstraction layer above Charm++ designed to support unstructured mesh applications.  It also made no prescription regarding data layout.


Page of ApplicationInsight packages is outdated

There have been numerous new versions since the last update of this page. It might be worth exploring some widgets so that the version numbers are pulled directly from NuGet

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

ID: abbbc531-55a4-d477-b6a0-a848dc521537
Version Independent ID: 233ca0f7-f08d-33f7-2a82-df5cc30215dc
Content: Azure Monitor Application Insights NuGet packages - Azure Monitor
Content Source: articles/azure-monitor/app/nuget.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @mrbullwinkle
Microsoft Alias: mbullwin

Thanks for your feedback @MatthewSteeples
Assigning to content author @mrbullwinkle for review.

The team decided that this page was causing unnecessary confusion without providing additional value/context and we have retired the article.

#please-close


fix(agent): correctly handle false observe values

This is a fix for https://github.com/avency/coap-cli/issues/136. The case where the observe parameter is set to false has not been handled correctly, yet, causing clients to hang after a request has been finished.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.08%) to 91.678%

Files with Coverage Reduction
New Missed Lines
%

lib/server.ts
2
86.93%

Totals

Change from base Build<PHONE_NUMBER>:
-0.08%

Covered Lines:
2838

Relevant Lines:
3053

💛  - Coveralls


Import content from pre-2007 handcrafted site

Posts were stored in the news table in MySQL.

There are about a dozen posts from 2005 to 2007.

Are you going to do this?

Yeah, I've had a DB dump around for a while, just need to glue together a query (or an insert-statement parser) and an HTML -> markdown converter.


Missing elements

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes, I have.
Description
(Write your answer here.)
This program will find out the missing elements in a series.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)
I will be opening more PRs as each program I add.

Closing the PR cause of no updates. Let me know if you would like this to be reopened.


Update description.md

Included conditional "IF" syntax.
The option of conditionally adding elements to the output has been extremely useful in my experience.
May be worth mentioning/including it

@dagutten I'm closing this to review it ourselves as it requires some editing and signing the contributor agreement. Feel free to reopen if you are thinking of tackling the suggestions.
Thanks for sharing this!!


Adopt issue template configs

So far, we use GitHub legacy markdown format for issue template. However, GitHub provides a new config feature for setting up issue template.
Also, we'd better keep bug report and enhancement while guiding questions to mailing list and/or Discussions. We can make use of https://github.com/apache/skywalking/tree/master/.github/ISSUE_TEMPLATE.
If you like this idea, I can provide a patch in days.
cc @git-hulk @ShooterIT @karelrooted

+1, really cool.

cool, thanks!


A CAMARA Cheatsheet would help API editors quickly check rules and conventions. I suggest this cheatsheet.md to be a separate document to the new slimline design guidelines (#64), and would need to be synchronised with any new or change design rules.
Example content:
CAMARA syntax cheatsheet
Case conventions

Information item
Convention
Example

API name
kebab-case
simple-edge-discovery

Path
kebab-case
/customer-segments

OperationId
camelCase
getData

Scopes
Structure: api-name:[resource:]action
Format: kebab-case, colon separated
Example: qod:qos-profiles:read
etc.
Possible evolution

Alternative solution

The cheatsheet could be incorporated into the new slimline design guidelines (#306) as an appendix.
Additional context

Hi @Kevsy,
Great idea!

Yes, think it is very useful.
Maybe could be also a good idea to reference this document in "Create Camara-OAS-Sections-Guidelines.md" PR#317 within section ## Introduction, so as the information is linked and a reader can easily find it. cc @shilpa-padgaonkar


Programmaticaly generate keyboard templates

We already have it in sym so an option to remove it from letter kb would be nice ==> more space

Took a look at the code behind. Each layout is a separate XML file. So with the current system each option we add to the layout exponentially increases the number of necessary layout files... which is not something maintainable...

@peterekepeter Maybe we need to modify the code and unify the layout files.

Yes I wanted to work on this, that's why I investigated but I noticed it would take a significant rewrite. However it is possible to do, instead of inflating the XML resource files, the view can be built programmatically using plain old Java.

But going forward with this project this should be done, it will allow much more configurability and it would also simplify the current code which takes into consideration all the different layout xml files, and it also removes dependency on the sed linux tool, which is not something you have when you develop on windows.

@peterekepeter I hope you can manage some time to start working on this. Because a customizable keyboard is a long-awaited dream for programmers :blush:

I would love to have contributors working on a rewrite! Yes, the current keyboard generation is hacky, but it requires a lot of time to rewrite (and I'm busy with college most of the time). I'll set up a project and see what I can do

I've made a basic proof of concept to see if it's doable, basically it's generating one button for the whole layout and Android OS didn't complain about it. (didn't write much Java code or android so I needed to confirm that there is a way)
I'll be taking leaving my current job soon, so I might have some time between to look at this again while searching for a new job.

In the spirit of Hacktoberfest I'll give this one a proper attempt, I've been putting it off for too long.

WIP:
This is generated from Java, It also has unit tests. But I still have a few more things to figure out, right now the keyboard size is static, as did not figure out how to get the avaialbe width and height from Android. Maybe subclassing ViewGroup will help.

Here is a link inside my new branch to the new Java classes that will be responsible for layout generation https://github.com/peterekepeter/codeboard/tree/feature/layout-builder/app/src/main/java/com/gazlaws/codeboard/layout

Nice work! TBH, I haven't taken a look at this project in a while, I'm glad that you've brought it up. I'll take a look at your fork soon (feel free to email me if it seems I've forgotten)

Aye, well I still have some work to do on it, I'll get a pull request up when the layout generator is ready. After that, the rest of the issues should be easy peasy!

Alright, keyboard size is now proportional to screen size, it's possible to set any number from 0% to 100% screen usage.

Next steps are to

make the keys generate events, right now it's just something to look at
add code for each layout
accept existing settings (theme)

And we can call the base feature done! -> we can move on to more interesting stuff, further customization and layouts.

Alright I have added all supported layout definitions to the code. There are some validation check that make sure that the layout does not throw and that each key has either a code or an output text set.

I still have some adjustments to make as it's not really compatible right now.
Fighting some bugs currently:

backspace only works one by one, one letter at a time
shift works but does not provide visual feedback
themes are not accepted
SYM key is broken

I've opened the Pull Request: https://github.com/gazlaws-dev/codeboard/pull/61

themes now work
reimplemented event handling with onToch

There are still a few things different, but functinally it's the same.

Great job!

I am also doing this, and I am already completing the customization.

I am working hard to make its shortcuts custom.

ohh, this is so that you can make in app customizations, nice


[BUG]: Stratify model node disconnection

Scenario: Model configuration
Step: 5.2/5.3
Link to the project: https://app.staging.terarium.ai/projects/9cbe3e3d-e40b-44b4-a3c4-316b7edcae2d/workflow/78196fd2-de11-4f39-9087-70f8b48e1ced

Describe the issue
After running a stratify specifically, the node seems to be unmovable
TypeError: Cannot read properties of null (reading 'emitsOptions')
    at shouldUpdateComponent (main-C5eSF_dj.js:20:63970)
    at hu (main-C5eSF_dj.js:20:49112)
    at du (main-C5eSF_dj.js:20:48748)
    at Us (main-C5eSF_dj.js:20:44674)
    at lu (main-C5eSF_dj.js:20:47828)
    at au (main-C5eSF_dj.js:20:47000)
    at tu (main-C5eSF_dj.js:20:45416)
    at Us (main-C5eSF_dj.js:20:44638)
    at ReactiveEffect.jp [as fn] (main-C5eSF_dj.js:20:49787)
    at ReactiveEffect.run (main-C5eSF_dj.js:9:1934)

https://github.com/user-attachments/assets/2c0f213d-9219-4d03-a26c-ae382652be71

This looks like it is closely related to https://github.com/DARPA-ASKEM/terarium/issues/4780 which reported the same "emitsOptions" errors and syncing problems.
Specifically with stratify, there is a gap-window when stratify is completed where we should synchronize two long-operations. The fix had been done here: https://github.com/DARPA-ASKEM/terarium/pull/4801


Protocol layer - Bounded payout; don't use reward pool

The big shift is just being able to draw against a budget instead of deploying the full pool

Want to clarify that true "Cost Per Action" behavior will occur if all claims are taken.
This approach includes enabling claim limits and a pass/fail enforcement criteria (flat reward curve).

This approach includes enabling claim limits and a pass/fail enforcement criteria (flat reward curve).

Pass/fail configuration of Likert module. We will not establish new enforcement modules until the existing ones are fully implemented in the app layer and then understood by users.

Working on v2 enforcement and payments and have come across the reality that we cannot support unlimited Submissions or unlimited Reviews.
The limit value for both of these will inform the maximum amount of payout possible per action.
This also empowers the operators to have greatest control over budget.
They can determine how much each Review will be paid, if less than the limit is reached then the remaining funds can be claimed back by the Sponsor.
In the case of Provider payments, each user will have a potential share of the total pool based on the limits. ie: $1000 in a Challenge with a limit of 10 means that each Provider can earn up to $100. If single user submits to the challenge and scores a 7/10 they may earn $70. Again, the remaining $30 + $900 can be reclaimed by the Sponsor. The amount of payment they receive relative to score can be scaled up and down... scalable likert!
In the case of the limit being met (10 users show up), the experience is similar to the Scalable Likert example we've used with the pool.

I made a tab in this spreadsheet called Localized Scalable Likert that we can play with https://docs.google.com/spreadsheets/d/1UxsEQ_EuKyUjeAgmG6XLKt9gg9sHkbLmfkCnKQaOT8g/edit?usp=sharing

Of note, there will be meaningful remainders that can be returned to Sponsors

Resolved in pending commit. Will loop back with documentation and links.

Link to spreadsheet: https://docs.google.com/spreadsheets/d/1lX4LpG3FgRGFcfRo3rwKTabu_Qk6IP9WgZQ0sNGGDcc/edit?usp=sharing


Bug: Error committing to github.

When commiting Alice to GitHub to test I get the following error.
main.admin.js:7866 TypeError: Cannot read properties of null (reading 'commit')
at GithubService.commit (main.admin.js:14812:78)
at async formSubmit (main.admin.js:7858:21)
It maps to the following line in the GitHub service. It seems like "createCommitOnBranch" is null.
latestCommit = createCommitResult.data.data.createCommitOnBranch.commit.commitUrl.split("/").pop();
Investigating and working on a fix.

This seems to happen when the commit fails but it's unclear why it's failing. I think it's a timing issue where github is running an action and it messes with the commit history somehow.

In my experience trying it again a little later has worked. Worst case you can delete the repo and the underlying commit problem will go away.
But I'm going to debug it and see if I can figure it out.


Estebanreyl/data plane 07 2019 blobs

This is a WIP PR for testing and feedback related to the addition of blob path's for the azure container registries runtime Swagger specification.

Automation for azure-sdk-for-python

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

@raych1 I can do that, what do you mean by the commit # though? This is a WIP anyway so its not a huge deal,

@estebanreyl , commit no is used to associate the CI run. Pls make it different to trigger a new CI run.

Oh I think I see. I am guessing you are referring to the first from here then? How would I make it different?

Not the first commit no, you could push a new commit.

...So just push a new commit?

That's correct.


how can I get exist consumer-group and continue consume?

Hello, Thanks to read it.
In example code, just using NewConsumer function and start consume newest.
but I'd like to call exist consumer groupId and continue consume in topic.
Is there any idea for this?

NewConsumer(addrs []string, groupID string, topics []string, config *Config) (*Consumer, error) already accepts a groupID, which you can pass an existing consumer group ID to register as a worker for that consumer group. https://godoc.org/github.com/bsm/sarama-cluster#NewConsumer

@georgeteo
thank you for replying.
but, in my case, it doesn't work...

@georgeteo
why my consumer group's current offset reset to be -1 ?
When using sarama-cluster, cluster.PartitionConsumer's offset was -1

@davidmgkang sorry, I am not following. Did you check the documentation and examples in https://godoc.org/github.com/bsm/sarama-cluster.


readme: add contributor

Adiciona contribuidor no README.

Coverage remained the same at 100.0% when pulling 466b31a194fb121bfe60259b43f17d12ec85f1fb on flyingluscas:add-contributor-readme into 154fc75a31514e44b3a4e356a82be690c4990aab on filipedeschamps:master.


M3 Performance

Hi thanks a lot for this really cool library.
I've taken it for a spin on M3, and saw on it that GEMM seemed to perform better on MPS.
Do you have any suggestions as to why ? Any way we could help ?

Apple rewrote the M3's memory architecture from scratch. This may have obviated the SIMD async copy instructions, or not; I don't know. However, MPS looks like it's not reaching optimal performance. Here is a graph from @liuliu for M3 Pro.

I do have an Apple9 device right now (iPhone 15 Pro Max), but the tests can't run on iOS right now. They have a dependency on Python for NumPy benchmarking and Matplotlib. Next summer, I'll need to use something else to visualize matmul kernel bugs and perf charts. Maybe export data to JSON and graph externally, or use SwiftUI + some Metal graphics shaders on-device.
For more context, I raised an issue on the ISA repository before M3 was released. It referred to some strange structure to MPS kernels for the never-released A16 raytracing GPU. https://github.com/dougallj/applegpu/issues/44. I might suggest increasing the accumulator size to something absurd, although that probably won't fully fix the problem.

Here are are mine.
I tried fiddling around with cache sizes but as suspected it didn't yield anything significant.

One surpising thing to me, was that reducing the number of splits to 1 for M and N, gave a much more consistent throughput for the GEMM op.
Happy to provide further test, or even try live debugging if you want to to access indirectly the M3.
Cheers.
For completeness:
GPU name: Apple M3 Max
GPU vendor: Apple
GPU core count: 40
GPU clock frequency: 1.398 GHz
GPU bandwidth: 409.6 GB/s
GPU FLOPS: 14.316 TFLOPS
GPU IPS: 7.158 TIPS
GPU system level cache: 48 MB
GPU memory: 128 GB
GPU family: Apple 8

For reference, I superimposed the M1 Max graph on Nick's M3 Max graph. The supermassive dips in MPS performance on M1 came from misuse of SIMD async copy instructions. Since the M3 MPS shaders don't use SIMD async copy, the performance is more consistent for uneven matrix sizes. However, MPS is nowhere near optimal, shown by M1 MFA outperforming M3 MPS for M=200-600.

Perhaps the SIMD async copy instructions were removed from M3, and the runtime AIR compiler replaces them with a slow emulated version. My first suggestion would be modifying the kernel to directly load from device memory, which is non-trivial (although the Metal source code is so elegant, it's easier to modify than any other implementation). Usage of SIMD async copies allows use of the 16-bit address range for threadgroup memory pointers and only temporarily materializing 64-bit pointer.

One surpising thing to me, was that reducing the number of splits to 1 for M and N, gave a much more consistent throughput for the GEMM op.

I think the MPS kernel is structured so a single SIMD group accesses an entire accumulator in isolation. The reason MFA uses splits, is so 4 simd groups can amortize the overhead of the device -> threadgroup transfer by 2 times. Also, with the M1 architecture, a single SIMD group can't access an accumulator as large as 64 x 64 x FP32 (16 KB). Getting close (48 x 48) would decrease occupancy too much. Perhaps M3 is different.

You're talking about this, right ? https://github.com/philipturner/metal-flash-attention/blob/main/Sources/GEMM.metal#L203-L216

Yeah. The 64-bit pointer is only temporarily materialized, recycling registers allocated for other data during the GEMM part.

If I understand briefly the 64x64 allocator idea, you mean increasing this buffer to 4096:
And updating the MNK_simd sizes here : https://github.com/philipturner/metal-flash-attention/blob/32592c98eff18001d4eec2c7a204e288fa92fa44/Tests/Operations/GEMM.swift#L124-L139 in order to increase the threadgroup memory size ?
I'm not super familiar with the codebase, just trying to attempt simple ideas here. If they've thrown async simd primitives you found in 14.2 out of the windows it'd be a shame, and not sure how I could help at this point.

That 1024 is just to fool the compiler. It doesn't allocate any blocks. You can increase the accumulator size by trying 64x64, 80x80, or 96x96 instead of 48x48.

I'm not super familiar with the codebase, just trying to attempt simple ideas here. If they've thrown async simd primitives you found in 14.2 out of the windows it'd be a shame, and not sure how I could help at this point.

If they threw it out of the window, it's simply unnecessary. It might require some simplifications to the GPU kernel, which might not be super hard. Just more than changing a single parameter. Requires more than a few hours of time and some familiarity with Metal. Also a new function constant to take the simplified M3 branch on newer devices, while still supporting older ones.
Attention is a more complex kernel, but the advantage over MPS is already enormous there. So the biggest issue is just fixing GEMM, which should be simpler.

Out of curiosity, what is MPS performance for Float16?

Also if it's just 1 split, you could fine-tune (40x40, 56x56, 72x72).

Apple rewrote the M3's memory architecture from scratch. This may have obviated the SIMD async copy instructions, or not; I don't know. However, MPS looks like it's not reaching optimal performance. Here is a graph from @liuliu for M3 Pro.

I wonder if we're in for another memory architecture rewrite with M4.

I doubt it. Also, M3 is not that hard, compared to M1. I just haven’t had any factor motivating me to patch up MFA yet.

https://gist.github.com/philipturner/3bda14e876a635e73745c42f2eb240c8

Closed due to the issue being stale. The entire repository has been overhauled. It targets a very large combinatorial matrix of hardware + problem size + precision + whatever features you add through programming / time dedication.


UAT | END Hearing | The judge should be able to end the hearing

Describe the bug
When Judge Join's the hearing not able to end the hearing.
To Reproduce
Steps to reproduce the behaviour:
1.Login as judge with UserName =EMP-0-000010 and password= Beehyv@123
2. Click on view Hearing Select the today's date in the calendar
3.Click on 'Join Hearing' button on any case
4. Click on 'End Hearing' Button, again click on ' End Hearing' (red button) button
5. Click on 'Set Next Hearing Date' Button
6. Select tomorrows date
7. Click on 'Generate Order' button
Expected behaviour
Next Order should generate and Hearing should end
Expected behaviour
'Generate Order' button is not working
Desktop (please complete the following information):

OS: windows
Browser : chrome

Issue is fixed, please find the reference
https://jam.dev/c/171ebbf5-d083-457f-9aa5-0c313b29cffe


Optimise find()

For zarr (v3) I'd like to locate all objects with a given prefix. This is useful, e.g., when you want to discover all nodes in a hierarchy, you can get this by listing all objects with the prefix "meta/".
The fsspec find() method seems to be the right API for this. However, IIUC, this is currently implemented via walk(), which makes multiple calls to ls(), each of which calls _do_list_objects(), each of which makes a GCS API call to list the bucket with both prefix and delimiter arguments.
Instead, could find() could be implemented more efficiently by making a single GCS list bucket request with the prefix argument only?

Apologies I haven't done any benchmarking, and may have missed something in the code, but thought I'd ask the question to get a quick sanity check.

You have a good point: this happened because walk() came first, and the default iterative implementation works for all filesystems. Actually we used to list all keys in a bucket originally, and construct the directories ourselves, but some buckets are far too big for that.
A similar conversation came up recently for s3fs.
It raises the following points:

there may be an opportunity to list files using concurrent calls and slightly different prefixes under the root prefix; assuming the naming scheme is something reasonable (e.g., `prefixes = [. Otherwise, paginating 1000 keys per call means listing everything sequentially
how would this interact with the existing directory cache, just ignore it or populate it? What if find() is called on a higher-level directory when we have some part of the listings already cached?
should ls optionally use this mode, if the user asserts they will want to delve into nested directories?

Honestly, directory management is by far the thing I've spent the most time on with gcsfs/s3fs (another recent one: https://github.com/dask/gcsfs/issues/272 ), would like to see it done rigorously and not touched again!
(cc @mariusvniekerk )

You could play with the following:
--- a/gcsfs/core.py
+++ b/gcsfs/core.py
@@ -608,7 +608,7 @@ class GCSFileSystem(AsyncFileSystem):
         self.dircache[path] = out
         return out

-    async def _do_list_objects(self, path, max_results=None):
+    async def _do_list_objects(self, path, max_results=None, delimiter="/"):
         """Object listing for the given {bucket}/{prefix}/ path."""
         bucket, prefix = self.split_path(path)
         prefix = None if not prefix else prefix.rstrip("/") + "/"
@@ -619,7 +619,7 @@ class GCSFileSystem(AsyncFileSystem):
             "GET",
             "b/{}/o/",
             bucket,
-            delimiter="/",
+            delimiter=delimiter,
             prefix=prefix,
             maxResults=max_results,
             json_out=True,
@@ -634,7 +634,7 @@ class GCSFileSystem(AsyncFileSystem):
                 "GET",
                 "b/{}/o/",
                 bucket,
-                delimiter="/",
+                delimiter=delimiter,
                 prefix=prefix,
                 maxResults=max_results,
                 pageToken=next_page_token,
@@ -972,6 +972,13 @@ class GCSFileSystem(AsyncFileSystem):
             out = set(re.findall(pattern, txt))
             raise OSError(out)

+    def find(self, path, details=False):
+        out, _ = sync(self.loop, self._do_list_objects, path, delimiter=None)
+        if details:
+            return out
+        else:
+            return [o['name'] for o in out]
+
     async def _rm(self, paths, batchsize):
         files = [p for p in paths if self.split_path(p)[1]]
         dirs = [p for p in paths if not self.split_path(p)[1]]

@rjzamora - this might interest you, as listing files can often be a bottleneck when investigating a parquet dataset in the client.
@alimanfoo , the diff above accelerated gcs.find("hermes-misc/mock_append") from 34s to 850ms.

(I tried splitting the find for the above path into 12 concurrent prefixes, and get a ~30% improvement, but sometimes much worse, doubtless depending on whether the SSL pool has expired; I suspect on my home network I'm pretty bandwidth limited at this point)

ping - I could use some input here. There are a number of approaches we could take, somewhere between the current behaviour (considering each directory separately, sequentially) to a find which completely sidesteps the cache, and inbetween the chance to set or use the cache when possible.

ping @alimanfoo


C#: Fix dictionary keys in Colors

Some colours were broken during #64817.

Thanks, I missed that they were renamed. For the reference, they were renamed in https://github.com/godotengine/godot/pull/45144.

Thanks! I missed that they were named differently in C# than in GDScript.

Actually, even though the names are consistent with the names in core, the dictionary should not use underscore (_) in its keys because we remove it in the Color.Named method.
https://github.com/godotengine/godot/blob/390333e822c95081cfbd837699c8c63370b388dc/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs#L709-L724

I missed that 😓
Shouldn't we not remove the _ for the look-up, though? In order to be able to match the constants in the documentation.

I guess it's done so that you can get the color whether you spell it ALICEBLUE or ALICE_BLUE. I'm not sure why that flexibility is needed but that's also how the find_named_color method works in GDScript.

I'll just remove all _ from the keys and accessors then.

Shouldn't we not remove the _ for the look-up, though? In order to be able to match the constants in the documentation.

I would agree if the dictionary was exposed it should use the same naming as the constants in the documentation for the keys, but it's internal.

Thanks!


Expand on windspeed transformation explanation

From Sam:

WindSpeed – I think you need to say more about how these were transformed to match NLDAS windspeeds. Maybe also report mean and stdev of both datasets before transformation?

low priroity. Just point to previous publications for this

Here is where we detailed the process: https://github.com/USGS-R/lake-temperature-model-prep/issues/353. Jordan had mentioned that he had previous experience doing this and I thought we had linked a publication but I can't find anything like that here. I might reach out to him.

maybe the publication from here? https://www.nature.com/articles/sdata201753 . best to reach out to him though

I went back to this comment from Jordan and tried to articulate what he wrote out as his steps into the process-description. Below is the potential new process description:
The GCM windspeeds were abnormally low compared to the NLDAS windspeed for the same date and location. As windspeed is an important factor in
lake temperature modeling due to its impact on mixing, the GCM windspeeds between 1981-2000 were statistically transformed, such that they
aligned with the distribution of windspeed from NLDAS. To do this, a discrete frequency distribution was created for NLDAS windspeeds between
1981-2000 based on bins of 0.1 m/s. Next, a global distribution of GCM windspeeds from 1981-2000 was generated such that the number of bins and
counts per bin matched the NLDAS distribution but the binwidth was allowed to vary. For each bin, the mean windspeed was calculated for both the
NLDAS windspeeds and the GCM windspeeds. Then, the difference between the means of each bin was calculated between the corresponding NLDAS and
GCM ranked bins. This difference was used as a bin-specific shift and applied to the GCM windspeeds for each of the three different time periods.

report mean and stdev of both datasets before transformation?

Some summary info comparing before/after for each GCM is below. I'm not sure if I want to include this along with the updated process description or not.
  metric  before after
1 mean      3.77  4.59
2 std dev   1.57  1.81

   GCM    time_period mean_before sd_before mean_after sd_after
 1 ACCESS 1981_2000          3.75      1.54       4.58     1.78
 2 ACCESS 2040_2059          3.78      1.57       4.61     1.81
 3 ACCESS 2080_2099          3.79      1.59       4.62     1.84
 4 CNRM   1981_2000          3.75      1.54       4.58     1.78
 5 CNRM   2040_2059          3.79      1.59       4.62     1.83
 6 CNRM   2080_2099          3.77      1.59       4.60     1.84
 7 GFDL   1981_2000          3.75      1.54       4.58     1.77
 8 GFDL   2040_2059          3.77      1.55       4.59     1.79
 9 GFDL   2080_2099          3.86      1.60       4.70     1.85
10 IPSL   1981_2000          3.75      1.54       4.58     1.78
11 IPSL   2040_2059          3.75      1.57       4.58     1.81
12 IPSL   2080_2099          3.79      1.61       4.62     1.86
13 MIROC5 1981_2000          3.75      1.54       4.58     1.78
14 MIROC5 2040_2059          3.73      1.56       4.55     1.80
15 MIROC5 2080_2099          3.72      1.56       4.54     1.80
16 MRI    1981_2000          3.75      1.54       4.58     1.78
17 MRI    2040_2059          3.78      1.59       4.61     1.83
18 MRI    2080_2099          3.78      1.61       4.61     1.86

The "after" is choppy because the windspeeds were transformed by discrete bins.

Code to produce these:
library(targets)
library(tidyverse)

##### FIRST, SAVE THE RDS FILES OF WINDSPEED #####

source("7_drivers_munge/src/GCM_driver_utils.R")
tar_load(gcm_data_raw_feather)
tar_load(glm_ready_gcm_data_feather)

# GCM windspeeds before:
windspeed_before <- purrr::map(gcm_data_raw_feather, function(in_file) {
  arrow::read_feather(in_file) %>%
    convert_notaro_dates() %>%
    filter(variable == 'windspeed_debias') %>%
    select(-statistic, -units, -variable) %>%
    pivot_longer(cols = -date, names_to = "cell_no", values_to = "WindSpeed_before") %>%
    mutate(GCM = gsub("7_GCM_|_1980_2099_tile[0-9]{,2}_raw.feather", "", basename(in_file)))
}) %>% bind_rows()
saveRDS(windspeed_before, 'gcm_ws_before.rds')

# GCM windspeeds after:
windspeed_after <- purrr::map(glm_ready_gcm_data_feather, function(in_file) {
  arrow::read_feather(in_file) %>%
    select(date=time, cell_no, WindSpeed_after = WindSpeed) %>%
    mutate(GCM = gsub("7_GCM_|_1980_2099_tile[0-9]{,2}_munged.feather", "", basename(in_file)))
}) %>% bind_rows()
saveRDS(windspeed_after, 'gcm_ws_after.rds')

library(tidyverse)

##### THEN, LOAD THESE IN AND SUMMARIZE/VISUALIZE #####

# Compare before/after
windspeed_before <- readRDS('gcm_ws_before.rds')
windspeed_after <- readRDS('gcm_ws_after.rds')

ws_avg_b <- mean(windspeed_before$WindSpeed_before, na.rm=TRUE)
ws_avg_a <- mean(windspeed_after$WindSpeed_after)

ws_sd_b <- sd(windspeed_before$WindSpeed_before, na.rm=TRUE)
ws_sd_a <- sd(windspeed_after$WindSpeed_after)

tibble(metric = c("mean", "std dev"),
       before = c(ws_avg_b, ws_sd_b),
       after = c(ws_avg_a, ws_sd_a))

gcm_time_summary_b <- windspeed_before %>%
  mutate(time_period = ifelse(date < as.Date('2030-01-01'), '1981_2000',
                              ifelse(date < as.Date('2070-01-01'), '2040_2059',
                                     '2080_2099'))) %>%
  group_by(GCM, time_period) %>%
  summarize(mean_before = mean(WindSpeed_before, na.rm=TRUE),
            sd_before = sd(WindSpeed_before, na.rm=TRUE))
gcm_time_summary_a <- windspeed_after %>%
  mutate(time_period = ifelse(date < as.Date('2030-01-01'), '1981_2000',
                              ifelse(date < as.Date('2070-01-01'), '2040_2059',
                                     '2080_2099'))) %>%
  group_by(GCM, time_period) %>%
  summarize(mean_after = mean(WindSpeed_after, na.rm=TRUE),
            sd_after = sd(WindSpeed_after, na.rm=TRUE))

gcm_time_summary <- left_join(gcm_time_summary_b, gcm_time_summary_a)
gcm_time_summary_long <- gcm_time_summary %>%
  pivot_longer(cols = c(starts_with('mean'), starts_with('sd')), names_to = 'stat_bef.aft') %>%
  separate(stat_bef.aft, into = c('stat', 'bef.aft'), sep='_') %>%
  # pivot_wider(id_cols = c(GCM, time_period, bef.aft), names_from = stat) %>%
  mutate(bef.aft = factor(bef.aft, levels=c('before', 'after'), ordered = TRUE))

ggplot(gcm_time_summary_long, aes(x = GCM, y = value, fill = bef.aft)) +
  geom_bar(stat = 'identity', position='dodge') +
  facet_grid(stat ~ time_period) +
  # scale_fill_manual(values = c('red', 'blue'))
  scico::scale_fill_scico_d(begin = 0.25, end = 0.75) +
  theme(axis.text.x = element_text(angle = -45, hjust=0, vjust=0.5),
        legend.title = element_blank())

# Density plot
ws_density_b <- density(windspeed_before$WindSpeed_before, na.rm=TRUE)
ws_density_a <- density(windspeed_after$WindSpeed_after)
plot(ws_density_b, col='#225B60', main = 'Frequency distribution comparison')
lines(ws_density_a, col='#F49E71')

# Cumulative density plot
ws_ecdf_b <- ecdf(windspeed_before$WindSpeed_before)
ws_ecdf_a <- ecdf(windspeed_after$WindSpeed_after)
plot(ws_ecdf_b, col='#225B60', main = 'Cumulative density comparison')
lines(ws_ecdf_a, col='#F49E71')

I think the explanation looks good and is sufficient. You could also add another sentence that says something like, "On average, GCM mean windspeed increased by 0.82 m/s (22%) and standard deviation of windspeed increased by 0.24 m/s (15%)."