Trying to use MixingWaveProvider32

In Windows using C#, I'm recording the microphone using WaveIn and the speakers using WasapiLoopbackCapture.  I want to mix the two (if possible).  I create WaveInProvider from both and pass them as inputs to MixingWaveProvider32.  I've attempted both a thread to read from the MixingWaveProvider32 as well as just done a CreateWaveFile to dump directly to disk but I can't seem to get usable audio using either method.  Am I missing something in how to use MixingWaveProvider32?  Do I need to still handle DataAvailable messages for both of my sources and put the data somewhere so that it is available?  I assumed if I passed the WaveInProviders that I wouldn't need to do that.  I'm worried about audio latency if I try to deal with event handlers.

It's likely that the audio from WaveIn is 16 bit and the audio from WasapiLoopbackCapture is 32 bit IEEE floating point, so you'll need to convert the 16 bit audio to floating point. I'd probably suggest using a BufferedWaveProvider for each input, and then using ToSampleProvider on both before passing into a MixingSampleProvider. Then you need to write custom logic that reads out of both providers when they have audio available as CreateWaveFile will attempt to read as fast as possible which will be too fast. Sadly this requires a fair amount of custom code as it stands.

Thanks for that feedback!  As a test, I'm only doing the speaker recording using WasapiLoopbackCapture so I can see if I get audio from the MixingSampleProvider.  Can you clarify how I should be using MixingSampleProvider while doing my own reads from BufferedWaveProvider as you mentioned?  Even though I only have one BufferedWaveProvider, I'm attempting to read from the MixingSampleProvider and it returns more samples than what I have added to the BufferedWaveProvider on DataAvailable events.  Not quite sure which source I should be reading from and how to control it so that when I have two sources, they get mixed properly.

Through much trial and error, I actually got the MixingSampleProvider to work for me with two different sources (microphone recording and speaker recording).  I force the microphone recorder to be the same WaveFormat as the speaker recorder so that solved any format concerns.  I also had to add each of the BufferedWaveProvider inputs separately to the mixer as ToSampleProvider doesn't convert them like calling AddMixerInput does.   I'm now doing additional testing because I have some concerns over the timing of the audio since I have to add OnDataAvailable events to each BufferedWaveProvider and I'm aware that may cause some sync issues.  I also know that the speaker recorder doesn't put anything out if nothing is actually playing so I'm working on adding "silent" audio so something is always playing.  Thanks for your help and if you have thoughts on the timing problem, I would appreciate that!

I have now completed my implementation and to my surprise, there is no timing issue.  Seems that adding buffers to the two BufferedWaveProviders via events stays ahead of how fast I can read them and since I read them together, they are coming out synchronized.  I added the playing of silent audio to ensure I'm always getting something from the speaker recording and that solved that problem as well.  Thanks for your help and I couldn't have done this without all of your NAudio code!

Would you mind sharing your code on how you are reading from MixingSampleProvider? I think I have the exact same requirement as yours and got until adding the samples to the MixingSampleProvider but unclear on how to read the mixed audio chunks from it...

I could now read with the following code but the merged audio is sped up to 2x speed. I don't know what I am missing.. Can you please help?
float[] buffer;
Timer readTimer = new Timer((_obj) => {
buffer = new float[1000];
objMixingSampleProvider.Read(buffer, 0, buffer.Length);
writer.WriteSamples(buffer, 0, buffer.Length);
}, null, 0, 50);

Audio playing at 2 speed is almost always because you are trying to play mono audio as though it was stereo


Create caesar.c

This is the implementation of caesar cipher in c language.

@faisal-zulfiqar  thanks for your contribution, could you add a problem explanation at the beginning as comment

@moogacs inside the code file as comment right?

@moogacs I've added the description. Let me know if it works for you.

@faisal-zulfiqar  thanks 👍  it's merged


Suggestion: Add option to expand Literals

The old python handler "expanded" Literals and was showing every single value (for method parameter types for example), in this new one it only shows the name of the Literal. Would be great to have that option for the now handler, too.

I'm not sure to understand. Could you show some code snippets that illustrate your suggestion?

Let´s say we have this:
PossibleOptions = Literal["option_1", "option_2, "option_3"]

def some_fn(param_1: PossibleOptions):
   ...

With old handler, docs would show every single Literal in the generated "Parameters" box.
With new handler, it only shows "PossibleOptions" as parameter type.

I'm not in favor of bringing this change in the new handler. Most of the time we do not want to expand types. A fully expanded type quickly becomes very long. Even if we provide an option to expand or not, we don't have a way (yet) to configure it in a fine-grain manner: it would affect the whole tree of the injected object. It would also be impossible to guess whether to expand or not, without configuration options.
What I suggest instead is that, since you define a PossibleOptions type, you should document this type by adding a docstring below it:
PossibleOptions = Literal[...]  # etc
"""The possible options."""

With this, you can now include the type into your API docs, and whenever a function parameter is annotated with it, the rendered HTML will link to it, showing users the possible literal values.
WDYT?

A quick search shows me that my project contains almost 600 Literals, so manually docstringing them wouldnt be my favorite. 😄
For my use case, alyways expanding would work very well, but I can understand your reservations.
Perhaps something like a "show-expanded-values-on-mouseover" would be possible?

And how many types do you define to logically group literals? Note that I do not recommend documenting each literal, but rather each type like PossibleOptions.
Or you could not document them at all but still render them in the docs (show_if_no_docstring: true) to enjoy cross-references in function signatures.
Attributes have their value displayed so users would see the literals.
In your code base you only have type annotations made of literals? Don't you have other type annotations which are assigned unions of classes? Always expanding would expand them as well. Would you be OK with that?
Another question: should the expansion be recursive? Griffe is not prepared for recursive expansion yet, as it simply unparses attribute values' AST into strings.

For me, non-recursive would work already very well. I use Literals almost exclusively for that PossibleOptions use-case, most of the time they contain  3-20 strings. And I need a lot of them since I am basically wrapping large parts of the Qt framework to make it more python friendly, so my scenario might be a bit special.
Apart from that, I am also using Unions of course. And yes, I would be fine with  also expanding them.  There might be few cases where this leads to long lists, but in 99 % of cases it would work very well.

OK, thanks for you answers :)


codes are very too slow than being usable, how to use larger batchsize

Hi
I am trying with WSC for larger bacthsize, I am getting this error, this is very too slow and I appreciate any suggestions on how to make it work, thanks
/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/site-packages/torch/nn/modules/loss.py:516: UserWarning: Using a target size (torch.Size([1, 256])) that is different to the input size (torch.Size([32, 256])) is deprecated. Please ensure they have the same size.
  return F.binary_cross_entropy(input, target, weight=self.weight, reduction=self.reduction)
Traceback (most recent call last):
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/remote/idiap.svm/user.active/jack/dev/internshipadapet/others/ADAPET/src/train.py", line 126, in <module>
    train(config)
  File "/remote/idiap.svm/user.active/jack/dev/internshipadapet/others/ADAPET/src/train.py", line 93, in train
    loss, dict_val_update = model(sup_batch)
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/site-packages/torch/nn/modules/module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "/remote/idiap.svm/user.active/jack/dev/internshipadapet/others/ADAPET/src/adapet.py", line 224, in forward
    tgt[:, None].repeat(1, max_seq_len).float())  # [bs, max_seq_len]
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/site-packages/torch/nn/modules/module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/site-packages/torch/nn/modules/loss.py", line 516, in forward
    return F.binary_cross_entropy(input, target, weight=self.weight, reduction=self.reduction)
  File "/user/jack/libs/anaconda3/envs/adapet/lib/python3.7/site-packages/torch/nn/functional.py", line 2372, in binary_cross_entropy
    "!= input nelement ({})".format(target.numel(), input.numel()))
ValueError: Target and input must have the same number of elements. target nelement (256) != input nelement (8192)

Hi, the code does not support higher batch sizes for WSC because of the way the prompt and training are designed for this task. Regarding slowness, using batch size 1, we got this code to run in less than an hour on a 2080Ti. What kind of speeds are you getting?


Fix cli confusing error message

Fixes: #2543

One thing I have noticed is that this error also happens when using stdin as input, and the file needing to be overwritten.
In those cases the use of -y is necessary.

Thank you for the patch :)

Please run rustfmt

It apparently needs a manual rebase, once you do I'd land it on both 0.5 and master.

github today seems to be particularly annoying, try to run again git pull --rebase origin && git push {your-repo} =/


Bump kind node to a newer k8s version

          can be a follow up but we maybe should consider bumping this to a newer k8s version

Originally posted by @jsturtevant in https://github.com/containerd/runwasi/pull/267#discussion_r1304559660

This looks to be completed by https://github.com/containerd/runwasi/pull/356.


Direct StyleVal objects and KeywordValue check

Current dependencies on/for this PR:

main

PR #42

PR #43   👈

This comment was auto-generated by Graphite.


Inital pull request to decoder

Hi, this is just a initial pull-request to signal the start of work.
I created some basic interfaces, here is the main thought:
Each part of the decoder that depends on Vocabulary should stay in Model class, including BeamSearch, sample scheduler, _output_projection_layer.
Decoder should implement same functionality as _prepare_output_projections implements now with some minor changes.

Hi, I have decomposed decoder from seq2seq model. Right now it consists of:

base class SeqDecoder
simple decoder implementation SimpleSeqDecoder
decoder cell, which contains only decoder NN layers SimpleDecoderCell with base class DecoderCell

I had some issues during my attempts to use SeqDecoder in copynet. I noticed that it has it's own dataset reader and I wonder if it is possible to somehow move it's preprocessing inside copynet. In this case it will be possible to implement copynet decomposed SeqDecoder.

Hi again @epwalsh , would you have a time to review my changes?

Hey @generall, sorry about the late response, this completely fell off of my radar. Honestly I don't think I'll have much time to help out with this anytime soon, but it looks like you've got a pretty good start, so I'd suggest continuing this on your branch, and making a WIP (work in progress) pull request to AllenNLP (the main repo). I'd be happy to offer suggestions before you make an official PR if you'd like.


Update use case in DG

Codecov Report

Merging #278 (de472d0) into master (2b4d352) will increase coverage by 0.56%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #278      +/-   ##
============================================
+ Coverage     78.08%   78.64%   +0.56%
- Complexity      957      974      +17
============================================
  Files           131      131
  Lines          2656     2651       -5
  Branches        332      331       -1
============================================
+ Hits           2074     2085      +11
+ Misses          471      465       -6
+ Partials        111      101      -10

Impacted Files
Coverage Δ

...in/java/seedu/address/model/facility/Location.java
100.00% <ø> (ø)

src/main/java/seedu/address/model/tag/Tag.java
80.00% <ø> (ø)

.../main/java/seedu/address/model/member/Address.java
0.00% <0.00%> (-60.00%)
:arrow_down:

...in/java/seedu/address/logic/parser/ParserUtil.java
98.87% <0.00%> (-0.06%)
:arrow_down:

...va/seedu/address/logic/commands/ImportCommand.java
86.15% <0.00%> (+3.07%)
:arrow_up:

.../address/logic/commands/AllocateMemberCommand.java
100.00% <0.00%> (+11.90%)
:arrow_up:

...va/seedu/address/model/member/TodayAttendance.java
100.00% <0.00%> (+18.18%)
:arrow_up:

...ddress/logic/commands/DeallocateMemberCommand.java
100.00% <0.00%> (+23.07%)
:arrow_up:

...va/seedu/address/model/member/TotalAttendance.java
100.00% <0.00%> (+36.36%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2b4d352...de472d0. Read the comment docs.


Error using tap function for writing webpack config in a file

Hi,
trying implementing the tap function  in my configuration for writing the webpack configuration in a file, an error during the process is fired.

This is my current configuration:
const { override, fixBabelImports, addWebpackAlias, addLessLoader, tap } = require('customize-cra');
const path = require('path');

module.exports = override(
    fixBabelImports('antd', {
        libraryName: 'antd',
        libraryDirectory: 'es',
        style: true
    }),
    fixBabelImports('lodash', {
        libraryName: 'lodash',
        libraryDirectory: '',
        camel2DashComponentName: false
    }),
    addWebpackAlias({
        '@resources': path.resolve(__dirname, 'src/resources')
    }),
    addLessLoader({
        javascriptEnabled: true

    }),
    tap({ dest: 'customize-cra.log'})
);

pull request #210


Add Support for CeloToken Name in Registry

Description
Added support for CELO token in the registry and used it throughout the core contracts.
This is in support of the effort to rename Gold to CELO.
Other changes
Made changes to the migrations so that the registry is updated properly.
Tested
unit tested
Related issues

Fixes https://github.com/celo-org/celo-blockchain-planning/issues/351
Fixes https://github.com/celo-org/celo-blockchain-planning/issues/352

Backwards compatibility
Yes, as existing functions have not changed

Do we also have a task to add it to proposal on alfajores & mainnet ?

Out of curiosity and because I didn't look into the PR in much detail. The Celo token address will be queryable by both GOLD_TOKEN_REGISTRY_ID and CELO_TOKEN_REGISTRY_ID or just the latter?

The Celo token address will be queryable by both GOLD_TOKEN_REGISTRY_ID and CELO_TOKEN_REGISTRY_ID

That is correct. This was done to preserve backwards compatibility in the registry.

Do we also have a task to add it to proposal on alfajores & mainnet ?

Tracking here: https://github.com/celo-org/celo-blockchain-planning/issues/360


[INTEGRATION] wrapped fsspec storage providers

when developing hub we explicitly decided not to use fsspec because we deemed it was too slow. so we went with our own storage providers interface.
this is great, but we might be able to advance prototyping for users if we open this up as an integration.
also interoperability between hub <> huggingface since they use fsspec
this issue is requesting that we build some sort of easy to use wrapper around any fsspec module so we can create fsspecs and not have to fine tune them for hub (prototyping/interoperability friendly)

@FayazRahman i would love you forever if you picked this one up :D <3


Extra product description isn't working as expected

Hi,
Following our conversation in Slack (https://splunk-usergroups.slack.com/archives/CNV918JCQ/p1664459905826089), this is the issue:
Using the "Filtering by an extra product description" (docs https://splunk.github.io/splunk-connect-for-syslog/main/sources/#filtering-by-an-extra-product-description) with the listener below makes the parser of Infoblox not working. SC4S thinks it is vendor "isc" & product "bind":
SC4S_LISTEN_INFOBLOX_NIOS_CUSTOMTEST_TCP_PORT=30006
I tried to send the logs to the default UDP 514 and it is also being parsed as ISC BIND...
When I do :
SC4S_LISTEN_INFOBLOX_NIOS_TCP_PORT=30006
This works and get recognized as "infoblox:dns" with vendor "infoblox" and product "nios".
It looks like this feature "extra product description" breaks the parsing of infoblox (or more likely SC4S does not follow infoblox parser when there is this feature on).
Here are two screenshot from the Splunk GUI where you can see the result of ingesting infoblox data with the 2 listeners:
SC4S_LISTEN_INFOBLOX_NIOS_CUSTOMTEST_TCP_PORT=30006

SC4S_LISTEN_INFOBLOX_NIOS_TCP_PORT=30006

fixed in release 2.42.0


Puppeteer - Before tag in hook file for different scenarios

Hi I have general question how to set up Before tag to run only for specific scenario? In selenium you can use it like this - Before("@firsScenario") and the same for secondScenarion and this will be fired only for exact scenarion. How to do this in puppeteer? How to set up this method for two different scenarios? The reason is that I need to set up task like one user and then run another scenarion and check this task as another user with another token etc......
Before(async () => {
 const page = World.page;
 const token = retrieveToken();
 await page.goto(EnvironmentVariables.URL + `/?
 access_token=${token}&expires_in=3600&token_type=bearer`);
 await
 page.waitForSelector(SelectorUtils.nameSelector(NavigationComp.searchClientInputName));
 await waitForSpinnerToEnd();
});

You need to set up two self Before tag with named scenarios you want this tag to be used and another tag to be used as well. So Before(@scenario1) and Before(@scenarion2). This will work for each scenario as you wish.


Dashboard and triggers

hi, this is some great work you are doing!
i have 2 questions please
1- do you have any road map ?
the reason i ask is just to estimate when you will have a dashboard ?
2- are you please to create some sort of triggers ?
eg: if temp1 is bellow x then turn on fan1.
thanks.

@chrigui

1- do you have any road map ?
the reason i ask is just to estimate when you will have a dashboard ?

Currently I'm working on next version with huge changes, this will give dashboard also. may be released by this month end.

2- are you please to create some sort of triggers ?

This feature already available with the name of 'Alarms'

Thank you for your reply!!

https://github.com/mycontroller-org/mycontroller/issues/82
dashboard available


Improve manageability of share manager pod behaviors

In the current implementation, the share manager pod is created and blindly mounts a volume regardless of its healthy state. The blind mounting behavior can lead to unexpected volume faulted if the volume is dead or orphaned. This ticket aims to share manager pod's behaviors more manageable and predictable.
With the improvement, the start flow will be as follows:

Share manager controller creates a share manager pod and bootstraps an NFS server without any filesystem exported
Share manager pod mounts the volume and exports it after receiving a FilesystemMount request
Share manager controller checks the mount status by FilesystemMountStatus. If the volume is mounted, transition the share manager state to "running"

Shutdown flow will be as follows:

Gracefully shut down the NFS server
Gracefully or forcefully unmount the volume
Tear down the device.

https://github.com/longhorn/longhorn/issues/5717

Recheck after merging AD controller feature.


Disallow resolving certain domains

I have been using the ServiceDaemon to both publish and search a service, basically something like a peer to peer network. However one issue that I encounter is that the ServiceDaemon also resolves addresses that belongs to itself, which is basically pointless.
Although this may not seem much of a problem, but a solution to this problem can also be potentially extended to cases where we want to blacklist resolving certain hosts.

However one issue that I encounter is that the ServiceDaemon also resolves addresses that belongs to itself, which is basically pointless.

When this happens, did you publish the service on the local host as well? If yes, it's expected to resolve the addresses that belong to the local host.  If not, or if you think otherwise, could you please elaborate the details ?

did you publish the service on the local host as well?
Yes the publisher and querier live on the same device

I wanted to know if this is possible to ignore resolving certain addresses such as the local host without first resolving them.
Although reading the RFC 6763 more thoroughly I see it might not be possible. Still I am keeping this open for your comments.

To me, it doesn't make sense to "ignore resolving certain addresses" in general. Like you probably noticed, it would not be compliant to RFC if ServiceDaemon does not resolve all instances and addresses available.
That said, for the specific case of resolving local addresses, we could try to disable IP_MULTICAST_LOOP via socket option. I've never used this option before, so will do some experiments.

To me, it doesn't make sense to "ignore resolving certain addresses" in general. Like you probably noticed, it would not be compliant to RFC if ServiceDaemon does not resolve all instances and addresses available.

Yeah I got that.

That said, for the specific case of resolving local addresses, we could try to disable IP_MULTICAST_LOOP via socket option. I've never used this option before, so will do some experiments.

Cool do let me know if you got any successes with that.
Anyways thanks for the response. I am closing this now.

@AMythicDev I got a chance to try out IP_MULTICAST_LOOP option. From a simple test case, it seems working.  Could you please try it out to see if it works for you?  (even though this issue was closed).


Type '"type"' cannot be used to index type 'Resource[key]'.

Hello, I have created GraphQL inside Cluster in dev mode and compiled it with tsc.
With tsx everything works ok.

does setting compileroptions.skipLibCheck = true in tsconfig.json fix this?


[NCW] Removing Argument from RPC swaps naming

When using the Wizard for adding/editing RPCs
I've discovered that if you have multiple arguments, and remove one which has one underneath it, the name of the removed will overwrite the one underneath.
Version Number and Operating System(s)
Newest Dev Branch
Build Date: (11/07-17)
Expected behavior
Having an RPC with 3 Arguments
Arguments
Slot: Name [Type]
1: A [int]
2: B [Vector3]
3: C [Vector3]
Removing 1st results
1: B [Vector3]
2: C [Vector3]
Actual behavior
Arguments
Slot: Name [Type]
1: A [int]
2: B [Vector3]
3: C [Vector3]
Removing 1st results
1: A [Vector3]
2: C [Vector3]
Steps to reproduce

Make RPC
Add 3 different Arguments
Compile
Return to said RPC
Remove first Argument
Name of removed argument is passed to the next argument slot (Not altering the type)

Is this still an issue? Can this be closed?

@Fashdey Still using Forge?

Haven't been using Forge for more than a year, so I can't tell.
On Sun, 14 Apr 2019, 20.10 Niels-Ferdinand Mynster, <
<EMAIL_ADDRESS>wrote:

@Fashdey https://github.com/Fashdey Still using Forge?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/BeardedManStudios/ForgeNetworkingRemastered/issues/29#issuecomment-483032150,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACFv8lddE9mkAScZ_JR2cZQtzEFY_Ii4ks5vg28BgaJpZM4OXMC1
.


Input: problem with onBlur

When user blurs from input, this.state.value is applied to cursor.
If event.target.value was changed from outer source, this.state.value overrides new value.

Actually, it's works worse. I have validation issues and strange text disappearing from an input after this update.

Fixed in 1.0.14

I have found same problem in v2.0.0. I will fix this issue in both versions.

I think we need to add regression tests. I have created task for it #9


Include old human hand prefabs in future CoreAssets

I am working on a project in which I have to use full human hand models, the old prefabs (PepperDarkFullRightHand, PepperMediumFullRightHand etc..) were perfect.
Unfortunately I am not able to use Autorigging scripts to convert them to Orion.
Is it possible to include them in the future release so I can use them with Orion?

Sorry! Unfortunately, we don't have any plans to do this in the near future.


Not working on colab

Installing the extensions goes smoohtly, the models get downloaded but the buttons to generate are grayed out.

I think some other extension installed a diffusers version lower than 0.18.1

How can i update that? I cant find the diffusers module in the requirement files.

try to run it without other extensions enabled

try disable other extensions


[WIP] Ancient filesystems support

beta-1 doesn't works properly on filesystems without permissions support, symlinks and another modern stuff. This is reaction to #535. Main goal is to support vboxfs, FAT and so on.

This bit can likely be dropped given the new code structure: https://github.com/kovyl2404/rebar3/blob/filesystems-quirks-fix/src/rebar_file_utils.erl#L97-L100
The check happens early and does not need to be repeated.

Now I'm trying to figure out how this code works. There is several issues with it.
Say once it decided to copy Source directory to Target instead of symlinking. When one changes file in Source directory, this file will not get updated in Target due to this clause. Now this bug causes to fail rebar_compile_SUITE:recompile_when_hrl_changes/1 and friends, but I do not feel pretty sure about how to refactor this code correctly.

There was a discussion about this in issue #416.
We may need to check some other logic for older file systems. This was a headache before I found mklink. But as you say it will not work for older systems.

It's very possible there's places in the code where we use that function as a way to go "ensure this code path exists" and another one where we go "crush and update what's in there", and it turns out symlinks allow us to conflate both at once.
Without them, though, we possibly need two functions: one that ensures the path exists (ensure_path_copy_exists or something) which will not copy content if it exists and one that updates the content (update_path_copy maybe?) if it already exists. For both, a symlink can be used without problem. We can then revisit usages of the symlink_or_copy function to see if we even need ensure_path_copy_exists in fact.
Would that make sense?

I have thought on that. Issue with that will be when do we update?
If we first download app/pkg with 2.0.0 and then 1.0.0 with same target it will update to the latest.
So the update logic must be catching this.

Right. The safe bet would be to always crush the stuff with a rewrite, which a symlink accomplishes, but is more costly than not copying. We could very well just say that old systems get the least efficient thing, and that at least it works, too.

Seems, my effort was quite premature. Many tools which we depending on doesn't support filesystems which doesn't allow to set permissions on files. With git 1.8.3 I was able to clone repo to FAT, however using git 2.1.0 I am not able to do this (it complains about permissions and fails to clone). Also I've seen some crashes in the depth of erl_tar caused by same issue (so escriptize provided will not work anyway). Some simillar I've seen in relx depths.
I guess, it worth to perform some preliminary checks and detect whether filesystems supports it. And if it doesn't, fail rebar3 execution with some clear message. Also, I wonder do we need to support filesystems that DO support permissions, but DOESN'T support symlinks? Colud anybody show me example of such filesystem? May be it is worth to remove all this begginings at all and, again, fail with some clear message, hinting user to leave his paleonthological museum?

@kovyl2404 @Taure any update on this PR?


JavaDoc comment improvements.

Current state:

Split the javadoc comment obtained from API summary, do some primitive HTML tag replacement and write it as DartDoc.

Disadvantages:

Reference to parameters etc.. will remain in javadoc syntax
Not all HTML is replaced.

In future we might want to build a proper tree-like representation of the javadoc.

Tracked in #1079.


Cannot fetch stations art covers

I don't get anything after push the proper button.

I notice this too. It depends on if the stream has a favicon value on https://www.radio-browser.info/

I just compared the cover of radio-browser.info with that of the URL Radio app.
I could not find any bug here.
In radio-browser.info there is not a logo for each radio station, so URL Radio shows the default logo.
But you can set your own logo for a station, just long click the station.
Pictures must be in the "Pictures" folder in the internal memory.


Improve graph structure a little bit

Store size information in the Graph structure
Define nb_vertices and nb_edges in lieu of length and nnz to avoid confusion
Redefine transpose_graph(::AbstractMatrix) from #107 as Base.transpose(::Graph)
Use a simpler implementation which does just one allocation too many (a new vector of nzval), instead of a custom handwritten loop (at least I think so)
Add better transposition tests

@gdalle Please wait that I have a have a look before merging...


Webview iOS

Hi Guys,
I'm working in project that basically loads my html files in a webview, the all implementation its done but and works fine in the browse, but when I try to load via webview the spectrum library doesn't work at all.
If there's someone that can help, I will appreciate it!
Thanks a lot!

Do you see any errors in the web console for the webview if you debug the page?

Hi Brian,
Thanks for keep in touch ;-) So... I was trying to debug, but I can't see anything in terms of errors, I'm using this iOS application as wrap to load my html files, do you know what I mean? I was so happy when I got this working but at the same time frustrated when doesn't work on my app :-(
Have you got this issue before?
Cheers Mate

Does it work when you load the HTML files directly in iOS safari?  I'm guessing there is an error in that case also if it's not working in the web view, and it should be easier to debug from there.

Hey Brian, sorry I tried debug, and most of error are come from jquery etc, nothing related with spectrum, as far I understood. I don't know Brian, I think I will give up, better than keep annoying you.

Maybe it'd be easiest to debug the web page from a desktop browser


removed deprecated ix function / import instructions in filtering_&_sorting

@pkro thanks for the PR!! :)
Could you clarify the instructions for the other 2 files as well, so all of them are the same

Done


Support for multi-channel images

I see that only single-channel images are supported in your code. Any plans to include multi-channel?
Thank you for your interesting work.
P.S. You might wanna add your paper to the README :)
https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>8123v1

I see that only single-channel images are supported in your code. Any plans to include multi-channel?
Thank you for your interesting work.
P.S. You might wanna add your paper to the README :) https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>8123v1

Multi-channel support would be extremely beneficial in reducing the number of false positives. For example, in Fluorescence In Situ Hybridization (FISH), observing the same dot in both FITC and CY3 channels likely indicates a false positive

By multi-channel support I mean training/evaluating Piscis model on multi-channel images. To extend the ability of a model to leverage multiple image channels for spot detection.
Some use-cases:

Ability to train a model to detect spots that are only inside the nucleus / or some specific region. For example you would provide model with FISH image in the first channel, and image with enhanced / highlighted region in the other channel.
Ability to help model further distinguish autoflourescent regions from spots of interest (signal). Since flourescent probes have visibility in specific wavelenght regions and autoflourescence is non specific. This could be used for clinical diagnosis of various chromosomal abnormalities, including deletions, duplications, and translocations. See ref Figure 4.

I've created two GIF animations to better illustrate the nonspecificity of autofluorescence and demonstrate how training on multi-channel images could potentially improve the model's ability to discern true signals more effectively:

I see. Thanks for clarifying and providing additional examples. I had previously considered adding a feature to include an optional “auxiliary” channel, such as the nuclear stain, to help the model better distinguish between true and false positives. This is somewhat similar to the first of the two use cases that @ajertec had mentioned.
However, here are some complications I can see with adding multi-channel support (and why I didn’t rush an implementation for the initial public release of Piscis):

One of the goals of creating Piscis was to provide a model that can generalize to many scenarios. This can be done with a single-channel model, but when we expand to multi-channel models, the identity of each input channel will need to match how the model was originally trained. This means that it would be virtually impossible to provide a generalized pre-trained model. For example, the two use cases that @ajertec mentioned would require two different models.
There needs to be a distinction between “primary” channels (where we wish to perform spot detection) and “auxiliary” channels (which we provide only to give the model more information). For example, a nuclear stain would serve as an “auxiliary” channel, as we do not expect the model to return any spots. In the case of preventing autofluorescence, I assume that you would like to detect spots in both the FITC and CY3 channels, in which both are considered “primary” channels. If I were to create an API during model training and evaluation for multi-channel support, this might be confusing and difficult for users to specify. I will need to think more about how to implement this.
Both use cases could potentially be solved equally or even more robustly with postprocessing and integration with other tools. For example, if you want to detect spots inside nuclear regions, you can first run a segmentation algorithm like Cellpose on the nuclear stain and filter out the spots contained within the resulting nuclear masks. I described a solution for the second use case in my previous reply.

Apologies for a rather long reply. I would like to get your thoughts on the points I made above. If there are cases

I see. Thanks for clarifying and providing additional examples. I had previously considered adding a feature to include an optional “auxiliary” channel, such as the nuclear stain, to help the model better distinguish between true and false positives. This is somewhat similar to the first of the two use cases that @ajertec had mentioned.
However, here are some complications I can see with adding multi-channel support (and why I didn’t rush an implementation for the initial public release of Piscis):
One of the goals of creating Piscis was to provide a model that can generalize to many scenarios. This can be done with a single-channel model, but when we expand to multi-channel models, the identity of each input channel will need to match how the model was originally trained. This means that it would be virtually impossible to provide a generalized pre-trained model. For example, the two use cases that @ajertec mentioned would require two different models.
There needs to be a distinction between “primary” channels (where we wish to perform spot detection) and “auxiliary” channels (which we provide only to give the model more information). For example, a nuclear stain would serve as an “auxiliary” channel, as we do not expect the model to return any spots. In the case of preventing autofluorescence, I assume that you would like to detect spots in both the FITC and CY3 channels, in which both are considered “primary” channels. If I were to create an API during model training and evaluation for multi-channel support, this might be confusing and difficult for users to specify. I will need to think more about how to implement this.
Both use cases could potentially be solved equally or even more robustly with postprocessing and integration with other tools. For example, if you want to detect spots inside nuclear regions, you can first run a segmentation algorithm like Cellpose on the nuclear stain and filter out the spots contained within the resulting nuclear masks. I described a solution for the second use case in my previous reply.
Apologies for a rather long reply. Please let me know your thoughts on the above points, and we will see how we can best move forward!

Thank you for your long response. I appreciate you taking the time.
To address your points:

Support for multi-channel images might be just that-- only support. It would not hinder the ability to train/provide the single-channel generalized pre-trained model, which could then serve as an initial checkpoint for multi-channel models (initial layer/s in the encoder would need modification to handle extra channels). Training multi-channel models would then be solely user's responsibility.
I agree, multiple "primary" channels complicate things. One solution is to have single "primary" channel and the model is trained to only detect spots in that channel. For example, model could be trained on both [FITC, CY3, other aux channels, ...] and [CY3, FITC, other aux channels, ...] multi-channel images where both CY3 and FITC are in the first channel but have the other in the second. Its then up to the model to learn the signal / spots based on the combination of properties of FITC-CY3-aux and CY3-FITC-aux.
Yes, other tools would be helpful for all use cases. I personally prefer standalone / fusion-based approaches. Model gets much more information and ability to generalize, no need to deal with multiple models (each of which might have its own problems), easier to deploy, etc.

Looking forward to hearing from you.

Thank you for the follow-up! I think your points make sense. The approach of using only a single “primary” channel with the option of providing additional “auxiliary” channels seems to be the most straightforward implementation. As we previously discussed, it will be difficult to provide a generalized multi-channel model. However, it should be relatively easy to partially initialize model weights using those from a pre-trained single-channel model.
I am currently traveling but will be back next week. I hope to start working on this feature then and will follow up if any additional issues arise.

Hi @zjniu, do you maybe have any updates on this feature?

Hi @ajertec and @kvinicki, please see the linked PR. With this update, Piscis should now be able to train and predict on multichannel images.
When creating a dataset using the generate_dataset function, make sure that each image in images follow the shape convention of (channels, height, width). For example, a 256 x 256 image with 2 channels should have the shape (2, 256, 256). Likewise, when making predictions using a multichannel model, make sure that the input images follow the same axes ordering, namely (batch, z-level [optional], channel [only for multichannel models], height, width).
Please refer to these notebooks for examples of dataset creation, model training, and model prediction. Please let me know if you need any help with any issues.
Lastly, note that I have not yet implemented a feature that allows initialization of a new multichannel model using a pre-trained single-channel model. I will continue working on this and push something if this is indeed an effective model training strategy.

Partial initialization of weights for multichannel models using those for single-channel models is now supported by https://github.com/zjniu/Piscis/commit/e6489a08af80311b03372dbc42629980a9b52036, and vice versa. Barring any unforeseen bugs, PR https://github.com/zjniu/Piscis/pull/2 should be ready for your review and subsequent merging.
If you want to test this feature without creating your own datasets, please see https://huggingface.co/datasets/wniu/Piscis/tree/main/20230905/with_dapi. This directory of datasets contains images with two channels: the primary RNA FISH channel and an auxiliary DAPI nuclear channel. During training, set the parameter dataset_path to either one of these .npz files or the entire with_dapi directory to load all .npz files.

Hi @ajertec and @kvinicki, have you gotten a chance to test this feature? I will be merging soon unless any issues arise.

Hey, sorry for the late response, it's been a busy week. Thank you so much for this MR :)
I haven't test it fully, yet, but LGTM.


feature(scripts/ops): add script cherry_pick_pull.sh

This script is used to create a cherry pick pull request.
Usage:
./scripts/ops/cherry_pick_pull.sh upstream/release-7.5 98765

Thanks:

https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/cherry-picks.md
https://github.com/kubernetes/kubernetes/blob/master/hack/cherry_pick_pull.sh

/approve

/lgtm


Improve robustness of browse_volume_dir

3DSlicer module allows to automatically load and display a UI case list when a volume folder is selected, assuming a BIDS convention. However, the method is not robust to different scenarios, for example if a folder containing multiple sites is selected.
This issue is about addressing the way of improving consistency when volumes are loaded and displayed in the UI case list.

Action tasks:

[ ] Discuss strategies with Dr. Letourneau-Guillon's team
[ ] Refine the function in browse_volume_dir that enables allCases.yaml 'FILES_SEG' list creation
[ ] Verify it works also for remainingCases.yaml 'FILES_SEG' list

@delphinepilon this could be a place to share information/strategy about UI case list creation. What do you think?


Unable to use JWT - returns 401 unauthorised Invalid JWT Token

I have the following with Symfony flex:
"lexik/jwt-authentication-bundle": "^2.5",
and my config
lexik_jwt_authentication:
    secret_key: '%env(resolve:JWT_SECRET_KEY)%'
    public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
    pass_phrase: '%env(JWT_PASSPHRASE)%'
    token_ttl:        '%jwt_token_ttl%'
    user_identity_field: email

and security firewall
login:
            pattern:  ^/api/login
            stateless: true
            anonymous: true
            provider: fos_userbundle
            simple_preauth:
                authenticator: App\Security\ApiKeyAuthenticator
                provider: api_key_user_provider
            form_login:
                check_path:               /api/login_check
                success_handler:          lexik_jwt_authentication.handler.authentication_success
                failure_handler:          lexik_jwt_authentication.handler.authentication_failure
                require_previous_session: false
                username_parameter: _username
                password_parameter: _password

        refresh:
            pattern:  ^/api/token/refresh
            stateless: true
            anonymous: true
            simple_preauth:
                authenticator: App\Security\ApiKeyAuthenticator
                provider: api_key_user_provider

        api_me:
            pattern:   ^/api/me*
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator
            provider: fos_userbundle

        api:
            pattern:  ^/api
            stateless: true
            simple_preauth:
                authenticator: App\Security\ApiKeyAuthenticator
                provider: api_key_user_provider

I also have this in my .htaccess
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

I can get a JWT token, and also use the refresh token to get a new token. However, when I try and use the JWT on a secure route I get
{"code":401,"message":"Invalid JWT Token"}
And the following in the logs
[2018-09-11 18:22:41] request.INFO: Matched route "get_me". {"route":"get_me","route_parameters":{"_route":"get_me","_controller":"App\\Controller\\Api\\UsersController::getMeAction","_format":"json","_locale":"en"},"request_uri":"https://dev-sf4.helios.co.uk/api/me","method":"GET"} []
[2018-09-11 18:22:41] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"api_me","authenticators":1} []
[2018-09-11 18:22:41] security.DEBUG: Calling getCredentials() on guard configurator. {"firewall_key":"api_me","authenticator":"Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\Guard\\JWTTokenAuthenticator"} []
[2018-09-11 18:22:41] security.INFO: Guard authentication failed. {"exception":"[object] (Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\InvalidTokenException(code: 0): Invalid JWT Token at /Users/patricklock/Sites/HeliosSf4/vendor/lexik/jwt-authentication-bundle/Security/Guard/JWTTokenAuthenticator.php:119, Lexik\\Bundle\\JWTAuthenticationBundle\\Exception\\JWTDecodeFailureException(code: 0): Invalid JWT Token at /Users/patricklock/Sites/HeliosSf4/vendor/lexik/jwt-authentication-bundle/Encoder/LcobucciJWTEncoder.php:55, InvalidArgumentException(code: 0): It was not possible to parse your key, reason: error:0906D06C:PEM routines:PEM_read_bio:no start line at /Users/patricklock/Sites/HeliosSf4/vendor/lcobucci/jwt/src/Signer/Rsa.php:60)","authenticator":"Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\Guard\\JWTTokenAuthenticator"} []
[2018-09-11 18:22:41] security.DEBUG: The "Lexik\Bundle\JWTAuthenticationBundle\Security\Guard\JWTTokenAuthenticator" authenticator set the response. Any later authenticator will not be called {"authenticator":"Lexik\\Bundle\\JWTAuthenticationBundle\\Security\\Guard\\JWTTokenAuthenticator"} []

I have verified the token using https://jwt.io/ and it verifies fine. My keys are in .pem files with passphrase removed. The same setup worked fine in Symfony3.

possibly related to #547

It's okay I fixed my issue. I was overriding the environment variables in my server (MAMP) apache additional parameters (for unit tests) which I no longer need to do now I have the .env file with Symfony 4.


[Docs] Typo in Dependency Management pyproject.toml

Under the Dependency Management pyproject.toml example, requests was mistyped as requires.

Summary of changes

Closes
Pull Request Checklist

[ ] Changes have tests
[x] News fragment added in changelog.d/.
(See documentation for details)

Thank you very much @mfbutner.
requires is also a valid dependency, but I guess requests can be less confusing for starters.

Thanks for letting me know that requires is also valid. I thought it was a typo because the corresponding examples for setup.py and setup.cfg use requests and requests was used in the other examples throughout the page that use dependencies.

Yeah, having all the dependencies on the same page being equivalent is a nice touch. I agree that using requests makes the docs less confusing for the users.
Thank you very much!


Update deb version to 0.5.3

Oh, that's it? I was looking for some config file or something :)

Yeah, it's crazy simple.


Issue with Last Podcast on the Left

I have noticed while trying to use this, that Last Podcast on the Left no longer works. It gets the show description, but is unable to find/download any audio file for that episode.
https://open.spotify.com/show/3yZg2MCkf31pPXiG4nznrg
https://spotifeed.timdorr.com/3yZg2MCkf31pPXiG4nznrg
App: AntennaPod
OS: Android

nvm see it's dead

what was the fix for this?

Spotify changed their structure. Spotify made it impossible for now.


Fix export headers (fixes #46)

Hey, I've also experienced the issue described in #46. Looks like this should fix it (I haven't tested it, though)

Thanks!


[#303] Update detekt rules for Jetpack Compose

https://github.com/nimblehq/android-templates/issues/303
What happened 👀
We're still using the legacy Detekt config for Jetpack Compose project, that's why Detekt reports a lot of issues related to new Jetpack Compose conventions. Hence we have to skip them by adding a lot of Suppress annotations as a workaround.
There is a new Detekt rules for Compose should be applied to get rid of those issues.
Insight 📝

Set ignoreAnnotated: [ 'Composable' ] for FunctionNaming in tempate-compose.
Set propertyPattern: '[A-Za-z][_A-Za-z0-9]*' and constantPattern: '[A-Z][_A-Za-z0-9]*' for TopLevelPropertyNaming.
Set  ignorePropertyDeclaration: true for MagicNumber.
Set  ignoreDefaultParameters: true for LongParameterList.
Remove @Suppress for MagicNumber and  FunctionNaming.

Proof Of Work 📹
No warning of Jetpack Compose from Detekt.

There are some deprecated Detekt attrs, please consider migrating them as well 🙏
> Task :detekt
Property 'complexity>LongParameterList>threshold' is deprecated. Use `functionThreshold` and `constructorThreshold` instead.
Property 'exceptions>ExceptionRaisedInUnexpectedLocation>methodNames' should be a YAML array instead of a comma-separated String.
Property 'exceptions>ThrowingExceptionsWithoutMessageOrCause>exceptions' should be a YAML array instead of a comma-separated String.
Property 'naming>ForbiddenClassName>forbiddenName' should be a YAML array instead of a comma-separated String.
Property 'naming>MemberNameEqualsClassName>ignoreOverriddenFunction' is deprecated. Use `ignoreOverridden` instead.
Property 'potential-bugs>LateinitUsage>excludeAnnotatedProperties' is deprecated. Use `ignoreAnnotated` instead.
Property 'style>ForbiddenComment>values' should be a YAML array instead of a comma-separated String.
Property 'style>ForbiddenImport>imports' should be a YAML array instead of a comma-separated String.
Property 'style>MagicNumber>ignoreNumbers' should be a YAML array instead of a comma-separated String.
Property 'style>UseDataClass>excludeAnnotatedClasses' is deprecated. Use `ignoreAnnotated` instead.

Good point, @luongvo 👍 but I think it's better to create a new issue to fix because it was deprecated in all projects in android-template. What do you think? cc @Tuubz

Good point, @luongvo 👍 but I think it's better to create a new issue to fix because it was deprecated in all projects in android-template. What do you think? cc @Tuubz If you guys ok then I will create an issue and include it in current sprint 🙏

lgtm, separate PR makes sense 👍

Let's add UnusedPrivateMember to follow the document as well.
UnusedPrivateMember:
    active: true
    allowedNames: '(_|ignored|expected|serialVersionUID)'
    ignoreAnnotated: ['Preview']

@lydiasama For ignoreAnnotated: ['Preview'], I can't reproduce it. I don't get any warning from Detekt. That's why I think we don't need to use it, but if you can reproduce this case, please let me know🙏 I'm not sure if It's because the doc is not up to date or not 🤔

@Wadeewee I think it is because we no longer have UnusedPrivateMember in detekt-config. Normally when we define a private variable that is unused, we got the detekt error. Now we don't get the error anymore. Did you intentionally removed the rule? cc @lydiasama

Let's add UnusedPrivateMember to follow the document as well.
UnusedPrivateMember:
    active: true
    allowedNames: '(_|ignored|expected|serialVersionUID)'
    ignoreAnnotated: ['Preview']

@lydiasama For ignoreAnnotated: ['Preview'], I can't reproduce it. I don't get any warning from Detekt. That's why I think we don't need to use it, but if you can reproduce this case, please let me know🙏 I'm not sure if It's because the doc is not up to date or not 🤔

@Wadeewee I think it is because we no longer have UnusedPrivateMember in detekt-config. Normally when we define a private variable that is unused, we got the detekt error. Now we don't get the error anymore. Did you intentionally remove the rule? cc @lydiasama

Yep, @kaungkhantsoe, we haven't applied UnusedPrivateMember in detekt-config. I'm still thinking should we add it, but if we decide to add it, then we need to add ignoreAnnotated: [ 'Preview' ] for sure. What do you think? cc @lydiasama

@Wadeewee BTW did you try producing the detekt error after generating a compose template? I tried removing some rules which can cause the error and run detekt but no error is shown. Am I the only one facing it? Eg. I removed ignoreAnnotated: [ 'Composable' ] from FunctionNaming and run detekt but no error is shown. Am I doing something wrong? 🙏
Screen.Recording.2022-12-14.at.1.08.19.PM.mov

What about this one @Wadeewee ? detekt is not working on my side. Could it be because of gradle version? @ryan-conway did you also face this issue while you were working on IC?

@Wadeewee BTW did you try producing the detekt error after generating a compose template? I tried removing some rules which can cause the error and run detekt but no error is shown. Am I the only one facing it? Eg. I removed ignoreAnnotated: [ 'Composable' ] from FunctionNaming and run detekt but no error is shown. Am I doing something wrong? 🙏
Screen.Recording.2022-12-14.at.1.08.19.PM.mov

What about this one @Wadeewee ? detekt is not working on my side. Could it be because of gradle version? @ryan-conway did you also face this issue while you were working on IC?

It works properly on my side @kaungkhantsoe I can get the waring here:
https://user-images.githubusercontent.com/28002315/207540932-e88c0ede-cd03-4a18-bb38-0fce8eafcd33.mov
Could you please try with this steps:

Run generate script to create new project
Once successful then run ./gradlew clean
run ./gradlew detekt

Let's add UnusedPrivateMember to follow the document as well.
UnusedPrivateMember:
    active: true
    allowedNames: '(_|ignored|expected|serialVersionUID)'
    ignoreAnnotated: ['Preview']

@lydiasama For ignoreAnnotated: ['Preview'], I can't reproduce it. I don't get any warning from Detekt. That's why I think we don't need to use it, but if you can reproduce this case, please let me know🙏 I'm not sure if It's because the doc is not up to date or not 🤔

@Wadeewee I think it is because we no longer have UnusedPrivateMember in detekt-config. Normally when we define a private variable that is unused, we got the detekt error. Now we don't get the error anymore. Did you intentionally remove the rule? cc @lydiasama

Yep, @kaungkhantsoe, we haven't applied UnusedPrivateMember in detekt-config. I'm still thinking should we add it, but if we decide to add it, then we need to add ignoreAnnotated: [ 'Preview' ] for sure. What do you think? cc @lydiasama

I think it would be great if we follow the document. 🙏🏻

Let's add UnusedPrivateMember to follow the document as well.
UnusedPrivateMember:
    active: true
    allowedNames: '(_|ignored|expected|serialVersionUID)'
    ignoreAnnotated: ['Preview']

@lydiasama For ignoreAnnotated: ['Preview'], I can't reproduce it. I don't get any warning from Detekt. That's why I think we don't need to use it, but if you can reproduce this case, please let me know🙏 I'm not sure if It's because the doc is not up to date or not 🤔

@Wadeewee I think it is because we no longer have UnusedPrivateMember in detekt-config. Normally when we define a private variable that is unused, we got the detekt error. Now we don't get the error anymore. Did you intentionally remove the rule? cc @lydiasama

Yep, @kaungkhantsoe, we haven't applied UnusedPrivateMember in detekt-config. I'm still thinking should we add it, but if we decide to add it, then we need to add ignoreAnnotated: [ 'Preview' ] for sure. What do you think? cc @lydiasama

@Wadeewee I think it would be great if we follow the document. 🙏🏻 cc @kaungkhantsoe

FYI: @lydiasama @kaungkhantsoe, I think it's good to have UnusedPrivateMember. It will be useful when we have unused private properties or functions that don't relate to Compose a preview. So, Let me add only template-compose and sample-compose in this PR, but for template-xml and sample-xml I will include it without ignoreAnnotated: ['Preview'] in this https://github.com/nimblehq/android-templates/pull/371 🙏

sample-compose/detekt-config.yml & template-compose/detekt-config.yml are not 100% the same, should we update it in this PR and make them aligned? 🙏

@Tuubz They are the same, you can diff their content together by using https://www.diffchecker.com/compare/.
Please check her reply here.

@luongvo Oh lol, now I see the difference. The content is the same, but there's a small difference in the indentation 🤪

@luongvo Oh lol, now I see the difference. The content is the same, but the indentation is not formatted correctly 🤪

@Tuubz No, the content of those 2 config files is totally the same, even the indentation. The issue is they don't totally follow the IDE formatting, so it will re-format when copying-pasting (I guess you tried to copy and paste to check the diff in AS).
@Tuubz @Wadeewee In the best way, should we re-format the config file again (via AS)?

@Wadeewee Can you do the formatting as @luongvo suggested in #369? 🙏


chore(web): pinterest site verif + account menu & mobile nav impr

Changelog:

https://github.com/bitcashorg/smartsale/pull/391
Commit https://github.com/bitcashorg/smartsale/commit/143bf09209761a6b429aec35c5b79d8b089d7999
Commit https://github.com/bitcashorg/smartsale/commit/3d9ba0f637d7ec8158f9500c1a10f1857ec461c4

Summary by Sourcery
Enhance the mobile navigation and account menu by introducing a new 'MobileNavIcon' component and adding icons to navigation links. Improve the user interface and experience by refining the layout and interactions. Add Pinterest domain verification to the site metadata.
New Features:

Add a new 'MobileNavIcon' component to handle the mobile navigation icon display and interaction.

Enhancements:

Improve the mobile navigation by replacing the 'UseAnimations' component with the new 'MobileNavIcon' component for better performance and customization.
Enhance the account menu and mobile navigation by adding icons to navigation links, improving the user interface and experience.

Chores:

Add Pinterest domain verification token to the site metadata for domain verification purposes.

 [Bitlauncher] Development Support - Andler, September 2024


Mark spatial datatypes as valid

Addresses issue #1031. I've also noticed that setObject() using Geography/Geometry weren't working as intended, so I'm fixing that as well.

mssql-jdbc-7.3.1-SNAPSHOT-preview-PR1035.zip
Attaching the driver from this PR for testing.

Codecov Report

Merging #1035 into dev will increase coverage by 0.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##                dev    #1035      +/-   ##
============================================
+ Coverage     50.83%   50.84%   +0.01%
- Complexity     2964     2965       +1
============================================
  Files           120      120
  Lines         28001    28009       +8
  Branches       4686     4686
============================================
+ Hits          14233    14240       +7
  Misses        11616    11616
- Partials       2152     2153       +1

Flag
Coverage Δ
Complexity Δ

#JDBC42
50.41% <100%> (-0.03%)
2925 <0> (-3)

#JDBC43
50.71% <100%> (+0.02%)
2959 <0> (+2)
:arrow_up:

Impacted Files
Coverage Δ
Complexity Δ

...rc/main/java/com/microsoft/sqlserver/jdbc/dtv.java
68.78% <100%> (+0.07%)
0 <0> (ø)
:arrow_down:

...osoft/sqlserver/jdbc/SQLServerSpatialDatatype.java
85.49% <100%> (+0.11%)
289 <0> (ø)
:arrow_down:

...n/java/com/microsoft/sqlserver/jdbc/DataTypes.java
80.07% <100%> (+0.15%)
6 <0> (ø)
:arrow_down:

...om/microsoft/sqlserver/jdbc/ReaderInputStream.java
43.95% <0%> (-1.1%)
15% <0%> (ø)

...rc/main/java/com/microsoft/sqlserver/jdbc/DDC.java
46.86% <0%> (-0.65%)
111% <0%> (ø)

...c/main/java/com/microsoft/sqlserver/jdbc/Util.java
63.36% <0%> (-0.44%)
95% <0%> (-1%)

...om/microsoft/sqlserver/jdbc/SQLServerBulkCopy.java
50.52% <0%> (+0.12%)
246% <0%> (+1%)
:arrow_up:

...om/microsoft/sqlserver/jdbc/SimpleInputStream.java
57.46% <0%> (+1.49%)
16% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e1f3d7e...a46ebbf. Read the comment docs.


Add link to faucet if user has insufficent funds in testnet mode

In the transaction signing popup within testnet mode, we should link to https://www.blockstack.org/testnet/faucet somehow if the user doesn't have sufficient funds instead of dead-ending them.
We may also want to include a refresh button they can use once the faucet transaction has been triggered and confirmed on chain.

https://www.figma.com/file/Wan0HuWjhyg77zJZK3yUKg/Transaction-signing?node-id=160%3A1319


Tell user if user's Wallet is unlocked for only staking

If a user unlocks their encrypted wallet only for staking it shows up:

If a user completely unlocks their wallet is shows up as the same thing
We should change the message to add if it's unlocked for staking or fully unlocked

I don't think this ever got to production, I don't see it there.


xUnit LogFilePath does not work with absolute paths

Passing a path like "--logger "xunit;LogFilePath=C:\TEMP\loggerFile.xml"" does not work.

@pmcilreavy thanks for reporting the issue. Can you please share the following to help us reproduce this:

Version of dotnet sdk
TargetFramework of the test project

Unable to repro this in latest .NET Core 2.1 sdk.
18:6:36 [C:\Users\codit\src\tmp]PS>dotnet test --logger "xunit;LogFilePath=c:\users\codit\src\tmp\tmp dir\test-result.xml"
Build started, please wait...
Build completed.

Test run for C:\Users\codit\src\tmp\bin\Debug\netcoreapp2.1\tmp.dll(.NETCoreApp,Version=v2.1)
Microsoft (R) Test Execution Command Line Tool Version 15.7.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
Results File: c:\users\codit\src\tmp\tmp dir\test-result.xml

Total tests: 1. Passed: 1. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 1.7606 Seconds


✨(backend) Route to create and get zip archive

Purpose
University representatives will be able to fetch their signed contracts in a ZIP archive through two actions.
The viewset to generate the ZIP archive (POST) requires :

a user that has access to a specific organization (required)
an organization UUID
OR a course product relation UUID

The other viewset will handle in returning the ZIP archive (GET) once it has been generated
in the response. It requires :

requesting user is the same that the one who requested the ZIP archive. It must have access to a specific organization.
a valid ZIP UUID in order to build the ZIP archive name and seek for it in storages.

Proposal

[x] POST endpoint : to generate the ZIP archive with signed contract and save it in storages.
[x] GET endpoint : to fetch the ZIP archive once it has been built and is accessible in storages.
[x] add test suites for both endpoint.

Can you please rebase on main ? I would like to check if the schema generation behaves correctly.

Done. It was a nightmare to do it...


Web application was updated, click Reload to apply changes.

As you see above, I clicked the Action button and page refreshed, but the message still appears.
What can I do to close it?

@gogoods can you try to do a hot reload (ctrl+shift+r or ctrl+F5) please and tell me if it helps?

@x1unix
unfortunately, force reload doesn't work ( ctrl+shift+r , ctrl+F5, disable cache to refresh)
😂

me too

@gogoods https://github.com/x1unix/go-playground/pull/96 resolves this issue and will be shipped in the next stable release.

@gogoods @dmwin72015 as I see, you're a native chinese speaker. What do you think about chinese translation of the web interface?
If yes - can you help me please with translation process?

@x1unix
sure, it's my pleasure.
even thought i think there is no need to translate the web ui lanuage to chinese for a programer.
we all are coder, right?


perf(transformer): inline enter_statement method

#6126  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite


Android gradle preBuild task build output

We've added ktlint to our android project and included it in our gradle scripts.
preBuild.dependsOn ktlint
Is there a way to view the lint errors with line numbers in this build output here:

I have to re-run the ktlint gradle task again to get the line numbers and list of errors, seen below here:

I have also tried the same approach stuck with with issue, it would be nice if someone can help on this.

@gray419 sorry for not seeing this sooner. can you post a more complete snippet of your gradle script?

complete ktlint.gradle file
`repositories {
jcenter()
}
configurations {
ktlint
}
dependencies {
ktlint "com.github.shyiko:ktlint:0.29.0"
}
task ktlint(type: JavaExec, group: "verification") {
description = "Check Kotlin code style."
classpath = configurations.ktlint
main = "com.github.shyiko.ktlint.Main"
args "src/**/*.kt"
}
preBuild.dependsOn(ktlint)
task ktlintFormat(type: JavaExec, group: "formatting") {
description = "Fix Kotlin code style violations."
classpath = configurations.ktlint
main = "com.github.shyiko.ktlint.Main"
args "-F", "src/**/*.kt"
}`

Same issue here, this really effects the decision to use the linter or not.

Getting the same issue as well on our team. This is our Gradle file...
configurations {
    ktlint
}

dependencies {
    ktlint "com.pinterest:ktlint:0.37.2"
}

task ktlint(type: JavaExec, group: "verification") {
    description = "Check Kotlin code style."
    main = "com.pinterest.ktlint.Main"
    classpath = configurations.ktlint
    args "src/**/*.kt", "!src/test/**/*Test.kt" //ignore test files
    // to generate report in checkstyle format prepend following args:
    // "--reporter=plain", "--reporter=checkstyle,output=${buildDir}/ktlint.xml"
    // see https://github.com/pinterest/ktlint#usage for more

}

task ktlintFormat(type: JavaExec, group: "formatting") {
    description = "Fix Kotlin code style deviations."
    main = "com.pinterest.ktlint.Main"
    classpath = configurations.ktlint
    args "-F", "src/**/*.kt"
}

preBuild.dependsOn(ktlint)
check.dependsOn(ktlint)

I am failing to understand what you exactly want to achieve. If this issue is still relevant for any of you, please update the issue with its goal.

@Goooler Can you please advise whether this issue is still relevant or that we should close it?


__next_navigation_guard_token evaluation crashes

Sometimes I get this error: https://yung.sentry.io/share/issue/62bb003ffa7c48559c576b138a9a7cbc/ (actual trace of a crash)
The error is: null is not an object (evaluating 't.__next_navigation_guard_token')
It happens
here

Our history intervention is for recording index to history, that is necessary for navigation guard that is not enabled from the beginning.
That is just missing null check, I'll fix that!


Unified Search

User Story
As a PM, I would like the ability to do a block search throughout my content repo, so I can easily identify where blocks live throughout my site.
Acceptance Criteria

There is dedicated functionality to search for blocks that are used throughout the content repo
For example: User enters content repo, clicks into search bar, enters "marquee", and list of pages using the marquee block is shown

Value

When thinking about bulk changes that may need to occur across the site, this will be a helpful to narrow down the list of pages that may need to altered. Think bulk updating, think introducing consonants latest variant to a block and i want to scale that variant across many different pages

What I would love to see is if we can use OpenSearch and have blocks, fragments, and maybe headings as searchable metadata.


Add MetPy Case Study

This PR adds the notebook for the MetPy Case Study from my forked repo of the workshop.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Are you ready for me to merge this? The test failures don't look related.

Not yet. This is the completed solution...I want to remove some of it for some live coding during this part of the course. I should have time to finish that up this week.

Are you planning to do it with load magics like we moved to in the workshop materials?

Ready to merge now that solutions are there?

Yeah, I think so. May need some refactor once the latest MetPy version is out, but I consider this complete.

Yeah, I figure we'll be doing some mods before we teach, but I'll go ahead and merge.


Reduce frequency of keep-alives on non-nominated pairs

Currently, I believe str0m sends keep-alives on all valid candidate pairs at the same rate. Sending frequent keep-alives is useful to detect network partitions. However, I think that is only relevant for the currently nominated pair.
Could we reduce the keep-alives on other pairs to something like 5 or 10 seconds?

If we'd ignore trickle ICE, then the spec would actually say to stop sending keep alives on all but the nominated candidate pair: https://datatracker.ietf.org/doc/html/rfc8445#section-8.3

I think what I would want is a behaviour such as "move to completed if we haven't received a new candidate in a while" but still allow new candidates to be added in case they come through.
I am not sure if time is the best trigger for this condition.
Perhaps what we need is an implementation of the "end of candidates" indication, plus triggering an ICE restart if we learn a new candidate after we have sent "end of candidates"?

I think I figured out something that solves this for now. Upon every nomination, I'll invalidate all other candidates with less or eq the nominated priority. This means we can still find a better pair but we won't keep around others. This removes the ability of a "fallback" in case the current one stops working but in that case, we just discard the connection and form a new one (kind of like an ICE restart).

Yeah. So for WebRTC the goal is to maximize the chances of connectivity. The frequency of STUN requests to the fallbacks could potentially be reduced, but it's not right to remove them altogether.

If we'd ignore trickle ICE, then the spec would actually say to stop sending keep alives on all but the nominated candidate pair: https://datatracker.ietf.org/doc/html/rfc8445#section-8.3

This is something we have a deliberate stance on: https://github.com/algesten/str0m/blob/main/docs/ice.md#nomination-doesnt-stop-gathering
And also see: https://github.com/algesten/str0m/blob/main/docs/ice.md#why-aend-of-candidates
Ultimately it seems your application is less concerned with connectivity and more about not being too noisy. That's slightly at odds with the goals of str0m. invalidate_candidate seems like one solve, another thing we could explore is implementing this part of the spec:
https://datatracker.ietf.org/doc/html/rfc5245#section-5.7.3

an agent MUST limit the total number of connectivity
checks the agent performs across all check lists to a specific value,
and this value MUST be configurable.  A default of 100 is
RECOMMENDED.  This limit is enforced by discarding the lower-priority
candidate pairs until there are less than 100.

If we made this runtime configurable, you could potentially lower the limit to 1-2 after successful connect.

Ultimately it seems your application is less concerned with connectivity and more about not being too noisy. That's slightly at odds with the goals of str0m.

I imagine many applications will run into that. We "only" generate a handful of candidates (8-10 per peer) and if most of them are active, str0m will generate multiple megabytes of traffic per minute just for keep-alives. On mobile devices, that is not exactly ideal.
The quoted section sounds interesting, I think that may be another good angle to solve this. We would also need to be somewhat smart about which ones are dropped. Also, it would be important that this only happens once we've nominated a pair.

Ultimately it seems your application is less concerned with connectivity and more about not being too noisy.

That is not quite how I'd put it. Connectivity is super important actually but once we've found a pair, we'd rather have that connection fail and make a new one via the signaling layer instead of falling back :)
It appears to me that this is a trade-off that most apps will want to make at some point: Have lots of candidates first to maximize connectivity, then prune them to save bandwidth, battery and reduce noise.

That is not quite how I'd put it. Connectivity is super important actually but once we've found a pair, we'd rather have that connection fail and make a new one via the signaling layer instead of falling back :)

Yeah. Sorry. Clumsy way of putting it.

Have lots of candidates first to maximize connectivity, then prune them to save bandwidth, battery and reduce noise.

Noise apart, this presupposes there is a lot of bandwidth being uses here. My gut feeling is that it can't be that much – hence I asked whether you measured it.

It shouldn't be too difficult to implement some counters that sum up all traffic generated by our own TURN client and str0m. I'll implement that tomorrow and see what numbers we get.

Excellent! Thanks! I love to get some hard data on that.

Here are some early logs:
2024-02-29T00:00:16.453321Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 6.09 kB, stun_bytes_to_peer_relayed: 14.35 kB }
2024-02-29T00:00:26.453946Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 7.55 kB, stun_bytes_to_peer_relayed: 25.11 kB }
2024-02-29T00:00:36.454360Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 9.15 kB, stun_bytes_to_peer_relayed: 36.73 kB }
2024-02-29T00:00:46.453929Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 10.75 kB, stun_bytes_to_peer_relayed: 48.35 kB }
2024-02-29T00:00:56.454297Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 12.35 kB, stun_bytes_to_peer_relayed: 59.97 kB }
2024-02-29T00:01:06.453849Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 13.95 kB, stun_bytes_to_peer_relayed: 71.59 kB }
2024-02-29T00:01:16.453982Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 15.55 kB, stun_bytes_to_peer_relayed: 83.21 kB }
2024-02-29T00:01:26.454021Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 17.15 kB, stun_bytes_to_peer_relayed: 94.83 kB }
2024-02-29T00:01:36.454246Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 18.75 kB, stun_bytes_to_peer_relayed: 106.45 kB }
2024-02-29T00:01:46.453911Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 20.35 kB, stun_bytes_to_peer_relayed: 118.07 kB }
2024-02-29T00:01:56.454139Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 21.95 kB, stun_bytes_to_peer_relayed: 129.69 kB }
2024-02-29T00:02:06.454218Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 23.55 kB, stun_bytes_to_peer_relayed: 141.31 kB }
2024-02-29T00:02:16.453379Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 25.15 kB, stun_bytes_to_peer_relayed: 152.93 kB }
2024-02-29T00:02:26.454363Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 26.67 kB, stun_bytes_to_peer_relayed: 164.55 kB }
2024-02-29T00:02:36.453653Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 28.27 kB, stun_bytes_to_peer_relayed: 176.17 kB }
2024-02-29T00:02:46.453956Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 29.87 kB, stun_bytes_to_peer_relayed: 187.79 kB }
2024-02-29T00:02:56.454060Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 31.47 kB, stun_bytes_to_peer_relayed: 199.41 kB }
2024-02-29T00:03:06.454192Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 33.07 kB, stun_bytes_to_peer_relayed: 211.03 kB }
2024-02-29T00:03:16.453685Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 34.67 kB, stun_bytes_to_peer_relayed: 222.65 kB }
2024-02-29T00:03:26.454280Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 36.27 kB, stun_bytes_to_peer_relayed: 234.27 kB }
2024-02-29T00:03:36.453754Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 37.87 kB, stun_bytes_to_peer_relayed: 245.89 kB }
2024-02-29T00:03:46.454647Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 39.47 kB, stun_bytes_to_peer_relayed: 257.51 kB }
2024-02-29T00:03:56.453414Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 41.07 kB, stun_bytes_to_peer_relayed: 269.13 kB }
2024-02-29T00:04:06.454558Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 42.67 kB, stun_bytes_to_peer_relayed: 280.75 kB }
2024-02-29T00:04:16.453673Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 44.27 kB, stun_bytes_to_peer_relayed: 292.37 kB }
2024-02-29T00:04:26.453906Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 45.87 kB, stun_bytes_to_peer_relayed: 303.99 kB }
2024-02-29T00:04:36.453788Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 47.47 kB, stun_bytes_to_peer_relayed: 315.61 kB }
2024-02-29T00:04:46.454831Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 49.07 kB, stun_bytes_to_peer_relayed: 327.23 kB }
2024-02-29T00:04:56.453251Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 50.67 kB, stun_bytes_to_peer_relayed: 338.85 kB }
2024-02-29T00:05:06.453654Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 52.27 kB, stun_bytes_to_peer_relayed: 350.47 kB }
2024-02-29T00:05:16.453233Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 53.87 kB, stun_bytes_to_peer_relayed: 362.09 kB }
2024-02-29T00:05:26.453618Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 55.47 kB, stun_bytes_to_peer_relayed: 373.71 kB }
2024-02-29T00:05:36.453282Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 57.07 kB, stun_bytes_to_peer_relayed: 385.33 kB }
2024-02-29T00:05:46.454126Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 58.67 kB, stun_bytes_to_peer_relayed: 396.95 kB }
2024-02-29T00:05:56.453692Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 60.27 kB, stun_bytes_to_peer_relayed: 408.42 kB }
2024-02-29T00:06:06.454238Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 61.87 kB, stun_bytes_to_peer_relayed: 419.88 kB }
2024-02-29T00:06:16.453243Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 63.40 kB, stun_bytes_to_peer_relayed: 431.50 kB }
2024-02-29T00:06:26.454474Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 65.00 kB, stun_bytes_to_peer_relayed: 443.12 kB }
2024-02-29T00:06:36.453941Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 66.60 kB, stun_bytes_to_peer_relayed: 454.74 kB }
2024-02-29T00:06:46.453610Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 68.12 kB, stun_bytes_to_peer_relayed: 466.36 kB }
2024-02-29T00:06:56.454841Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 69.72 kB, stun_bytes_to_peer_relayed: 477.98 kB }
2024-02-29T00:07:06.453429Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 71.32 kB, stun_bytes_to_peer_relayed: 489.60 kB }
2024-02-29T00:07:16.454171Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 72.92 kB, stun_bytes_to_peer_relayed: 501.22 kB }
2024-02-29T00:07:26.454635Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 74.52 kB, stun_bytes_to_peer_relayed: 512.84 kB }
2024-02-29T00:07:36.453232Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 76.12 kB, stun_bytes_to_peer_relayed: 524.46 kB }
2024-02-29T00:07:46.453754Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 77.72 kB, stun_bytes_to_peer_relayed: 536.08 kB }
2024-02-29T00:07:56.454411Z  INFO connlib::stats: ConnectionStats { stun_bytes_to_peer_direct: 79.32 kB, stun_bytes_to_peer_relayed: 547.70 kB }

This is already with some of the optimisations applied that we discussed, i.e. invalidating a lot of candidate pairs. Something is still off because there are still more than 1 pair being tested. The above logs are with 5 pairs I think.

This sounds within expected parameters. It will further be improved by having a resolution to https://github.com/algesten/str0m/issues/490 – where the user can reduce the frequency if they so wishes.
Notice that 6kb per pair/minute is nothing for the WebRTC use case.

Can we close this in favor of #490?


How to efficiently transfer numpy array

I have a relatively large image data, saved as numpy array, how can I transfer it to the js side for easy drawing?

How about encoding it in base64 and sending it to js in string format?
If you have any additional questions, please let me know.

I tried opencv, it's pretty fast. When the data is large, you can use it like this：
def array_to_base64_png_fast(arr):
    import cv2
    import base64
    img_array = (np.clip(arr, 0, 1) * 255).astype(np.uint8)

    success, buffer = cv2.imencode('.png', img_array)
    if success:
        data = base64.b64encode(buffer).decode('utf-8')
        return f'data:image/png;base64,{data}'
    else:
        raise Exception("Failed to encode image")

class api(PyloidAPI):
    @Bridge(result=str)
    def get_image(self):

        img_arr = np.array([[[1,1,1],[0,0,0]]])
        img_uri = array_to_base64_png_fast(img_arr)
        return img_uri


[FEATURE] . Alerts could be triggered by javascript

Im having kinda of a harsh time using this library alerts.
i want to use it to tell the user that an ajax call was successful,  but when i try the "js || jquery way"
 <button type="button"
                id="success"
                data-positionX="center"
                data-positionY="top"
                data-duration="5000"
                data-effect="fadeInUp"
                data-message=""
                data-type="information"
                data-revert="fadeOutUp"
                class="btn pmd-ripple-effect btn-info pmd-btn-raised pmd-alert-toggle">
        </button>

document.getElementById('success').click();
$('#success').trigger('click');
$('#success').click()

The alerts aren't being  erased.

Must be cool if they trigger with the same jquery you guys are using.
Neat library btw .

Hi jpkontreras,
We are unable to understand exactly where and how are you facing the issue with the alerts.
Still, please find the below code snippet for example where the alert is called using AJAX.
//html
<button type="button" data-positionX="right" data-positionY="top" data-duration="3000" data-effect="fadeInUp" data-message="" data-type="" class="btn pmd-ripple-effect btn-warning pmd-z-depth alert-trigger pmd-alert-toggle floating_alert_button hidden">Alert Warning</button>

//js common function
function showFloatingAlertMessage(msg, type){
	if(typeof msg != 'undefined' && msg != '' && typeof type != 'undefined' && type != '') {
		//change type
		if(type == 'danger') {
			type = 'error';
		}
		element = $('.floating_alert_button');
		$(element).attr('data-type', type);
		$(element).attr('data-message', msg);
		$(element).trigger('click');
		return;
	}
	alert('fallback error!');
}
//on ajax success
showFloatingAlertMessage('your messages', 'danger');
showFloatingAlertMessage('Your message', 'warning');
showFloatingAlertMessage('Your message', 'success');

Please check if this helps.
If still you are facing an issue, please share a detailed code snippet or a step by step procedure you follow for our better understanding.
Please feel free to ask in case of any further queries.
Regards,
Sunil

Could you also share how can I trigger an alert message with JS but not by clicking a button. I'm using Ruby on Rails and I'd like to trigger alerts programmatically from a controller as a result of some user input. Thanks


OOTxMM Settings: Song Shuffle

A setting that affects both games (and probably should be one of the first settings to offer), a simple drop-down for how songs are shuffled:
-Song Locations (songs are restricted to song locations, so in OoT for example when you go to Malon in the ranch you have a chance of picking up either an OoT song or a MM song or if you go to the monkey in Deku Palace in MM you have a chance of picking up either an OoT song or a MM song).
-Anywhere (songs are shuffled to be anywhere)
There is a setting in OOTR to force songs at the end of dungeons (it uses the Well, Ice Cavern, and GTG to accomplish this) but it's not a very good setting so I'm not sure if it would end up being better here but probably not due to MM dungeons requiring songs to even access them in the first place. So I left it out for now.

Added!


Is Tweepy up to date?

Wondering whether Tweepy is up to date with the latest Twitter APIs and rate limits. Does anyone know?

I'm still using 3.5.0 for streaming and requesting User/Tweet data without issues. Rate limits and auto-queueing work fine. I haven't tested it for manipulating user timelines.

For example, I was playing around with my own user account, just trying to get the list of our followers, which is just over 3K people. Based on the rate limits (and with the automatic waiting enabled on the API object), I was expecting that I'd be able to get 1500 people quickly, wait 15 minutes, get the next 1500, wait 15 minutes then get the remaining 300 or so. However, it waited for 15 minutes 6 times before I finally killed it.

Did it work beforehand? My app still works with the followers/ids and followers/list endpoints up to the full rate limit.

I just began using Tweepy for the first time this week. So I can't say whether it worked correctly previously. I'll go back and recheck my code, but I believe it's correct.

 I forgot to pass an argument to api.followers, so I was getting only 20 followers at a time, not 200. Sorry for bothering you.

You can find my fix at forked repo (both getting and sending DMs): https://github.com/bakayim/tweepy
Pull Request about Getting DMs: https://github.com/tweepy/tweepy/pull/1109
Star my repo if it helps you please, thanks

Wondering whether Tweepy is up to date with the latest Twitter APIs and rate limits. Does anyone know?

If it's not and you find an issue, this is an open source project, so you can always submit an issue and/or pull request.
As for direct messages, see #1081.


Added backtrace reporting on fatalError

Backtraces are symbolicated and reported on builds with
-assert-config=Debug

@gribozavr I noticed something that's concerning: Looks like there's an explicit mangled version of _fatalErrorMessage() used as a string in CFG.cpp line 41. Since that functions signature is different, now, to propagate the assert config, we'll need to re-think the fatalName there.

@jckarter Are you OK with this change to the swift::fatalError API?  This affects ABI.

How do you feel about also disabling this on iOS, tvOS and watchOS?  When an engineer is running a debug app on those devices or simulators, in most cases they have Xcode attached.  And when they don't, the message isn't displayed anywhere.

@gribozavr Disabling on iOS, tvOS, and watchOS is good with me. Realistically, it should only happen with you're running with a TTY attached, no?

That mangled name is used only to recognize calls to the function (and I think there's a test for that, it should be failing now).  We just need to update the mangled name.

Checking for an actual TTY might lead to non-intuitive behavior though.

@gribozavr How would I go about finding the build target at runtime? (re: iOS/watchOS/tvOS)

You'd find it at compile time with #if os().

Don't Assert*.swift get compiled into a static library that's linked in with the compiler?

It is, but it is compiled for each platform separately.

Ah, okay. :+1:

@gribozavr I pushed the changes you requested. As for the flags, I think that's doable, though I'd want some confirmation that that's the direction to go.

@harlanhaskins Joe Groff is an authority for runtime ABIs, and FWIW I agree with him about changing it to a general flags parameter.

@jckarter Could you take a look at the swift_reportError and fatalError ABI change?

Should be fine with the flags.

@swift-ci Please test

@swift-ci Please test

@harlanhaskins Could you squash and force-push?

@gribozavr :+1:

@swift-ci Please test

@swift-ci Please test

The previous one passed, but we are testing the CI now :bar_chart:


Upgrade to Spring Boot 2.7.3

Upgrade to Spring Boot 2.7.3.
It is to be released on the 18th of August: https://github.com/spring-projects/spring-boot/milestone/268.

Is released.


Airlock Painter needs lathe recipe.

And maybe could be added to some storage fills or tool vendors.

I will have a go at it

#7603 Here it is!


Add SSH setup section

Clipboard and shared folders have been a pain to get setup for me so far. So I like running headless and using SSH. I think it is a convenient option for development so added instructions.

Thanks for the feedback


Open source reusable React components for building front-ends on top of BigchainDB

Abstract
Release a set of high quality front-end components to help us and others build apps, hopefully on top of BigchainDB.
Motivation
As we internally build more apps (and example apps), a set of quality, self-contained front-end components helps us move quicker with less bugs. Open sourcing this component library will allow other developers to benefit from our work and help them build their apps. We're opinionated and like using React for our front-ends, so we recommend it to our friends too.
The goal is not to replace existing front-end component libraries like React-Bootstrap, Material-UI, React-Toolbox, or etc, but to provide additional, more involved, components that live on top of the basic UI components that these other libraries provide; for example, an uploader.
We've been secretly building this out as ascribe/react-components, but now it's moving to BigchainDB.
Goals

Create a bigchaindb/react-components repo that will house current and future components
Existing apps and demos should have their reusable components generalized and put into react-components

Tasks
Friday, May 6th:

[x] Upgrade dependencies to allow React 15 as a peer dependency
[x] Create tiny boilerplate for initializing JS apps with Babel, Webpack, and React built in
[ ] Create JS utils library for non-React utilities
[ ] Overhaul ESLint configuration (also to help with BigchainDB's JS api)

Friday, May 13th:

[ ] Resolve outstanding pull-requests in ascribe/react-components
[ ] Implement theming, probably using react-css-themr
[ ] Use components in ascribe/onion
[ ] Use components in bigchaindb/bigchaindb-examples
[ ] Finish documentation of components
[ ] Add unit tests for the easy stuff (ie. not uploader)
[ ] Move ascribe/react-components to bigchaindb/react-components
[ ] Publish to npm

@SohKai
I copied this to https://github.com/bigchaindb/org/issues/14 so I'm closing this issue here.


Unclean SKIPPING of the Config Support E2E

In the Config Support test, we get the operator deployment and namespace,
and then do cleanup in an AfterAll node.
If the test was SKIPPED, the AfterAll will fail by not having yet the namespace.
This will not fail the test, but is confusing.

E2E run with test level 1 so we skip:
https://github.com/EnterpriseDB/cloudnative-pg/actions/runs/3328536273


DNT header support added

If the "DNT" http header has a value of "1"
or if device.dnt has a value of "1"
Then follow the same anonymization rules as for device.lmt defined in #833
In addition, when the DNT:1 HTTP header is seen, /cookie-sync and /setuid should immediately give up with HTTP 204

Update from @bretg
We discussed in Prebid Server committee today and have decided
not to support this obsolete privacy standard.

Please don't merge these changes – just cancel. Thanks.

Closing.


Update NOTICE.txt

Elias, I'm re-requesting your review because there are two repos that don't have a licence. Will need to determine next steps here.


Basket. Filters. Empty page

Description
There is no blank screen page

Steps to Reproduce

Add to basket any operation
Set filters in order to show empty page

Expected Behavior
Blank screen page is shown
Actual Behavior
Empty page
https://github.com/user-attachments/assets/41ecc178-cac0-4a89-8230-39deff4e7c49
Environment
https://github.com/novasamatech/nova-spektr/commit/2cce1f29f01abd638e141f2738010cd4967c63a7

Status verification: ✅


Bash completion for docker network

This is to document that docker network is missing in bash completion.
I will add it.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

#dibs

Added this to the 1.9.0 milestone (as the command will be there :wink:)

Thanks, Vincent!

ping @vdemeester created #16922


BugFix: Resub Event - The if statement had single vs triple equals me…

BugFix: Resub Event - If statement had single vs triple equals meaning that it would always use the message for resub with streak regardless of msg-param-should-share-streak.
Enhancements:
config.js:
Configure username and token in config variable.
Move sounds into config.js
Set soundThresholds for raids and Hosts.
Move messages into config.js.
Created a Gist with your new style config.js to maintain message wording, just needs a valid oauth key.
app.js:
Create generate message function to replace functionality from template literals.
Add "randomMessage" function to replace where randomization was happening per event to make all message sets randomizable.
Added a way to disable messaging for any messge arry by putting in an empty string as the only value in it.
Assets:
Replaced your cheerful countenance with a happy face I made as part of making project more generic.
Thank you so much for putting your code out there!

I updated this against new master and put in some fun new features (images per message  w/ random option and ability to display user's cheer message.
I also udpated the config gist that I built for you as well (same link up at the top).


full screen issue

i cannot use full screen on web
Height of Platform View type: [videoPlayer-1] may not be set. Defaulting to `height: 100%`.
Set `style.height` to any appropriate value to stop this message.
Width of Platform View type: [videoPlayer-1] may not be set. Defaulting to `width: 100%`.
Set `style.width` to any appropriate value to stop this message.

some times reported

can you reproduce this with the latest version of the plugin?

can you reproduce this with the latest version of the plugin?

my version is currently updated 0.1.11+3

Fixed in 0.1.11+4


"address.results[0] is undefined"

Thanks for the code, since from past 3 months i am using methods for Google maps,
But now i am getting issue, while dragging the marker the address will not fetch, when i checked the console. I got issue like this.
``
error_message	You have exceeded your rate-limit for this API. We recommend registering for a key at the Google Developers Console: https://console.developers.google.com/apis/credentials?project=_
results	[]
status	OVER_QUERY_LIMIT
``
I searched OVER_QUERY_LIMIT issue in Google, but i didn't understood clearly,  if you faced same issue, please let me know the solution.
Thanks in advance.

Please Create you own google map API KEY.
From: https://console.developers.google.com/

Yeah I already created and using it since from 3 months. Now from morning, getting error like that.

As it clearly says "You have exceeded your rate-limit for this API"
Google changed its Maps API in last 5, 6 months and decrease its limits to less request. you better purchase API according to your needs.

Oh okay, Thought it was free and now they costing for it.  Thanks for reply bro
When the app starts, its works like charm and but after dragging the marker sometimes it will fetch correct address and after some time it will come like that. Buying it will fix this issue it seems, I will try to buy and let you know bro.

please close the issue

Sure, Thanks