Switch to README.md for better rendering on github

removes reference links from table
adds mermaid flow diagram to README
makes some tweaks to the README text

Fixes #37, #48 .

@macandleighs I went ahead and made a branch for adding the flow diagram, since it takes a couple of configuration changes I didn't want to "lose my place" on.
There's a placeholder mermaid-syntax flow diagram in the README.md right now.

It doesn't seem to be possible to render the flowchart on both GitHub and RTD without one of the two failing, mostly because the syntax differs (```{mermaid}``` for sphinxcontrib.mermaid and ```mermaid``` for the GitHub MD parser).
Including the flow diagram directly in the README.* such that it renders properly on GitHub is going to fail to render on RTD. We can, though, exclude the flow diagram from the README.* and still display it somewhere on the RTD frontpage. I added a "Choosing the Detector" page to the TOC for the sphinx documentation, and made note of it in the README.md.

@tms-bananaquit Might want to rebase, then clean out the redundant "X example" headings in the notebooks so we have Concept Drift Detector Examples > Linear Four Rates (LFR) Example instead of the current state of dev.


Session saver

How does the session saver works? Does it have some automatic features or is it all manual (aka it only saves session when you press the button)? If it's all manual could you add features to save the session when closing firefox and/or every "x" amount of time?

Its automatic when you enable session synchronization in preferences, and then click the sync button next to a session in the session manager. I think this flow is too complicated though, and should be hassle-free.


Rebranding from pyomnisci to heavyai

cc @tmostak @mikehinchey
I will reserve the name on PyPi. I will see if I can push a feedstock for conda too (less sure here). Once it's done, there is pyomniscidb to migrate.

@pearu, the tests run on both CPU and GPU now. I cleaned a bit the CI to get there. There are 2 unrelated failures. I think for now it's ok and I can improve this in follow ups. IMO nothing would be blocking a release now.

I restored the old name in the Jenkins config to see the CI. Merging since the CI failures are not related. I will do some follow up PR now to fix these.


this is a test

Please don't test on public repos!  Not helpful to anyone 😟


Update the official Ramses repository

Hello,
Ramses moved to Github!  cf. https://ramses.cnrs.fr/ramses-moves-to-github/
Cheers,
Noé.

The build failure seems unrelated to the changes. Some update in pint maybe?


Collection was modified; enumeration operation may not execute

Describe the bug
While filling a collection with thousands of entries, the DataGrid causes an unhandled exception when re-assigning the collection to a new object.
To Reproduce

Bind a collection to the DataGrid
Fill the collection (as fast as possible) with entries
While filling the collection, re-assign the collection to a new instance and raise 'PropertyChanged'

ViewModel
            NetworkPackets = new ObservableCollection<NetworkPacket>(relevantPackets);
            this.RaisePropertyChanged(nameof(NetworkPackets));

View
    <DataGrid Items="{Binding NetworkPackets, Mode=OneWay}" />
Edit: Problem does not occur less when executing on the UI thread:
            Avalognia.UIThread....(() =>
            {
                     NetworkPackets = new ObservableCollection<NetworkPacket>(relevantPackets);
                     this.RaisePropertyChanged(nameof(NetworkPackets));
           }

Expected behavior
The DataGrid should display the collection's new data.
Screenshots

Desktop (please complete the following information):

OS: Windows
Version: 0.10.2
DataGrid: 0.10.2

Additional context
I tried not to assign a new object to the collection in first place. With the help of this observablecollection one can add/remove a range of objects. But removing + adding more than one entry won't be reflected within the Grid. The DataGrid will (e.g.: after collection.Clear(); collection.AddRange()) only show one entry, even thought the collection has more than 1 entry. (I guess this would be another bug, similar to this issue)
Here might be issue located
https://github.com/AvaloniaUI/Avalonia/blob/ef39b9487897fe5a7ae9c4502f0e8ce05c8f4612/src/Avalonia.Controls.DataGrid/Collections/DataGridCollectionView.cs#L2683
System.InvalidOperationException
  HResult=0x80131509
  Message=Collection was modified; enumeration operation may not execute.
  Source=System.Private.CoreLib
  StackTrace:
   at System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
   at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at Avalonia.Collections.DataGridCollectionView.CopySourceToInternalList() in /_/src/Avalonia.Controls.DataGrid/Collections/DataGridCollectionView.cs:line 2683
   at Avalonia.Collections.DataGridCollectionView..ctor(IEnumerable source, Boolean isDataSorted, Boolean isDataInGroupOrder) in /_/src/Avalonia.Controls.DataGrid/Collections/DataGridCollectionView.cs:line 225
   at Avalonia.Collections.DataGridCollectionView..ctor(IEnumerable source) in /_/src/Avalonia.Controls.DataGrid/Collections/DataGridCollectionView.cs:line 204
   at Avalonia.Controls.DataGridDataConnection.CreateView(IEnumerable source) in /_/src/Avalonia.Controls.DataGrid/DataGridDataConnection.cs:line 466
   at Avalonia.Controls.DataGrid.OnItemsPropertyChanged(AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Controls.DataGrid/DataGrid.cs:line 811
   at Avalonia.Controls.DataGrid.<>c.<.cctor>b__223_0(DataGrid x, AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Controls.DataGrid/DataGrid.cs:line 669
   at System.Reactive.Subjects.Subject`1.OnNext(T value) in /_/Rx.NET/Source/src/System.Reactive/Subjects/Subject.cs:line 149
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaPropertyChangedEventArgs`1 change) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 758
   at Avalonia.AvaloniaObject.SetAndRaise[T](AvaloniaProperty`1 property, T& field, T value) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 701
   at Avalonia.Controls.DataGrid.set_Items(IEnumerable value) in /_/src/Avalonia.Controls.DataGrid/DataGrid.cs:line 622
   at Avalonia.Controls.DataGrid.<>c.<.cctor>b__223_29(DataGrid o, IEnumerable v) in /_/src/Avalonia.Controls.DataGrid/DataGrid.cs:line 614
   at Avalonia.AvaloniaObject.SetDirectValueUnchecked[T](DirectPropertyBase`1 property, BindingValue`1 value) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 835
   at Avalonia.AvaloniaObject.DirectBindingSubscription`1.<>c__DisplayClass7_0.<OnNext>b__0() in /_/src/Avalonia.Base/AvaloniaObject.cs:line 936
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
   at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/Win32Platform.cs:line 210
   at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
   at Avalonia.Win32.Win32Platform.RunLoop(CancellationToken cancellationToken) in /_/src/Windows/Avalonia.Win32/Win32Platform.cs:line 157
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 62
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 117
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 148
   at Dji.UI.Program.Main(String[] args) in C:\NAS\Personal\JKU\SS21\Master's Thesis\Software\Dji-Network\Dji.UI\Program.cs:line 13

It sounds like from your description, that you using AddRange from the ObservableRangeCollection class you linked to, is this correct?
If so, I suspect this is because the DataGrid was ported from the Silverlight Toolkit - WPF and Silverlight do not work well with adding/removing more than one item from an ObservableCollection (in fact there was pushback on even adding those methods to ObservableCollection for .NET because WPF doesn't like it: https://github.com/dotnet/runtime/issues/18087)

Oh wait, you're saying that using AddRange was how you tried to work around the problem, and not the actual problem, right?

Sorry for the vague description in first place. I do use a custom (not the in the link provided ObservableRangeCollection, but similar) implementation for adding and removing bulk items. With that said, the DataGrid has its own characteristic and doesn't quite like adding or removing ranges.

Adding more than 1 item with .AddRange will sometimes result in no UI update at all. This especially happens if you try to add more than 10k items at once. There is a magic boundary while adding bulk items. More than X items won't result in an UI update
.Clear or .RemoveRange followed by a .AddRange will result in a completely strange behaviour. Most of the time the DataGrid end ups only showing one item.

With that said, when dealing with huge data updates (adding or removing more than 10k items) I ended up with re-defining the observablecollection and call notifyproperty changed. See my original post:

  NetworkPackets = new ObservableCollection<NetworkPacket>(relevantPackets);
        this.RaisePropertyChanged(nameof(NetworkPackets));

This does work (the DataGrid updates as it should, even thought with some side-effects like losing sorting) but sometimes Avalonia throws an exception. My personal guess is, that I do re-assign the (in my case NetworckPackets) collection in a timeframe whereas avalonia tries to build up its internal UI tree.

Problem with AddRange was fixed, so it supposed to work properly without replacing whole collection which is suboptimal
https://github.com/AvaloniaUI/Avalonia/pull/9135


Added extracting of country and 5 digit ZIP codes

Country codes specified in data /country_list.csv
zip codes are only for US 5 digit codes

Hello @gkowalski! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file server/openapi_server/controllers/health_controller.py:

Line 18:16: E201 whitespace after '{'
Line 18:25: E203 whitespace before ':'
Line 18:34: E202 whitespace before '}'

In the file server/openapi_server/controllers/physical_address_controller.py:

Line 47:80: E501 line too long (93 > 79 characters)

This PR depends on #8


pip install --pre onnxruntime-genai

ERROR: Could not find a version that satisfies the requirement onnxruntime-genai (from versions: none)
ERROR: No matching distribution found for onnxruntime-genai
### Tasks

Could you try updating the pip.   pip install --upgrade pip

您发的邮件我已收到，宋晓利，谢谢

Same here, can't install it

What is your Python version and what do you see when you run the following Python code?
import platform
print(platform.machine())
print(platform.version())
print(platform.platform())
print(platform.system())
print(platform.processor())

Closing due to inactivity. Please re-open if you continue to see this issue

您发的邮件我已收到，宋晓利，谢谢


I can't see the performance improvement

Hello,
I wrote a little test to see the difference of performance between snabbdom and a regular DOM modification but it seems that my test is wrong somehow: the regular DOM modification is way faster than snabbdom...
Here is my code:
const snabbdom = require('snabbdom');
const patch = snabbdom.init([ // Init patch function with chosen modules
  require('snabbdom/modules/class').default, // makes it easy to toggle classes
  require('snabbdom/modules/props').default, // for setting properties on DOM elements
  require('snabbdom/modules/style').default, // handles styling on elements with support for animations
  require('snabbdom/modules/eventlisteners').default, // attaches event listeners
]);
const h = require('snabbdom/h').default; // helper function for creating vnodes

let root = document.getElementById('root');
let count = 0
let delay = 10000
let time

time = new Date().getTime()
for (count = 0; count < delay; count++) {
  let vnode = h('div#root', h('p', count));
  patch(root, vnode)
}
console.log(new Date().getTime() - time)

time = new Date().getTime()
for (count = 0; count < delay; count++) {
  let el = document.createElement('p')
  el.textContent = count
  root.appendChild(el)
}
console.log(new Date().getTime() - time)

The first log will be something like 50-60 while the second will be something like 10-20.
What have I missed?

Snabbdom can not be faster then regular DOM because it uses regular DOM. It also does selector parsing, virtual DOM generation and comparison etc.
So real DOM is faster.
But real world requires something more difficult than a lot of "p" elements. So it can be much more difficult to write a good code using regular DOM. Also if you try to write difficult logic with regular DOM you will see that snabbdom most probably will be faster.
Because if you have a difficult logics, then snabbdom will avoid extra changes on real DOM, but you "regular DOM" code does a lot of them.
So if you want to compare - make real world test.

Closing this, because it's not actionable.


Support install operator using iib (index image)

/verified

/verified

/verified

/cherry-pick v4.14

/cherry-pick v4.14

/cherry-pick v4.13


Support comments on annotations.

Planned CAS updates to support this are detailed in Option 1 here https://github.com/cellannotation/cell-annotation-schema/issues/100#issuecomment-1964287672
Proposal for UI:

Each row in the annotation table has a button for comments.  This opens a table with any existing comments to which users can add additional rows. Each row has the following columns.

  time:  (autofilled)
  name: (autofilled)
  review: "String. Either “Agree” or “Disagree”. This records whether the user agreed or disagreed."
  explanation: "Free-text of the message explaining the reasoning why the user disagreed. If “Agree”, then put in NA."

Implementation:
In table - indicate whether comments are present and whether review is good or bad (green/red).  Should be at beginning of row.
In Edit view - display all reviews.
Add review button - pops up a review window.

Completed with https://github.com/brain-bican/taxonomy-development-tools/pull/166

https://brain-bican.github.io/taxonomy-development-tools/Review/


Sync Issues When Downloading and Merging Live Videos

Hello,
When trying to download a live video via 'N_m3u8DL-RE "URL" --save-name "output" --no-log --live-real-time-merge --live-pipe-mux',
it downloads the live video, but the audio and video are out of sync. Generally, when downloading normal videos with defined timestamps, everything is okay. However, this issue only occurs with live videos.
I want to add that when I download a live video without '--live-pipe-mux' and then stream the two files '.mp4' and '.m4a', everything works great. But when I try to merge the files (with ffmpeg or mkvmerge), the merged video lacks audio and video sync (even after the live broadcast).
Thank you.

I've discovered a solution to the issue. It seems that the problem occurs with certain types of live videos, while others work fine. For those problematic live video types, I found that using the following command fixed the issue:
ffmpeg -readrate 1 -i "INPUT_VIDEO_FILE_NAME.mp4" -i -ss 1.2 "INPUT_AUDIO_FILE_NAME.m4a" -c copy "OUTPUT_VIDEO_FILE_NAME.ts"

This command adjusts the synchronization and resolves the audio-video sync problem effectively.


Create binary_search implementation in java

Create binary_search implementation in java as issue #48

Thanks for contributing! 😄


feat: Support for protocolVersion-based runtime matching

Motivation
A protocolVersions list was recently added to the common ServingRuntime CRD, so that this can be taken into account when selecting a suitable runtime for a predictors that specify a protocol version.
Modifications

Add protocolVersion field to Predictor CRD as well as conversion to/from corresponding InferenceService fields
Update the existing controller logic that orchestrates the model-mesh type constraints configuration to take into account the ServingRuntime protocolVersions list in addition to the existing supportedModelFormats list

This also takes into account whether the REST proxy is enabled in the global config - if so, V2 (REST) will be also included for any runtime declaring support for GRPCV2

Update built-in runtimes and unit tests accordingly

Result
The runtime placement behaviour of model-mesh based predictors works as expected when they include a protocol version.
Supports https://github.com/kserve/kserve/issues/2065
Signed-off-by: Nick Hill<EMAIL_ADDRESS>

This is not fully functional yet since we first need to add the protocolVersions list to the Predictor CRD.

Dev changes now complete but FVT failures need debugging.

Thanks for the review @tjohnson31415. I've addressed the comments, PTAL.

Having the REST proxy flag implicitly add supported protocol versions to the runtimes is a little awkward.

I agree. Ideally we'll add regular HTTP support to modelmesh and eliminate the need for the proxy.

/approve
/lgtm


chore(main): release 1.19.0

:rocket: New release
1.19.0 (2024-12-14)
:sparkles: Features

add threads social media icon (#255) (090b3e8)

:bug: Bug Fixes

corrected French translations in Markdown guide and i18n file (#263) (42095be)

:hammer: Housekeeping

add Multilingual tag to theme.toml [skip ci] (ac5a2ab)
deps: update codelytv/pr-size-labeler action to v1.10.2 (#259) (2391188)
readme: add website to readme (#261) (2ea9420)
update devcontainer.json (#264) (19cf68f)

:memo: Documentation

add missing chdir commands in setup section (#247) (#250) (e35e758)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/hugo-sid/hugo-blog-awesome/releases/tag/v1.19.0 :sunflower:


Allow reloading with non POST methods

The /-/reload endpoint only works with the POST method. It would possibly make more sense to allow other methods too like PUT.
https://github.com/prometheus/prometheus/blob/7c8f0b08647f1ac5f9608069678b4a01c6e79866/web/web.go#L313
The reasoning is that POST by definition produces different side effects each time it is run (like create new resources under REST) compared to PUT which you can supposedly safely fire multiple times.
Technically my problem is when trying to reload prometheus with a python program and urllib3 refuses to retry POST requests when there's a read error (specifically) since resending a POST when the server may have already received is a no no although it's not really a problem in config reloading.
https://github.com/urllib3/urllib3/blob/2a0957ea27e966166f81f88693af8e2f87d19fb6/src/urllib3/util/retry.py#L97-L104
PS: I'm also suggesting to just add the PUT instead of replacing the POST just for compatibility reasons, I'm sure many would take issue with such an API change.

Longer term we plan on switching this to PUT for XSRF reasons, so supporting both now would make sense.

Technically my problem is when trying to reload prometheus with a python program and urllib3 refuses to retry POST requests when there's a read error

Is that supported by the RFCs?

TBH I have no idea what RFCs say about this but it does make sense IMHO.

@brian-brazil can I work on this?

Sure

With the PR merged, this issue should be considered for closing.


Bug: Event forwarding to a popped state not working

Expected: to see the last printed output to be "Saw B in A"
Actual: last printed output is "enter S0"
#TestTransitionAndEventForwardingToPoppedContext

    -interface-
    A
    B
    -machine-

    $S0
        |>| print("enter S0") ^
        |<| print("exit S0") ^
        |A| $$[+] -> $S1 ^
        |B| print("Saw B in A") ^

    $S1
        |>| print("enter S1") ^
        |<| print("exit S1") ^
        |B| -> => $$[-] ^

    -actions-

    print [msg] {
        ```
        print(msg)
        ```
    }

##

I think this is now fixed in c9f0e6119df2b5e05532fb14229139aa61bae756. Please confirm and add new test.


Input masking for password

resolves #106

Thanks!! I noticed one small issue: yofi dialog -h doesn't show the -P option.


[TODO] Blackify all files

What is needing to be done currently?
Currently, all files have different PEP8 conventions, because they've all been decided on my mood and how I was feeling to "obey PEP8" that day. So, with Black, the formatting would be much more regular, which is what we want.
Why aren't you doing it right now? >:(
I'm pretty lazy, plus I'm studying electronics rn.

'léctronic sné

make the line length 89 or death

nah man
On Wed, Nov 24, 2021 at 8:18 PM Sheepy @.***> wrote:

make the line length 89 or death
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/SSS-Says-Snek/hisock/issues/17#issuecomment-978743783,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQUDGI7C3GGALBZ32CJ7PV3UNWMIPANCNFSM5IU6LNXA
.

done


ebs optimized data is wrong for r4.large (at least)

Hi,
According to https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html#ebs-optimization-support, EBS Optimized is available for the r4.large instance type, but the site has this incorrectly listed as false.

I'm now seeing values present for r4.large for the following columns:

EBS Optimized: Max Bandwidth
EBS Optimized: Max Throughput (128K)
EBS Optimized: Max IOPS (16K)

I believe that things have been updated/expanded since this is issue was opened so I'm closing this as I believe its since been resolved.


Writing a zero-length object discards s3 kwargs

Description
Additional kwargs which are intended to be passed along to low-level S3 code are ignored when writing a zero-length file. This behavior causes headers such as ContentMD5 to be silently ignored.
Reproduction steps
s3fs = S3FileSystem()
s3_kwargs = {"ContentMD5": "BOGUS"}
with s3fs.open(path, "wb", **s3_kwargs) as fout:
  fout.write(io.BytesIO(b"")

# An OSError should be raised when attempting to PUT zero bytes with a bogus MD5

Analysis
It appears S3File.touch() is called when the library handles writing a zero-length buffer, but this call does not include kwargs which might have been passed to S3FileSystem.open():
https://github.com/fsspec/s3fs/blob/2c074502c2d6a9be0d3f05eb678f4cc5add2e7e5/s3fs/core.py#L2297

It sounds like a simple fix should be possible, and easy to test too - would you like to provide it?

I believe this is fixed on main


Grow the community to have our changes to MariaDB necessary to do this integrated into the primary source code

Fahad Zaheer

hey I'm Urooj Fatima. Excited for this project

Hello, Its Syed Umer Tariq !!

Hi, I am the new Operations Manager Steve from Vancouver Team.

Hi! It's Rafsun.

Hi! I'm Abdul Manan. I'm excited to work on this project!

Hi! I am Abdullah. Excited for this project !!

Hi! I am Waleed, excited to work on this project

Hi,
Jawad Ali here
Excited

The best way for growing our following and community to inculcate our changes in Mariadb primary source code is to take a push from other successful projects which contributors on this project have done previously like AGE on postgresql if we can prove how successful AGE extension has been on postgresql then we will have to make less efforts on proving its worth on mariadb.
At the same point we need to increase our following on different social platforms like twitter, LinkedIn, stack overflow to witness growth in community.

Growing the community and getting our changes integrated into the primary source code will require a lot of hard work.
Identifying the problem we are trying to solve and it would also be important that our changes align with the objectives of the maria db project and it provides community a chance to grow.
Creating a proposal with the benefit of our changes explicitly mentioned in it.
Sharing the proposal with community and getting feedback from other developers and user.
Once we have cleared the proposal and have done taking the feedback from users we can move towards the implementation of what we proposed.
Once the code is Implemented we can move towards the testing of the code. Using automated tools and manual testing to ensure that your changes do not negatively impact the community.
Submitting a pull request to maria db development team with a complete description of what changes we have made in the source code.

Growing the community around this MariaDB extension is essential to increase the chances of having our changes integrated into the primary source code. To achieve this, you need to engage with the MariaDB community, publicize our project, encourage contributions, provide support, and recognize contributions. By engaging with the community, we can establish relationships and increase the visibility of our project. Encouraging contributions and providing support can help build a positive and supportive community. Recognizing contributions can motivate contributors and increase their sense of ownership and engagement in your project. By following these tips, we can attract new contributors and increase the chances of having your changes integrated into the primary source code of MariaDB.

To integrate our changes into the primary source code of MariaDB, we need to engage with the community and publicize our project. We should encourage contributions, provide support, and recognize contributions to build a positive and supportive community. Our changes should align with the objectives of MariaDB, and we should create a proposal highlighting the benefits of our changes. After getting feedback from users and implementing the changes, we should test them thoroughly and submit a pull request to the MariaDB development team. We can also leverage the success of similar projects, such as AGE on PostgreSQL, to demonstrate the potential value of our extension. Additionally, we should increase our presence on various social platforms to attract more contributors and grow our community.

The best way to grow a community is to do authentic things and try to test everything before integrating it into the actual repository so that we can come up with the best things in the end.


Chrome freezing / high CPU usage when extension is active

Hi!
I've been having a problem with a huge CPU footprint on every page load on Strava since I first tried Stravistx and it unfortunately makes Strava browsing unbearable for my part. I have to keep the extension disabled, which is a shame. Problem persists even on a clean os install on a new computer.
As soon as I activate the extension and load a page on Strava CPU usage goes from < 30% to > 100%, and I get a UI freeze with a beachball for a couple of seconds. If i disable it, it's fine again.
Unfortunately, I can't do a screen recording while this happens. It's a bit too laggy and the beachball isn't visible, so I had to do a "manual" screen recording with my phone. Not the best way of showing it, especially on the slow connection I'm using atm, but at least it gives you a hint of what I'm experiencing.
First half of the video shows some page reloads with the extension disabled, second half with it enabled: https://youtu.be/s6IVCWpw6ZI
Plugin version: 6.4.1
Chrome version: 68.0.3440.84 (Official Build) (64-bit)
OS version: OS X 10.13.15

@mattiasottosson Thanks for the report with video
A shame ?! 😮 😃
Do you have same behaviour with another clean chrome user/profile? Or chromium standalone build?Or even opera (you can install chrome extension into opera).
What's your Mac hardware? I can't reproduce it on Windows 10 or Debian 9. No OSX at home for me :(
Keep me up to date.
Thanks,
Tom

@mattiasottosson Good news! Don't worry man :)


examples: Fix xdp-drop, xdp-log using incorrect fn name

@dave-tucker does this still need merging?

@dave-tucker does this still need merging?

yes, see issue https://github.com/aya-rs/book/issues/140


Bring back lost reference files for Greengenes 13.8

I think the switch from sepp-ref git repo to bioconda package of sepp caused loosing the Greengenes 13.8 default reference files.
We now need to manually add them during the q2 package creation.

Hey there @sjanssen2, the build is still failing:
https://busywork.qiime2.org/teams/main/pipelines/master-distribution/jobs/build-q2-fragment-insertion/builds/5
I can take a look tomorrow or Thursday, if you don't get to it by then.


Issue with python emotion_recognition.py train

Hey,
I'm trying to replicate the training process. I ran the cvs_to_numpy.py script and have the data_kike.npy and labels_kike.npy files within the data folder. When I run python emotion_recognition.py I get "IOError: [Errno 2] No such file or directory: './data/data_set_fer2013.npy'".
How do I go about getting that file/the other files in the constants.py.

For convenience, I just make data_kike as train and test data, similarly, make labels_kike into train and test label.

@mysayalHan how you do it?


Which op_types does QAT support?

Hi,
I am trying QAT and I would like to know whether QAT supports op_types like Conv1d, ConvTranspose2d, PReLU and Sigmoid? Or it only supports Conv2d, Linear and ReLU.
Thank you!

Hello @haoshuai-orka , we have not tested on those module types, but I think QAT is supports those types, if you meet any issue, let us know and we will fix it.

Closing the issue as the question has been answered.
@haoshuai-orka - thanks for raising the question, wondering how things going with your QAT experiment, highly appreciated to keep us posted with your findings.


Add opencollective payment POST /pay endpoint

This pull request implements the POST /pay endpoint as part of https://github.com/osscameroon/jobsika/issues/366
Why ?
We want to allow jobsika users to create new job offers only once they have paid for the service.
Steps to verify:

move to the backend folder with cd ./backend
you need to get an api-key from open-collective, find out more
cp .opencollective-env-example .opencollective-env
add you api key to the .opencollective-env
run make start-api to start the api
then run the command curl -vsS -X POST -H 'Content-Type: application/json' -d<EMAIL_ADDRESS>"tier": "je suis con"}' http://localhost:7000/pay | jq you should see something like this

{
  "tier_url": "https://opencollective.com/osscameroon/contribute/jobsika-joboffer-56908"
}

The tier_url is the link to the newly created payment tier.

We can now create a tier using the open collective API and return the URL of that tier to the client.
Next, we want to:

[ ] Store the job_offer id associated with that payment request. We will use that ID to create the URL the customer will use to update their job_offer. (Add a joboffer_id field in the POST /pay Json body.
[ ] Setup a webhook that will be notified once the payment is made and send an email to the customer with a link to update
[ ] Delete the tier once the payment is done
[ ] Delete the tier after 30 minutes


fix: Respect the knexfile stub option while generating a migration

Thanks! Could you please add test in https://github.com/tgriesser/knex/blob/master/test/cli/migrate-make.spec.js for this case?

@kibertoad , thanks for the tests and the release, I had no time this week to implement test cases


Add last Utility

I implemented the last utility in https://github.com/uutils/util-linux/issues/18.
Limitations

I only implemented support for Unix
Several flags from GNU last were not implemented.
There are some slight output differences between GNU last and this implementation. They can be easily cleared up given more time. For example GNU last prints the relative time since the last crash, while this doesn't do that quite yet.

Tests
I added some tests too to go along with the PR.  They are kind of simplistic though in that they only do a check to verify there was some output. The timestamp checks only do a simplistic regex check on the output.

i guess you saw it but the builds are failing

Windows and macOS is still broken. I'll work on fixing those. I will also fix the still existing linting issues.

It looks like I have everything working now. The existing errors appear to be from other utilities.
failures:     test_mountpoint::test_invalid_arg     test_rev::test_invalid_arg

dunno if it is hard to do but could you please add tests with an invalid /var/log/wtmp to check that the error management is properly done ? thanks

Added one test so far that matches the behavior with the linux org implementation. That seems like the only test I could get working so far. There were some discrepancies I noticed that I think are beyond my implementation, and involve the UtmpxIter code.
For example, if you have a file of arbitrary bytes (Say a file of one long string of all 'a' characters) which can fit into Utmpx struct, the linux org implementation is able to read it into the fields and display it. However, with our implementation, it does not load any of them into a struct, and so displays nothing.

a bunch of jobs are failing, could you please have a look?
Like:

error: length comparison to zero
   --> src/uu/last/src/platform/unix.rs:190:16
    |
190 |             if ut_stack.len() == 0 {
    |                ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `ut_stack.is_empty()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero
    = note: `-D clippy::len-zero` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::len_zero)]`

error: useless conversion to the same type: `i64`
   --> src/uu/last/src/platform/unix.rs:275:62
    |
275 |         let time = time::OffsetDateTime::from_unix_timestamp(secs.into())
    |                                                              ^^^^^^^^^^^ help: consider removing `.into()`: `secs`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
    = note: `-D clippy::useless-conversion` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::useless_conversion)]`

error: useless conversion to the same type: `u64`
   --> src/uu/last/src/platform/unix.rs:277:36
    |
277 |             + Duration::from_nanos(nsecs.into());
    |                                    ^^^^^^^^^^^^ help: consider removing `.into()`: `nsecs`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion

error: useless conversion to the same type: `uucore::utmpx::time::OffsetDateTime`
   --> src/uu/last/src/platform/unix.rs:284:13
    |
284 |             OffsetDateTime::from(time).replace_offset(offset) + Duration::from_secs(offset_secs);
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `OffsetDateTime::from()`: `time`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion

@Puffy1215 ping?


SAK-43712 Fix regression in members who have not visited site

Fixes a regression where reports with WHO_NONE generate a query with userId = '' which doesn't match any users.

This is the regression?
commit fb65b24cf4c604660fcff9e5101809e5392a5e23
Refs:
Author:     Jose Cebellán @josecebe
AuthorDate: Fri Mar 22 08:55:12 2019 +0100
Commit:     Miguel Pellicer<EMAIL_ADDRESS>CommitDate: Fri Mar 22 08:55:12 2019 +0100
SAK-41489 Sitestats for Students: Display the number of visits and the time spent on the site (#6655)

I think so, also there's a subsequent commit that touches the same area of code. It ends up with passing an empty rather than null userIds, and the getWhereClause() when building the base query adds userId='' for that.

Thanks for the fix @smarquard !


[WIP] D3D12 renderer for imgui-rs

Hey, I've implemented a simple D3D12 renderer using my D3D12 bindings rusty-d3d12 and would like to share it. It is based on both imgui-dx11-renderer and C++ D3D12 renderer from here. Unfortunately I'm not very familiar with ImGUI so some parts may be missing, but the bundled example seems to work without any issues.
Of course I'm not sure if such a change is welcome, so please share your thoughts :) Thanks!

Hi, just as an FYI, I've also tried running imnodes-rs with this renderer, and it went smoothly, too :) Please let me know if you want to have a look or have any questions. Thanks!

Hi!
I appreciate your work here, but I don't think we'll be accepting the PR right now. The core issue is that once we accept this PR, we (as in myself, dbr, and thomcc, the other two maintainers) have to maintain the new sub-crate renderer. Since rusty-d3d12 is still a young crate and doesn't have wide usage yet, I'm against us taking on that maintenance burden, as we won't have the users to justify the time-sink we'll need to spend.
We actually only maintain our crate within our repo for the purposes of promising users that these backends are up to date, but otherwise, they don't have access to any private imgui functionality. Therefore, for now, would you consider publishing this as a separate crate in its own repository, and if rusty-d3d12 gets a bigger user-base over time, we can consider adding it to this repository then?

Hi @sanbox-irl, thanks for your reply, I see your point :) However, may I kindly ask if you'd be open to adding a section named like Non-official renderers or Experimental 3rd-party renderers in the readme and mentioning my project and @Veykril's imgui-dx11-renderer (or it's recently updated fork by @Netdex) so that people at least would know about these options? :) Thanks!

That's a great idea -- when I add that, I'll ping here too

Thank you! I'll close the PR then.

Hi @sanbox-irl, any chance this is still on the table? :) Thanks!

closed with https://github.com/sanbox-irl/imgui-rs/commit/3166550958f144069c8489db5eda41a49d4d1b11
Thank you!


Resizing side panels lead to forever freeze

Godot version
4.0.stable
System information
Windows 10, all GPU info is in attached file
Issue description
When I try to resize side panels (filesystem, inspector), Godot goes to forever freeze. This is VERY disappointing, as I often do this unconsciously while editing project.
It happens in any project. To my surprise, I didn't found similar reports in recent issues on github... so, as it's impossible to miss this very basic functionality, perhaps it only happens on my hardware config.
I added screenshot from the attempt to check it in rc5, but in a stable build situation is absolutely the same. I added debug key to show an error in console.
Here is dxdiag report of my system, maybe it will be helpful:
DxDiag.txt
Editing and running projects works fine.

Steps to reproduce
I'm not sure it's easy to reproduce on other hardware. It happens right after trying to resize side panel.
Minimal reproduction project
N/A, it's not dependent to project, happens everywhere

Indeed, this is likely a hardware/driver combo. I have added this to a tracker for similar issues. As you can see, you are not the only user affected by this bug, but it presents itself in different ways to different people.
I suggest checking for a driver update as it has resolved the issue for some users.

same problem on my computer,  Windows 11 os.

Same problem on my system. Godot 4.0.2.stable

PC: Windows 10 22H2 Build 19045.2846

Godot:
Godot Engine v4.0.2.stable.official.7a0977ce2 - https://godotengine.org
OpenGL API 3.3.0 - Build <IP_ADDRESS>59 - Compatibility - Using Device: Intel - Intel(R) Iris(R) Xe Graphics

I can confirm that a driver update resolved the issue for me. Updated to this:

@cassandrus @Darkiii Can you try updating your graphics driver as mentioned above? Grab the driver directly from Intel (not your OEM, not Windows Update).

@cassandrus @Darkiii Can you try updating your graphics driver as mentioned above? Grab the driver directly from Intel (not your OEM, not Windows Update).

I've updated driver to aforementioned mentioned and it solves the issue. 👍

Alright, closing then.


Start documenting abi3 support

I understood we decided to invert the pattern and instead have an unstable-abi feature which would be enabled by default?

I inverted the change to introduce py3*-abi3 features.

I inverted the change to introduce py3*-abi3 features.

Can you elaborate? I don't think I can see these py3*-abi3 features on that branch at the moment either.

Sorry, I meant that 'I changed it to abi3 so that it would be integrated well with py3*-abi3 features that we're going to introduce based on the discussion in #1195'

Yes, this documents the branch as it exists today, and I followed this documentation when I wrote the tests for setuptools-rust, so I'm sure it works :-)


removed vault secrets

Removed vault references from semaphore
Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation (including upgrade notes)

LGTM. Do we need to backport it to older branches too?

I don't think we do, when it was first migrated, there wasn't a need to backport


Update deploy_app.sh

Replace the following text with your own catchy marketing slogan for ACME.

Approved

Approvede


Executor API cleanup and simplification

Make FinalityMode passed by value like a simple mode selector parameter should be.
Change signatures of methods that don't need to be async
or fallible.

I have further YAGNI feeling about parts of the abstract API:

Do we really need the dynamic selection with FinalityMode? It's currently unimplemented except for the optimistic mode.
What do we need the *Executor traits for? Future mocking?

@mzabaluev FinalityMode is entirely unnecessary (it doesn't actually make sense w.r.t. to the intended design). I thought I had removed it already.
Executor traits are for organization and reuse in a would be SDK.

Executor traits are for organization and reuse in a would be SDK.

In general, I would prefer not introducing traits until there are at least two implementations genuinely needing the abstraction. Especially those transformed by async_trait as they have a runtime cost.

@mzabaluev FinalityMode is entirely unnecessary (it doesn't actually make sense w.r.t. to the intended design). I thought I had removed it already.

I can cut it out in this PR while we are at it, the only problem would be a merge conflict with #58.

In general, I would prefer not introducing traits until there are at least two implementations genuinely needing the abstraction. Especially those transformed by async_trait as they have a runtime cost.

I tend to do a fair bit of type-level programming first and like be able to refer to traits for quick understanding on the first pass. So, I'll need to work on that.
I'm trying to use async_trait only where there would be or I anticipate Box<dyn ...> usage.  The async_trait vtables also increase binary size, no?


Compile-Time injection of Attributes

Fixes #394, Fixes #2002 .
Changes proposed in this pull request:

Centralized all attribute logic to a common AttributeRepository
Eliminated Mono.Cecil on the compilation process (replaced by NRefactory.TypeSystem)
Added CompilerExtension feature which allows registering attributes during compile-time through an API.
Cleanup of dead code.

Feature description:
With this change developers can inject attributes during compile-time. This allows developers to separate their attribute/output configuration from the actual code base which might be shared with non-bridge platforms. The attribute registration works via an ICompilerContext interfaces. The so called compiler extensions must be part of the compilation process as the registration happens via a custom code interpreter with restricted access to actual C# code. Reason behind this interpreter is that an actual code execution would fail in 90% due to missing implementations in the base BCL and also the JS focused C# code. It can be more seen as C# based configuration file.
As part of this rework also the Mono.Cecil dependencies are almost eliminated beside actual Mono.Cecil tasks (e.g. resource handling).
See Also

#3333

Hi @Danielku15 – Could you provide a sample demonstrating with features from this new PR, how developers can inject attributes during compile-time?

The PR contains an integration test demonstrating the feature:
https://github.com/Danielku15/Bridge/blob/84953b2f0554d83b94339e63bfe47bd551350b6b/Compiler/TranslatorTests/TestProjects/23/Test.cs

Hi @Danielku15 – This pr looks amazing. We have a backlog of pr's waiting for review and testing within v17, and once pr #3341 is finished too, the team will get started on this pull-request.


save col datatypes in the feather artifact

Describe the enhancement requested
Feather is a great format.  I recently migrated to using the format for purposes of short-term (weeks to months) archiving of various pandas and polars artifacts.
I noticed that despite casting my columns to a specific datatype (e.g., int -> str), witnessing the change prior to saving the dataframe to feather, that when I reopen the feather file, the typing information is gone.  It could be something else at my end... that said:
Is the typing information saved with the feather artifact? If not, the enhancement request: include the column type in the feather archive.
Component(s)
Format

@EdmundsEcho The type information should exist in the feather format. The feather format itself is essentially identical to the Arrow IPC file format as described here. The only thing I can think of is if you're using an extremely old version of Arrow and it's writing Feather V1 files instead of V2?
What version of pyarrow are you using?

Knowing that the type is in fact embedded is helpful. Based on your answer I suspect something else is going on; for instance using fillna on a df, without aligning the types (the df hosts a mixed set of types, but only one type has possible NaN values).


Find leftmost non repeating character in a string #868

Have you read the Contributing Guidelines on Pull Requests?
yes
Description
issue : #868
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
#868

@iamrajiv The code I submitted was the one I had implemented back in my 2nd semester, as a part of my course. If you suggest, I can implement one now and submit.

resolve merge conflict

@iamrajiv Code formatted according to the guidelines

@salonishah01 Resolve merge conflict ASAP so that I can merge this PR.

@atarax665 Can you help me out on how to resolve these merge conflicts.


Code Splitting React Intl Locales

Expected behavior
We should split the react-intl locales to make the bundle smaller. I figure to use webpacks dynamic inport(). This will load it separately. I tried this and it saves around 280k.

Actual behavior
Bundles all translations to the main bundles.

How to reproduce
https://busy.org/js/statistics.html shows translations take up 37.6%.

I started to work on it. I am about to add a pull request. Just thought to add it here first. I am willing to be assigned.

Browser:
Operating system:

You can check out my webpack visualizer with example code splitting sizes: https://kennybll.herokuapp.com/js/statistics.html. It may need to reload heroku's server ( I have free service not paid ).

https://kennybll.herokuapp.com/js/statistics.html is bigger than thanhttps://staging.busy.org/js/statistics.html for me

vendor and main are smaller though. Also for some reason I count 51 locales in src on the kennybll vs 40 on staging.

I found out why... if you look under src/client/translations/index.js you see no one ever added the extra locals from /src/client/locales. @bonustrack


Fix panic in SabreSwap with classical bits

Summary
This commit fixes a bug introduced in SabreSwap that was caught by the
randomized testing in #8635. A copy paste error was causing the rusty
sabre code to panic in cases where there were classical bits of a
particular index assigned prior to the qubit with the same index. This
commit fixes the typo so the behavior is corrected in general and the
panic is also fixed.
Details and comments
Fixes #8635

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.122%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
56830

Relevant Lines:
67557

💛  - Coveralls


Allow file names that are longer than 260 characters

The only related (closed) issue I found relating to this problem is #451, but it hasn't evaluated the option of allowing longer paths than the default limit in NTFS.

Download log of TL
Download task has been started!
TWITCH LEECHER INFO
Version: 1.8.1
VOD INFO
VOD ID: 805157048
Selected Quality: 1920x1080@50fps (Source)
Download Url: https://www.twitch.tv/videos/805157048
Crop Start: No
Crop End: No
OUTPUT INFO
Disable Conversion: No
Output File: C:\Users\masap\Downloads\VODs\20201116-175254 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Johnny Depp and Die Hard_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-020341.mp4
FFMPEG Path: C:\Program Files\Twitch Leecher\ffmpeg.exe
Temporary Download Folder: C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e
ACCESS INFO
Token: %7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1610175273%2C%22https_required%22%3Afalse%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A805157048%7D
Signature: 1fa1c47b7c5bc234bb349d30d39f1225b8f7db3b
Sub-Only: No
Privileged: No
Creating temporary download directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/chunked/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/720p60/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/480p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/audio_only/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/360p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/160p30/index-dvr.m3u8
Playlist url for selected quality 1920x1080@50fps (Source) is https://d3c27h4odz752x.cloudfront.net/1daff6da6bef06071667_fusiontv1_40010310284_1605545563/chunked/index-dvr.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 743
Starting parallel video chunk download
Number of video chunks to download: 743
Maximum connection count: 10
Parallel video chunk download is running...
Download of all video chunks complete!
Merging all VOD parts into 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e\20201116-175254 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Johnny Depp and Die Hard_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-020341.ts'...
Starting temporary download folder cleanup!
Deleting directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e'... done!
Download task ended with an error!
System.AggregateException: One or more errors occurred. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e\20201116-175254 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Johnny Depp and Die Hard_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-020341.ts'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)    at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.<StartQueuedDownloadIfExists>b__2()    at System.Threading.Tasks.Task.Execute()    --- End of inner exception stack trace --- ---> (Inner Exception #0) System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_6656fbf8-e133-4f07-8754-f5b057c8417e\20201116-175254 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Johnny Depp and Die Hard_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-020341.ts'.    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)    at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.b__2()
at System.Threading.Tasks.Task.Execute()<---

TL version: 1.8.1
Video URL: https://www.twitch.tv/videos/805157048
OS: Windows 10 64 bit (NTFS length limit disabled by Group Policy, been using this feature for a few years, no problems so far)
I occasionally ran into this issue where the download fails just before conversion because the length of the final path is longer than the default NTFS limit. When this happens, I usually change the download dir to something like C:\Temp, but it's annoying when a bunch of downloads error out because of this, after the many hours have been downloaded.
I've disabled the length limit in Group Policy a few years ago, and I haven't encountered problems with it being this way, popular software like Total Commander and VLC can handle it well.
Here you can find some information about disabling the path length limit, and adding support for it to TL:
Tenforums article: https://www.tenforums.com/tutorials/51704-enable-disable-win32-long-paths-windows-10-a.html
Microsoft documentation: https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation
I'm not much into C# (I can read it, but I'm not familiar with the APIs it uses), but it seems the change can be as simple as including a new setting in the manifest file. If you can make a beta build with this change I would be happy to test it.
Before writing this, I remembered that I wanted to open an issue for this multiple times already, so I checked whether I actually did it, but haven't found an other one. But if I just missed it, or it was deleted, sorry for making a duplicate

There are multiple things to consider here:

The problem that the exception gets thrown after download is a bug. The target folder gets checked before download but obviously not the temporary download folder. That should get checked, too and I will correct this in a future update.

You are only talking about NTFS. There are many users that use external drives or USB sticks or century old NAS systems as their download targets. Commonly those are formatted with FAT32. I have not dived into the topic, but is this potentially an issue?

The long path option is "opt-in" in WIndows 10 >=1607. Honestly you are the first person ever that I met dealing with this setting. I don't know anyone, not even in a partnered Ccompany having this setting enabled. I have worked with Microsoft as a partner for over 20 years and I can tell you one thing: If MS declares something "opt-in", they are not really sure about it.

Fact is: The average TL user does not care or does not know about long paths and even if he does know, a very small percentage would opt-in. A Twitch gamer does not deal with Windows group policies. This is a very very tiny edge case. Before I change something like this, I need to clarify that the change works on every supported OS, machine and file system.

There are multiple things to consider here:

The problem that the exception gets thrown after download is a bug. The target folder gets checked before download but obviously not the temporary download folder. That should get checked, too and I will correct this in a future update.

You are only talking about NTFS. There are many users that use external drives or USB sticks or century old NAS systems as their download targets. Commonly those are formatted with FAT32. I have not dived into the topic, but is this potentially an issue?

The long path option is "opt-in" in WIndows 10 >=1607. Honestly you are the first person ever that I met dealing with this setting. I don't know anyone, not even in a partnered Ccompany having this setting enabled. I have worked with Microsoft as a partner for over 20 years and I can tell you one thing: If MS declares something "opt-in", they are not really sure about it.

Fact is: The average TL user does not care or does not know about long paths and even if he does know, a very small percentage would opt-in. A Twitch gamer does not deal with Windows group policies. This is a very very tiny edge case. Before I change something like this, I need to clarify that the change works on every supported OS, machine and file system.

2: According to Microsoft, all filesystems officially supported by Windows allow a length of 255 characters for filenames (little inconsistency with their other article..), except UDF, but I don't think users will want to download directly to optical disks.
So in their case the default limit should be ok.
Why I actually want this is that I just stumbled upon streams from a channel that I follow that has long enough stream names that they, with the default temp dir and my short username (5 chars), and I would like to archive this in their original form. Currently I do that by copying the title to notepad, changing the name to a single pattern, and renaming them after they completed.

A very small percentage would opt-in

Probably there are (not much, but not that few) people who just don't know that they have opted in. There are popular software (e.g. qBittorrent, Python) that has a setting in the installer to disable the length limit, and it's is on by default.

Also, an other bunch of people might not know about it, because it turns out that there are API methods that allow write operations even without the manifest setting (and maybe the registry one too?), but then I don't know why does the problem affect TL. Maybe that's only working for c++ APIs?

Before I change something like this, I need to clarify that the change works on every supported OS, machine and file system.

It does not seem to me that it would break existing configurations. What it changes is that instead of checking MAX_PATH, Windows will check the lpMaximumComponentLength from GetVolumeInformation, and now instead of only by UNC paths, long paths can also be used normally.
Here is an issue from 2016 in which they added the support for long paths. But actually, from this I only got confused, because what I understand from it is that this should work by default?

2: According to Microsoft, all filesystems officially supported by Windows allow a length of 255 characters for filenames (little inconsistency with their other article..), except UDF, but I don't think users will want to download directly to optical disks.
So in their case the default limit should be ok.
Why I actually want this is that I just stumbled upon streams from a channel that I follow that has long enough stream names that they, with the default temp dir and my short username (5 chars), and I would like to archive this in their original form. Currently I do that by copying the title to notepad, changing the name to a single pattern, and renaming them after they completed.

A very small percentage would opt-in

Probably there are (not much, but not that few) people who just don't know that they have opted in. There are popular software (e.g. qBittorrent, Python) that has a setting in the installer to disable the length limit, and it's is on by default.

Also, an other bunch of people might not know about it, because it turns out that there are API methods that allow write operations even without the manifest setting (and maybe the registry one too?), but then I don't know why does the problem affect TL. Maybe that's only working for c++ APIs?

Before I change something like this, I need to clarify that the change works on every supported OS, machine and file system.

It does not seem to me that it would break existing configurations. What it changes is that instead of checking MAX_PATH, Windows will check the lpMaximumComponentLength from GetVolumeInformation, and now instead of only by UNC paths, long paths can also be used normally.
Here is an issue from 2016 in which they added the support for long paths. But actually, from this I only got confused, because what I understand from it is that this should work by default?

I have to evaluate what the standpoint of the .NET Framework is regarding long paths. Surely you can call whatever C++ Win32 API you want, but it depends on what .NET uses in my case. Meaning: Does .NET call the API that actually checks the lpMaximumComponentLength and so on? Also I have to check if you can enable long path support in a .NET manifest file which is different from the Win32 manifest file described in your original link.
Personally I think a software that enables opt-in features of any OS as a default in its installer should be banned. It does not matter what option that might be or if it works or not. Changing an opt-in option in an random installer of a random software is an absolute nogo. What would you think if TL enabled "optional updates" for your Windows update service? Nobody wants that 😄 So these garbage pieces of software are not a guideline I support.

I have to evaluate what the standpoint of the .NET Framework is regarding long paths. Surely you can call whatever C++ Win32 API you want, but it depends on what .NET uses in my case. Meaning: Does .NET call the API that actually checks the lpMaximumComponentLength and so on? Also I have to check if you can enable long path support in a .NET manifest file which is different from the Win32 manifest file described in your original link.
Personally I think a software that enables opt-in features of any OS as a default in its installer should be banned. It does not matter what option that might be or if it works or not. Changing an opt-in option in an random installer of a random software is an absolute nogo. What would you think if TL enabled "optional updates" for your Windows update service? Nobody wants that 😄 So these garbage pieces of software are not a guideline I support.

.NET 4.6.2+ supports long paths if
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

is set in the app.config.
I have to do some tests if it works for both worlds (long paths enabled of disabled). If it does, it could be an easy enhancement to TL.

.NET 4.6.2+ supports long paths if
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

is set in the app.config.
I have to do some tests if it works for both worlds (long paths enabled of disabled). If it does, it could be an easy enhancement to TL.

.NET 4.6.2+ supports long paths if
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

is set in the app.config.
I have to do some tests if it works for both worlds (long paths enabled and disabled). If it does, it could be an easy enhancement to TL.

I've tried it already, but it does not seem to make a difference :/ I thought it's just not working for some reason.

Download log of TL
Download task has been started!
TWITCH LEECHER INFO
Version: 1.8.1
VOD INFO
VOD ID: 813120834
Selected Quality: 1920x1080@50fps (Source)
Download Url: https://www.twitch.tv/videos/813120834
Crop Start: No
Crop End: Yes (00:02:00)
OUTPUT INFO
Disable Conversion: No
Output File: C:\Users\masap\Downloads\VODs\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.mp4
FFMPEG Path: C:\Program Files\Twitch Leecher\ffmpeg.exe
Temporary Download Folder: C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920
ACCESS INFO
Token: %7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1610212508%2C%22https_required%22%3Afalse%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A813120834%7D
Signature: fb9296626628304a4960c9e36209cb11eaa53001
Sub-Only: No
Privileged: No
Creating temporary download directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/chunked/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/720p60/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/480p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/audio_only/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/360p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/160p30/index-dvr.m3u8
Playlist url for selected quality 1920x1080@50fps (Source) is https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/chunked/index-dvr.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 730
Starting parallel video chunk download
Number of video chunks to download: 12
Maximum connection count: 10
Parallel video chunk download is running...
Download of all video chunks complete!
Merging all VOD parts into 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'...
Starting temporary download folder cleanup!
Deleting directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920'... done!
Download task ended with an error!
System.AggregateException: One or more errors occurred. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)    at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.<StartQueuedDownloadIfExists>b__2()    at System.Threading.Tasks.Task.Execute()    --- End of inner exception stack trace --- ---> (Inner Exception #0) System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'.    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)    at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.b__2()
at System.Threading.Tasks.Task.Execute()<---

.NET 4.6.2+ supports long paths if
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

is set in the app.config.
I have to do some tests if it works for both worlds (long paths enabled and disabled). If it does, it could be an easy enhancement to TL.

I've tried it already, but it does not seem to make a difference :/ I thought it's just not working for some reason.

Download log of TL
Download task has been started!
TWITCH LEECHER INFO
Version: 1.8.1
VOD INFO
VOD ID: 813120834
Selected Quality: 1920x1080@50fps (Source)
Download Url: https://www.twitch.tv/videos/813120834
Crop Start: No
Crop End: Yes (00:02:00)
OUTPUT INFO
Disable Conversion: No
Output File: C:\Users\masap\Downloads\VODs\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.mp4
FFMPEG Path: C:\Program Files\Twitch Leecher\ffmpeg.exe
Temporary Download Folder: C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920
ACCESS INFO
Token: %7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1610212508%2C%22https_required%22%3Afalse%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A813120834%7D
Signature: fb9296626628304a4960c9e36209cb11eaa53001
Sub-Only: No
Privileged: No
Creating temporary download directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/chunked/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/720p60/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/480p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/audio_only/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/360p30/index-dvr.m3u8
https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/160p30/index-dvr.m3u8
Playlist url for selected quality 1920x1080@50fps (Source) is https://d3c27h4odz752x.cloudfront.net/56dced3e1391e20d61e0_fusiontv1_40105142604_1606150274/chunked/index-dvr.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 730
Starting parallel video chunk download
Number of video chunks to download: 12
Maximum connection count: 10
Parallel video chunk download is running...
Download of all video chunks complete!
Merging all VOD parts into 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'...
Starting temporary download folder cleanup!
Deleting directory 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920'... done!
Download task ended with an error!
System.AggregateException: One or more errors occurred. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)    at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.<StartQueuedDownloadIfExists>b__2()    at System.Threading.Tasks.Task.Execute()    --- End of inner exception stack trace --- ---> (Inner Exception #0) System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\masap\AppData\Local\Temp\TwitchLeecher\TL_2aa45eb1-754a-4aba-8716-57663909a920\20201123-175125 - WIN a Horizon_ Zero Dawn Board Game!_ Test your knowledge on Dinos and Medical TV Shows_ @fusionquiz - Talk Shows & Podcasts - 1920x1080-50 fps_till-000200.ts'.    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)    at TwitchLeecher.Services.Services.ProcessingService.ConcatParts(Action1 log, Action1 setStatus, Action1 setProgress, VodPlaylist vodPlaylist, String concatFile)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass50_0.b__2()
at System.Threading.Tasks.Task.Execute()<---

Hi ! i just wanted to say that I also had the issue of filenames being too long in the past, because a streamer was putting several sentences in the title of his stream. I'm not sure you guys are talking about this exact issue, but I this it would be amazing if TL handled such issues "gracefully", meaning, handling the length by itself, or even letting me decide the max length of each wildcard.
Am I in the correct spot to comment or should I make another change request / bug report? let me know and I'll happily do it, sorry for the inconvenience.

Hi ! i just wanted to say that I also had the issue of filenames being too long in the past, because a streamer was putting several sentences in the title of his stream. I'm not sure you guys are talking about this exact issue, but I this it would be amazing if TL handled such issues "gracefully", meaning, handling the length by itself, or even letting me decide the max length of each wildcard.
Am I in the correct spot to comment or should I make another change request / bug report? let me know and I'll happily do it, sorry for the inconvenience.

I cannot get long filenames to work with a .NET 4.8 application. I don't know what it is. I have tried everything Microsoft has documented in their online references.
This feature seems to be broken in so many places. You cannot even create long filename dictionaries in Explorer. If a long dictionary exists, Explorer can handle it, but it cannot create it.
I have the impression that even MS is not ready for this yet. I am not going to put more time into it at the moment, it leads to nothing.


is it possible to do ASR by using this dataset?

How can we do Speech Recognition task using youtube-8m dataset?
is it possible to do ASR by using this dataset?
sir, please can you explain me about how to extract audio features with transcript and do ASR task.
Thank you sir.

This code base is not designed to do so but I think it is doable.
Could you please describe your concrete use case?

Thank you so much for your reply sir.
I want to build model for Speech to text. So if YouTube-8m dataset how to handle on YouTube audio segments with corresponding transcript means, we can use it for training data.


rename researchdelight.2i2c.cloud to showcase.2i2c.cloud

### Tasks
- [ ] Review existing documentation on renaming a hub (engineering docs? community docs?)
- [ ] Update `config/**/*.yaml` files as needed, including changing name on landing page
- [ ] UpdateA CNAME so that showcase.2i2c.cloud points to this hub
- [ ] Set researchdelight.2i2c.cloud as a redirect to showcase.2i2c.cloud

@sgibson91 you are welcome to start into this task next week whenever you have time.  The overall goal is to rename researchdelight -> showcase. I don't expect this to be a 'community self-serve' and would necessarily require the participation of 2i2c engineering. So as long as the process is covered in the engineering documentation, I think that's sufficient.
If "renaming a hub" turns out to be more difficult than tearing down the existing hub and deploying a completely new one, that's another path forward as well.  In this task I want to learn what the engineering cost associated with 'renaming a hub' to determine if this is something we should be (or should not be) offering communities as a regular service.
If any step that I've listed above turns out to be 'non-trivial' please let's discuss it first before sending you down any rabbit holes.

How to set a redirect is documented here: https://infrastructure.2i2c.org/howto/manage-domains/redirects/

[Copying some questions from Slack to here for posterity]

Is the canonical way to log into researchdelight/showcase using GitHub? I see an old CILogon client laying around and wondering if I should clean up
Will the @2i2c-org/research-delight-team and @2i2c-org/research-delight-gpu-team team names be updated also?

If "renaming a hub" turns out to be more difficult than tearing down the existing hub and deploying a completely new one, that's another path forward as well. In this task I want to learn what the engineering cost associated with 'renaming a hub' to determine if this is something we should be (or should not be) offering communities as a regular service.

So, changing the name: field of a hub entry in a cluster.yaml file will result in the creation of a new hub. This is because this field is linked to the helm namespace in which the hub is deployed, and I don't believe that helm has the concept of renaming a namespace. The old namespace will continue to exist and will need to be manually deleted.
I think it's important to change this field because engineers run deployer deploy $CLUSTER_NAME $HUB_NAME from the command line a lot and having two different names may create unnecessary cognitive load. Especially since a change from researchdelight to showcase is quite drastic (in terms of characters typed, if not conceptually), though maybe not all change requests from our communities will be this drastic.
But this does mean that renaming a hub would be a destructive operation. So @jmunroe in reference to our conversation yesterday, we may want to lean towards the "put some effort into your community name from the start" end of the spectrum.

🎉  https://showcase.2i2c.cloud 🎉

While the technical aspects of this issue are completed, I'm leaving it open as I took some notes I'd like to get into the infrastructure guide


Player screen displays wrong state after launching from ongoing notification

Player screen in media sample app displays wrong state for play/pause button after launching it from ongoing notification while a song is playing.
Video:
https://user-images.githubusercontent.com/878134/179998919-3721c582-44d2-4795-8c7d-5d91a67e72e1.mp4
Device: Galaxy Watch4 Classic (4W2J) - SM-R895F
Steps to reproduce

Launch the app and play a song;
Lock screen;
Tap on the ongoing notification icon;

Expected result
Player screen is displayed in playing state: pause button is displayed, progress is changing, music is still playing in background.
Actual result
Player screen is displayed in playing state: progress is changing, music is still playing in background. However, play button is displayed for few seconds until it is switched to pause.

Should be fixed in https://github.com/google/horologist/pull/424


tiny bug in NERDADataSetReader!

Hi there!
In some cases, there is an error raised during iterating over DataLoder's batches and I believe, it is happened because of offset's list length!
The error is like this:
RuntimeError: Caught RuntimeError in DataLoader worker process 0. Original Traceback (most recent call last):   File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop     data = fetcher.fetch(index)   File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch     return self.collate_fn(data)   File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in default_collate     return {key: default_collate([d[key] for d in batch]) for key in elem}   File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in <dictcomp>     return {key: default_collate([d[key] for d in batch]) for key in elem}   File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate     return torch.stack(batch, 0, out=out) RuntimeError: stack expects each tensor to be equal size, but got [150] at entry 0 and [151] at entry 1
A quick and Unprincipled solution to fix it can be adding an extra line of code to truncate the list in class NERDADataSetReader(), this is worked for me! :)
offsets = offsets[:self.max_len]

Hi @meti-94
Thank you so much for your feedback. I will look into it asap :)
/L

@meti-94 can you provide the sentence + tags, that triggered the error?

@meti-94 can you help with some code to reproduce this error? Please :S

Hi, So sorry for the late answer, I am adding a text file that contains several records and link to my implementation, change the data source and see the error, please :)
RuntimeError: Caught RuntimeError in DataLoader worker process 0. Original Traceback (most recent call last):   File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop     data = fetcher.fetch(index)   File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch     return self.collate_fn(data)   File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/collate.py", line 73, in default_collate     return {key: default_collate([d[key] for d in batch]) for key in elem}   File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/collate.py", line 73, in <dictcomp>     return {key: default_collate([d[key] for d in batch]) for key in elem}   File "/usr/local/lib/python3.7/dist-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate     return torch.stack(batch, 0, out=out) RuntimeError: stack expects each tensor to be equal size, but got [150] at entry 0 and [151] at entry 6
Implementation: https://github.com/meti-94/TextClassification/blob/main/BERT_NER.ipynb
Sample data: sample.txt

Hi there!
In some cases, there is an error raised during iterating over DataLoder's batches and I believe, it is happened because of offset's list length!
The error is like this:
RuntimeError: Caught RuntimeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop data = fetcher.fetch(index) File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch return self.collate_fn(data) File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in default_collate return {key: default_collate([d[key] for d in batch]) for key in elem} File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in <dictcomp> return {key: default_collate([d[key] for d in batch]) for key in elem} File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate return torch.stack(batch, 0, out=out) RuntimeError: stack expects each tensor to be equal size, but got [150] at entry 0 and [151] at entry 1
A quick and Unprincipled solution to fix it can be adding an extra line of code to truncate the list in class NERDADataSetReader(), this is worked for me! :)
offsets = offsets[:self.max_len]

Hello! I'm facing the same error as well. May I know where you are adding the line offsets = offsets[:self.max_len] to fix the error? Is it after line 96 https://github.com/ebanalyse/NERDA/blob/main/src/NERDA/preprocessing.py#L96?

As I said before, that was not the best solution :)

As a quick fix, I suggest adding a simple truncation statement after the 96th line! I would analyze the code to find a better solution as soon as possible! this repo could help me a lot! :)

Hi @meti-94 and @liuhh02 . Sorry to have kept you hanging for so long! Can you help with providing just an example of a  sentence, that causes this error?

... and if you have an idea for a solution, I would love, if you would make a Pull Request! :)

Hi there ! I have the very same issue with a custom training/validation set, even if it seems to have a proper size.
I would be very pleased if this problem could be fixed.

Hi again :)
I came up with an explanation and a simple solution for the issue, you can check it out here!

pull request merged! : )

In my case, it worked when I changed the value of num_workers to 0 in Dataloader :) However, I still cannot figure out what is the real problem of that error :(


Adds Categories and Category Definitions to Explore Data and Methodology

Preview Link

Click to demo updates
Description
Per Mahia; the categories we use on our Drop Down selector need to be defined. Following up on #1371, this PR now includes the parent category and its definition as part of the Definitions component (which is currently used to display ALL on methodology and SELECTED on bottom of explore data)
Motivation and Context
closes #1419
How has this been tested?
Manually on Chrome MacOS
Screenshots (if appropriate):

what it will look like without any definitions added. This allows progressive enhancement, so we can merge now without any category definitions and then add them 1 by 1 as we decide

with placeholder text

Types of changes

New feature (non-breaking change which adds functionality)

@benhammondmusic do you want to merge this before we get category defenitions?

@benhammondmusic do you want to merge this before we get category defenitions?

I think yes, because, especially on methodology, it's more readable to use the category names as headings. Rather than just having all the conditions in a single list.... it looks better to break it up into sub lists by category.


[Forwardport] [main] Fix create or update alias API doesn't throw exception for unsupported parameters

Forwardport of https://github.com/opensearch-project/OpenSearch/pull/14756 to main

@kotwanikunal @andrross @dblock mind please approving this forwardport? thank you!


NIFI-3644 - Added HBase_1_1_2_ClientMapCacheService

Added HBase_1_1_2_ClientMapCacheService which implements DistributedMapCacheClient.
The DetectDuplicate processor can now make use of HBase_1_1_2_ClientMapCacheService for storing the duplicate cache on HBase.

Hi @bbende, please take a look at this PR.
I've added HBase_1_1_2_ClientMapCacheService as a controller service which uses the HBase_1_1_2_ClientService to store a cache of values on HBase.
Can be used in the DetectDuplicate processor in place of a DistributedMapCache (and other processors as well)
Travis build is passing 4/5, not sure why one of the languages would fail.
The AppVeyor build is failing on a specific test "TestListFile.testAttributesSet" which I don't think is mine.
Let me know what you think.
Thanks!

@bbende
Ready for another review! I've updated per your comments and added some unit tests.

This looks like it could be pretty helpful!  I wonder if in light of the recent LookupService work we should consider exposing/using this via that interface instead of or in addition to this distributed cache one.  Thoughts?

Sorry for taking so long to get back to this...
I tested this using PutDistributedMapCache and FetchDistributedMapCache, and noticed the value coming back from fetch wasn't exactly what I had stored.
In HBaseRowHandler we had:
lastResultBytes = resultCell.getValueArray()
And we need:
lastResultBytes = Arrays.copyOfRange(resultCell.getValueArray(), resultCell.getValueOffset(), resultCell.getValueLength() + resultCell.getValueOffset());
I made a commit here that includes the change:
https://github.com/bbende/nifi/commit/dc8f14d95d6cdbab2aa6e815269fe0d98faa2fe6
I also moved MockHBaseClientService into it's own class so it can be used by both tests, so that we don't have to duplicate that code.
Everything else looks good so I will go ahead and merge these changes together (your commit then mine).
Thanks again for contributing! and sorry for the delay.


feat(protocol): sync L2 base fee per gas from L1

The prevailing belief has been that L2's block space is independent of L1, and therefore, the EIP-1559 base fee per gas (basefee) on L2 should be calculated without reference to L1's basefee.
Upon further consideration, it seems impractical to maintain low L2 base fees when L1 is highly congested. Offering cheap block space on L2 during such times could lead to inefficient resource allocation. This PR aims to address this by syncing the L1 and L2 base fees.
This PR aims to align the L2 base fee with the L1 base fee, challenging the previous assumption that L2's block space should be independent of L1's. Specifically, the L2 base fee is set to be 1/100th of the L1 base fee.

I don't really understand how this could work:

The main goal of the L2 basefee is so that we can target a safe gas/s that the rollup can sustain. If the L2 basefee is not linked to the activity on L2, it fails to do this. The L1 cost of a tx and the L2 work required by that tx are also not related.
If the L1 basefee is high, I would think in practice that the L2 basefee will probably go down because the price an L2 transaction wants to pay to get included on the L2 gets eaten up more by the L1 fees required by the L1 proposer. So if the L2 transaction is willing to pay 10 gwei, but the proposer already needs 8 gwei to submit the transaction with profit on-chain, only 2 gwei could be eaten up by the basefee. For transactions that want to pay only 8 gwei, the proposer will have to wait until the basefee goes down to 0, or the L1 cost goes down. This makes sense because that means the the transactions are only willing to pay the raw L1 cost to get included, which means that the transaction does not want to pay a priority fee, and so there is no congestion (or at least nobody willing to pay for priority inclusion) if these transactions get included. If the L1 cost then goes down to 6 gwei, then there could be congestion again to get all these 8 gwei transactions included. It is true that the target gas/s can be undershot because compared to an L1 the baselevel profitability of a transaction is not simply 0 but changes with the L1. Sot here could be transactions, but depending on the L1 cost they could or could not be used (when not taking subsidies into account). This is similar to how there would simply be no transaction on L1.
There is no target gas target/s without time, and there is no congestion without time. How the block submission works is also critical for what can work here. The vanilla EIP-1559 formula would work if only a single L2 block with variable block size can be submitted per L1 block (or some other mechanism that is equivalent to this).


Web - Thread - The Complete task message appears when the task's checkbox is not assigned

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:

Login 2 accounts A and B on 2 devices
A Create a task not assign anyone
B open chat and tick checkbox of the task
Open task detail
Click "Mark on done"

Expected Result:
The message "completed task" does not appear in task detail when ticking the checkbox and press "Mark as done" on task not assigned.
Actual Result:
The message "completed task" appear in task detail when ticking the checkbox or press "Mark as done" on task not assigned
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
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: yes
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/93399543/20c52c17-3851-4e4d-b96e-626be7541f70
Expensify/Expensify Issue URL:
Issue reported by: @namhihi237
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686106877884719
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
The message “completed task” and “Re open task” does not appear in task detail when ticking the checkbox or press “Mark as done”, “Mark as incomplete” on task not assinged
What is the root cause of that problem?
Now, Only the task creator and assignee can complete and repoen the task. After calling completeTask and reopenTask, reportAction is saved to Onyx with optimisticData, But after API return permission error, failureData has not deleted reportAction saved above.
https://github.com/Expensify/App/blob/4cad2489f6feb5efb955924764711a0c36439f58/src/libs/actions/Task.js#L204-L208
https://github.com/Expensify/App/blob/4cad2489f6feb5efb955924764711a0c36439f58/src/libs/actions/Task.js#L260-L264
What changes do you think we should make in order to solve the problem?
To solve this problem we will set reportAction = null if the API returns an error.
In completedTask:
{
        onyxMethod: Onyx.METHOD.MERGE,
	key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${taskReportID}`,
	value: {[completedTaskReportAction.reportActionID]: null},
},

In reopenTask:
{
	onyxMethod: Onyx.METHOD.MERGE,
	key:`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${taskReportID}`,
	value: {[reopenedTaskReportAction.reportActionID]: null},
},

Result:
https://github.com/Expensify/App/assets/39086067/90bc3e0f-8c92-42c9-92c9-d049130f3d8b
What alternative solutions did you explore? (Optional)
Disable button, checkbox where these 2 APIs are called by checking if current user is owner or assigned

Dupe https://github.com/Expensify/App/issues/20542

Closed as duplicate report


Fix broken links in README.md

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.961%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1413

Relevant Lines:
2415

💛  - Coveralls


Adds an abstract value representing a set of label sets.

An abstract value that is capable of representing a set of set of labels. Suppose that we have an universe of labels {A, B, C}. This class may be used to represents sets of label sets like {{A,B}, {A,C}}, {{A}, {B}, {C}}.
Currently, we use a set of bitsets for the underlying representation, where each bitset represents a set of labels. Later, we can switch to more efficient representations like * Binary Decision Diagrams (BDD) without changing the interface.

/gcbrun

/gcbrun