DatabaseOperationTimeoutException: TF246018: Timeout on branch --init

git-tfs version <IP_ADDRESS>
Everytime we create a new release in TFS I try to init the branch in tfs. But it often fails with a timeout and I have to retry many times until it succeeds.
Is this a server issue or can it somehow be prevented?
The command which fails is:
git tfs branch --init $/ds/Releases/20210624 Releases_20210624
Here is the output:
git-tfs-timeout.txt

The timeout error is from the TFS server. Can you debug into git-tfs and confirm the values of the variables in this method
call where the timeout happens?
https://github.com/git-tfs/git-tfs/blob/3512c31a2c39204574d0c2adcca26b69d9acd4a9/src/GitTfs.VsCommon/TfsHelper.Common.cs#L612-L617
I would expect
tfsPathParentBranch = "$/ds/Main"
tfsPathBranchToCreate = "$/ds/Releases/20210624"
firstChangesetInBranchToCreate = <some changeset value>

Interesting would also be the firstChangesetInBranchToCreate if it is pointing to the first changset when the branch
$/ds/Releases/20210624 was created or to some other changeset on that branch, e.g check this with the version history in TFS.
And how does the output of  git-tfs list-remote-branches <server  look like, e.g. limited to everything which is linked to the $/ds/Main
 $/ds/Main
 |
 +- $/ds/Release/20210624
 |
 +- $/ds/Release/<some Release...>
 |
 +- $/ds/Release/<some other Release...>
  ...

I am interested if there are nested branches or hierarchies and the actual number of branches based on $/ds/Main
Also,  the code calling the GetMergeInfo method lists this comment. Out of interest, are you seeing this situation
of creation, deletion and then branching as mentioned in the comment?
https://github.com/git-tfs/git-tfs/blob/3512c31a2c39204574d0c2adcca26b69d9acd4a9/src/GitTfs.VsCommon/TfsHelper.Common.cs#L314-L327

Furthermore, there is also the hidden tf vcdebug trackmerges command which should issue the same codepath as git-tfs
so this might be interesting if it is reproducable with that command.
tf vcdebug trackmerges /changesets:[coma seperated list of changesets]
                  source target1 [target2 target3 ...]
                  [/login:username,[password]]</value>

Tracks a set of changesets from a source branch to multiple target branches.

Use it like
tf vcdebug trackmerges /changesets:<firstChangesetInBranchToCreate> $/ds/Main $/ds/Releases/20210624

or (as I am not 100% sure about the order of the arguments)
tf vcdebug trackmerges /changesets:<firstChangesetInBranchToCreate> $/ds/Releases/20210624 $/ds/Main

assuming you fill in the value for the branches correctly from the variables gathered in my previous post.
I filled in what I assume are the correct values but pls double check

Thanks for the response.
I tried those commands.
This one does not seem to work:
>tf vcdebug trackmerges /changesets:50445 $/ds/Main $/ds/Releases/20210624
Keine Merges gefunden. (No merges found)

So I tried to change the arguments, But then I got many timeouts:
>tf vcdebug trackmerges /changesets:50445 $/ds/Releases/20210624 $/ds/Main
TF246018: The database operation exceeded the timeout limit and has been cancelled. Verify that the parameters of the operation are correct.

So yes, timeouts do happen here. I had to retry like 15 times.
Then it succeeded. The output is attached.
output.txt
So it just outputs every changeset that is in the new branch? What is that for?
I assumed once the tool found the changeset for the branch (C50445) it just fetches all changeset in that new branch.
What is this list used for?
Unfortunately, I cannot debug git-tfs on that machine because it has no internet connection. And it needs internet to download some dependencies I think. (Just don't ask, it's special....)

It effectively runs this code part
https://github.com/git-tfs/git-tfs/blob/3512c31a2c39204574d0c2adcca26b69d9acd4a9/src/GitTfs.VsCommon/TfsHelper.Common.cs#L612-L616
which tracks the changeset over the different branches to figure out the branch point.
See my first post (the end with the documentation).
The code is within
https://github.com/git-tfs/git-tfs/blob/3512c31a2c39204574d0c2adcca26b69d9acd4a9/src/GitTfs.VsCommon/TfsHelper.Common.cs#L273
and tries to figure out the branch point, e.g. which changeset was used in your $/ds/Main to create the release in $ds/Release/20210624
From your attached output, I would expect that C50444 was used to create your release branch in C50445
(highest changeset number in the output for $/ds/Main)
But if this times out, reproducable with the tf vc trackmerges, it looks like it is a TFS server problem and not much we can do within git-tfs.

Oh now I understand. Even if I try to find the base changeset with VisualStudio I get the timeout.
So there is no other command which is more efficient?

Not that I am aware of. But I have to admit, this is not my area of expertise, so if you can come up with a better way, I am all ears!

I just googled a bit and found this:
http://netexp.blogspot.com/2012/11/tfs-who-is-father-of-my-branch.html
I tried this code and it finds changeset 50444 here fast without a timeout:
public static int GetStartChangesetForBranch( string path )
{
  // Get TFS version control service.
  TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(
    new Uri( "<Your TFS URL>" ) );
  var vcServer = tpc.GetService<VersionControlServer>();

  // Get the first changeset within a branch.
  int firstChangeset = vcServer.QueryHistory( path,
    LatestVersionSpec.Latest, 0, RecursionType.None, null,
    null, null, 1, false, false, false, true ).Cast<Changeset>().First().ChangesetId;

  // Calculate and return a parent changeset for the branch.
  return vcServer.QueryMerges( null, null,
    new ItemSpec( path, RecursionType.Full ),
    LatestVersionSpec.Latest,
    null,
    new ChangesetVersionSpec( firstChangeset ) ).Max( x => x.SourceVersion );
}

I have found a good explanation about the differences of TrackMerges and QueryMerges in here
https://social.msdn.microsoft.com/Forums/vstudio/en-US/0b89e118-134e-448d-a749-3ac9ae226ea7/track-changesets-with-tfs-2010-api?forum=tfsgeneral
So TrackMerges can - according to the linked document - track a merge over the complete branch hierarchy,
e.g.
     $/App/Main
         |
         v
$/App/Branch/Int
         |
         v
$/App/Branch/Dev

But we are effectively limiting the search in the call https://github.com/git-tfs/git-tfs/blob/3512c31a2c39204574d0c2adcca26b69d9acd4a9/src/GitTfs.VsCommon/TfsHelper.Common.cs#L611-L616
via the new ItemIdentifier[] { new ItemIdentifier(tfsPathParentBranch), }, to the parent folder and don't scan
the whole hierarchy.
I would have expected that - according to the explanation given in the link above - the results of the TrackMerges call and
the call
VersionControl.QueryMergesExtended(
                    new ItemSpec(tfsPathBranchToCreate, RecursionType.Full),
                    new ChangesetVersionSpec(firstChangeset),
                    null,
                    new ChangesetVersionSpec(firstChangeset))

return identical results, but they didn't. TrackMerges returns (for one arbitrary example picked here) 3 results, whereas QueryMergesExtended only one.
This single one is also contained in the result of the TrackMerges call, but it wouldn't be the correct branch point picked otherwise. The QueryMergesExtended has returned the oldest changeset contained in the TrackMerges result.
So I don't think we can exchange these calls.

I had to do something because I was not able to initialize the latest release at my company.

As you wrote the solution is not perfect but it works here.
https://github.com/ckorn/git-tfs/commit/0b2ce90c65955268201642eb6829c38527a5f32e
Unless there is a chance to get this merged this issue can be closed then.

@ckorn Thx for sharing the code, it is really appreciated and might help in case someone stumbles over the same issue in the future.
But sadly, without at a good understanding what the actual differences are between VersionControl.TrackMerges and VersionControl.QueryMergesExtended, I would prefere keeping the code as it is, especially as it changes behaviour indicated by my tests.
I am therefore closing this issue. If we gather further information, we can revisit that decision and reopen it again.

I had to update my solution to also include the old code as a fallback.
My solution failed when the branch was renamed.
https://github.com/git-tfs/git-tfs/compare/master...ckorn:patch-1


withVisible: false

Hi guys,
please check this bug out:
$navigation.find(baseItemSelector + ':' + ($settings.withVisible ? 'visible' : '') + ':eq(' + $index + ') a').tab('show');
if $settings.withVisible is false it produces a bad selector:
li:has([data-toggle="tab"])::eq(1)
(the double colon)
the above needs to change to
$navigation.find(baseItemSelector + ($settings.withVisible ? ':visible' : '') + ':eq(' + $index + ') a').tab('show');

This was fixed yesterday. Can you check with master or tag 1.3.1
Please excuse my brevity, sent from my iPhone

On Jan 17, 2016, at 09:37, No Coffee Breaks Development<EMAIL_ADDRESS>wrote:
Hi guys,
please check this bug out:
$navigationfind(baseItemSelector + ':' + ($settingswithVisible ? 'visible' : '') + ':eq(' + $index + ') a')tab('show');
if it is false it produces a bad selector:
li:has([data-toggle="tab"])::eq(1)
(the double colon)
the above needs to change to
$navigationfind(baseItemSelector + ($settingswithVisible ? ':visible' : '') + ':eq(' + $index + ') a')tab('show');
—
Reply to this email directly or view it on GitHub.

Hi Vince – the name is Steven.
Pleased to meet you – thank you for the quick response and don’t worry about the brevity – it is understood.
Please see below:
Check the highlighted below fro master.
Kind Regards,
Steven Nell
Mobile:<PHONE_NUMBER>
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>From: Vincent Gabriel<EMAIL_ADDRESS>Sent: 17 January 2016 07:46 PM
To: VinceG/twitter-bootstrap-wizard<EMAIL_ADDRESS>Cc: No Coffee Breaks Development<EMAIL_ADDRESS>Subject: Re: [twitter-bootstrap-wizard] withVisible: false (#162)
This was fixed yesterday. Can you check with master or tag 1.3.1
Please excuse my brevity, sent from my iPhone

On Jan 17, 2016, at 09:37, No Coffee Breaks Development<EMAIL_ADDRESS>wrote:
Hi guys,
please check this bug out:
$navigationfind(baseItemSelector + ':' + ($settingswithVisible ? 'visible' : '') + ':eq(' + $index + ') a')tab('show');
if it is false it produces a bad selector:
li:has([data-toggle="tab"])::eq(1)
(the double colon)
the above needs to change to
$navigationfind(baseItemSelector + ($settingswithVisible ? ':visible' : '') + ':eq(' + $index + ') a')tab('show');
—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub https://github.com/VinceG/twitter-bootstrap-wizard/issues/162#issuecomment-172357937 .

@StevenNell fixed in 1.3.2


Added num_encoder_layers/num_decoder_layers to WMT16 standard hparams.

This is based on the fix #265

I signed it !

recheck

I signed it !

recheck

check

I signed it !


Add Support for Commands API

Add support for the Commands API.

@kristinpeterson this is complete with https://github.com/attm2x/m2x-mruby/pull/5

@majidabdul - Thanks, I'll close this ticket.


doc: Document that incomplete certificates return error

Fixes #16065
It is actually not true that this is completely new behavior in 3.0 (except maybe in 1.1.1 some of invalid certificates did not generate the error).
Checklist

[x] documentation is added or updated

This pull request is ready to merge

Merged, thanks.


newer style .travis.yml

as suggested in #17

travis build failed due to libgit2 ECERTIFICATE error


Add UC4 to DeveloperGuide.md

Close #27

Codecov Report

Merging #33 (c7fc1b2) into master (dbb49c4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #33   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 dbb49c4...c7fc1b2. Read the comment docs.


[RTM] Port to niworkflows.nipype

Pinning against niworkflows/master. Should be good to go if tests pass.


Restore unit tests commented out in #1379

Stumbled across two unit tests that were commented out in #1379.  That bug was fixed with #2702, but we forgot to put these tests back.
Also had to update these old tests to the current qunit API.

Merged in e2a641a1348e0c8aac250708d8be406171f5c4c7


Added a setValidator method

When we manually add a validator to a EZFormField, we cannot change the behaviour of it. We have to re-initialize it and re-add it to the form. If we do not want to broke the order of the fields, we have to re-initialize the whole form.
With setValidator method we can change the behaviour of an EZFormField dynamically on certain cases.

Thank you for merging this and thank you for the great library.


[RFC]: "Force Verbose" logging configuration for certain tasks

Overview
We have the ability to run commands from our repo root such as yarn start --to demo-app and have Lage handle all the dependencies needed to execute that command. Lage by default "eats" the cli output of all tasks if you didn't run them with --verbose, but tasks such as start which are more "dev facing" may always want to force print to the console to give info to the dev such as the port which was opened.
const pipeline = {
   'start': {
      type: 'npmScript',
      dependsOn: ['^build'],
      verbose: true // Verbose "true" to always let this task print to the terminal.
    },
}

@dzearing, I think this is our last blocker to run "start2" within Lage, right?


How to configure Black with Prettier?

Hi, I'm working on a Django React project.
I configured python's autoformatter as black,
using:
{
"python.formatting.provider": "black"
}
in the .vscode/settings.json
But with this my Prettier extension does not automatically format my javascript files.
How can I setup VSCode to autoformat python with black, and the html, css, js, json, and jsx with Prettier?

This type of questions better suited for StackOwerflow.
You should check description of Prettier extension and section Default Formatter
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
Either configure Prettier as default and override formatter for Python or other way around.

This type of questions better suited for StackOwerflow.
You should check description of Prettier extension and section Default Formatter https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
Either configure Prettier as default and override formatter for Python or other way around.

Thank you, I got it working by following a tutorial on setting the formatter for each file type. 👍


camunda-modeler: fix user data dir

camunda-modeler saves files to AppData

[X] I have read the Contributing Guide.

camunda-modeler is an Electron app saving some of its data in a user data directory in AppData, which is (AFAIK) not desired in the scoop-main or scoop-extras buckets.
I stumbled over this, because I wanted to add element templates, which you can either save in the app directory or in the user data directory. There is no persisted folder right now, so if I do so and I want to move my installation of camunda-modeler by copying the persist folder, I will lose my configuration and element templates in camunda-modeler.
Regarding the pre_install - I copied that from ariang-native in this bucket, so I assumed it's the way to go. In this case a scoop installation and a non-scoop installation won't work together anymore.
There is also the resources folder within the camunda-modeler folder itself, but this does not solely belong to the user, since it contains the app.asar which is part of the downloaded package, so if it should be persisted as well, the manifest needs a custom installation script.
References:

ariang-native pre_install
camunda-modeler Flags
camunda-modeler Search Paths


[Question] GTDB plus NCBI kraken2 database building using GTDB grafted NCBI taxonomy

Hi Shenwei,
We are exploring building a database where we can include bacteria and archaea (from GTDB) and viral database from NCBI, while using NCBI style taxonomy but grafting the GTDB taxonomy for the bacteria and archaea level. Do you know how can I achieve this with gtdb-taxdump?
Flextaxd is another tool promising a similar effect. However, we have already downloaded Struo2 r207 genomes and taxdump. I think we might be better off using your tool to combine with NCBI taxonomy instead of flextaxd? Or did I not grasp the idea completely.

Merging GTDB and NCBI taxonomy
Sometimes (1) one needs to build a database including bacteria and archaea (from GTDB) and viral database from NCBI.
The idea is to export lineages from both GTDB and NCBI using taxonkit reformat, and then create taxdump files from them with taxonkit create-taxdump.

Exporting taxonomic lineages of taxa with rank equal to species from GTDB-taxdump.
 taxonkit list --data-dir gtdb-taxdump/R207/ --ids 1 --indent "" \
     | taxonkit filter --data-dir gtdb-taxdump/R207/ --equal-to species \
     | taxonkit reformat --data-dir gtdb-taxdump/R207/ --taxid-field 1 \
         --format "{k}\t{p}\t{c}\t{o}\t{f}\t{g}\t{s}" \
         -o gtdb.tsv

Exporting taxonomic lineages of viral taxa with rank equal to or lower than species from NCBI taxdump.
Since the lineage of many viruses are incomplete, we fill in missing taxa, e.g.,
"327830  Viruses;Polydnaviriformidae;Ichnoviriform;unclassified Ichnovirus" ->
"Viruses;unclassified Viruses phylum;unclassified Viruses class;unclassified Viruses order;Polydnaviriformidae;Ichnoviriform;unclassified Ichnoviriform species;unclassified Ichnovirus".
 # taxid of Viruses: 10239
 taxonkit list --data-dir ~/.taxonkit --ids 10239 --indent "" \
     | taxonkit filter --data-dir ~/.taxonkit --equal-to species --lower-than species \
     | taxonkit reformat --data-dir ~/.taxonkit --taxid-field 1 \
         --fill-miss-rank --pseudo-strain --format "{k}\t{p}\t{c}\t{o}\t{f}\t{g}\t{s}\t{t}" \
         -o ncbi-viral.tsv

Creating taxdump from lineages above.
 (awk '{print $_"\t"}' gtdb.tsv; cat ncbi-viral.tsv) \
     | taxonkit create-taxdump \
         --field-accession 1 \
         -R "superkingdom,phylum,class,order,family,genus,species,strain" \
         -O taxdump

# we use --field-accession  1 to output the mapping file between old taxids and new ones.
$ grep 2697049  taxdump/taxid.map  # SARS-COV-2
2697049 21630522

Some tests
#  # SARS-COV-2 in NCBI taxonomy
$ echo 2697049 \
    | taxonkit lineage -t --data-dir ~/.taxonkit \
    | csvtk cut -Ht -f 3 \
    | csvtk unfold -Ht -f 1 -s ";" \
    | taxonkit lineage -r -n -L --data-dir ~/.taxonkit \
    | csvtk cut -Ht -f 1,3,2 \
    | csvtk pretty -Ht
10239     superkingdom   Viruses
2559587   clade          Riboviria
2732396   kingdom        Orthornavirae
2732408   phylum         Pisuviricota
2732506   class          Pisoniviricetes
76804     order          Nidovirales
2499399   suborder       Cornidovirineae
11118     family         Coronaviridae
2501931   subfamily      Orthocoronavirinae
694002    genus          Betacoronavirus
2509511   subgenus       Sarbecovirus
694009    species        Severe acute respiratory syndrome-related coronavirus
2697049   no rank        Severe acute respiratory syndrome coronavirus 2

$ echo "Severe acute respiratory syndrome coronavirus 2" | taxonkit name2taxid --data-dir taxdump/
Severe acute respiratory syndrome coronavirus 2 216305222

$ echo 216305222 \
    | taxonkit lineage -t --data-dir taxdump/ \
    | csvtk cut -Ht -f 3 \
    | csvtk unfold -Ht -f 1 -s ";" \
    | taxonkit lineage -r -n -L --data-dir taxdump/ \
    | csvtk cut -Ht -f 1,3,2 \
    | csvtk pretty -Ht
1287770734   superkingdom   Viruses
1506901452   phylum         Pisuviricota
1091693597   class          Pisoniviricetes
37745009     order          Nidovirales
738421640    family         Coronaviridae
906833049    genus          Betacoronavirus
1015862491   species        Severe acute respiratory syndrome-related coronavirus
216305222    strain         Severe acute respiratory syndrome coronavirus 2

$ echo "Escherichia coli"  | taxonkit name2taxid --data-dir taxdump/
Escherichia coli<PHONE_NUMBER>

$ echo<PHONE_NUMBER> \
    | taxonkit lineage -t --data-dir taxdump/ \
    | csvtk cut -Ht -f 3 \
    | csvtk unfold -Ht -f 1 -s ";" \
    | taxonkit lineage -r -n -L --data-dir taxdump/ \
    | csvtk cut -Ht -f 1,3,2 \
    | csvtk pretty -Ht
609216830    superkingdom   Bacteria
1641076285   phylum         Proteobacteria
329474883    class          Gammaproteobacteria
1012954932   order          Enterobacterales
87250111     family         Enterobacteriaceae
1187493883   genus          Escherichia
1945799576   species        Escherichia coli

Hi Shenwei,
Great documentation! Thank you for your time!
I have 2 related questions:

I did not completely describe my question. We also like to integrate human, plasmid, and UniVec_Core sequences. Since Bacteria and Achaea and Virus example above was cut at Domain(D) level, how would you suggest to integrate the upper levels as listed below?
From  kraken2-inspect file by grep the text, I got the following taxids:

taxid of (U) unclassified: 0
taxid of (R) root : 1
taxid of (D) Eukaryota: 2759
taxid of (R1) other entries: 2787854
taxid of (R2) other sequences: 28384
taxid of (R3) plasmids:  36549

For clarity, following step3 in the tutorial if I continue to build the kraken2 database. Is the following steps sufficient?
a. unzip the taxdump file and locate these files in the $DBNAME/taxonomy folder
b. move all library.fna files (including GTDB downloaded from Struo2, and libraries downloaded by kraken2-build --download-library, and customized genome if existed in the $DBNAME/library folder
c. build the kraken2 db by kraken2-build build --db $DBNAME
(especially for the a. part. Is the taxdump file containing all files needed for taxonomy folder? For a standard download with kraken2-build --download-taxonomy, the file list I got are: )

taxdump.untarflag
taxdump.dlflag
taxdump.tar.gz
accmap.dlflag
nucl_wgs.accession2taxid
nucl_gb.accession2taxid
gc.prt
citations.dmp
names.dmp
nodes.dmp
delnodes.dmp
merged.dmp
division.dmp
gencode.dmp
readme.txt

Thank you very much,
Li-Ting

I did not completely describe my question. We also like to integrate human, plasmid, and UniVec_Core sequences. Since Bacteria and Achaea and Virus example above was cut at Domain(D) level, how would you suggest to integrate the upper levels as listed below?

Whatever you've got, you can follow the steps above to 1) export/create complete lineages and 2) create taxdump files from them.

For clarity, following step3 in the tutorial if I continue to build the kraken2 database. Is the following steps sufficient?
a. unzip the taxdump file and locate these files in the $DBNAME/taxonomy folder
b. move all library.fna files (including GTDB downloaded from Struo2, and libraries downloaded by kraken2-build --download-library, and customized genome if existed in the $DBNAME/library folder
c. build the kraken2 db by kraken2-build build --db $DBNAME

Here's some steps for Custom database for Kraken and Bracken you can learn from. Just prepare the files in the required format that Kraken2 wants.

Especially for the a. part. Is the taxdump file containing all files needed for taxonomy folder? For a standard download with kraken2-build --download-taxonomy, the file list I got are:

Essential taxdump files are:
names.dmp
nodes.dmp
delnodes.dmp
merged.dmp

The accession2taxid files map accession (only theses in RefSeq/Genbank) to taxid, which is optional if you format the FASTA IDs for Kraken by yourself. For the sequences from GTDB, the mapping relationship  is provided by gtdb-taxdump/R207/taxid.map.
$ head -n 1  gtdb-taxdump/R207/taxid.map
GCF_000979375.1<PHONE_NUMBER>

For viral sequences, it requires an extra step. The relationship is accession -> NCBI taxid -> New  TaxId created by  taxonkit.
accession -> NCBI taxid           # provided by  nucl_gb.accession2taxid
NCBI taxid -> New  TaxId created by  taxonkit       # available in taxid.map generated with taxonkit with steps above, but the order is reversed:  'New  TaxId created by  taxonkit' -> 'NCBI taxid'.

What  I can provide is the way to generate taxdump files that combine GTDB  taxonomy and NCBI taxonomy,  and taxid.map file that maps accession (whatever you provide, you can use the sequence accession)  to TaxIds.
Good luck!


Is it Possible to store Persisted Grants in the DB while leaving Resources/Clients in Memory?

[ ] I read and understood how to enable logging

Issue / Steps to reproduce the problem
    services.AddIdentityServer((options) =>
    {
        options.UserInteraction = new UserInteractionOptions
        {
            LoginUrl = "/login",
            LogoutUrl = "/api/Account/Logout",
            ErrorUrl = "/error"
        };
    })
    .AddSigningCredential(X509CertificateHelper.getCert(_env))
    .AddOperationalStore(builder => builder.UseSqlServer(connectionString,
        options => options.MigrationsAssembly(migrationsAssembly)))
    .AddInMemoryIdentityResources(Config.GetIdentityResources())
    .AddInMemoryApiResources(Config.GetApiResources())
    .AddInMemoryClients(Config.GetClients(AppSettingsHelper.GetIdSrvrSettings()))
    // .AddConfigurationStore(builder => builder.UseSqlServer(connectionString,
    // options => options.MigrationsAssembly(migrationsAssembly)))
    .AddAspNetIdentity<ApplicationUser>();

Relevant parts of the log file
When running dotnet ef database update -c PersistedGrantDbContext
An error occurred while calling method 'ConfigureServices' on startup class 'Startup'. Consider using IDbContextFactory to override the initialization of the DbContext at design-time. Error: Cannot perform runtime binding on a null reference

Is it Possible to store Persisted Grants in the DB while leaving Resources/Clients in Memory

Yes. Those are all different extensibility points.

To be able to run dotnet ef database update -c PersistedGrantDbContext and seed the PersistedGrants table, I have to comment out:
   // .AddInMemoryIdentityResources(Config.GetIdentityResources())
   // .AddInMemoryApiResources(Config.GetApiResources())
   // .AddInMemoryClients(Config.GetClients(AppSettingsHelper.GetIdSrvrSettings()))

and uncomment:
    .AddConfigurationStore(builder => builder.UseSqlServer(connectionString,
    options => options.MigrationsAssembly(migrationsAssembly)))

After running database update on the PersistedGrantDbContext successfully, I can then comment out the
.AddConfigurationStore..  and uncomment the  .AddInMemoryIdentityResources/ApiResources/Clients  and everything works seemingly as desired.
.NET Core, DI and the Factory Pattern are new for me.  Assuming the above does not stand out as .AddConfigurationStore and .AddOperationalStore are dependent on each other, at the least for seeding the Db; I will focus on learning how to use IDbContextFactory  and how EF7 MigrationsAssembly work.
Thanks..

For anyone else with same road block,
I ultimately solved this by implementing IPersistedGrantStore with help from the following like so:
            services.AddIdentityServer((options) =>
            {
                options.UserInteraction = new UserInteractionOptions
                {
                    LoginUrl = "/login",
                    LogoutUrl = "/api/Account/Logout",
                    ErrorUrl = "/error"
                };
            })
           .AddSigningCredential(X509CertificateHelper.getCert(_env))
           .AddOperationalStore(builder => builder.UseSqlServer(connectionString,
            options => options.MigrationsAssembly(migrationsAssembly)))
           .AddInMemoryIdentityResources(Config.GetIdentityResources())
           .AddInMemoryApiResources(Config.GetApiResources())
           .AddInMemoryClients(Config.GetClients(AppSettingsHelper.GetIdSrvrSettings()))
           .AddAspNetIdentity<ApplicationUser>();

            services.AddTransient<IPersistedGrantStore, PersistedGrantStore>();

And wiring up a PersistedGrantStore : IPersistedGrantStore

I am trying something similar but my code never gets to my persisted store class at all.

but my code never gets to my persisted store class at all

depends on the use cases if the store gets hit

Without more details, its hard to know how to help.
The following is what I learned that helped me today and quite possibly is no help to you.  All the same.

When you run dotnet ef ... the entry point of the program is not Program.Main.  I was reading my config file in Main, and only got the above mentioned error when running dotnet ef commands.

To diagnose dotnet ef commands, append --verbose to them.
I learned this from here.

I was trying something similar to @ttugates where I was using in-memory clients and api resources. Once I deployed it to a load balanced environment to test I was getting errors. Those were, I am assuming, because of the jwki uri keys. So after reading up a little more I realized I had to have a persisted grant stored. I am wrong to think that the persisted grant store will solve my issue?
So, I tried to implement the interface and store stuff in Redis instead of SQL Server but I could never hit the any breakpoints in my code.

Once I deployed it to a load balanced environment to test I was getting errors

In a load balanced environment you will need to set a signing credential and use the same one across the 2 machines. Also, depending on the client flows, you will need to set a persisted grant store.

you will need to set a signing credential and use the same one across the 2 machines

You mean, set up a cert using AddSigningCredential right? Ran into a weird error when I tried this yesterday. It was not able to find the cert even when I could see it in the certificate manager.

Also, depending on the client flows, you will need to set a persisted grant store.

We are using only the implicit flow as of now.

We are using only the implicit flow as of now - used entirely to authenticate human users and to support SSO.

So no need for persistent grants, unless you are enabling consent.

Awesome! One last Q. Can I pass any cert (under Personnal) on a machine to AddSigningCredential? Is there any restriction if that cert needs to be a special kind? When I tried locally on my machine with a self signed cert from IIS it worked fine but in our testing environments I am trying to use domain issued certs which it does not seem to like.

If you can load it yourself, you can pass the x509 cert object. You might have DACL issues. That's been covered a ton elsewhere.

Good pointers for me to look into. Thank you!

@brockallen Noob question: Do you know if I can add a cert using a friendly name instead of a CN.
.AddSigningCredential("CN=MyCert")

@brockallen Which flows in a load balanced environment need a custom / persistent implementation of IPersistedGrantStore?

read the docs: https://identityserver4.readthedocs.io/en/release/topics/deployment.html

@brockallen Sorry, guess I missed that in the docs.  Was just asking based upon your previous comment re: load balance environment.


Assorted tweaks to actions.

Drop GOPATH from all except verify (codegen needs it), and change directories to just use workspace.
Switch to Go 1.15 (go.mod actually controls what's used IIUC).

/retest

/retest

/retest


chore: add link to inline-snapshots

closes #122

:tada: This PR is included in version 4.7.2 :tada:
The release is available on:

v4.7.2
GitHub release

Your semantic-release bot :package::rocket:


[v0.x] Add onnx based transformer example

Adds a new notebook that runs transformer based on onnxruntime.
The onnx export feature will be added in MXNet 1.9
@szha @sxjscience @sandeep-krishnamurthy

Hi @barry-jin would you help identify the issue with docs ci?
for the gpu ci I think libcudnn 8 is missing

Hi @barry-jin would you help identify the issue with docs ci?
for the gpu ci I think libcudnn 8 is missing

Hi @Zha0q1, gluon-nlp v0.x CI is running on master branch's docker, which use nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 as base. Looks like mxnet-cu102==1.8.0.post0 is forced to use libcudnn.so.8. I have created a workaround try to fix this in #1553

Hi @barry-jin would you help identify the issue with docs ci?
for the gpu ci I think libcudnn 8 is missing

Hi @Zha0q1, gluon-nlp v0.x CI is running on master branch's docker, which use nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 as base. Looks like mxnet-cu102==1.8.0.post0 is forced to use libcudnn.so.8. I have created a workaround try to fix this in #1553

Thanks! I think the other two pipelines also have some issues

Hi @barry-jin would you help identify the issue with docs ci?
for the gpu ci I think libcudnn 8 is missing

Hi @Zha0q1, gluon-nlp v0.x CI is running on master branch's docker, which use nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 as base. Looks like mxnet-cu102==1.8.0.post0 is forced to use libcudnn.so.8. I have created a workaround try to fix this in #1553

Thanks! I think the other two pipelines also have some issues

Yes, for website-build pipeline, it will submit job to AWS batch to run the script compile_notebooks.sh, make sure updating your ci folder to have this script in ci/batch. For unittest, it looks like there may be some memory related issues, more investigation is needed.

Hi @barry-jin would you help identify the issue with docs ci?
for the gpu ci I think libcudnn 8 is missing

Hi @Zha0q1, gluon-nlp v0.x CI is running on master branch's docker, which use nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 as base. Looks like mxnet-cu102==1.8.0.post0 is forced to use libcudnn.so.8. I have created a workaround try to fix this in #1553

Thanks! I think the other two pipelines also have some issues

Yes, for website-build pipeline, it will submit job to AWS batch to run the script compile_notebooks.sh, make sure updating your ci folder to have this script in ci/batch. For unittest, it looks like there may be some memory related issues, more investigation is needed.

Thanks! I merged with v0.x

Hi @Zha0q1 . v0.x CI has been fixed. Feel free to merge with current v0.x and re-run the tests. Thanks!

@barry-jin thanks!


Building for multiple archs simultaneously fails

Interestingly this works for me:
melange build --arch x86_64 --empty-workspace melange.yaml
and
melange build --arch arm64 --empty-workspace melange.yaml
But this fails:
melange build --arch x86_64,arm64 --empty-workspace melange.yaml
I'm trying to build the distroless/melange repo.
I think it's probably to do with needed to run in separate workspaces, I see in the output:
2022/07/01 14:12:18 melange (melange/x86_64): fatal: destination path '.' already exists and is not an empty directory.

Looks like #77 is also resolved by #78.


Feat: Dashboard permalinks

As someone suggested on Discord, it would be great to be able to create dashboard permalink so we could track the positions of a wallet without being connected.
https://discord.com/channels/755231190134554696/910580808723599501/1079833386882973817
I can also work on the feature myself if you guys are interested

is already implemented the only thing u need to do is add to the url  ?__view_as=address
for eg: https://app.beefy.com/dashboard?__view_as=0x4aba01fb8e1f6bfe80c56deb367f19f35df0f4ae

Awesome thanks! So we just miss to have the link showing somewhere, or is it already available?


Consider representing a proof as a vector of ProofBlock instead of a linked-list?

Pros and cons?

Pros:

Potentially smaller memory usage.
Potentially faster proof-check times, as iterating over a n-element Vec is most likely faster than following n pointers.

Cons:

It makes the proof generation code a bit less straightforward/more error-prone.
An inclusion proof is a recursive structure and it makes more sense to me to represent it as such rather than as a list/vec.

Suggestion:
Let's first write benchmarks, and see where we currently stand space- and time-wise overall, and which code paths make more sense to optimize first. I think it's very likely that the current O(n) proof-generation time will dwarf everything else. It is true though that proof generation will usually happen on a different machine/at a different time than proof checking, and it might thus make sense to treat both code-path as different "libraries" and benchmark them individually.

We won't address this immediately. This will likely get addressed in the future by another way of encoding the Merkle tree structure.

I submitted a couple of PRs that will hopefully help with this.
As far as my own use of Merkle tree signatures is concerned, it would be ideal if the verification of a serialized proof could be done without using the heap at all. In particular, if we have the serialized proof as a &[u8], then it should be possible to verify the proof without actually building a tree or allocating any memory.
I don't know of any use cases for the signing side where such things really matter.


Replace Exec task with Unzip task

Removes dependency on having unzip in path
How did I test it?
The only test I have run is on Windows 11 building under Powershell 7.3.5
PS> dotnet build .\Wasmtime.sln

If your CI does not handle the other platforms then let me know if you feel additional testing is needed on my side.
Fixes #266

@peterhuene This is it from me. Feel free to merge if and when it suits you.

@henrikrxn thanks for the fix!


[BUG] If there are more than 100,000 photos on the iPhone, the loading takes too long.

Describe the bug
If there are more than 100,000 photos on the iPhone, the loading takes too long.

Recent loading takes a long time.
It takes a long time to load the picture.

The iPhone seems to load all the pictures by reversing the alignment of the photos.
Can't you arrange the pictures upside down and load the latest ones first?
How to reproduce
final result = await AssetPicker.pickAssets(
        context,
        pickerConfig: AssetPickerConfig(
          pageSize: 30,
          gridCount: 3,
          maxAssets: 5,
          requestType: RequestType.image,
          textDelegate: KoAssetPickerTextDelegate(),
          loadingIndicatorBuilder: (BuildContext context, bool isAssetsEmpty) {
            return const Center(
              child: CupertinoActivityIndicator(),
            );
          },
          selectPredicate: (context, asset, isSelected) async {
           ...
          specialItemPosition: SpecialItemPosition.prepend,
          specialItemBuilder: (context, path, length) {
...

movie
https://www.youtube.com/shorts/GmLlM-nCu0I
Version information
Device: iPhone 13 Pro
OS: iOS 16.1.1
Package Version: 8.1.4
Flutter Version: 3.3.8

It took 35 seconds for the pictures to load.

Please take another screen recording using the example with minimum argument updates in the repo rather than a production app. Also, are 100,000 photos all locally available or all cloud-stored?
From the recording you've provided, it seems the request for the assets list is blocking the layout process. cc @CaiJingLong

The iPhone seems to load all the pictures by reversing the alignment of the photos. Can't you arrange the pictures upside down and load the latest ones first?

It would be more appropriate if you can ask politely. If you ever see the code, you'll understand how the grid revert and how assets placing in the grid.


Gps Listener

I am unable to find the background listener.

Closing this issue. If you have a question about the documentation, it's recommended to visit the page and use the feedback box at the bottom of the page. If you have a general question, there are links to our forums, Stack Overflow, and Developer Community on our home page.


Synology: error with volumes

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.51.2
Python release (python3 --version):
I'm using the official Docker image
Component/platform:
Raspberry PI 3
Description of problem:
Like another issue : https://github.com/home-assistant/home-assistant/issues/4597

See https://github.com/StaticCube/python-synology/issues/2

Duplicate of #9051.


Pointers on how to run this on my ubuntu server VM?

Thank you for creating this project!
Could you/someone give me some pointers on how to run this on my ubuntu server VM? How / where do you guys run it?
I am running my local nightscout instance via docker compose. So I thought it would be easiest, to run this next to it as stanalone service.
I´ve messed around with npm/yarn/.. for hours but to be honest I don´t completely understand what I´m doing. So I would greatly appreciate some hints what the steps are to help me figure it out.

Given that you're running nightscout via docker compose, are you familiar with docker containers per se? If so, you can pretty easily create a docker container with this project running inside like:
Dockerfile
FROM node:lts-alpine

WORKDIR /usr/local/app

COPY . ./

RUN yarn install
RUN yarn build

CMD [ "node", "dist/run.js" ]

You can then build the image like docker build . and use the resulting container image e.g. in your docker-compose stack like:

# nightscout services

services:
  diasend-bridge:
    image: <name-of-the-built-image> # alternatively, you can also configure a build section here if you don't have the container image readily available via e.g. docker hub
    env:
      DIASEND_USERNAME: <diasend-username>
      DIASEND_PASSWORD: <diasend-password>
      NIGHTSCOUT_URL: <url-of-nightscout-instance>
      NIGHTSCOUT_API_SECRET: <retracted>
      # ... other environment variables for configuration, see readme

Please let me know if that helps!

Glad to hear that! I might even add that as another way of operating it to the readme (and add the dockerfile to the repo).

I am running on a 2 minute polling interval. It's worth noting, though, that there's two parallel polling loops running - one to get glucose values only, the other one to fetch and process treatments. So the request rate will technically be higher on the diasend side. So far, didn't encounter any rate limits there but I can see lower polling intervals becoming a problem at some point.

Cool. I will keep the one minute polling interval for now.
Heres exactly what I did / "documented" for myself, maybe you can use parts of it for the readme file.
git clone https://github.com/burnedikt/diasend-nightscout-bridge.git
cd diasend-nightscout-bridge
nano index.ts

change polling time in line "const interval = 5 * 60 * 1000;", save
nano Dockerfile

content:
FROM node:lts-alpine

WORKDIR /usr/local/app

COPY . ./


Pytest Warnings

I am running Python 3.5.2. When I run pytest, I get a ton of warnings. I think most of them are because of unclosed files. The warnings come from the learning, search and text modules. Here is the pastebin link:
https://pastebin.com/eHMZkdjm
Any ideas on how to combat this?

If there's a way to turn that warning off, we should do that.
Another possibility would be to make AIMAFile do
 with open(aima_file) as f:
     yield from f

so it would be returning an iterator over lines, not a file object, and it would be closing it properly. If we go that route, then we need different names: not AIMAFile and DataFile, but something that reflects the new usage, maybe AIMAFileLines and DataFileLines ... or some better names.

There is a way to turn off warnings, but it only works if the user uses pytest from a specific directory. By putting a pytest.ini file with the following lines:
[pytest]
filterwarnings =
    ignore::ResourceWarning

in the directory the user will run the pytest suite from, there will be no warnings of the nature mentioned above.
For example, if I put the above file in the tests directory and I run pytest from that directory, there are no warnings shown.
So, one option is to add the file to tests and suggest that the user run pytest from the tests directory.

OK, let's do that, and see if there are remaining problems.

Also, while we're here: do we really need AIMAFile? What files do we need to read that are not data files? If we don't need it, let's eliminate it.
And DataFile was named in the days when file was a builtin function. Now that open is recommended, maybe change DataFile to open_data or something like that?

I made the adjustments in #547. Note that pytest.ini doesn't have to be in tests, it can be in the aima-python directory too. I can change it if it's more useful in there.

Should pytest.ini be in both places, to give users more flexibility? I'm just trying to minimize user mistakes/confusion.


Make flash prevent handheld light toggle

About the PR
Makes Flash UseInHand take precedence over HandHeldLight per the comment in #9387.

shadow you're my hero im literally crying right now thank you


Add one more digital twin book.

Thanks for the great work in this repository.
I've opening this PR to add a link to a recent book I've co-authored.
Thanks for considering.
--
Claudio Gomes
Assistant Professor at Aarhus University
Mail<EMAIL_ADDRESS>LinkedIn: www.linkedin.com/in/clagms
https://clagms.github.io/
Helsingforsgade 10
Office 5123-425,
Department of Electrical and Computer Engineering
Aarhus University, DK - 8200 Aarhus, Denmark

Thanks, Claudio, for your contribution; this book should definitely make it onto the list! Can you take a look at the failed linting check and fix the issue? I can then review and approve.

Thank you @szschaler ! Now I think it is fixed (famous last words)

Thanks, @clagms this looks good and I will merge now.


fetch_civet missing from pypi release

I was hoping to use the function netneurotools.datasets.fetchers.fetch_civet. However, it seems like this function hasn't made it into a released version yet. Are there any plans to push a new version to PyPi in the near future?

Hey @ReinderVosDeWael ! The inimitable @liuzhenqi77 just cut a release that should ship with the fetch_civet() functionality. Let us know if that works for you!
As a heads-up, we've been working on standardizing some of these atlases + fetchers (along with a variety of other hopefully-useful functionality) in the to-be-released neuromaps package. Once that's released it might be a better place to go for this (as it'll have a wider variety of the CIVET surfaces, and in different resolutions). (We're hoping to make an initial release in the next couple of weeks—just need to work out a few bugs and beef up documentation and whatnot.)
I'm closing this for now but feel free to ping if you have any other questions or issues with the new release.


We might be logging invalid span timestamps

from @jcarres-mdsol
I've noticed now the "start_ts" in the zipkin_spans have changed the format to look like "20151013064708" .. from http and zipkin-web
^^ is certainly not epoch micros even if it is a number
this could be related to the code that adds a default span timestamp, as I don't think finagle tracers actually include span.timestamp

I'll wager that if span timestamps had been incorrect back then, it would have been fixed long since.


Date.toString() adds hours from time zone but Node doesn't

    let dateObject = new Date("2019-09-03T10:00:00");
    console.log(dateObject.toString());

On Graal.js 19.2.0 that outputs:
Tue Sep 03 2019 17:00:00 GMT+0700 (NOVT)
On node or in browsers that outputs:
Tue Sep 03 2019 10:00:00 GMT+0700 (+07)
Also I have issues on interop
public String formatDate(LocalDateTime date)

That receives date with 17:00 hours instead of 10:00

Hi,
thanks for your report. Are you using that from the jvm or from a native image (js, node)? In the later case, this is a known issue, see https://github.com/graalvm/graaljs/issues/95
Best,
Christian

@wirthi Looks like same issue. Sorry if duplicate.
We are using hotspot with graal polyglot library (not graalvm build)

What exactly is your setup? You have a non-GraalVM JVM where you add the JAR files manually (for Graal.js, Truffle, etc.)?
Or do you use our launchers (js, node, with or without the --jvm or --polyglot argument)?

@wirthi This is Polyglot application running on HostSpot.
As example, same setup here: https://github.com/mdsina/graaljs-executor-web-service

I've found workaround for that issue. That works for me.
Only one Date constructor works correctly. So I just replace broken cases with own date parsing
((globalScope) => {
    const DateUtils = Java.type('com.github.mdsina.graaljs.executorwebservice.util.DateUtils');
    globalScope.Date = class extends Date {
        constructor(...options) {
            if (
                options.length === 1
                && (
                    (typeof options[0] === 'string' || options[0].constructor === String)
                    || (typeof options[0] === 'number' || options[0].constructor === Number)
                )
            ) {
                const date = DateUtils.toDate(options[0]);
                super(
                    date.getYear(),
                    date.getMonthValue(),
                    date.getDayOfMonth(),
                    date.getHour(),
                    date.getMinute(),
                    date.getSecond()
                );
            } else {
                super(...options);
            }
        }
    };
})(global || this);

    public static LocalDateTime toDate(String dateString) {
        try {
            return LocalDateTime.parse(dateString);
        } catch (DateTimeParseException e) {
            //failed to parse LocalDateTime, trying again with LocalDate
        }
        return LocalDate.parse(dateString).atStartOfDay();
    }

@mdsina I don't think you should rely on toString() if you want to get a well defined date string representation you should use: toISOString() as documented here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

@pmlopes I used toString() just to figure out the problem with timezone.
Actually I'm interesting in timestamp that returned by getTime() and in case when Date object created from string without timezone have additional hours, but in other environments, like Node or in browsers, doesn't

Also there are problem on interop, when destination mapping type is Object, not Temporal
Graaljs applies zone from Context, that may cause some issues like this.
It's will be better if Graaljs do not apply zone offset from Context on interop operations.
Currently that workaround works for me:
    public void output(String key, Object value) {
        Value polyglotValue = (value instanceof Value)
            ? (Value) value
            : Value.asValue(value);

        Object result = value;
        if (polyglotValue.isDate()) {
            result = polyglotValue.asInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toString();
        } else if (polyglotValue.isString()) {
            result = polyglotValue.asString();
        }

        Map<String, Object> output = new HashMap<>();
        output.put("name", key);
        output.put("value", result);
        outputs.add(output);
    }

The original problem mentioned in the description of this issue was caused by an (incorrect) interpretation of the parsed date in UTC (instead of local time). The specification says

When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.

So, 2019-09-03T10:00:00 should be interpreted as local time. This was fixed by 9c2f0a0d23. graal-nodejs/graal-js produces the expected output since then:
$ TZ=Asia/Novosibirsk mx node -p 'new Date("2019-09-03T10:00:00").toString()'
Tue Sep 03 2019 10:00:00 GMT+0700 (NOVT)

If this fix does not address all the problems mentioned in this issue then, please, extract the remaining problem into a new issue. Thank you in advance.


IPtables in Vagrant setup -  Worker

There was a request for docs surrounding iptables on a Worker post-Vagrant set up.
Need to follow-up with @Cbkhare, @gianarb, or @dan to get the details.

The issue that we face is that whilst a machine/laptop may be internet facing, the virtual machines created by Vagrant are not.
   +--------------+
   |   Internet   |
   +------+-------+
          |
+--------------------------------------------+
|         |                                  |
|  +------+-----+       +--------------+     |
|  |    eth0    |       |  Tinkerbell  |     |
|  +------------+       +-+------------+     |
|                         |                  |
+--------------------------------------------+
                          |
                    +-----v-----+
                    |    VM1    |
                    +-----------+

In order to provide this functionality to these created virtual machines we need to use iptables to allow ip_forwarding and network address translation from the network traffic of VM1 to traverse eth0
export main=<public_ip_iface>
export vagrant=<tinkerbell_ip_iface>
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i $vagrant -o $main -j ACCEPT
iptables -A FORWARD -i $main -o $vagrant -m state --state ESTABLISHED,RELATED
-j ACCEPT
iptables -t nat -A POSTROUTING -o $vagrant -j MASQUERADE
   +--------------+
   |   Internet   |
   +------+-------+
          |
+----------------------------------------------------+
|         |                                          |
|  +------+---+---------------------->+------------+ |
|  |    eth0  |       iptables        | Tinkerbell | |
|  +----------+<----------------------+--------+---+ |
|                                              |     |
+----------------------------------------------------+
                                               |
                                           +---v---+
                                           |  VM1  |
                                           +-------+

@thebsdbox does this issue affect both the Provisioner and the Worker? I think this originally discussed in context of letting a Worker see the Internet, but if it does also affect the Provisioner are there any cases where you would want to run the commands there too?

Other thoughts - I can just drop in this content at the end of the Vagrant set up doc, but is there any context on why someone would want or need to have the Worker see the Internet at this point? @thebsdbox


Browser wont scroll to a collapsed accordion element from anchor to it elsewhere on/off page

OSX 10.13.6
Chrome Version 68.0.3440.75 (Official Build) (64-bit)
https://jsfiddle.net/ez2xLdj6/
Bootstrap 4.1.3

When you have a longer page that scrolls, if you have an anchor that links to a specific "collapse" or accordion element that is closed, the browser will not scroll to it.
If I manually scroll, open the collapse element up, scroll back up and click the anchor, viola, the page scrolls to it
I tried working around this by adding an id to the heading that is always visible however this doesn't un-collapse the element when it's scrolled to.
Edit: Clarified title, twice even

I think that's a browser behavior here, and not a bug in Bootstrap
/CC @XhmikosR or @patrickhlauke

I believe it's normal too from a quick look.

Yup, closing as a won't fix.


Revert "Revert 611 main"

Reverts #618

Docs for 6ff11881a9e493f4dd6d780fed2bac81449c1201 are browsable at: https://ci.foundries.io/projects/fio-docs/builds/2450/docs/artifacts/html/index.html


Added Slow Tests

Codecov Report
Attention: 48 lines in your changes are missing coverage. Please review.

Comparison is base (9b45afa) 67.20% compared to head (b05a155) 65.94%.

Files
Patch %
Lines

common/util/container.go
0.00%
44 Missing :warning:

common/util/db.go
0.00%
3 Missing :warning:

common/util/http.go
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #88      +/-   ##
==========================================
- Coverage   67.20%   65.94%   -1.27%
==========================================
  Files          68       69       +1
  Lines        2455     2499      +44
==========================================
- Hits         1650     1648       -2
- Misses        764      810      +46
  Partials       41       41

Flag
Coverage Δ

unittests
65.94% <14.28%> (-1.27%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


[Bug]: UI breaks on changing the "Label" placement of closely placed widgets

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When 2 widgets are placed closely and the user changes the placement of the label of one of the widgets, the widgets overlap with each other.
https://user-images.githubusercontent.com/39921438/168567215-220f0f2b-c832-4249-8aa9-2122f474a5fa.mov
Steps To Reproduce

Drag and drop a Select widget.
Now drag and drop another widget just below the Select widget.
Change the position of the label for the select widget from Left to Top.

Public Sample App
No response
Version
Release

@shadabbuchh this seems kind of expected. What is the alternative?

@shadabbuchh but then if the user changes the label position back, you would expect the widgets to shift back up. I think as an experience it becomes a little confusing because in which cases should it shift back up vs not.

We are solving this as part of dynamic height, already discussed with ankur and abhinav.
The idea is when label moves to top or left app viewers pod will consume the dynamic height api to adjust the widget boundary and move the other widgets.


vector copy constructor really weird

Hi there!
Try guess the output of the following:
#include <iostream>
#include <cassert>
#include <vector>

#include <json.hpp>

// for convenience
using json = nlohmann::json;

template <typename T>
class WeirdClass {
public:
  WeirdClass(const std::vector<T> &v) : vec{v}
  {
    std::cout << "v.size()   == " << v.size()   << std::endl;
    std::cout << "vec.size() == " << vec.size() << std::endl;

    std::cout << std::endl;

    for (decltype(v.size()) idx = 0; idx != v.size(); ++idx) {
      std::cout << "v[" << idx << "]   == " << v[idx] << std::endl;
    }

    std::cout << std::endl;

    for (decltype(vec.size()) idx = 0; idx != vec.size(); ++idx) {
      std::cout << "vec[" << idx << "] == " << vec[idx] << std::endl;
    }
    std::cout << std::endl;

    assert(v.size() == vec.size());
  }
private:
  const std::vector<T> vec;
 };

int main()
{
  json x, y;
  x["value"] = 0;
  y["value"] = 1;
  WeirdClass<json> weird{{x, y}};

  return 0;
}

It aborts!!!!! and gives me this
v.size()   == 2
vec.size() == 1

v[0]   == {"value":0}
v[1]   == {"value":1}

vec[0] == [{"value":0},{"value":1}]

go: /home/me/main.cpp:31: WeirdClass<T>::WeirdClass(const std::vector<_RealType>&) [with T = nlohmann::basic_json<>]: Assertion `v.size() == vec.size()' failed.
Aborted

Changing the constructor to
  WeirdClass(const std::vector<T> &v) : vec{v.cbegin(), v.cend()}
  { //...

gives me the expected output:
v.size()   == 2
vec.size() == 2

v[0]   == {"value":0}
v[1]   == {"value":1}

vec[0] == {"value":0}
vec[1] == {"value":1}

What's going on here??
I thought things like the copy constructor should behave in a standard way. (Or is my compiler buggy?? I'm using: gcc c++ (Debian 4.9.3-3) 4.9.3; and compiling with -std=c++14)
Thanks

Also: if I put objects of type  json into a vector vector, then iterating through and putting the dereference into boost::any
  json x, y;
  x["value"] = 0;
  y["value"] = 1;

  std::vector<json> vec;
  vec.push_back(x);
  vec.push_back(y);

  for (auto it = vec.cbegin(); it != vec.cend(); ++it) {
    boost::any any = *it;  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    std::cout << boost::any_cast<json>(any) << std::endl;
  }

I get:
main.cpp: In function ‘int main()’:
main.cpp:22:23: error: conversion from ‘const nlohmann::basic_json<>’ to ‘boost::any’ is ambiguous
     boost::any any = *it;
                       ^
main.cpp:22:23: note: candidates are:
In file included from main.cpp:5:0:
json.hpp:2437:5: note: nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType>::operator ValueType() const [with ValueType = boost::any; typename std::enable_if<(! std::is_pointer<_Ptr>::value), int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberFloatType = double; AllocatorType = std::allocator]
     operator ValueType() const
     ^
In file included from main.cpp:6:0:
any.hpp:68:9: note: boost::any::any(ValueType&&, typename boost::disable_if<boost::is_same<boost::any&, ValueType> >::type*, typename boost::disable_if<boost::is_const<T> >::type*) [with ValueType = const nlohmann::basic_json<>&; typename boost::disable_if<boost::is_same<boost::any&, ValueType> >::type = void; typename boost::disable_if<boost::is_const<T> >::type = void]
         any(ValueType&& value
         ^
any.hpp:46:9: note: boost::any::any(const ValueType&) [with ValueType = nlohmann::basic_json<>]
         any(const ValueType & value)

.
.
Is it safe if I do
boost::any any = static_cast<json>(*it);

and then extract with
boost::any_cast<json>(any)

???
Cause I'm trying something along those lines (plugging in the type json into a signaling-layer I've coded ... and getting strange behaviour).
Thanks for any tipps and suggestions.

Hi @ajneu,
I could reproduce your reported behavior on the first issue with the following compilers (all OS X):

GCC 5 (g++-5 (Homebrew gcc5 5.2.0) 5.2.0)
clang version 3.4.2 (tags/RELEASE_34/dot2-final)
clang version 3.5.1 (tags/RELEASE_351/final)
clang version 3.6.2 (tags/RELEASE_362/final)

However, with Xcode Version 7.0 beta 4 (Clang Apple LLVM version 7.0.0), I can run the code and it runs as expected. I also used the memory sanitizer, etc. and found no issues. I currently have no idea why the code behaves the way it does.

Wow, I'm stunned!
I kindof thought that your json has some magic (I've just started giving it a try), but I'm rather surprised that you seem to be leaning towards compiler-issues...
I suspect it's something with list-initialization...
  WeirdClass<json> weird{{x, y}};

Be sure to try and compare that with this one:
  WeirdClass<json> weird{{{x, y}}};       // 3 pairs of braces!

Oh hang on... (I wrote too quickly).
This also asserts and aborts:
  json x, y;
  x["value"] = 0;
  y["value"] = 1;
  const std::vector<json> vec{x, y};
  WeirdClass<json> weird(vec);

Maby we should get some guys from gcc and clang bugtracks to have a look at this? ;)
(I wonder what maximal simplification (transformation) one could do to the class basic_json, to still have this strange behaviour...)

Hi Niels,
ok tried a few things here...
I modified /usr/include/c++/4.9.3/debug/vector (backuped it first!
      Note: this is the gcc debug/vector, which needs #define _GLIBCXX_DEBUG [***]),
to cout the info on which vector constuctors get called (and also output the size() of the constructor arguments).
      [***] At the very top of my user-c++ file I #define _GLIBCXX_DEBUG
      and always make clean && make (reason: cmake does not realize when I change standard lib files)
Here's what I've found:
  WeirdClass(const vector<T> &v) : vec{v}     // note: braced-init-list!

calls the initializer_list constructor
vector(initializer_list<value_type> __l, const allocator_type& __a = allocator_type())
and here __l.size() == 1
On the other hand if I change the class to
  WeirdClass(const vector<T> &v) : vec(v)     // note: normal constructor

then the normal copy-constructor gets called
vector(const vector& __x))
and here __x.size() == 2
What this means is:
the braced-init-list version vec{v} correctly first checks if there is a list of element type json.
And yes, there is, because this (possibly over-engineered ?) modern json library allows a whole vector of json, to be converted to a single json:
x["value"] = 0;
y["value"] = 1;
const vector<json> v1{x, y};
json hmmmm = v1;              // !!!!!!!!!!!!!!!!!!!

And thus vec{v}, sees an initializer list with element type json, having only a single element. (The vector of json, was converted to a single json element)

Hi @ajneu,
thanks for the diagnosis! Indeed I allow a vector of json objects to initialize a json object. The respective constructor for this should be
template <class CompatibleArrayType, typename
          std::enable_if<
              not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
              not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
              not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
              not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
              not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
              not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
              std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type
          = 0>
basic_json(const CompatibleArrayType& value)
    : m_type(value_t::array)
{
    AllocatorType<array_t> alloc;
    m_value.array = alloc.allocate(1);
    using std::begin;
    using std::end;
    alloc.construct(m_value.array, begin(value), end(value));
}

The idea was to support conversions like
// create an array from std::vector
std::vector<int> c_vector {1, 2, 3, 4};
json j_vec(c_vector);

// create an array from std::deque
std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};
json j_deque(c_deque);

// create an array from std::list
std::list<bool> c_list {true, true, false, true};
json j_list(c_list);

// create an array from std::forward_list
std::forward_list<int64_t> c_flist {12345678909876,<PHONE_NUMBER>8765,<PHONE_NUMBER>7654,<PHONE_NUMBER>6543};
json j_flist(c_flist);

// create an array from std::array
std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
json j_array(c_array);

// create an array from std::set
std::set<std::string> c_set {"one", "two", "three", "four", "one"};
json j_set(c_set); // only one entry for "one" is used

// create an array from std::unordered_set
std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
json j_uset(c_uset); // only one entry for "one" is used

// create an array from std::multiset
std::multiset<std::string> c_mset {"one", "two", "one", "four"};
json j_mset(c_mset); // only one entry for "one" is used

// create an array from std::unordered_multiset
std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
json j_umset(c_umset); // both entries for "one" are used

Maybe this is over-engineered. But it could also be useful...
Do you have a proposal how to fix this?
Cheers,
Niels

Hi Niels,
ok I agree this could be useful.
Ultimately this issue is thus not a bug; and just confirms: users (such as me) have to know and understand libraries before using them.
So I don't think a fix is needed here. It's my job as a user to understand that there is a conversion from "vector of json" to "single json"; and it's our job as C++ coders to understand the details of C++:
C++11-Standard 8.5.4:
"Note: Initializer-list constructors are favored over other constructors in list-initialization (<IP_ADDRESS>)"
// Example:
std::vector<int> vec{10}; // will first favor list_initialization and create a vector with one single element (of value 10)

std::vector<int> vec(10); // will create a vector with 10 elements (that are value-initialized)

But this is sometimes a trade-off with users, who want and like easy interfaces and minimal surprises... In this case it's not a big issue. I should have known that list-initialization if preferred and then realized that the lib allows conversion of containers to single json-array.
Side-note:
Anyway, I'm evaluating JSON libraries. What is surprising about many, is that I cannot specify what element I expect next from an istream, e.g.
is.next_expect(json::object);
is.next_expect(json::array);

and allow serialization with checking (according to my specification.)
Libs that seem to have this, are maby json voorhees, IOD, ; perhaps others.
Am I correct that this JSON library does not have that?
Also question:
Why have you chosen such a strange way of reading from stdin ?
// deserialize from standard input
json j;
j << std::cin;

Isn't it usually used like this: std::cin >> j ???
Thanks for comments.

(The bug label can be removed. All is good, except perhaps for the behaviour of Xcode Version 7.0 beta 4, that you describe above)
As mentioned above, if you could briefly comment on the possibilities of verifying parsed json (if the fields and keys conform to what one expects); and the rationale behind j << std::cin (instead of std::cin >> j ), I'd appreciate it.

Hi @ajneu, thanks for checking back. I'll keep you up to date!

As mentioned as a side-note above, if you could briefly comment on the possibilities of verifying parsed json (if the fields and keys conform to what one expects); and the rationale behind j << std::cin (instead of std::cin >> j), I'd appreciate it.

https://github.com/nlohmann/json/commit/bd5d96c4564e37372059dcdae9915e23c381d242#diff-04c6e90faac2675aa89e2176d2eec7d8
Nice to see this! ;)


Remove dead resources from infra-public-wafs

Trello card
Extracted from #1747, to keep the changes atomic.
Removes some resources that no longer exist post-replatforming, which are currently blocking Terraform plans and applies for this project.

I'm actually not confident merging this at all - this project is totally out of sync with reality on staging.

Thanks very much @sengi 🙏
I'll pore over the apply output tomorrow and try to make sense of it, but might take you up on that offer

Tried running plans in staging and integration and didn't see anything too surprising. (It's already mostly applied in integration btw.)

Also feel free to just go for it in staging tomorrow morning and see if anything breaks. Literally what staging is for after all. I'll be around if you need help.


Studio: do we need goldfish too?

obviously we need cuttlefish for CI (https://github.com/google/android-riscv64/issues/25), but will we need goldfish for Studio use?
alibaba has their goldfish patch up (which we're ignoring for now as we work on cuttlefish): https://android-review.git.corp.google.com/c/platform/external/qemu/+/2142497
at some point we'll have to talk to Studio about this.

The version of QEMU may also need to be upgraded to support RISC-V V and Zb extensions.

It would be nice if we have risc-v goldfish which is more friendly to build target and start target.
As @MaoHan001 said, QEMU version in Android Emulator is too old to support latest risc-v extension features.

realistically, risc64-on-x86-64 qemu just isn't going to be fast enough to be useful for app developers. (it's pretty slow for OS developers, who already need a super fast machine!)
the current plan for app developers is https://android.googlesource.com/platform/frameworks/libs/binary_translation/

Understand, for app developers, yes, with second abi riscv64 on x86_64 emulator + berberis should be fast, I just wonder goldfish more lite than cuttlefish(for OS developers before HW ready) since we don't need to prepare host environment and start host daemons.

I just wonder goldfish more lite than cuttlefish(for OS developers before HW ready) since we don't need to prepare host environment and start host daemons.

no, that's not true. and it would be a ton of extra work because (as mentioned above) goldfish is very old. we're having enough trouble with bugs in qemu 8.1!


Using #inline_html with a Rails view context

So I'm converting some Erector code to Fortitude. Outside of a normal ActionView context (say, in a model,) we've got a method that looks like this:
def to_table_cell(attachment_ids)
  Erector.inline do
    Attachment.find(attachment_ids).each do |attachment|
      a attachment.upload.raw_filename,
        href: download_attachment_path(attachment),
        target: '_blank'
    end
  end.to_html
end  # => "myfile.jpg"

I've noticed that Fortitude has an inline_html method, to which you can pass a block. However, it appears that since we're outside of the ActionView context, we don't have access to the download_attachment_path helper that Rails provides.
@ageweke: I've kept up a bit with the recent issue comments about rendering context... but I'm unsure if there's a way you'd recommend to implement this.
It looks like I could probably create an instance of ActionView::Base and somehow use it as my rendering context. I could probably package it up in a nice little method that would be easy to call in the future. But I feel like I'm probably doing something wrong here...

Hmmm. This is a really difficult problem. While I’ve seen Rails people say “don’t do that in a model!”, I’ve wanted to do exactly the same kind of thing, for the same reason. (It’d be one thing to render a whole wad of HTML in a model, but a list of links is another thing…)
You’re exactly right about the reasons why there is no download_attachment_path helper there. Perhaps take a look at my latest reply (posted just now) to #34: it gives a tiny bit of code that’ll let you supply Fortitude with a helpers object that will give your widget access to whatever helpers you want — assuming you mix in the module (here, some module I know you can get access to that has all of your routes helpers in it).
It strikes me, looking at it, that Fortitude’s inline_html doesn’t let you pass in a RenderingContext for its internal call to to_html. I’ll try to add that, and keep this bug open for that. In the mean time, you can just call SomeWidgetClass.inline_subclass { … }.new(assigns).to_html(my_rendering_context), which does exactly the same thing.

In 0.9.5, which I just released, #inline_html can take a second argument, a Fortitude::RenderingContext. While it’s impossible for Fortitude to magically make the case above “just work”, for the reasons referenced in here, this should make it about as easy as is possible.


restore chicago-parks (changed geojson "winding order"

The chicago-parks dataset didn't render right with the upgraded D3 - we got an ugly box that looked like this:

So when we switched to D3 and MapboxGl, I just disabled chicago parks for the time being. This PR fixes it.
The problem is D3 is more particular about the "winding order" for geojson polygons - are the points on a polygon listed in clockwise or counterclockwise order? Most of the time this doesn't matter, but sometimes it does, and chicago-parks is one of those times. (Chicago-parks is I think the first and only dataset that uses both points and polygons in the same dataset - see #208 )
For more about the issue, see this StackOverflow question: https://stackoverflow.com/questions/49311001/d3-js-drawing-geojson-incorrectly and this comment on from the D3 repo: https://github.com/d3/d3-geo/pull/79#issuecomment-280935242
The stackoverflow question gives a couple of examples of how to fix it, I used this commandline utility:
https://www.npmjs.com/package/geojson-rewind
npx geojson-rewind --counterclockwise <_work-in-progress/chicago-parks.geojson >chicago-parks.geojson

The parks dataset now renders correctly, or at least better than before!

Thank you very much, @epaulson!


Pagination for authentication screen

Implement a pagination mechanism for the authentication screen. The authentication screen should show 20 images per page. After clicking a button, the list view should directly jump to the next page (the next 20 images)

Pagination is implemented now. However, it only can jump from start position n=0 in 20 images steps and is yet not able to get the current scrolling position.


Build fails: Cannot resolve 'file' or 'directory' ./src/bootstrap

I am getting Cannot resolve 'file' or 'directory' ./src/bootstrap error while building.
Possible solution is change entry point in webpack.config.js to ./src/Bootstrap.

Cool, but i think you forgot to change line 70(error in production build)
https://github.com/mikechabot/react-boilerplate/blob/master/webpack.config.js#L70
This is the only repo which produces standalone production build. Thanks


Trying to run sudo even when the agent already runs elevated (no sudo installed)

Describe the bug
When I do run the Install commando on my pipeline at my hosted agent, I receive the following error.

##[error]Command failed: sudo yarn global add sfdx-cli@latest

My agent already runs on elevated user, so sudo isn't needed.
I do think that a check could be added to the  Install taks.
To Reproduce

Run the install command at an agent without sudo command.

Expected behavior
The sudo command in that specific case should not be fired by the task
Platform Details (please complete the following information):

OS: Ubuntu 16.04 with elevated user and no sudo
Version: latest
Salesforce Version: latest
CI Platform: Azure DevOps

@rokam  we are not adding any features to azp extension as its deprecated.
https://github.com/Accenture/sfpowerscripts/discussions/322


Add autograd test to T.TimeStretch (and F.phase_vocoder)

UPDATE
Due to the conversion from cartesian coordinate to polar coordinate, F.phase_vocoder (and T.TimeStretch) is not differentiable everywhere.

Part of #1337
~Looks like rate=0.7 is not differentiable to second degree.~
~Let's see what are the value ranges of rate, that are differentiable to second degree.~
T.TimeStretch manipulates spectrogram in polar coordinate.
The angle conversion from Cartesian to Polar (atan2(Img, Real)) does not have a
nice differentiability around (x=0, y=0) and theta = +/- pi, therefore T.TimeStrech is not differentiable there.
TODO

[x] Check if rate=0.7 issue happens without complex Tensor adaptation (#1430)
-> Yes it does. In fact the adaptation of complex Tensor makes the TimeStretch work with rate in range 0.8 ~ 1.3.
-> Filed the issue for rate=0.7 pytorch/pytorch#55557

@anjali411 I have removed the failing case 0.7. CR please.

Hmm, now the tests are failing for all the cases....

this issue looks similar to https://github.com/pytorch/pytorch/issues/42952, only that the function to blame here is likely abs, angle, or polar. cc. @malfet

@mthrok One thing to look into here is if the phase_vocoder function is expected to be differentiable overall, in which case, we might wanna define custom gradients.

@anjali411  That's a tough question. I am not sure if it is supposed to be a differential. The primal profit of autograd support for ops in torchaudio is that it might enable the E2E task of combined training. For that first-order gradient is enough.

@anjali411
My brief understanding of F.phase_vocoder algorithm is that it performs phase shift of complex spectrogram in polar coordinate, so it is inevitable to use atan when converting the input complex value (in cartesian form) to polar form.
So, unless there is another formula, I say that F.phase_vocoder and T.TimeStretch do not support autograd, and it has nothing to do with native complex Tensor.

For reference, there's no other formula for the gradient. See this plot for what's going on at zero:

Oh, what I meant by "another formula" is a formula for achieving the same result as the current F.phase_vocoder without converting the input spectrogram to polar coordinate.
Since the angle is applied to the input Tensor, I do not think it's practically possible to ensure non-zero input for the real use case, even if we can do so for testing.

It would be enough to make sure that the tests do not test points near zero, but I do not know whether that's possible in this particular use case

@Lezcano
Thanks for the advice. Following @anjali411's suggestion I tried to see if it's possible to come up with a guideline for workaround the zero values. No luck, I bet someone has already invented it if it's something I can come up with easily.
@anjali
I gave some thoughts on if it is possible to work around the in-differentiability. I think, if we really want to tackle this, we need to re-invent arctangent function.

I think the partial derivatives can be expressed as
 plot
 plot
And they go to as close as +/- infinity around zero depending on the phase.
For the sake of T.TimeStretch, it's okay to have zero gradient around the origin because in this context, abs(z)==0 means that the input signal has only an negligible amount of energy in the corresponding frequency bin and for the sake of NN model training passing 0 gradient makes sense. Now the problem is how we can invent a formula that has a nice differentiability around 0 but gets closer to atan2 as the input gets far from the origin.
Essentially this function needs to satisfy some properties like

and if z is not close to the origin,

and they connect soothly
similarly their derivatives have to meet the properties like

but have the regular partial derivatives of atan2 when z is far from 0, while they connect nicely.

I really like the name super_atan2, not gonna lie :D
Now, the first thing that comes to mind is to interpolate with a function that decreases very quickly to zero. The typical example of such a function is e^{-1/x}. So, if we denote r = (x²+y²)/α², for a small  α > 0, we could consider
super_atan2(y,x) = (1-r)e^{-1/r} + r atan2(y,x) on the ball of radius α x²+y² < α², and then we would like to extend it to be atan2(y,x) outside of this ball. This extension is continuous but not differentiable, but that should be fine, I reckon.
Now, if we were to do this, it might be even simpler to just have a cut-off at some small α for the derivative, and declare it to be zero after that.
Now, all these things are clearly just hacks. The real question would then be: is it really necessary to make this function differentiable, or would it be better to leave it as it is, and then react depending on whether people file issues?

Now, the first thing that comes to mind is to interpolate with a function that decreases very quickly to zero. The typical example of such a function is e^{-1/x}. So, if we denote r = (x²+y²)/α², for a small α > 0, we could consider
super_atan2(y,x) = (1-r)e^{-1/r} + r atan2(y,x) on the ball of radius α x²+y² < α², and then we would like to extend it to be atan2(y,x) outside of this ball. This extension is continuous but not differentiable, but that should be fine, I reckon.
Now, if we were to do this, it might be even simpler to just have a cut-off at some small α for the derivative, and declare it to be zero after that.

wow those are cool options! Thanks for the suggestions.

Now, all these things are clearly just hacks. The real question would then be: is it really necessary to make this function differentiable, or would it be better to leave it as it is, and then react depending on whether people file issues?

Well, for the scope of native complex Tensor support, we do not need this. We can just say TimeStretch does not support autograd.
But this god me thinking, it's not just this op but any op that manipulates data in polar coordinate is not differentiable. In case of signal processing and spectrogram, having 0 is inevitable, so the regular atan makes it impossible to use polar coordinate in training pipeline, and having a workaround might open a new door for research. Of course I have no idea it will be useful or not.
At this moment it's more of a thought experiment, but this could be also an interesting research topic.

What I would suggest is, rather than saying that it's not differentiable, I would write down the differentiability issue in a .. warning::. That's what we are doing in torch.linalg, where it's much less obvious when do the gradients explode. See for example the penultimate warning in https://pytorch.org/docs/master/linalg.html?highlight=linalg svd#torch.linalg.svd

Thanks for the tips. Will do so.

@anjali411 Following the tips from @Lezcano, I realized that we need a test to claim the differentiability at non-zero point. So I re-opened the PR. (sorry for flip-flopping)
In the new approach, I push the points close to zero away from zero. so that all the complex value elements have norm at least 1.


chapter 16, page 547

"the columns in this attention matrix should sum to 1"
Since you sum, for each row, all the elements, should instead be:
"Each row in this attention matrix should sum to 1"?

Probably worth nothing that all the diagonal values have the maximum value, since there are no repetitions of words. If - for example - we had the same word two times, we would have two identical values in the corresponding row.

The omega_mat matrix is symmetric:
omega_mat = embedded_sentence.matmul(embedded_sentence.T)

So it can be softmax'ed across the rows or columns. The author chose to do it across the columns (dim = 1).

Thanks for raising this, and sorry for the late response, I missed this earlier. And yes, that's right, it can be either rows or columns. Maybe saying it explicitly would be a good idea. I will make a note in case there will ever be a 2nd edition.


Chemical equations with mhchem

I could not render chemical equations like
\ce{H2O -> H2 + 1/2O2}

It is a supported command according to MathJax docs. The command is from the mhchem package.

Hi @chicolucio,
The mhchem extension seems to autoload fine on MathJax. Here is a screenshot:

Are you using the mathematics delimiters to delimit the chemical equation? MathJax requires them to recognize the parts that it needs to render.

My bad... I tested math equations inside align environments and they rendered. The only thing that I put outside math environments was the chemical equation :man_facepalming:  You are right, it works perfectly. Thanks!


Bug/issue245

The regex which matches the token replacement configuration tries to match a minus sign, followed by either a value without a dot (integer) or a value with a dot (float). This match fails, because the current regex only matches a value with or without a dot (int) which could be preceded by a minus sign or a value with a dot (float).
This subtile difference makes that this functionality doesn't work.
Arbitrarily used lastMileRTT to test the functionality.

Hey thanks for contributing. For Splunk open source projects, we require contributors to fill out this form [https://www.splunk.com/goto/individualcontributions].

Done. Filled out the form.


Next steps for Polonium

I've left this project on the backburner for quite a while, and I'm working on finding a way to improve it. In my opinion, it works just fine right now. However, the code is very messy and does not really reflect what a true tiling manager should be. Polonium came from my previous script, kwin-autotile, and a lot of the very poor programming practices that I had when creating autotile were inherited by Polonium. The code has become increasingly unmaintainable as new features were patched on top of existing code that was unwilling to adapt to them. This is why I have decided to take a step back...
... and rewrite the project from scratch.
I aim to get a beta for Polonium v1.0.0 released by October, with a massively improved and more readable and expandable code base. The new Polonium will be much more abstract in the code, and things like minimum window sizes and other important details will be placed in the center of the engine where they belong, instead of patched on. Engines themselves will be very abstract, and only reflect an idea of how the windows will be tiled. This should lead to many fewer engine bugs.
Obviously a complete rewrite of the code base would mean that existing PRs to the master branch would be useless. (Not that I get any...)
I hope that the KWin 6.0 API stays stable, because it would suck to rewrite this code again. I do plan to support this code until a rewrite is necessary.

@zeroxoneafour I have "pretty much" already written a draft design document for how to do underlying tiling mechanism constructs. And those base data structions to build upon. However I never shared it with nobody because I then thought: well, this document really needs some decent visualization diagrams!
So it took me 1 day to draw 1st diagram (using draio / draw . io desktop app). And then I got interrupted with it all.
Can I email you my design doc or something? Or gist it. And then you can look at the ideas being presented there.
Sorry I should add that after writing it all then saw what Cosmic had done. But they added some sweet extra stuff too (like tabs). Anyhow I have it on my disk.
Please register interest, as incomplete status. And then I will share as-is. Many thanks my friend for showing efforts for working on these features for KDE Desktop.

@dreamcat4 I would be interested in seeing any ideas of how to do the tiling abstraction. I have a concept in my mind that I think would work, but any other ideas would be helpful, too.

many thanks. although completed, my draft text was written a bit sloppy. so needs a little more time to be finished up well enough for readability sake. perhaps was now fixed during this evening the first 3-4 beginning sections...
turns out the total full document was a lot longer than had remembered! some essays worth. so will keep going during next few days. with the aim to provide asap. very pleased for these renewed enthusiasm to finish it now! to have done then after some real recipient to pass it on to. to share these ideas out.

I'm liking the renewed interest in this. Would you consider setting up a Discord server for the project?

I would throw you another contribution for this, I'm not rich so it would be a small token but a clean function kwin-based tiling manager would be a dream. You have my kudos.

I think reviewing bismuth code before starting anything new would be helpful.

Quick update: For writing my general design / tiling inspirational type document - I am now (approx) 50% through redrafting / tidying process. However it' s still much like some "wall of text" or technical article. That the 1st hald of the document is mostly setup and "justifications" and some example use cases. So that has mostly been covered to where I am at. The 2nd half of the design document then increasingly brings into focus, and starts proposing relevant and necessary mechanisms, hierarchies and data structures. To tackle this (lets admit it) fairly complex problem space.
The end goal (by the end) is to just have some very general but minimal OO objects paradigm(s). For the "how to make frameworks skeletons in code". So not actually implementing specific features down to that level. So in those ways more architectural model.
BTW I should say it's a very generalized presentations. It does not comprehensively laying out exhaustively all of the possible and implementable full set of features. It just uses some of the more tricky ones as examples, to then guide and inform those more general "framework" type of overall design language and philosophy. Which then lays ground for something like prior lessesns learned. And some "hopefully" robust enough platform design concepts to builds upon. If that makes sense. Since actually implementing comprehensively an upgradable modern auto tiling solutions is so darned challenging.
SO another 50% remaining left to organise (into sections) tweak, (actually properly punctuate, fix the grammar), re-edit, and bring the document writing standard up. And become a navigable, orderly document. That is a standard enough that can then be read cleanly by 3rd parties.

It's important to remember that this script is built on top of KWin's existing tiling and not around it, so it doesn't really share much similarity in the low level with Bismuth or most any other tiling manager that currently exists. That being said, I have heavily reviewed the Bismuth code and am trying to program in that style. The current code is in the v1.0 branch.

@dreamcat4 - I'm happy to help with the docs, if you'd like.

@dreamcat4 - I'm happy to help with the docs, if you'd like.

it's really on me atm to get the draft up to scratch. however after releasing it then you will be more than welcome to make any further edits, revisions or changes however you wish. or reuse any relevant portions and snippets of the document.
so once released, you will be in a better position to see, and figure out how can tweak it. or improve further with your own spins / build upon. and there was actually already section written and completed (a short mini guide) all about recommendations for that. more than happy my friend.

I'm liking the renewed interest in this. Would you consider setting up a Discord server for the project?

KDE Projects usually use Matrix/IRC. Discord would be less freedom.

Bit of a roadblock, Kwin keeps throwing TypeError: TypeError when running the v1.0 branch code, despite the code having no issues during compilation, in the language server, or in eslint. There is also an error in a dependency that I used without a problem in the older version of Polonium. Thorough debugging and code analysis has found no issues, and all the tsconfigs and such were copied from the older script version. Truly a kwin scripting moment.
If anyone with more TS experience than me can try to debug v1.0 and find out the cause of the nameless TypeError in line 584 of the compiled main.mjs, I have an outline built for the rest of the script that I would like to build off of soon.

v1.0 now works on an extremely basic level, probably around the level when kwin-autotile was very first released. If anyone wants to test it, it obviously wouldn't work as a replacement right now but it could show some promise.

v1.0 now works on an extremely basic level, probably around the level when kwin-autotile was very first released. If anyone wants to test it, it obviously wouldn't work as a replacement right now but it could show some promise.

Thanks for your effort.  Could you post the compiled file as a alpha or beta release?  It would be much more convenient for us to try it.

Github actions builds should now be working for the v1.0 branch.

Heyo @zeroxoneafour. How would you prefer feedback on the "v1.0" build? Comments/issues here? I don't want to muddy the waters and make your life hard but I've been playing around.

@polair If you find anything that has clearly been implemented and isn't working properly, a new issue would be preferable. This issue could work good for more general feedback.

Thank you so much for your efforts! I will send you another sizeable donation soon 😊

Did you set up any chat room or something where we would be able to contact you? I like the idea of tiling within KDE, I personally never used Bismuth, just saw a couple of videos, and heard that it is not really maintained anymore and should be rewritten. This is how I found out about your project, and would love to help with anything I can.

@czhunor I've mainly been using Github for communication about the project, it seems like its been useful for keeping discussions focused. I have no interest in maintaining a larger server about the project.

It seems that KDE project has now taken up matrix / element for chat services, so the thing to do would be:

join KDE's matrix space at #kde-community:kde.org
create new chat room there for these auto tiling specific discussions (if not already exists)

You can find here:
https://go.kde.org/matrix/#/#kde-community:kde.org

That's a good idea, I would need a bit of help how to debug the script, I have never done anything with KDE development until now. I tried to set the flag for the debug log in the script and checked the output in the journalctl -f QT_CATEGORY=js QT_CATEGORY=kwin_scripting but i did not saw anything :)
I read the tutorial part of the scripting but i could not find anything about debugging there.
Is there any good tutorial to how to start with developing scripts for KDE?
I am a software developer for about 13 years now, but in completely different world (SAP) :)


EFI Unified Kernel Image support (building)

We want to wrap a pre-built Linux kernel EFI stub into what the systemd people call 'EFI Unified Kernel Images'.
We're doing this to be able to combine a pre-built Metropolis kernel with an initramfs, or customized Kernel flags and other metadata.
This is, in turn, required to actually have an installer for Metropolis - to both have a customizable installer but also booting the Metropolis kernel.

@lorenz is working on implementing an EFI image toolchain to build EFI images.
@msgctl is working on documenting the why in a design doc about the installer.

This is done as of 2f9f387


Make dots clickable optional witch by default is true

This PR will make the dots not clickable if we want, using this parameter dotsClickable.
By default is set to true so is not changing the current behaviour just make the component more flexible.

You can implements this feature by using dotsClass prop without adding extra option to package.
You can pass dotsClass as 'slick-dots disabled'

Hi there. I try that but is not working is still clickable..
On 10 August 2016 at 17:27, Kiran<EMAIL_ADDRESS>wrote:

Closed #397 https://github.com/akiran/react-slick/pull/397.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/akiran/react-slick/pull/397#event-751571973, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFqH50ddWeuXaGcHCty2l4bTZ5zuF1H4ks5qefwAgaJpZM4JfDVM
.

@qawsedstation 'slick-dots disabled' didn't work or me as well. Dots are still clickable and respond to clicks.
@akiran would you consider accepting this commit?


@conda-forge-admin,please add bot automerge

@conda-forge-admin,please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/numba-stats-feedstock#4.