Adding poppler to winget

Is it possible to add poppler to winget so I can use winget to install and upgrade poppler? Or is there a manifest files that follows the winget standard I can point winget to use as a source?

Hi,
Unfortunately I don't think this is the right place to get started on a winget package. This repository mainly serves to download and zip up the binaries and dlls from conda-forge so there is no real building going on here. I would suggest you direct this question somewhere in the winget organization or take a look at the poppler feedstock to see how they do it.
Sorry I couldn't be of more help!


Transitive assembly loading is too eager

I ran into an issue with a .Net 5 project using MiniRazor that also references ZXing.Net.
I am not really sure where the fault lies, but while loading transitive dependencies, MiniRazor is attempting to load a reference to "PresentationCore, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35" that I found out is referenced by ZXing.Net.
Our .Net 5 project is referencing the .Net Standard 2.0 version of ZXing.Net which doesn't seems to have any "active" references to PresentationCore, or at least not for the functionality we are using. GetReferencedAssemblies as part of Compile in MiniRazor returns the PresentationCore reference though, and MiniRazor attempts to load it.
Does it make sense to include an overload or configuration option in MiniRazor that would allow a consumer to specify a list of references to ignore/exclude, to be able to work around situation like this? I could perhaps provide a PR if we can agree on a suitable solution.

I think the best way is probably to make this method overload public:
https://github.com/Tyrrrz/MiniRazor/blob/73fd19a63117a579517a3f8545c4ed18f3f9e3fe/MiniRazor.Compiler/Razor.cs#L130-L134
That way you can provide your own references. The default behavior is indeed too eager, it tries to resolve all references that the executing assembly has. I don't know of a way to make this smarter.
By the way, is build-time compilation not usable for your scenario?


make IMoniker::BindToStorage Option where T: ComInterface?

Suggestion
Is it possible to make make IMoniker::BindToStorage cast the result to the appropriate type?
Currently as far as I can tell you have to use it like this:
 let base_filter = {
            let mut base_filter: MaybeUninit<IBaseFilter> = MaybeUninit::zeroed();
            unsafe {
                moniker.BindToObject(
                    None,
                    None,
                    &IBaseFilter::IID,
                    base_filter.as_mut_ptr() as *mut *mut _,
                )
            }?;
            unsafe { base_filter.assume_init() }
        };

The documentation specified the result (the 4th argument) to be an interface pointer.
Which Perhaps makes it possible to either have it an &mut Option<T> or make it like CoCreateInstance,
where the argument it skipped and used as a return value instead.

In order for this transformation to be applied, the ComOutPtr attribute must be present on the trailing parameter. Unfortunately, there are still quite a few cases where this is missing. Will transfer to the win32metadata repo for consideration.


noThirdPartyAny to flag anys that come from third-party type declarations

Suggestion
🔍 Search Terms

noImplicitAny @types

Related:

https://github.com/microsoft/TypeScript/issues/33886
https://github.com/microsoft/TypeScript/issues/27265
https://github.com/microsoft/TypeScript/issues/26188

✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code (it would have to an opt-in via a new flag)
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
I'd like to add a new flag, perhaps noThirdPartyAny, that makes it an error for a symbol to have an any type if that any comes from third-party code, e.g. from @types or from lib/dom.d.ts. (Just like with noImplicitAny, it would be fine if you wanted to explicitly give that symbol an any.)
📃 Motivating Example

TypeScript with noImplicitAny requires you to provide type annotations on all symbols that would otherwise implicitly have an any type. You'd think that this would only leave you with explicit anys, i.e. a symbol can only have an any type if you write the word any somewhere.
But that's not quite true because type declarations files (@types) can include any types as well.
Maybe the most common example is JSON.parse (also Response.prototype.json()):
const data = JSON.parse('{"a": 12}');
const b = data.b.toString();  // 💥

I'm using --strict and I never wrote any, but the type of b is still any and it leads to a runtime error that TS misses.
Here's a more intricate React example that tripped me up this week:
import React from 'react';

function MyComponent() {
  const [value, setValue] = React.useState('');
  return (<input onChange={e => setValue(e.currentTarget.value)} value={value} />);
}

This works correctly. The e parameter in the callback has a type of React.ChangeEvent<HTMLInputElement>, which is exactly right.
Now I decide to memoize the handler using React.useCallback, copy-pasting my callback:
import React from 'react';

function MyComponent() {
  const [value, setValue] = React.useState('');
  const handleChange = React.useCallback(e => setValue(e.currentTarget.value), []);
  return (<input onChange={handleChange} value={value} />);
}

Again, this works (at runtime) and it passes the type checker. But it's actually a looming disaster because e now has an any type! This comes from the React typings:
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/07e9b3d9d301b7d17390c16816c02cdf92706ecb/types/react/index.d.ts#L1099-L1107
This use of any is a known issue (https://github.com/DefinitelyTyped/DefinitelyTyped/issues/52873) that the maintainers prefer not to fix until the next major version of React comes out. That's fine, but it makes useCallback very any-prone.
I've found that anys that come from @types and the built-in libraries are quite common and always surprising. They let anys creep into your code even when you think you're being strict. I'd like some way to have TypeScript help me fight back against these implicit anys.
💻 Use Cases

See above. noImplicitAny solves this for anys that are truly implicit. I'm proposing a new flag that would extend this to any symbols that do appear explicitly in type declarations, just not ones that I wrote.
You can use declaration merging to eliminate these on a case-by-case basis (see blog post) but this feels like playing whack-a-mole. The new --useUnknownInCatchVariables flag is another tool in this game of any whack-a-mole.
The best way to spot these any leaks is with ts-coverage (https://github.com/plantain-00/type-coverage), which reports every symbol in your code that has an any type, wherever it came from. The downside is that this exists outside the TypeScript toolchain, so I tend to only run it every once in a while, whereas type errors always get fixed immediately.

What would "third-party type declarations" mean? Every import that's not relative and every declaration file? I don't think TypeScript has a concept of "third-party".

I was wondering about that. Maybe something to do with typeRoots? Or by default, node_modules/@types?

The downside is that this exists outside the TypeScript toolchain, so I tend to only run it every once in a while, whereas type errors always get fixed immediately.

This sounds imminently fixable with an editor extension.

Yes, I think one of my takeaways here is that I should spend a bit more time trying to understand why the type-coverage VS Code extension has never worked for me.


How to set window width, height size when using webcam?

I have tried to detect object using webcam.
I followed Readme file and I want to Full size of window.
But I can't find option of width, height And there wasn't maximize button..
Here is shell script to use webcam
python3 eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.15 --top_k=15 --video_multiframe=4 --video=0

And I tried
mng = plt.get_current_fig_manager()
mng.frame.Maximize(True)

It doesnt work...
How to set window width, height size when using webcam?
Please help me...
My OS is Ubuntu 16.04 Desktop

My OS is Ubuntu 16.04 Desktop

Here:
https://github.com/dbolya/yolact/blob/b97e82d809e5e69dc628930070a44442fd23617a/eval.py#L644
Add:
vid.set(cv2.CAP_PROP_FRAME_WIDTH, <diesired_width>)
vid.set(cv2.CAP_PROP_FRAME_HEIGHT, <diesired_height>)


[Discussion] How can you extend the length beyond 10 minutes?

I'm working with live recordings, which looks promising so far, but have not worked out what file needs tweaking to read beyond 600.0 seconds.

I would love to, but I cannot locate anything relevant, which was the reason for the ticket.
Can you link the area of the block of text that explains what needs changing?

when you use separate command add    - d 9000 (replace 9000 by duration in seconds you need)

Awesome, @greatfinders, thank you!
Once I rebuilt everything (had tried screwing with random files with values of 600) it works, sort of.
There's no errors or warnings showing, and I cannot find any logs, but when I have too large a duration it plain doesn't write any output.
So setting -d 700 gave me a pair of 117.8MiB WAV files, but 3600 results in nothing but cycles gone by.

Awesome, @greatfinders, thank you!
Once I rebuilt everything (had tried screwing with random files with values of 600) it works, sort of.
There's no errors or warnings showing, and I cannot find any logs, but when I have too large a duration it plain doesn't write any output.
So setting -d 700 gave me a pair of 117.8MiB WAV files, but 3600 results in nothing but cycles gone by.

i didn't really tried it , no result mean that the task was killed cause of power lacking (it required lot of ram and CPU) , for what i remember (read faq it's written inside) there's a way to settle for example 0 to 600, 601 to 1200 etc and then you'll need only to fuse after that

Huh. That appears to be true, but doesn't make sense. Last night I could use -d 999 but -d 1000 would fail, but it's only using at greatest 21.8GiB RAM. I have 32 installed, and during testings, ~3.9GiB were reported as inactive when it failed. It's definitely not CPU bound, as it never hit 300% and I have nearly 1200% available when idling.
I don't suppose setting up a swap file would necessarily help. I guess I'll have to split the files up into 15Min chunks before processing.

FYI everything's good now. I added a 16GiB swap file, and was able to process longer.
Trying an hour long file, it appears to have written a 29 minute file, which makes me happy, as at least I know how far it made it and can expand the file accordingly.

Why can't Spleeter split a large file into 10 minute segments, process them separately, then merge it back together into a single file output?
It would solve the extended length issue, without resorting to using up all the memory, and potentially hacky ways of manipulating memory swap file size (which can't be done in macOS anyways).

I'd actually rather not to have that happen automatically. Each spleet has
a noise spike at the start and end, and I'd rather not have to search for
double-spikes on any file longer than 10 minutes.
I was actually able to process roughly an hour (length is dependant on
content) by installing zram. When I upgraded CPU I'd also upgraded RAM
50%, and now swap is barely touched on an hour (tens of megs).
On Mon, Apr 26, 2021, 07:05 redbar0n @.***> wrote:

Why can't Spleeter split a large file into 10 minute segments, process
them separately, then merge it back together into a single file output?
It would solve the extended length issue, without resorting to using up
all the memory, and potentially hacky ways of manipulating memory swap file
size (which can't be done in macOS anyways).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deezer/spleeter/issues/114#issuecomment-826745241,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AILCPYLB7TL5E7HIA6W2LZDTKVCHPANCNFSM4JOSKQZQ
.

I get that. But maybe spleeter should remove the noise spikes at the starts instead?
It seems unreasonable to force people to mess with or upgrade their RAM just for it to work on longer files.
How did you get to use zram on macOS anyway? I thought it was just for Linux.

Oh, yeah, sorry. I've never purchased anything Apple. This would be using
the Docker container on openSUSE Linux.
On Mon, Apr 26, 2021, 09:29 redbar0n @.***> wrote:

I get that. But maybe spleeter should remove the noise spikes at the
starts instead?
It seems unreasonable to force people to mess with or upgrade their RAM
just for it to work on longer files.
How did you get to use zram on macOS anyway? I thought it was just for
Linux.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deezer/spleeter/issues/114#issuecomment-826836022,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AILCPYLVNZNNBJPV7MZVJC3TKVTDJANCNFSM4JOSKQZQ
.

Seems like this bash script might help:
https://github.com/deezer/spleeter/issues/391#issuecomment-633575082
Although it should ideally be a part of Spleeter itself.

I recently contributed to the aforementioned bash script, which might help manage both RAM and HDD space concerns in general: https://github.com/amo13/spleeter-wrapper

when you use separate command add - d 9000 (replace 9000 by duration in seconds you need)

This worked for me. I do however think the default should be greater and should scale automatically based on CPU and RAM availability ...

while I using GPU to handler LARGE .wav audio file (4 hours long, ~3GB), and the defult -d 600 will ends up Out Of Memory.
GPU: RTX 3060 LAPTOP (6BG VRAM)

So I set the step to 60 using auditok to separate the file into small 60sec .wav file 0-60.wav, 60-120.wav, ...
pass to spleeter -> 0-60_vocals.wav, 60-120_vocals.wav, ...
use ffmepg to combine multiple wav files into one vocals.wav
hope this help

Here is the code that handle multiple audios files
speech_file_paths = []
audio_region_paths = []

self.step_seconds = 60 # separate file into 60s long
seconds = 0
file_index = 0
audio_region = None
all_audio_length = 0.0
while True:
    # NOTE: Read the audio file. If the audio file is too short, merge it with the next audio file (if there is one).
    # NOTE: If the audio_region is the remaining part of the previous region, there is no need to read the file again.
    if audio_region == None:
        logger.warning(f"Reading file {file_index+1}: {self.audio_file_paths[file_index]}")
        audio_region = auditok.load(self.audio_file_paths[file_index])
        file_index += 1
        all_audio_length += audio_region.duration

    # NOTE: If the audio file is too short, and there is another audio file, merge it with the next one.
    while audio_region.duration < self.step_seconds and file_index < len(self.audio_file_paths):
        logger.warning(f"Reading file {file_index+1}: {self.audio_file_paths[file_index]}")
        next_audio_region = auditok.load(self.audio_file_paths[file_index])
        all_audio_length += next_audio_region.duration
        audio_region += next_audio_region
        file_index += 1

    current_file_seconds = 0
    while True:
        audio_region_path = os.path.join(clip_path, f"{get_time_point_name(seconds)}-{get_time_point_name(seconds+self.step_seconds)}.wav")
        speech_file_path = os.path.join(clip_path, f"{get_time_point_name(seconds)}-{get_time_point_name(seconds+self.step_seconds)}_vocals.wav")
        # NOTE: here is the feature of [auditok](https://github.com/amsehili/auditok)
        clip_region:auditok.AudioRegion = audio_region.seconds[current_file_seconds:current_file_seconds+self.step_seconds]
        is_end_of_clip = clip_region.duration < self.step_seconds
        if os.path.exists(audio_region_path):
            logger.debug(f"Audio segment already exists: {audio_region_path}")
            seconds += self.step_seconds
            current_file_seconds += self.step_seconds
            continue

        if not is_end_of_clip:
            audio_region_paths.append(audio_region_path)
            # NOTE: here I save the file
            clip_region.save(audio_region_path)
            logger.debug(f"Split audio into {self.step_seconds}-second segments: {audio_region_path}")

            speech_file_paths.append(speech_file_path)

            seconds += self.step_seconds
            current_file_seconds += self.step_seconds
        else:
            # NOTE: If this is the last clip, merge it with the next audio file.
            audio_region = clip_region
            break

    # NOTE: If all audio files have been read, exit the loop.
    if file_index == len(self.audio_file_paths):
         # NOTE: If there is a remaining part, save it.
        if audio_region.duration > 0:
            audio_region_paths.append(audio_region_path)
            audio_region.save(audio_region_path)
            logger.debug(f"Split audio into {self.step_seconds}-second segments: {audio_region_path}")

            speech_file_paths.append(speech_file_path)
        break

logger.warning(f"Start separating vocals. Total audio length: {get_time_point_name(all_audio_length)}")
self.separate_speech_from_audio(input_paths=audio_region_paths, output_folder=clip_path)
logger.warning(f"Separation completed. Total audio length: {get_time_point_name(all_audio_length)}")

# NOTE: Merge the separated audio clips into one complete file.
self.merge_speeches(audio_files=speech_file_paths)

I'd solved this with a combination of zram and 48GiB RAM.
On Wed, Apr 19, 2023, 14:35 DoodleBear @.***> wrote:

while I using GPU to handler LARGE .wav audio file (4 hours long, ~3GB),
and the defult -d 600 will ends up Out Of Memory.
GPU: RTX 3060 LAPTOP (6BG VRAM)

So I set the step to 60 using auditok
https://github.com/amsehili/auditok to separate the file into small
60sec .wav file 0-60.wav, 60-120.wav, ...
pass to spleeter -> 0-60_vocals.wav, 60-120_vocals.wav, ...
use ffmepg to combine multiple wav files into one vocals.wav
hope this help

Here is the code that handle multiple audios files
speech_file_paths = []audio_region_paths = []
self.step_seconds = 60 # separate file into 60s longseconds = 0file_index = 0audio_region = Noneall_audio_length = 0.0while True:
# NOTE: Read the audio file. If the audio file is too short, merge it with the next audio file (if there is one).
# NOTE: If the audio_region is the remaining part of the previous region, there is no need to read the file again.
if audio_region == None:
logger.warning(f"Reading file {file_index+1}: {self.audio_file_paths[file_index]}")
audio_region = auditok.load(self.audio_file_paths[file_index])
file_index += 1
all_audio_length += audio_region.duration
# NOTE: If the audio file is too short, and there is another audio file, merge it with the next one.
while audio_region.duration < self.step_seconds and file_index < len(self.audio_file_paths):
    logger.warning(f"Reading file {file_index+1}: {self.audio_file_paths[file_index]}")
    next_audio_region = auditok.load(self.audio_file_paths[file_index])
    all_audio_length += next_audio_region.duration
    audio_region += next_audio_region
    file_index += 1

current_file_seconds = 0
while True:
    audio_region_path = os.path.join(clip_path, f"{get_time_point_name(seconds)}-{get_time_point_name(seconds+self.step_seconds)}.wav")
    speech_file_path = os.path.join(clip_path, f"{get_time_point_name(seconds)}-{get_time_point_name(seconds+self.step_seconds)}_vocals.wav")
    # NOTE: here is the feature of [auditok](https://github.com/amsehili/auditok)
    clip_region:auditok.AudioRegion = audio_region.seconds[current_file_seconds:current_file_seconds+self.step_seconds]
    is_end_of_clip = clip_region.duration < self.step_seconds
    if os.path.exists(audio_region_path):
        logger.debug(f"Audio segment already exists: {audio_region_path}")
        seconds += self.step_seconds
        current_file_seconds += self.step_seconds
        continue

    if not is_end_of_clip:
        audio_region_paths.append(audio_region_path)
        # NOTE: here I save the file
        clip_region.save(audio_region_path)
        logger.debug(f"Split audio into {self.step_seconds}-second segments: {audio_region_path}")

        speech_file_paths.append(speech_file_path)

        seconds += self.step_seconds
        current_file_seconds += self.step_seconds
    else:
        # NOTE: If this is the last clip, merge it with the next audio file.
        audio_region = clip_region
        break

# NOTE: If all audio files have been read, exit the loop.
if file_index == len(self.audio_file_paths):
     # NOTE: If there is a remaining part, save it.
    if audio_region.duration > 0:
        audio_region_paths.append(audio_region_path)
        audio_region.save(audio_region_path)
        logger.debug(f"Split audio into {self.step_seconds}-second segments: {audio_region_path}")

        speech_file_paths.append(speech_file_path)
    break

logger.warning(f"Start separating vocals. Total audio length: {get_time_point_name(all_audio_length)}")self.separate_speech_from_audio(input_paths=audio_region_paths, output_folder=clip_path)logger.warning(f"Separation completed. Total audio length: {get_time_point_name(all_audio_length)}")

NOTE: Merge the separated audio clips into one complete file.self.merge_speeches(audio_files=speech_file_paths)
—
Reply to this email directly, view it on GitHub
https://github.com/deezer/spleeter/issues/114#issuecomment-1515192379,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AILCPYP5UJ5IRXAS7C5QHXDXCAV6RANCNFSM4JOSKQZQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Use .json extension for message exports

We were previously exporting json but without the proper file extension.

Does this PR need a docs update or release note?

[x] :white_check_mark: Yes, it's included
[ ] :clock1: Yes, but in a later PR
[ ] :no_entry: No

Type of change

[ ] :sunflower: Feature
[x] :bug: Bugfix
[ ] :world_map: Documentation
[ ] :robot: Supportability/Tests
[ ] :computer: CI/Deployment
[ ] :broom: Tech Debt/Cleanup

Issue(s)

closes https://github.com/alcionai/corso/issues/4581

Test Plan

[ ] :muscle: Manual
[x] :zap: Unit test
[ ] :green_heart: E2E

Hmm, this seems like an easy gotcha. Any ideas on ways to ensure we have file type extensions for all exports?

I'm not sure. For items in drives(ie OD and SP), we have no control over the extension which will make things tricky. @ryanfkeepers


No and_surrounding_cells parameter available for Changeset calculations

I ran into issues with correctly generating peering cells when using changesets in my project, but did not have the issue using update_terrain_cells and set_cell. Upon looking into it, I noticed that _widen is being called a second time here when and_surrounding_cells is set to true. I tried calling it a second time in the create_terrain_changeset function here and it fixed my issue. I would suggest the same approach as with update_terrain_cells, where the and_surrounding_cells value is provided. It can be defaulted to false if you are worried about backwards compatibility as well, but there are definitely some use cases where it would be needed. I can put together a PR in like 3 minutes if you want, but I am not sure if there is testing you would want to perform first.

Also I can open a new issue for this but it is at least somewhat related. When using changesets and doing chunk loading, by far the longest remaining frame time is from calling that _widen function mentioned above. When attempting to rework things to run the chunk loading in a WorkerThreadPool task that then kicks off the changeset function (and calls the subsequent group task in BetterTerrain) I have issues with what seems to be neighbor/peering cells. For some reason, the cells retrieved in needed_cells and loaded into types here don't line up with the cells expected to be in types in this line here whenever the code is being run in a separate thread, whether I use changesets or call the set_cell and update_terrain_cells functions. I tried to debug this for a while without much progress since I don't have a lot of background on the peering/neighbor cell logic. @Portponky do you have any insights here that could help?


Need function to generate Table One

A related tool exists in R: https://cran.r-project.org/web/packages/tableone/vignettes/introduction.html

There can be a lot of variation here, so it might not be worthwhile to create a function for every edge case. Instead, this might be a suitable task for an tutorial, which users can modify as needed.

The aggregate demographic data portion of https://github.com/AshlinHarris/MLDemo is related.


Discord server link not working

strangely enough I used the invite this morning, can you re-try?

For another data point, just used it and it worked.

It was something wrong with authentication, but now it works. Thank you.


Sorting broken when specifying table data with Trs and Tds

https://github.com/glittershark/reactable/blob/master/src/reactable.jsx#L709
this.data.sort(function(a, b){
    var keyA = a[currentSort.column];
    keyA = stringable(keyA) ? keyA.toString() : '';
    var keyB = b[currentSort.column];
    keyB = stringable(keyB) ? keyB.toString() : '';

    ...

When specifying table data manually with Tds, a and b have properties data and props, so a[currentSort.column] and b[currentSort.column] are undefined.
Looks like data will either have a value or an object with a value property.

I think this is a relevant issue: https://github.com/glittershark/reactable/issues/87

Oops! Must've missed this in #103 and #107. Thanks for the tests! :grin:


Setting: metadata_max_age_ms is not taken into account

Version: logstash-output-kafka-7.0.8 - logstash-output-kafka-7.1.1
Operating System: Ubuntu 16.04 LTS
Config File (if you have sensitive info, please remove it):

output {
if ("_jsonparsefailure" not in [tags]) and ("_timestampparsefailure" not in [tags]) {
kafka {
bootstrap_servers => "host1:9092,host2:9092,host3:9092"
topic_id => "kafka-%{id}"
acks => "0"
retries => "1"
metadata_max_age_ms => "60000"
codec => "json"
client_id => "kafka-front"
batch_size => 655360
buffer_memory => 67108864
}
}
}

Sample Data:

Logstash in log reports:

max.block.ms = 60000
max.in.flight.requests.per.connection = 5
max.request.size = 1048576
metadata.max.age.ms = 300000

Steps to Reproduce:

Set metadata_max_age_ms to value other then 300000 in logstash-output-kafka plugin and restart logstash. See ProducerConfig values in log file.

In the logstash-input-kafka plugin - everything is OK. If you set metadata_max_age_ms => "60000" in the logs i see:

    isolation.level = read_uncommitted
    key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
    max.partition.fetch.bytes = 1048576
    max.poll.interval.ms = 300000
    max.poll.records = 500
    metadata.max.age.ms = 60000


NNlib Support

#169 highlights that we need rules for a range of functionality which lives in NNlib.jl -- this is not surprising, and has largely already been done (see e.g. the Enzyme extension). Someone needs to systematically work through and test that Tapir works on everything in NNlib.

In short: yes. We don't have a nice macro for doing it at the minute, but it ought to be quite doable provided that we constrain the types that impose some of our own constraints on the types.
In the case of dropout: this one actually might be a little tricky because it uses kwargs, and I've not looked at supporting kwargs yet (this largely happen automatically), but it should otherwise be fine.
Something like batched_transpose should be quite straightforward. You would just do something along the lines of
function rrule!!(::CoDual{typeof(batched_transpose)}, A::CoDual{Array{<:Any,3}})
    B, pb = rrule(batched_transpose, primal(A)
    function pb!!(dB)
        _, dA_inc = pb(dB)
        increment!!(tangent(A), dA_inc)
        return NoRData(), NoRData()
    end
    return zero_fcodual(B), pb!!
end

Note that I've restricted the array type here -- we would just need to be careful with how we extend this rule to other array types, as it's only valid in Tapir.jl for arrays whose tangents are arrays, rather than Tangents.

In the narrow sense that lots of ChainRules.rrules are written with abstract arguments: yes.
However, recall that this gives you an overly optimistic sense of how much more general a ChainRules.rrule is. It's not very hard to construct e.g. subtypes of AbstractArray{<:Any, 3} for which this won't work.

It's part motivation part oversight.
It's motivated by trying to write rules for things like Zygote, where you really want your rule system to do a lot of work, because Zygote can't differentiate much itself due to lack of mutation support.
It's an oversight in the sense that we didn't realise how hard it is to write rules which work for lots of types that are robust.

Hmm okay. Could you provide a small code example showing what you mean? I'm still not quite following what you're trying to say / ask, so I think I need some examples.

This is partially addressed by #254, but there remains work to be done on GPU integration, and generalising the functionality added to AbstractArrays other than Arrays. Consequently, I'm going to keep this issue open.


Nondeterministic Choice

Adds the non-deterministic choice operator.

This does more good merged into the 2.0 branch.


Making list of hidden components reactive, static options for Dropdown

Description

If you had expressions hiding a component which depended on some other component value to also be set, we could end up in a situation where expressions for hidden needed to be run multiple times in order to get a stable result. This could cause some components to appear as hidden (or visible) when their expressions clearly said they shouldn't.
Adding support for static options to the Dropdown component, which was mysteriously missing.

Related Issue(s)

https://altinn.slack.com/archives/C047F8FK2NQ/p1687419433771429

Verification/QA

Manual functionality testing

[x] I have tested these changes manually
[ ] Creator of the original issue (or service owner) has been contacted for manual testing (or will be contacted when released in alpha)
[ ] No testing done/necessary

Automated tests

[ ] Unit test(s) have been added/updated
[x] Cypress E2E test(s) have been added/updated
[ ] No automatic tests are needed here (no functional changes/additions)
[ ] I want someone to help me make some tests

UU/WCAG (follow these guidelines until we have our own)

[ ] I have tested with a screen reader/keyboard navigation/automated wcag validator
[x] No testing done/necessary (no DOM/visual changes)
[ ] I want someone to help me perform accessibility testing

User documentation @ altinn-studio-docs

[ ] Has been added/updated

[x] No functionality has been changed/added, so no documentation is needed
[ ] I will do that later/have created an issue

Changes/additions to component properties

[ ] Changes are reflected in both src/layout/layout.d.ts and layout.schema.v1.json, and these are all backwards-compatible
[x] No changes made

Support in Altinn Studio

[ ] Issue(s) created for support in Studio

[x] This change/feature does not require any changes to Altinn Studio

Sprint board

[x] The original issue (or this PR itself) has been added to the Team Apps project and to the current sprint board
[ ] I don't have permissions to do that, please help me out

Labels

[x] I have added a kind/* label to this PR for proper release notes grouping
[ ] I don't have permissions to add labels, please help me out

The failing multipart-save cypress test seems to be a fluke, from what I can tell. I got it to fail once myself, but now it's running fine every time as far as I can tell.


feature: model compression

An issue to track the implementation of model compression.
Merge Queue

PRs from rkuester/feat-compression are open for approval and merging. Because of our one-commit-per-PR policy, there is typically only one PR open at a time.
Commits along the branch rkuester/feat-compression-next are queued, so to speak, for submission as PRs. Looking at this branch might give context for the open PR in feat-compression, see above. Be aware—this branch is rebased often.
The branch rkuester/compress-testing typically contains the final result once all PRs for the model compression feature are merged. This is the Oort cloud from which commits along feat-compression-next, which turn into PRs from feat-compression, are formed. Explore this branch or compare it to main to see the full model compression feature implementation and understand the queued PRs in context.

This task remains open; PRs and issues link to it for tracking purposes regularly.

Hi. Was this change intended for whether TFLM compression is or or off, or should it have been made conditional as well?
https://github.com/tensorflow/tflite-micro/blame/main/tensorflow/lite/micro/kernels/concatenation.cc#L189

Hi. Was this change intended for whether TFLM compression is or or off, or should it have been made conditional as well?
https://github.com/tensorflow/tflite-micro/blame/main/tensorflow/lite/micro/kernels/concatenation.cc#L189

@tinskip This change is intentional and is there regardless of RTLM conditional compression compilation.  The change updates the LRTM (TFLM) code to match the LiteRT (TfLite) reference implementation.


Add release notes for TensorFlow Lite.

Add TensorFlow Lite release notes.

Hold on... Double checking...


Remove woff fonts

Now that #7535 made it official, removing a number of woff fonts. wagtail.woff is still there as we have a few cases of icon font usage
This was raised in #6130

I'm happy to review this, but don't let that stop others from reviewing and merging this PR 🙂

Merged in 614ec3fc2a656b25db710b80f9e60f1c8effd7a4

Thanks for merging Dan! 👍
I intended to merge this soon after approving, but forgot to do so 😅

Got some spare time so slowly in working through the queue :)


Priority doesn't work

I am calling a wrapper task which has the following dependencies:

TaskA(),TaskB(),TaskC(arguments1=['arg1'],arguments2=['arg1','arg2'])]
I though Luigi would be executing these tasks in a sequence, starting with TaskA. But that doesn't run as expected.

Next, I tried declaring the priority using a @property decorated function, which returned the value of a priority_value parameter.

TaskA(priority_value=10),TaskB(priority_value=5),TaskC(arguments1=['arg1'],arguments2=['arg1','arg2'],priority_value=1)]
@property
	def priority(self):
		return self.priority_value

I also tried the simple priority parameter

TaskA(priority=10),TaskB(priority=5),TaskC(arguments1=['arg1'],arguments2=['arg1','arg2'],priority=1)]
But none of these work, while running the tasks , Luigi checks in the desired order,
Checking if TaskA is complete,
Checking if TaskB is complete,
Checking if TaskC is complete ,
But then goes right into TaskC and starts checking for its dependencies and executing them.

@Tarrasch

If I m right, priority doesn't guaranty task order. Refers to https://github.com/spotify/luigi/blob/master/doc/tasks.rst#task-priority.
It's more like it orders task attribution to workers.
Example:

If you work with 3 workers, your 3 tasks will run in parallel.
If you have 2 workers, Task A will run first, Task B will run in parallel.
Then Task C will run when one worker will be free.

I m maybe wrong.
If you need to run your task in a sequence, you must use requires https://github.com/spotify/luigi/blob/master/doc/tasks.rst#task-priority. It's the only "secure" way I know to run your tasks in the good order.

@Gmousse Yes, I am using requires, but I am specifying multiple tasks in requires.
I guess you're saying specifying only one task at a time in requires?

The case I met in my job:

TaskA requires TaskB and TaskC
TaskB is not directly dependent of TaskC but must be executed after the TaskC

Then you need this order: TaskC -> TaskB -> TaskA
It's wrong to consider than TaskA can require both TaskB and TaskC and then order their execution with the priority (as I described previously, it's not safe with multiple workers).
You must have: TaskA requires TaskB. TaskB requires TaskC.
By this you will be sure that TaskC will be executed before TaskB.

Cool, thanks @Gmousse for the clarification. I guess that means priority in Luigi is useless, because this is the only case where one would require the use of priority.

@gamebusterz There are some usecases where priority is useful:
You have a workflow of tasks containing different families of tasks:

A type of Task used to compute data used in your webapp (Example: playlist prefered by users)
A type of Task to report user actions on your webapp (Example: data used to train machine learning models)
A type of Task to compute some informations about your business

The three family of tasks are unrelated (directly and indirectly).
But the first task family has higher priority (because it's used directly in your webapp by real users).
You workflow looks like:

class MyBusinessWorkflow(luigi.Task):

    requires(self):
         yield ComputeUsersActions() # priority 60
         yield ComputeUsersPlaylists() # priority 100
         yield ComputeBusinessReport() # priority 20

It means luigi will execute firstly the highest priority. But if you have multiple workers, luigi will not wait highest priority task is done.
Priority is just used to organise unrelated tasks execution, not to give a precise order.

That explains it. Thanks a lot Guillaume :)
On Mon 2 Jul, 2018, 4:14 PM Guillaume Mousnier<EMAIL_ADDRESS>wrote:

@gamebusterz https://github.com/gamebusterz There are some usecases
where priority is useful:
You have a workflow of tasks containing different families of tasks:

A type of Task used to compute data used in your webapp (Example:
playlist prefered by users)
A type of Task to report user actions on your webapp (Example: data
used to train machine learning models)
A type of Task to compute some informations about your business

The three family of tasks are unrelated (directly and indirectly).
But the first task family has higher priority (because it's used directly
in your webapp by real users).
You workflow looks like:
class MyBusinessWorkflow(luigi.Task):
requires(self):
     yield ComputeUsersActions() # priority 60
     yield ComputeUsersPlaylists() # priority 100
     yield ComputeBusinessReport() # priority 20

It means luigi will execute firstly the highest priority. But if you have
multiple workers, luigi will not wait highest priority task is done.
Priority is just used to organise unrelated tasks execution, not to give a
precise order.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spotify/luigi/issues/2443#issuecomment-401761764, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGj7vCqAdsP3OlVXG6vT2UWMnOS5CykGks5uCfmXgaJpZM4UmKt9
.


Optionally display descriptor next to producer

Addresses issue: https://github.com/bocoup/blocks-capacity-planner/issues/4

Add an additional "descriptor" selection to the producer settings
Using "descriptor" instead of "cuisine" so in the setting any text
description for a producer could be shown, though the feature was
initially requested to show the cuisine
Change the producer statistics dropdown to be a producer display
dropdown. Add "descriptor" as one of the options.
When the "descriptor" is chosen as a display option display inline on
the AssignmentItem

This is what it looks like on the with the example base:

@jugglinmike - It would be great if you could take a look at this when you had a chance.

Nice work, Rebecca!


onnx bert model attention_mask

Hi, I am trying to convert bert model to onnx format and I followed the instruction in 'deployment.md'. Everything is good.
However, I find the results of onnx and pytorch are different, as attention_mask is one of inputs in pytorch but onnx not. The similarity of text features are around ~0.8.
Is it a bug or intended? Will it affact a lot if attention_mask is not used?

Thank you for pointing out the issue. Let us have a check!

I am sorry that I did not check the results carefully. This problem is caused by mnn model, not onnx. Sorry for the inconvenience.


upgrade to tut 0.6.3

tut 0.6.3  is now released, please can this be updated so we can build/release cats for 2.13.0-M3, please
ref https://github.com/typelevel/cats/pull/2173

Hi @BennyHill, thanks for your issue.
I have just created a PR to bump the version of this plugin https://github.com/47deg/sbt-org-policies to his last version. This version has the version that you need of tut.

@eperinan Wow, quick turnaround !! Many thanks :+1:

Done. You have available the new version already https://github.com/47deg/sbt-microsites/releases/tag/v0.7.17

Thanks, I will have time to look a this Tuesday.


Unsupported op_type "Resize"

The model Tiny YOLOv3 raises an ArgumentError when trying to import it:
** (ArgumentError) unsupported "Resize"
    (axon_onnx 0.1.0) lib/axon_onnx/deserialize.ex:1595: AxonOnnx.Deserialize.recur_nodes/2
    (elixir 1.13.2) lib/enum.ex:2396: Enum."-reduce/3-lists^foldl/2-0-"/3
    (axon_onnx 0.1.0) lib/axon_onnx/deserialize.ex:44: AxonOnnx.Deserialize.graph_to_axon/2
    (axon_onnx 0.1.0) lib/axon_onnx/deserialize.ex:27: AxonOnnx.Deserialize.to_axon/2

Seems like Axon has functionality for that, but it is not "plugged in" yet: https://hexdocs.pm/axon/Axon.html#resize/3.
Maybe I can do that?
(Follow up to https://github.com/elixir-nx/axon_onnx/issues/33)

@jnnks I would welcome a PR for resize! Let me know if you need any help. The Axon resize should have all of the pieces you need

This issue also arises with yolov8n (probably all the yolo models?).  I can see a lot of work on this by @jnnks from the middle of last year. Is there anything I can do to help get this done and merged?  I'd really like to build more axon-based models in my image library but this is a blocker for me.

Hi @kipcole9, my work on this issue has been rather superficial to be quite honest. I suppose the code commited in the PR is a start, but does not cover all of the functionality described in the ONNX spec.
The sample data provided by ONNX cannot be used for the tests directly and has to be changed.
The Protobuf files need to be decoded, changed and reencoded for the model and all test vectors.#
Even then the calculated result seems to be off.
I'll see if I can use some time to work on this again this week.

There is no doubt I under appreciate the amount of work and skill required - well beyond my abilities. But I think the whole community (definitely me!) would be very happy if we can use the yolo family of models with axon via axon_onnx.
Thanks for considering picking this up again. And if there's any non-skilled grunt work that would help, let me know and I'll dive right in.


Installation failing with "use ruby/io.h"

➜  ~  gem install hcl
Building native extensions.  This could take a while...
ERROR:  Error installing hcl:
	ERROR: Failed to build gem native extension.

        /Users/adamyonk/.rbenv/versions/1.9.3-rc1/bin/ruby extconf.rb
checking for termios.h... yes
checking for unistd.h... yes
creating Makefile

make
compiling termios.c
In file included from termios.c:10:
/Users/adamyonk/.rbenv/versions/1.9.3-rc1/include/ruby-1.9.1/ruby/backward/rubyio.h:2:2: warning: #warning use "ruby/io.h" instead of "rubyio.h"
termios.c: In function ‘Termios_to_termios’:
termios.c:182: error: ‘struct RArray’ has no member named ‘ptr’
termios.c:183: error: ‘struct RArray’ has no member named ‘ptr’
termios.c: In function ‘termios_tcgetattr’:
termios.c:200: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:200: error: (Each undeclared identifier is reported only once
termios.c:200: error: for each function it appears in.)
termios.c:200: error: ‘fptr’ undeclared (first use in this function)
termios.c: In function ‘termios_tcsetattr’:
termios.c:224: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:224: error: ‘fptr’ undeclared (first use in this function)
termios.c:225: warning: ISO C90 forbids mixed declarations and code
termios.c:231: warning: initialization discards qualifiers from pointer target type
termios.c: In function ‘termios_tcsendbreak’:
termios.c:265: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:265: error: ‘fptr’ undeclared (first use in this function)
termios.c: In function ‘termios_tcdrain’:
termios.c:290: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:290: error: ‘fptr’ undeclared (first use in this function)
termios.c: In function ‘termios_tcflush’:
termios.c:313: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:313: error: ‘fptr’ undeclared (first use in this function)
termios.c:314: warning: ISO C90 forbids mixed declarations and code
termios.c: In function ‘termios_tcflow’:
termios.c:343: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:343: error: ‘fptr’ undeclared (first use in this function)
termios.c:344: warning: ISO C90 forbids mixed declarations and code
termios.c: In function ‘termios_tcgetpgrp’:
termios.c:374: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:374: error: ‘fptr’ undeclared (first use in this function)
termios.c:375: warning: ISO C90 forbids mixed declarations and code
termios.c: In function ‘termios_tcsetpgrp’:
termios.c:398: error: ‘OpenFile’ undeclared (first use in this function)
termios.c:398: error: ‘fptr’ undeclared (first use in this function)
make: *** [termios.o] Error 1

Gem files will remain installed in /Users/adamyonk/.rbenv/versions/1.9.3-rc1/lib/ruby/gems/1.9.1/gems/termios-0.9.4 for inspection.
Results logged to /Users/adamyonk/.rbenv/versions/1.9.3-rc1/lib/ruby/gems/1.9.1/gems/termios-0.9.4/./gem_make.out

Bump. Can't install at all, is there some missing dependency here?

@adamyonk looks like your using ruby 1.9.3 it says in the README that its only tested in ruby 1.8.7 I had the same issue with ruby 1.9.2 then installed on 1.8.7 no problems.

@zenhob any plans to get this compatible with later versions of ruby?

Same, issue with 1.9.3
c'mon 1.9 was released in 2007, it's now almost 2012, time to stop developing on 1.8, please!!!

Pull requests will be integrated and published the moment I get any. It worked with 1.9.1 at some point but Ruby loves to change standard lib behavior in point releases. I don't use Harvest and do not have an account to test this with. Glad you all enjoy using HCl!

Thanks Zack.
On Dec 1, 2011 7:55 PM, "Zack Hobson" <
<EMAIL_ADDRESS>wrote:

Pull requests will be integrated and published the moment I get any. It
worked with 1.9.1 at some point but Ruby loves to change standard lib
behavior in point releases. I don't use Harvest and do not have an account
to test this with. Glad you all enjoy using HCl!

Reply to this email directly or view it on GitHub:
https://github.com/zenhob/hcl/issues/36#issuecomment-2979650


[SUGGESTION] Remove ShaderBuiltins for VertexID, InstanceID, DispatchThreadID, GroupThreadID, IsFrontFace

Further to the extensive discussion in #65, a core goal would be to share shader code between the CPU and GPU, allowing ray-tracing, AI, etc. to be run on the CPU where compute shaders are not available, or even to maximise throughput by utilising both the CPU and GPU.
The ShaderBuiltins for VertexID, InstanceID, DispatchThreadID, GroupThreadID, IsFrontFace allow shader code to access these variables in an 'OpenGL style' as opposed to the 'Direct3D' style where the variables are passed into shaders as parameters.
For example DispatchThreadID is simply replaced with gl_GlobalInvocationID in OpenGL, but is added as an input parameter to the compute shader e.g.
[numthreads(1, 1, 1)]
void CS(uint3 _builtins_DispatchThreadID : SV_DispatchThreadID) { ... }

Although, this is a valid sylistic choice, as the aspiration is to be able to ultimately execute CS from the CPU it would be much easier to achieve that goal replacing code such as:
        // Current 'OpenGL' style
        [ComputeShader(1, 1, 1)]
        public void CS()
        {
            uint index = DispatchThreadID.X;
            ...
        }

with a pattern like:
        // Proposed 'Direct3D' style - with parameter name matching
        [ComputeShader(1, 1, 1)]
        public void CS(UInt3 dispatchThreadID)
        {
            uint index = dispatchThreadID.X;
            ...
        }

or, to future proof, prevent collisions, be less 'magic' and far more intelligible to consumers, allow a semantic attribute that supports parameter attachment:
        // Proposed 'Direct3D' style - with semantic attribute indicating which parameter is the dispatch id
        [ComputeShader(1, 1, 1)]
        public void CS([DispatchIDSemantic] UInt3 id)
        {
            uint index = id.X;
            ...
        }

This approach would make it much easier to call the compute shader directly from .NET code on the CPU.  Currently ShaderBuiltins.DispatchID (et al) throw a ShaderBuiltinException on execution on the CPU.  Technically, I could change them to pull out a value from the Thread context, however maintaining a thread context is notoriously annoying in an async world and impacts on performance, and compute shaders (in particular) are destined to be run asynchronously even on the CPU.  Further, as the code can't easily tell which properties will be accessed in the code, all of them would need adding to the context immediately prior to execution, which is wasteful and slow.  Anyone implementing a CPU executor for the shaders would likewise need to understand how to setup the contexts (possibly by adding methods such as ShaderBuiltins.InitialiseComputeContext(...), ShaderBuiltins.InitialiseVertexContext(...), etc.) but this is far less obvious and discoverable, and far less performant than adopting the Direct3D style.

FYI: as a workaround, I'm currently doing the following:
        // Current 'OpenGL' style
        [ComputeShader(1, 1, 1)]
        public void CS()
        {
            DoCS(DispatchThreadID);
        }

        public void DoCS(UInt3 dispatchThreadID)
        {
            uint index = dispatchThreadID.X;
            ...
        }

And calling DoCs(...) from the CPU, this doesn't allow for easy auto-plumbing, etc. (i.e. calling the known entry-point dynamically is not possible)


url: '/account/:user'

Test case: https://codepen.io/cferdinandi/pen/vzBNMj

Home

My Account

and
var router = new Reef.Router({
	routes: [
		{
			id: 'home',
			title: 'Home',
			url: '/'
		},
		{
			id: 'user-account',
			title: 'User Account',
			url: '/account/:user'
		}
	]
});

// In this example:
// route.params.user will be "tom"

var app = new Reef('#app', {
	router: router,
	data: {
		greeting: 'Hello!'
        name: 'User',
	},
	template: function (props, route) {
		return `

${route.title}

${props.greeting}, ${props.name}!

	}
});

	app.render();

// Update the state after 3 seconds
window.setTimeout(function () {
    app.data.name = route.params.user;
}, 3000)

just showing result of

Home

My Account

Also if type http://localhost:5000/ in address bar I expect 'Home' page and http://localhost:5000/account/tom I expect at least

${route.title}

${props.greeting} ${route.params.user}

how? I missed something?

Can you please provide a reduced test with your code. A codepen or link to a GitHub Gist would work just fine. Thanks!

https://gist.github.com/melod/9cc07f63dce9b2887023d6815a7bea7e

Right out the gate, I see some bugs. You're missing a comma after one of the properties in the data object, and there's no closing backtick in your template literal for the template.
Here's the fixed version:
// In this example:
// route.params.user will be "tom"
// route.search.photo will be "true"
var app = new Reef('#app', {
	router: router,
	data: {
		greeting: 'Hello!',
        name: 'User',
	},
	template: function (props, route) {
		return `

${route.title}

${props.greeting}, ${props.name}!
`;

	}
});

This does result in an HTML output. Not sure if it's what you had in mind or not.

Yes. understood.


Experimental : Spring boot 3

Pull request checklist

[ ] Please read our contributor guide
[ ] Consider creating a discussion on the discussion forum
first
[ ] Make sure the PR doesn't introduce backward compatibility issues
[ ] Make sure to have sufficient test cases

Pull Request type

[ ] Bugfix
[ ] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Changes in this PR
Describe the new behavior from this PR, and why it's needed
Issue #
Alternatives considered
Describe alternative implementation you have considered

This was a temporary branch for experimenting with spring-boot-3 changes. We have a proper candidate branch spring-boot-3-candidate which we will use for further testing and validation prior to merging to master.


chg: Block context menu on message being edited

Details
If the message is being edited, we check for the draft message on that message Item and if there is a draft, we block the context menu from showing up.
Fixed Issues

Fixes #3677
Tests |  QA Steps

Open any conversation on E.cash.
Click Edit message from the context menu on any message.
When the Edit box is visible. try to open the context menu on the message being edited.
menu should not open.
repeat all the above steps on each platfrom.

Tested On

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

Screenshots

Web

https://user-images.githubusercontent.com/24370807/122616930-f77a4280-d0a8-11eb-8790-65c1ff551564.mp4
Mobile Web

Desktop

https://user-images.githubusercontent.com/24370807/122616937-fa753300-d0a8-11eb-93d0-280bc51acc73.mp4
iOS

Android

https://user-images.githubusercontent.com/24370807/122616943-fe08ba00-d0a8-11eb-8b6d-e190735bdefb.mp4

🚀 Deployed to staging in version: 1.0.72-3🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production in version: 1.0.73-3🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Document basis

Restructured the background documentation for basis:

Folder dedicated to basis in background
Readme with high level overview and a table showcasing all basis types.
Links to background on 1d and multi-d basis

Codecov Report
Attention: Patch coverage is 98.33532% with 14 lines in your changes missing coverage. Please review.

Project coverage is 96.09%. Comparing base (bfb8f16) to head (09e0c8e).
Report is 1 commits behind head on development.

Files with missing lines
Patch %
Lines

src/nemos/basis/_basis.py
95.93%
12 Missing :warning:

src/nemos/basis/_decaying_exponential.py
97.87%
1 Missing :warning:

src/nemos/basis/_transformer_basis.py
98.11%
1 Missing :warning:

Additional details and impacted files
@@               Coverage Diff               @@
##           development     #274      +/-   ##
===============================================
- Coverage        97.27%   96.09%   -1.18%
===============================================
  Files               25       34       +9
  Lines             2201     2485     +284
===============================================
+ Hits              2141     2388     +247
- Misses              60       97      +37

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Things I noticed in #273 that should be part of this PR :

want to be consistent in how we refer to eval / conv. Are they "types"? "modes"? "categories"? should "eval" be capitalized? in quotes?


Click Debug in Chrome will throw exception

Xcode trace:
2016-03-12 03:58:49.732 TestRND[2071:11104571] *** Terminating app due to uncaught exception 'RCTNotDesignatedInitializerException', reason: 'initWithFrame: is not implemented for the class RCTTextField'
*** First throw call stack:
(
  0   CoreFoundation                      0x00007fff977a6ae2 __exceptionPreprocess + 178
  1   libobjc.A.dylib                     0x00007fff858def7e objc_exception_throw + 48
  2   TestRND                      0x00000001000d3662 -[RCTTextField initWithFrame:] + 82
  3   AppKit                              0x00007fff846b231f -[NSView init] + 62
  4   TestRND                      0x00000001000d7b57 -[RCTTextFieldManager constantsToExport] + 55
  5   TestRND                      0x0000000100073d15 __23-[RCTModuleData config]_block_invoke + 53
  6   TestRND                      0x000000010007a72d __RCTExecuteOnMainThread_block_invoke + 29
  7   libdispatch.dylib                   0x0000000100234bf9 _dispatch_client_callout + 8
  8   libdispatch.dylib                   0x000000010024b331 _dispatch_barrier_sync_f_slow_invoke + 785
  9   libdispatch.dylib                   0x0000000100234bf9 _dispatch_client_callout + 8
  10  libdispatch.dylib                   0x000000010024c6af _dispatch_main_queue_callback_4CF + 2845
  11  CoreFoundation                      0x00007fff976eccd9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
  12  CoreFoundation                      0x00007fff976a7d3d __CFRunLoopRun + 1949
  13  CoreFoundation                      0x00007fff976a7338 CFRunLoopRunSpecific + 296
  14  HIToolbox                           0x00007fff95c22935 RunCurrentEventLoopInMode + 235
  15  HIToolbox                           0x00007fff95c2276f ReceiveNextEventCommon + 432
  16  HIToolbox                           0x00007fff95c225af _BlockUntilNextEventMatchingListInModeWithFilter + 71
  17  AppKit                              0x00007fff846330ee _DPSNextEvent + 1067
  18  AppKit                              0x00007fff849ff943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
  19  AppKit                              0x00007fff84628fc8 -[NSApplication run] + 682
  20  TestRND                      0x000000010000214a main + 234
  21  libdyld.dylib                       0x00007fff8efb45ad start + 1
  22  ???                                 0x0000000000000003 0x0 + 3
)
libc++abi.dylib: terminating with uncaught exception of type NSException

rnd version: 0.4.0

@jhen0409 is this empty project created from react-native-desktop init?
Anyway, please try to 0.5.0-rc1 version from npm.

is this empty project created from react-native-desktop init?

Yes.
I tried v0.5.0-rc1, it still has other problems:
2016-03-12 15:53:14.398 TestRND[15716:11259745] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArray0 longLongValue]: unrecognized selector sent to instance 0x608000000090'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff977a6ae2 __exceptionPreprocess + 178
	1   libobjc.A.dylib                     0x00007fff858def7e objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff977a9b9d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x00007fff976e2601 ___forwarding___ + 1009
	4   CoreFoundation                      0x00007fff976e2188 _CF_forwarding_prep_0 + 120
	5   TestRND                             0x0000000100068105 -[RCTBatchedBridge handleBuffer:] + 709
	6   TestRND                             0x0000000100067dca -[RCTBatchedBridge handleBuffer:batchEnded:] + 746
	7   TestRND                             0x0000000100066b90 __60-[RCTBatchedBridge enqueueApplicationScript:url:onComplete:]_block_invoke422 + 592
	8   TestRND                             0x00000001000f2322 __58-[RCTWebSocketExecutor _executeJSCall:arguments:callback:]_block_invoke + 242
	9   TestRND                             0x00000001000f0ff4 -[RCTWebSocketExecutor webSocket:didReceiveMessage:] + 260
	10  TestRND                             0x00000001000e87f1 __33-[RCTSRWebSocket _handleMessage:]_block_invoke + 81
	11  libdispatch.dylib                   0x000000010024bfa4 _dispatch_call_block_and_release + 12
	12  libdispatch.dylib                   0x000000010023ebf9 _dispatch_client_callout + 8
	13  libdispatch.dylib                   0x0000000100244046 _dispatch_queue_drain + 351
	14  libdispatch.dylib                   0x000000010024bd58 _dispatch_queue_invoke + 557
	15  libdispatch.dylib                   0x0000000100242cdf _dispatch_root_queue_drain + 1226
	16  libdispatch.dylib                   0x00000001002427d9 _dispatch_worker_thread3 + 106
	17  libsystem_pthread.dylib             0x00000001002a1458 _pthread_wqthread + 1129
	18  libsystem_pthread.dylib             0x000000010029efad start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Also, the v0.5.0-rc1 have a problem of Cannot find module 'fast-path', upstream has been updated.

Ok, thanks for a feedback, really helpful. Let's wait for 0.5.0 then, I'm almost done with the test suite, it's already fully passed on my local machine, but errored on Travis. I'm also migrating on my current project which uses 0.4.0 currently.

So I'm fighting with TravisCI environment at the moment, but seems to me that 0.5.0-rc3 works fine, I've migrated the project + tried react-native-desktop init.

It work on v0.5.0, Thanks! :D


Fix assets tarball

The tarball should be compressed and only use uncompressed assets. In
that way, uit can be used by downstream distros easily. they can either
download the assets and serve it as is or use the compress script to
have it in the binary.

i have fixed the PR again. it makes more sense to have a tar.gz with the uncompressed content.

:+1:


Proposal: Generic Result ADT

There is currently a Result<E, T> ADT that is geared towards decoders.
Proposal
Create a more generic result type. In many production apps I found myself ending up with the rust-ish Result type.
Something along the lines of:
interface Ok<T> {
  _tag: "Ok";
  result: T;
  error: null;
}

interface Err<E> {
  _tag: "Err";
  error: E;
  result: null;
}

type Result<T, E> = Ok<T> | Err<E>;

const ok = <T, E>(result: T): Result<T, E> => ({
  _tag: "Ok",
  result,
  error: null,
});
const err = <T, E>(error: E): Result<T, E> => ({
  _tag: "Err",
  error,
  result: null,
});
function computation(a: number) {
  return E.tryCatch(() => a * 2, flow(String, Error));
}

const match = <L, R>(e: E.Either<L, R>) =>
  E.fold<L, R, Result<R, L>>(err, ok)(e);

const result: Result<number, Error> = pipe(computation(1), match);

Is this just a rename of Either?

Might have not provided a good enough example.
The Result type is being sent down the wire as an actual response to a HTTP call.
The convenient structure makes it straightforward for API consumers to parse the result.
Although you're right about it  just being an Either, that has been further mapped to Ok/Err.
I believe my use-case is too specific to implement here.
We could rename the current Result type so it's better related to Decoder.


Adding ignition to Programming resources

Adding https://github.com/cbrews/ignition: Gemini Protocol Client for Python Developers.

@cbrews Thanks for your contribution 🙏

@cbrews Thanks for your contribution 🙏


fixed entered and left chat event

need to process entering and leaving action in the code

Hi! This is my mistake; I accidentally overlooked this type of update :( However, I wouldn't want to add any custom logic to AbstractUpdateRequest, so could you please remove the definition of whether the bot has been added or removed from the chat and just leave the status update? It should be done similarly to CHAT_MEMBER_UPDATED . And could you move the if-else statement to CHAT_MEMBER_UPDATED to maintain the same order as the properties in Update?
Thank you for using and making changes to this library!

Hi! This is my mistake; I accidentally overlooked this type of update :( However, I wouldn't want to add any custom logic to AbstractUpdateRequest, so could you please remove the definition of whether the bot has been added or removed from the chat and just leave the status update? It should be done similarly to CHAT_MEMBER_UPDATED . And could you move the if-else statement to CHAT_MEMBER_UPDATED to maintain the same order as the properties in Update?
Thank you for using and making changes to this library!

did it.. better? :) update.getMyChatMember() doesn't have a user inside.

create new RequestType MY_CHAT_MEMBER_UPDATED and move this statement to else if (update.getChatMember() != null) { statement

did it.. better? :) update.getMyChatMember() doesn't have a user inside.

Yes, but create new RequestType MY_CHAT_MEMBER_UPDATED and move this statement to else if (update.getChatMember() != null) { statement

did it. check please.

why you dont parse user? i see user presents on your screenshot.

Wait. But as far as I understand, it is not the bot itself that performs the action, but the one who excludes or adds it. And this user is in from. Isn't that right? So you just need to put the value from from into user.

sorry.. you are right.. just for the first time see this lib :) fixed it


AttributeError: 'NoneType' object has no attribute 'get'

Hi All,
Running 01-Lod-Data-AcogSearch.ipynb
Change these below with your own services credentials
AZURE_SEARCH_ENDPOINT = ""   <= URL of Search Service
AZURE_SEARCH_KEY = " "              <= Keys  Manage admin keys
COG_SERVICES_NAME = ""            <= name of search service,  e.g cog-search-xxxx
COG_SERVICES_KEY = ""                <=  cog-search-xxxx   , this is manage query keys
I have added like the above and

AttributeError                            Traceback (most recent call last)
Cell In[27], line 6
4 # pprint(json.dumps(r.json(), indent=1))
5 print(r.status_code)
----> 6 print("Status:",r.json().get('lastResult').get('status'))
7 print("Items Processed:",r.json().get('lastResult').get('itemsProcessed'))
8 print(r.ok)
AttributeError: 'NoneType' object has no attribute 'get'.  anyone seen this erro ?

This happens when you run this cell inmediately after the prior cell and when the indexer has not process any file yet. Give it a minute or so , so that the indexer starts processing and you will see results.


NIFI-5241: Updated EventSumValue to use synchronized methods instead …

…of many atomic values. This is more efficient and uses less heap. Also noticed that the Logger instance in ProcessorNode was not used so removed it, and in testing this also noticed that the default connection pool size for OkHttpReplicationClient was only 5, which can cause a lot of unnecessary HTTP connections to be created so adjusted the pool size
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@mcgilman that's a good call. I pushed a new commit that addresses that. I also rebased against master, since quite a bit has changed, and all still seems to work well.

Thanks @markap14! This has been merged to master.


User story 6 inventory

Inventory system following this playlist https://www.youtube.com/playlist?list=PLcRSafycjWFegXSGBBf4fqIKWkHDw_G8D and adapting to our project.

To open the inventory press the I key. You can drag and swap inventory items in the screen, and you can see an item description.  The items are automatically stacked in the inventory.

Recycling is based on taking every recyclable trash in the inventory and recycling them generating money.

I added text for recycling prompt.

Note: I have not covered the case for when the inventory gets full and what to do then. But right now it is going to be rare case since the max stack is 99 per item slot and i can make aas many slots as i want. But is something i could/will think about when doing the accessory slots.

I encounter an error when I open the inventory while the item is still in motion towards me.

I tried to play it, but the ui seems weird. Am I doing something wrong?

I tried to play it, but the ui seems weird. Am I doing something wrong?

I should have commited a fix for this. The problem was the ui scaling of the inventory items, something mentioned in the youtube playlist comments.


Add jest tests for React components

Use the real redux store but mock out services and async actions. This allows us to integration test connected components.

Attached is the screen layout for an 1152 x 700 laptop.
JobHopper Design 2020 10-13.pdf

@russ430 can you please provide a pull request with any work that you've done on this? If not, please reach out to me or @alexjball so that we can reassign the work.

@jedpittman I believe @alexjball is working on finalizing some of the components that we'll be adding the jest tests to, I don't think they're completely ready just yet to start testing.


gfxtablet -> Can't see "Network Tablet" in xinput list

Describe the bug
this is duplication of https://github.com/rfc2822/GfxTablet/issues/100
expected to see "Network Tablet" in sudo xinput list
$ sudo networktablet
GfxTablet driver (protocol version 2) is ready and listening on <IP_ADDRESS>:40118 (UDP)
Hint: Make sure that this port is not blocked by your firewall.

$ sudo xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB OPTICAL MOUSE                         id=11   [slave  pointer  (2)]
⎜   ↳ USB OPTICAL MOUSE  Consumer Control       id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Asus Wireless Radio Control               id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ USB OPTICAL MOUSE  Keyboard               id=12   [slave  keyboard (3)]
    ↳ USB2.0 VGA UVC WebCam: USB2.0 V           id=14   [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                          id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]
    ↳ USB OPTICAL MOUSE  Consumer Control       id=17   [slave  keyboard (3)]

$ cat /etc/X11/xorg.conf.d/10-evdev.conf
#
# Catch-all evdev loader for udev-based systems
# We don't simply match on any device since that also adds accelerometers
# and other devices that we don't really want to use. The list below
# matches everything but joysticks.

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

xserver config https://github.com/srghma/dotfiles/blob/d34e09a078521326a0657012f016ce6e04a84e41/nixos/root/services/default.nix#L83-L120
gfxtablet is added here https://github.com/srghma/dotfiles/blob/d34e09a078521326a0657012f016ce6e04a84e41/nixos/root/environment/default.nix#L181

I've cloned and build  it , and it works without problems, weird


Guarding all categories in app component

Description
There is an error from App Component at DrawMany root={allCategories[DEFAULT_ROOT_CATEGORY]}, but it is not visible due to the architecture of ssr-prepass. This cause the SSR not working in Retail App page
Solution: Guarding the allCategories would unblock this issue

Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

(change1)

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

This change should base on integration feature branch, not develop


Window management cycling for half height windows

Extension
Built-in window management extension
Description
Problem
I'm attempting to replace Rectangle with Raycast's window management extension and I love the cycling feature!
✅  It works as I'd expect for:

Left ½, ⅔ and ⅓
Right ½, ⅔ and ⅓
Top ½, ⅔ and ⅓
Bottom ½, ⅔ and ⅓
Center ½, ⅔ and ⅓

❌ But doesn't work as I'd like for:

Top Left ½, ⅔ and ⅓
Top Right ½, ⅔ and ⅓
Bottom Left ½, ⅔ and ⅓
Bottom Right ½, ⅔ and ⅓

Request
I would like to request these two change to solve this:
1. Add new commands

Top Left Two Thirds (half height version of "First Two Thirds")
Top Right Two Thirds (half height version of "Last Two Thirds")
Bottom Left Two Thirds (half height version of "First Two Thirds")
Bottom Right Two Thirds (half height version of "Last Two Thirds")

2. Make the cycling option apply to these too
For example activating "Top Right Quarter" would cycle through:

Top Right Quarter
Top Right Sixth
Top Right Two Thirds

I'd imagine in general, whatever I can do for the full height of the screen, I would be able to do with windows that are half the height of the screen.
Alternative request
If adding these new commands are problematic, it would be nice if the cycling option at least switched between the options that are currently available.
For example activating "Top Right Quarter" would cycle through:

Top Right Quarter
Top Right Sixth

Who will benefit from this feature?
Anyone using the window management feature.
Especially those migrating from Rectangle, like me.
Anything else?
Worth noting that Rectangle don't seem to have actions for the "Top Right Two Thirds" command that I'm suggesting here, however the cycling part of Rectangle does work like this.

Feedback logged

Cycling ½, ⅔ and ⅓ is really useful and something I did not find in other apps (apart from tiling window managers). It would be wonderful if point 2 of the suggestion was implemented and it was possible to also cycle with the quarter sizes, not only the full-height sizes (top left, top right, bottom left, bottom right).
One benefit would be with a typical layout of 1 tall primary window (left half) and two secondary windows stacked on top of each other next to the primary window (top right quarter, bottom right quarter).


Support for "sufix" buttons

paper-input allows you to attach a button to the input:
<paper-input label="total">
  <paper-icon-button suffix icon="search"></paper-icon-button>
</paper-input>

This would be a nice feature for paper-autocomplete.

I agree...I will look to add it with the next minor version.
Thanx!

The issue is closed but I just tested with ver 3.0 and it doesn't work (suffiks / prefix button is not visible inside paper-autocomplete). So is it a regression or...?

I am not sure... I need to test. Please reopen it and provide information
about how to reproduce it.
On Tue, Aug 15, 2017, 17:47 ainvaltin<EMAIL_ADDRESS>wrote:

The issue is closed but I just tested with ver 3.0 and it doesn't work
(suffiks / prefix button is not visible inside paper-autocomplete). So is
it a regression or...?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ellipticaljs/paper-autocomplete/issues/19#issuecomment-322506655,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAUumZ73-lOVmrYr5enFga4LJsk4OJM2ks5sYb2cgaJpZM4J_N8-
.

About reproducing it - in the (Polymer 2 component's) html I have
<paper-input>
    <paper-icon-button slot="prefix" icon="search" on-click="boom"></paper-icon-button>
</paper-input>

<paper-autocomplete>
    <paper-icon-button slot="prefix" icon="search" on-click="boom"></paper-icon-button>
</paper-autocomplete>

the paper-input has a button in the left end while paper-autocomplete does not.
I don't have right to reopen the issue (I'm not the original reporter), please do it yourself.
BTW I noticed that @tachyon1337 has closed the issue (almost) on the same time he commented about fixing it in the next minor version - it seems to me that he accidentally closed it when posting his comment and thus forgot about it?

I just reopened for you. I will take a look.

I have a working version of the fix. I will try to release it tomorrow

Fixed in v3.0.2


Manage Message Processing in Case of Errors

Tutorial URL: https://developers.sap.com/tutorials/cp-integration-handle-exceptions.html
Please specify the step you are referring to: Step 6
Dears,
I've a doubt: was trying to answer the last question
(What are the different message processing status in SAP Cloud Platform Integration?)
and possibly input the following answers:

Completed

Failed

Escalated

which is reported as Incorrect;
tried with other possible solutions, and reported always as Incorrect.
Could you please confirm that the answer checking is correctly working?
Many thanks and sorry for the trouble...
Flavio

issue is limited when using a Mac, tried with Win10 and it works;
personally, the issue is solved;
leaving the thread open, if you want to chek further...

Thanks for reporting. We will check what the issue might be for Mac.


Adding ndim attribute to csc

This is a very trivial change to add the ndim attribute to csc_array.  Note that this attribute is defined in csr_array already but wasn't added to csc.

Can you actually add this attributed to the CompressedBase class in base.py and remove it from the csr constructor? That way all of the sparse matrix types will have the attribute then.

I'm cleaning up all stale branches in the repo and GitHub doesn't allow me delete a branch if there's an open PR. We're going to push updates that will now use the cpp core, which will be fairly massive, so will follow-up on this separately.


Identify instances of scan.py and web.py

I would like to be able to quickly identify my instances of scan/web based on their console screens.
For scan.py it is easy, change the top output line to include your area name:
'Monocle running for {}   {}'.format(running_for,conf.AREA_NAME),
or
'{} Monocle running for {}'.format(conf.AREA_NAME,running_for),
I don't have a great solution for web.py except for my console windows show the command line entered so I can use the -P argument to identify. (Ideas anyone?)
Side: web.py should really default to <IP_ADDRESS> for ipany and not <IP_ADDRESS> for localhost. Anyone running their own monocle is probably going to want to be able to access it from somewhere other that the host pc and if they don't then THEY can use the -H argument

On windows, I have my start.bat set up as
Start "NameHere" /d  python scan.py <Arguments Here (--bootstrap --log-level......)
That will open a window with the "NameHere" In the top bar.

I have been using ConEmu to consolidate all the console windows, I will see if that works with it.
I am also (slowly) just making a C# project that will house the scan.py/web.py instances.


Export

I think /dist folder shouldn't be in the diff

I agree. I've commented about this earlier: https://github.com/qgrid/ng/pull/110
But nothing has been changed.
This is the only reason, why I haven't included dist folder in gitignore.

@etokareva this folder is neccessary for release branch
Probably we should keep different .gitignore for them

@titov-max let see what @klumba12  will say


Error when overlay atlas slice onto histological image

Hi there,
It is so great to use HERBS!
I have successfully had a 3D trajectory track of NP1.0 from sagittal slices, great!

However, during the process, I encountered some issues when trying to overlay the atlas slice onto the histological image.

Error when removing the background.
When I choose the color black and click on the black background with thresholds 1-20, it does not capture the contour of the slices. When I choose blue and use threshold 10 to create a mask, then delete or backspace would not clear the selected regions either.

Error when erasing background
I chose the black color to erase the background, but nothing changes.

Error when overlaying atlas slice onto histological image
I can't press button H to mapping the segmentation of atlas to the histological image, after I transform to atlas and press acccept.

Hi, thanks for the feedback. May I know the purpose to match atlas slice onto histological images? The original design goal of doing so was to help anatomists to segment brain regions on each histological slice, and merge all histological slices into 3d volume. It is still under development ( I think I wrote it in the cook book, but I might be wrong. Too busy to remember everything) ;-)

Thank you for your reply! Yes, I understand that it’s still under development!
The purpose of doing this is exactly want to create 3 D reconstruction of the brain.
Also, I am not quite sure about how to deal with multiple slices. But I guess currently my priority is to figure out how to properly clean the background and erase unnecessary stuff of the slice.
Many thanks!
Get Outlook for iOShttps://aka.ms/o0ukef

From: Jingyi G. Fuglstad @.>
Sent: Friday, October 28, 2022 1:19:56 AM
To: JingyiGF/HERBS @.>
Cc: Muhang Li @.>; Author @.>
Subject: Re: [JingyiGF/HERBS] Error when overlay atlas slice onto histological image (Issue #22)
Hi, thanks for the feedback. May I know the purpose to match atlas slice onto histological images? The original design goal of doing so was to help anatomists to segment brain regions on each histological slice, and merge all histological slices into 3d volume. It is still under development ( I think I wrote it in the cook book, but I might be wrong. Too busy to remember everything) ;-)
—
Reply to this email directly, view it on GitHubhttps://github.com/JingyiGF/HERBS/issues/22#issuecomment-1293772362, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOVPEIXRTMI6NJGCNGYS3QLWFKTSZANCNFSM6AAAAAARQE44XU.
You are receiving this because you authored the thread.Message ID: @.***>

ok, I see. the magic wand is nice when the image has white background (here I mean image background, not HERBS background.  In View menu you can change '2d Mode', then you will see what I mean with image background and HERBS background.) but you have a black background image. So the easiest way to remove the unnecessary part is to use polygon lasso tool. In CookBook 6.7.1, there is a small part on how to use lasso tool. you can have a look first and play around a bit. I will write a more clear tutorial on it tomorrow. Remember if you want to delete something on img-process layer, you need to active the layer (clicking on it to make it in light gray).


Add support for RDB V8

Adds support for RDB V8.
Used the python implementation as a reference: https://github.com/sripathikrishnan/redis-rdb-tools/
Limitations: no support for modules yet

@titanous mind taking a look?

@alecbenson this repo is not currently maintained.


[doc] isort deviation: action comments in docstrings not respected

This was noticed here: https://github.com/python/typeshed/pull/10939
I think the deviation makes sense, but it should probably at least be documented in https://docs.astral.sh/ruff/linter/#action-comments

Ahh I see -- so the isort:skip_file is in the docstring at the top of the file. Got it. I will document.


feat: Support for shorthand run command.

Previously, run: $command was not able to be parsed. It is now supported.

Needs to be rebased into main after #85 is merged.


device_map=balanced not support in NPU when using FLUX.1-dev model

System Info
- `Accelerate` version: 1.0.1
- Platform: Linux-4.19.90-vhulk2211.3.0.h1543.eulerosv2r10.aarch64-aarch64-with-glibc2.28
- `accelerate` bash location: /root/miniconda3/envs/baymax/bin/accelerate
- Python version: 3.10.0
- Numpy version: 1.24.4
- PyTorch version (GPU?): 2.1.0 (False)
- PyTorch XPU available: False
- PyTorch NPU available: True
- PyTorch MLU available: False
- PyTorch MUSA available: False
- System RAM: 1511.10 GB
- CANN version: 8.0.RC3
- `Accelerate` default config:
        Not found

Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[ ] One of the scripts in the examples/ folder of Accelerate or an officially supported no_trainer script in the examples folder of the transformers repo (such as run_no_trainer_glue.py)
[x] My own task or dataset (give details below)

Reproduction
When I used the example provided by Hugging Face and set the device_map to 'balanced', I encountered an error.
code example:
import torch
from diffusers import FluxPipeline

pipe = FluxPipeline.from_pretrained("models/FLUX.1-dev",
                                    torch_dtype=torch.bfloat16,
                                    device_map="balanced"
                                    )

prompt = "A cat holding a sign that says hello world"
image = pipe(
    prompt,
    height=1024,
    width=1024,
    guidance_scale=3.5,
    num_inference_steps=50,
    max_sequence_length=512,
    generator=torch.Generator("cpu").manual_seed(0)
).images[0]
image.save("flux-dev.png")

error:
Loading pipeline components...:  14%|██████                                    | 1/7 [00:00<00:02,  2.18it/s]
Traceback (most recent call last):
  File "/data/baymax/test_diffusers.py", line 4, in <module>
    pipe = FluxPipeline.from_pretrained("/data/baymax/models/FLUX.1-dev",
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/diffusers/pipelines/pipeline_utils.py", line 896, in from_pretrained
    loaded_sub_model = load_sub_model(
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/diffusers/pipelines/pipeline_loading_utils.py", line 704, in load_sub_model
    loaded_sub_model = load_method(os.path.join(cached_folder, name), **loading_kwargs)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/diffusers/models/modeling_utils.py", line 886, in from_pretrained
    accelerate.load_checkpoint_and_dispatch(
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/accelerate/big_modeling.py", line 613, in load_checkpoint_and_dispatch
    load_checkpoint_in_model(
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/accelerate/utils/modeling.py", line 1749, in load_checkpoint_in_model
    loaded_checkpoint = load_state_dict(checkpoint_file, device_map=device_map)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/accelerate/utils/modeling.py", line 1471, in load_state_dict
    return safe_load_file(checkpoint_file, device=target_device)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/safetensors/torch.py", line 315, in load_file
    result[k] = f.get_tensor(k)
  File "/root/miniconda3/envs/baymax/lib/python3.10/site-packages/torch/cuda/__init__.py", line 289, in _lazy_init
    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

Expected behavior
Runs normally without any errors.

This PR created by @statelesshz has resolved my issue, and I hope it can be pushed forward for integration.


Error: Cannot return null for non-nullable field RefreshToken.token.

Hi,
I'm trying to use django-graphene-jwt and django-graphene-auth with my Vue frontend. As saving the token and refreshToken via httpOnly cookie is recommended as the safest way possible I'm running into the problem that the mutation refreshToken is resulting in an error if no cookie is set and therefore can't send anything.
mutation RefreshSilently {
    refreshToken {
      token
      payload
      refreshExpiresIn
      errors
    }
  }

=> "Error: Cannot return null for non-nullable field RefreshToken.token."

I've been searching all related repros, the web and stackoverflow and can't find a solution to this. What am I doing wrong?
Packages installed_
django-graphql-auth==0.3.15
django-graphql-jwt==0.3.1
graphene==2.1.8
graphene-django==2.15.0
graphql-core==2.3.2
graphql-relay==2.0.1

Ok, this is embarrassing. I removed "token" & "payload" from the mutation and just check if success == true and now everything's working. Issue be closed/deleted.

Ok, this is embarrassing. I removed "token" & "payload" from the mutation and just check if success == true and now everything's working. Issue be closed/deleted.


Add ILC architecture document

I've been working on this on and off for a while - I think I have something ready for review.
This is a high level architectural overview of CoreRT's native compiler.
@dotnet-bot skip ci please
Cc @nattress @trylek @zamont @mattwarren

That was very helpful. I don't have enough knowledge to make suggestions on clarifying content or adding content that is missing, but it looks good to me.

Cc a couple more people who might be interested in this: @fanoI, @mjsabby, @xoofx, @WalkingCat


[Suggestion/v2] Allow the ability to explicitly specify true/false or on/off for decorations

Thanks for publishing this library. I love using it ^^
I saw you were working on a v2 and I wanted to share a thought I had while reading through the new spec. I hope this is the right place to do it.
When using a decoration applied to a text, the current (with current, I'm referring to V2 here) syntax is that you specify [decoration:bold] and then specify the same tag at the end to signal the end of that decoration. Having the closing tag match the beginning tag has the disadvantage that when you specify one too many or one to few tags in your message, the entire formatting of the message changes and not just up to the closing tag.
My proposal would be to add additional optional syntax to deocrations to specify if they're meant to be on or off. This could look something like [bold:true] or [bold:on] for the beginning and [bold:false] (or [bold:off] respectively) for the ending tag.
Sidenote:
I like that inclusion of the decoration prefix inside of the brackets is optional (and I personally could see removing it entirely), since in my opinion having the top-level keyword (click, hover, color, bold, etc.) be the same keyword as the end keyword is a nice mental model. That way there's visual consistency between the following examples:

[color:red]foo[color]
[bold:on]foo[bold]
[strikethough:on]foo[strikethrough]
[click:open_url:https://example.com/]foo[click]
[hover:show_text:bar]foo[hover]

If you have any questions, feel free to hit me up on Discord: Rodney#1203

Thanks for the feedback!
I do like the idea of specifying on/off/true/false for styles instead of just toggling.
Perhaps to keep decorations consistent with the other tags,

tags would have the second "parameter" of on/off/true/false (as you described)

tags without that parameter would only disable the decoration

Also I do agree that decoration: could be removed, it is pretty long
In this case:

decoration tags can be enabled with:

[bold:true] / [bold:on]

decoration tags can be disabled with:

[bold:false] / [bold:off]
[bold]

I went ahead and implemented what I described and updated the wiki

Oh wow, that was quick. I was about to respond that it looks good :p


Logs autoupdate

Have something to autoupdatr the log page x number of sec
Also an option to filter certain log lines from showsrage page,like the api acess granted ,which is useful when trying to debug issues with SR self (having a remove log console ;) )

There is a basic filter in the logs in the first beta of 1.6.
And I'm starting work on the auto-refresh now.
There will be a new setting for this. By default it will be disabled, but it will be possible to specify the refresh interval from a predefined list. I'm thinking about 30 seconds, 1 minute, 2 minutes and 5 minutes.
What do you think?

Sounds good, any reason for a present values? You could do something like Android's selection of time (like on the alarm clock app) that would allow for everyone's liking.

I just followed what I did for the the version check option. I'll keep the same behaviour for this version, as I want to finish this version soon.
I'll have a look in v2 for a better implementation.

This feature is being implemented in #130.
It will be part of the 1.6 release.

This was merged in 1.6. It will be available in the next beta of ShowsRage.


Explicit code generation

Hi,
when I reading about source generators generating Deconstruct methods was something I was going to do but gave up because source generators are still kind of pain to work with so I am glad I found your project.
From reading design doc it seems deconstruct methods are generated for every type but I think wanting to generate deconstructs for small selection of types is much more likely scenario. I have few suggestions/questions

Does adding this to project with a lot of types like thousands and more suitable for deconstruct methods increase build time by noticeable amount?
Wouldn't it be better to invert logic such as instead of having [NoAutoDeconstruct] there would be [AutoDeconstruct]?
Even better detect usages of deconstruction syntax and generate code just for those types? No need for attributes with some rules for order of properties maybe respecting order defined in type or match them by name or some other heuristic.

For type
public class Foo
{
  public int Id { get; set; }
  public string Boo { get; set; }
}

You could have this in your code, respecting order and naming
var (id, boo) = new Foo();

Which would generate:
public void Deconstruct(out int id, out string boo) => (Id, Boo) = (id, boo);

But you could even have
var (boo, id) = new Foo();

Which would generate:
public void Deconstruct(out string boo, out int id) => (Id, Boo) = (id, boo);

because its able to match properties by name. Thats just an idea having attribute for explicit code generation would be enough and make this library much more usable imho. Btw I don't expect you to implement anything I am just curious what you think.

I appreciate the questions. Just keep in mind that I did this work mostly to see if I could do it :). I really haven't put a lot of thought into next steps or anything like that.
If a project has thousands of type definitions, then yes, AutoDeconstruct would create a Deconstruct() method whenever it could. Though, keep in mind that the relative size of all these Deconstruct() methods should be small compared to the total overall code size of the project.
I mention at the end of my design doc that there could be something in place like an attribute to exclude a type from participation. Another option would be some kind of configuration approach to specify types that should not have deconstruction. I really don't have anything concrete in mind right now.
There are potential issues with letting a developer specify that they want a Deconstruct() method made by simply typing it into the code. What if the underlying type has 5 properties that could be deconstructed? How do I know which ones I would put in the method signature? Do I force a convention to the user that they have to have their deconstructed variable names match the property names? What if a developer has this:
public class Person
{
    public string Name { get; set; }
    public Guid Id { get; set; }
    public int Age { get; set; }
}

var (id, age) = new Person();
var (name, id) = new Person();

I can't generate two Deconstruct() methods with the same number of parameters. That's not allowed as far as I know.