"binary_operator_spaces" and "whitespace_after_comma_in_array" rules are extremely slow

The PHP version you are using ($ php -v):
=> 7.3
PHP CS Fixer version you are using ($ php-cs-fixer -V):
=> 2.16.0
All rules of the CS fixer completes within 10 - 20 seconds (tested all @PSR1, @PSR2 and @Symfony one by one), except:
    'whitespace_after_comma_in_array' => true,
    'binary_operator_spaces' => true,

the whitespace_after_comma_in_array rule completed in ~17 minutes, the binary_operator_spaces takes currently forever (more than 4 hours, actually never completed).
on very large arrays formatted like this:
array(1=>2, 3=>4,...)

notice the missing spaces. If the file is preprocessed by regular expression, i.e. "=>" converted to " => " (with one space on each side), then the rules completes also very fast.
Test file:
https://github.com/tecnickcom/TCPDF/blob/6.3.2/fonts/cid0ct.php

Is here any core developer of the CS Fixer that knows the fixer internals and how to fix this effectively? Large arrays with bad syntax are very common if some maps like this are generated by code.

Hi and thanks for reporting!
I know a bit or two about the binary_operator_spaces fixer and it has some serious issues, however refactoring it will be hard as well.
However, one of the biggest issues is not just with that fixer but the Tokens collection. Inserting into a large Tokens collection triggers a lot of array coping with all the memory and speed issues that comes with that.
That is why the speed of the fixer is OK as long as it doesn't touches the tokens.
There are details here https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/3996 as well and a proposed fix that might be of interest for you https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/4250

Hi @SpacePossum , thank you for your message!
I meant if there can be done an easy fix especially for large arrays, i.e. traverse 1 array level at once, fix the elements and then replace it with the results. Does it makes some sense?

It is worth checking if there is such a fix doable!
However there are some things to keep in mind like usage of multi line comments and spacing, heredoc, nowdoc, anonymous classes, lamdas, etc. within the array. All the fun stuff :)

Here are stats after running only the whitespace_after_comma_in_array rule on https://github.com/tecnickcom/TCPDF/tree/6.3.5 fonts folder (php files with size 100 - 1500 KB):
Fixed all files in 48181.029 seconds, 522.000 MB memory used

However, one of the biggest issues is not just with that fixer but the Tokens collection. Inserting into a large Tokens collection triggers a lot of array coping with all the memory and speed issues that comes with that.

can we use tree or array linked structure? If not, is there anything againt creating 1, 2 empty tokens after each real one, so we can use the empty one for quick insertion?

duplicate of #5279 and probably improved by #4250


[Migration] Import functionality hangs

Supply wrong credentials for the HANA DB and acquiring the list of DUs hangs forever.

related to #456

Fixed with: https://github.com/SAP/xsk/pull/761


refactor to separate IO from parsing?

hi @juliomalegria, I was trying to use your library in some code I'm working on where I'm controlling much of the IO myself. I was having a little trouble because the IO and parsing logic is currently intertwined. The parts that I was hoping to import are:

parsing the listing page
getting the filters that are available on different types of sections
getting the base url depending on the site (city) or section

The main reason for handling the IO myself is so I can handle caching, use whichever IO library I want (requests, aiohttp, etc.), perform threading or multiprocessing whenever and wherever I want to, and download and parse the actual post itself in addition to the geotagging data.
Is this something you'd be interested in doing? It's definitely not a simple change.

This all sound like good improvements! I'll try to work on them whenever I get some free time, but I cannot define any ETA.
I'd be very willing to accept a pull request though, if you feel like contributing :)

hi @juliomalegria, I ended up implementing my own version to separate the IO from the business logic, allow using asyncio, dynamically grab the filters available on different sections, and create a simple CLI.
You can check it out here: https://github.com/AlJohri/craigslist
Would love any feedback!


Mahendra mahajan mendix using excel exporter patch 1

steps to define multiple worksheets and the resultant excel generation is explained. This is based on user feedback.

The change is moved to this PR: https://github.com/mendix/docs/pull/6424, and will be handled there. Will close this PR.


How to customize NewAnnouncementBanner?

Is there any easy way to apply styles for NewAnnouncementBanner component?

Not at the moment :)


Hiding packages

Hiding the packages due this is not needed in the project

Good idea 👍 . Done 🤓 Thank you!


Caching issues (?) with the linker

Hello! Firstly, thanks for an amazing library - scispacy is great!!
I seem to be running into some caching issues when using the linker. Periodically when running scripts that load the linker I get errors like
requests.exceptions.SSLError: HTTPSConnectionPool(host='s3-us-west-2.amazonaws.com', port=443): Max retries exceeded with url: /ai2-s2-scispacy/data/kbs/2020-10-09/umls_2020_aa_cat0129.jsonl (Caused by SSLError(SSLZeroReturnError(6, 'TLS/SSL connection has been closed (EOF) (_ssl.c:1076)')))
after having successfully run previously. I suspect this is related to caching although not sure. I have received errors like this about 3 times but it is inconsistent.
Is it possible to manually manage the linker object? Looking at the formatting I assume it is not just that one file and is sharded.

Hey Justin, is this a persistent issue? The most likely problem is some transient internet or AWS problem. Also, see @DeNeutoy's comment here (https://github.com/allenai/scispacy/pull/288#pullrequestreview-538218110) for a way to use local files. The files are not sharded or anything fancy, there are just multiple files needed, as shown in the code that Mark links to in that comment.

Yeah, I think this might have been related to the aws-east outage last week or something? I saw a lot of people's IOT doorbells not working 😄  - but if it isn't we can look into it!

I'm going to close this due to inactivity, but feel free to reopen if you are still having issues!

I'm going to close this due to inactivity, but feel free to reopen if you are still having issues!

sorry for not replying -- it did seem to be an intermittent error. Perhaps relating to outage. I will reopen if the issue returns. Thanks!

sorry for not replying -- it did seem to be an intermittent error. Perhaps relating to outage. I will reopen if the issue returns. Thanks!


[Bug]: Snowflake: Review page: Staging details coming before production.

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Snowflake: Review page: Staging details coming before production.

Steps To Reproduce
refer to the screenshot
Public Sample App
No response
Issue video log
No response
Version
1.9.6

Displaying the environments as sent by server. Need to add ordering logic from server side. @sondermanish

Resolved


Re-authenticate a user for sensitive actions

https://firebase.google.com/docs/auth/web/manage-users.
Add deleting an account and setting a primary email address with check for need to re-auth error.

With brand new epics it should be easy.

Closing because of Next Este which doesn't use Firebase anymore.


Google AddressSelector sometimes autofills the wrong city

We utilize Google Autocomplete for Addresses and we've recently discovered an issue that is causing some of our orders to come through  with an incorrect city in the shipping address.
What seams to be happening is that for some municipalities, the  https://maps.googleapis.com/maps/api/place/js/PlaceService.GetPlaceDetails API returns the city in the sublocality_level_1 address component, not the locality address component.
To fix this, AddressSelector.getCity() may need to be checking for the sublocality_level_1 property and using that value if its set.
You can reproduce this as follows:

While checking out, start typing in the following Canadian address: 1934 Montréal Rd, Gloucester, ON K1J 6N2
When you see the auto suggestion for that address, select it to autofill.
After the autofill, you will see Ontario in the City field but it should be Gloucester.

Thanks for reporting this @egarrett, we will have a look at this in the coming weeks.

We might need to implement auto address filling rules for CA, similar to what we did for the UK.

Fix released in https://github.com/bigcommerce/checkout-js/commit/88cced4fe3d5b9c2eeb9376fbca3b455d551e533.


DO NOT MERGE: Updates to sample initialization

Creating this PR to get feedback on the features implemented, and what test strategy to use.
Added support for map fields using {"key"} syntax
Added support for value initialization using ="value" syntax
Added support for "nested" maps and lists using chained syntax e.g.
myobject{"key"}[0].myfield

I have done a first pass. Overall I think it looks good.

PTAL

Ok I have finished my pass

PTAL

LGTM


force:source:deploy --coverageformatters cobertura | Incorrect class filename in Cobertura XML reports

Summary
When running force:source:deploy with --coverageformatters cobertura, it generate a cobertura xml file with the coverage results. However the filename path is invalid which means ci/cd tooling can't associate the coverage with the actual file.
Steps To Reproduce:
Just run a source:deploy with test level set as RunLocalTest or RunSpecifiedTests and make sure coverageformatters is set as cobertura.
sfdx force:source:deploy -g -w 999 --testlevel RunSpecifiedTests  -p force-app/main/default/classes/SampleClass.cls  -r "SampleClass_Test" --junit --resultsdir tests --coverageformatters cobertura --checkonly --verbose

Expected result
Cobertura xml with valid filename should be generated.
<?xml version="1.0" ?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage lines-valid="1" lines-covered="1" line-rate="1" branches-valid="0" branches-covered="0" branch-rate="1" timestamp="1664334267360" complexity="0" version="0.1">
  <sources>
    <source>.</source>
  </sources>
  <packages>
    <package name="main" line-rate="1" branch-rate="1">
      <classes>
        <class name="SampleClass" filename="force-app/main/default/classes/SampleClass.cls" line-rate="1" branch-rate="1">
          <methods>
          </methods>
          <lines>
            <line number="1" hits="1" branch="false"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>

Actual result
Filename path is completely incorrect
<?xml version="1.0" ?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage lines-valid="1" lines-covered="1" line-rate="1" branches-valid="0" branches-covered="0" branch-rate="1" timestamp="1664334267360" complexity="0" version="0.1">
  <sources>
    <source>.</source>
  </sources>
  <packages>
    <package name="main" line-rate="1" branch-rate="1">
      <classes>
        <class name="SampleClass" filename="no-map/SampleClass" line-rate="1" branch-rate="1">
          <methods>
          </methods>
          <lines>
            <line number="1" hits="1" branch="false"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>

System Information

Which shell/terminal are you using? bash

If you are using sfdx
sfdx-cli/7.168.0 darwin-x64 node-v14.15.4

I am experiencing  a similar issue with clover output of coverage results. The path attribute always begins with no-map no matter what --resultsdir flag is - initially I thought that we should place the results in the directory containing tested classes for example force-app/main/default/classes but it's not the case - the issue persists.
@mshanemc do you have any insights how to get the proper file path in the coverage results files?

@szymon-halik  So after posting this above, I've actually spent quite a bit of time trying to work it out myself. Because from a sfdx perspective the running test class is happening on the server side not from your local, so the system has no idea of your class path.
What most CI/CD tooling will ask you is to change the no-map/SampleClass with simply the relative path of the file location in your project. Here is an example:

I've created a simple command in my own plugin, DXB. It find the no-map/SampleClass in the xml file, then get the name of the class and try to find all the class files from local project repo.
Usage:
sfdx dxb:apex:coverage:cleanup -f tests/coverage/cobertura.xml
Once you publish that as a a report artefacts in Azure, it looks like this:

no way!
This happens with coverage.json as well

I created a simple script that fixes all of these 'no-map' paths in the coverage.jsonreport, but I could only do it based on the classes versioned in a giving sfdx project. And this is not a good fix because the coverage report output when deploying to Production has classes that might be versioned in another repository.

@mshanemc I was able to fix my issue with that simple script I mentioned above. But today I noticed another bug which is related to the way the coverage.json report is created.
When a salesforce org has a class and a trigger with the same name, for instance COM_Lead.cls and COM_Lead.trigger, only a single entry is added to coverage.json as no-map/COM_Lead, which we can't determine if it the coverage for the trigger or for the class. To solve this issue, the keys in the coverage.json must include the file extension.

If you use Github Actions, here is a simple github action I created to fix my codecoverage before uploading it to Codecov
https://github.com/AllanOricil/salesforce-fix-code-coverage-report
This action can only fix code coverage reports in json format. Moreover, it fixes the one retrieved when using this sfdx command:
sfdx force:source:deploy:report -u $orgAlias -i $jobId -w 60 --json --junit --coverageformatters=cobertura,html,json,text --resultsdir=./dist/$orgAlias/tests

obs: this line https://github.com/AllanOricil/salesforce-fix-code-coverage-report/blob/eea7d295055f75231407f35dd8153a22fadd0fb1/index.js#L50 can't really fix this bug https://github.com/forcedotcom/cli/issues/1813 But it works if you don't have Apex Classes and Triggers sharing the same name.
I hope it can help someone out there.

@mshanemc fixing line 136 would also fix this issue
https://github.com/forcedotcom/salesforcedx-apex/blob/main/src/reporters/coverageReporter.ts#L126-L138
Don't know yet why pathsToFiles.find(file => fileRegEx.test(file)) isn't working. There is probably a bug here, in this method called findFullPathToClass
https://github.com/forcedotcom/salesforcedx-apex/blob/f8ae861e6abb2a40af22cc2c0011c2ec7d7027c4/src/reporters/coverageReporter.ts#L124

@AllanOricil  @mshanemc  actually was quite easy and fun to analyse.
If you replace no-map by root folder as '.' at line 188 in lib/deployCommand.js then it works very well.

The apex-node module handle that already actually.
Example:

However it might include undesired classes/triggers that are not specified as packageDirectory in sfdx-project.json. You would need to update the @salesforce/apex-node findFullPathToClass  method to only include packageDirectories path.

@davidbrowaeys the paths expressed in the details for cobertura and all other report formatters was intentional due to the lack of complete line coverage data when running tests with coverage via metadata deploys (force:source:deploy or force:mdapi:deploy).
When the detail data are available we will revisit the coverage reporters.
To get complete detail coverage reports, you can use the force:apex:test:run/report commands.

@cromwellryan I believe this can also be solved. no-map is currently hardcoded. I can also take care of it.

@AllanOricil that's what I tried to point out. I think there is a simple solution we can apply quite quickly. Thank you.

@davidbrowaeys does your solution work on a monorepo with more than one package? What about classes that aren't versioned in the repository, but are part of the code coverage report? For instance, this happens when running all tests in a sandbox. These two problems have to be addressed in the final solution.
In order to fix my issue with paths, I created a Github Action that fixes all code coverage entry paths based on the files that are versioned in a particular repository. I can move my code into sfdx if @cromwellryan don't mind.

Great questions. @AllanOricil
Multi packages will work yes if you use simply project root (as '.'). However, if you have some classes in a random folder and which are specified as sfdx packageDirectories it will also include it(i.e.: backup/MyOldClass.cls folder or so).
If you use force-app (or even if you find the default from packageDirectories) then yeah it's assuming it's a single package. But that's just the way @salesforce/apex-node function is working.
For your second point, if file is not in the repo, it seems that @salesforce/apex-node findFullPathToClass ignore the code coverage result completely in the output file which is maybe not great. See below where UtilsTest is a test class for Utils.cls, it doesn't appear in the file.
Something would need to change in here in my opinion https://github.com/forcedotcom/salesforcedx-apex/blob/f8ae861e6abb2a40af22cc2c0011c2ec7d7027c4/src/reporters/coverageReporter.ts#L185

Coming into this a little late, but this seems to be one of the few issues I've seen with coverage reports

file paths incorrect for a Salesforce DX repo (force-app)
deployment coverage inaccurately reports "covered" lines

I've made a plugin for SonarQube which works around both - https://github.com/mcarvin8/apex-code-coverage-transformer
I could add cobertura format support to my plugin.
There are few open bugs regarding the inaccuracies in the deployment report "covered" lines. My plugin has a renumbering function to work around this.

BTW - I'm working on cobertura format support in my plugin via https://github.com/mcarvin8/apex-code-coverage-transformer/pull/65
Input file format still must be the normal JSON format from the Salesforce CLI. I know it creates cobertura format already. But to add support to my existing plugin, it seemed simpler to just stick with 1 input and have 2 possible output formats now.
Output formats will be sonar (default version) and cobertura.
Just verifying some things with Cobertura format and working on test classes. Keep an eye when that PR is accepted.

I also added "clover" output to<EMAIL_ADDRESS>The plugin should create the same "clover" output as the Salesforce CLI, but with correct repo file-paths.
See https://github.com/mcarvin8/apex-code-coverage-transformer


GroupNorm in ResnetBlocks

Hi,
Thanks for your code.  Your implementation is an amazing starting point for further research based on MeshGPT. However, I could not make it overfit on a small dataset of around 200 triangle shapes(the shapes have varying numbers of faces) when using batchsize > 1. I highly suspect it is because you used Groupnorm instead of Layernorm in your decoder resblocks here https://github.com/lucidrains/meshgpt-pytorch/blob/f8e30edf5e52b819034cc8e00e28451d1498c6ac/meshgpt_pytorch/meshgpt_pytorch.py#L262
I found during debugging that the outputs of self.norm(x)[mask] and self.norm(x[mask]) (not exactly the code, but you get the idea) are significantly different with groupnorm. So models trained under batchsize>1(when mask is valid) produce wrong meshes when used for evaluating at batchsize=1. So I rewrote it with layernorm:
class Block(Module):
def init(self, dim, dim_out=None, groups=8, dropout=0.0):
super().init()
dim_out = default(dim_out, dim)
    self.proj = nn.Conv1d(dim, dim_out, 3, padding=1)
    # self.norm = nn.GroupNorm(groups, dim_out)
    self.norm = nn.LayerNorm(dim_out)
    self.dropout = nn.Dropout(dropout)
    self.act = nn.SiLU()

def forward(self, x, mask=None):
    if exists(mask):
        x = x.masked_fill(~mask, 0.0)

    x = self.proj(x)

    if exists(mask):
        x = x.masked_fill(~mask, 0.0)

    x = rearrange(x, "b c n -> b n c")
    x = self.norm(x)
    x = rearrange(x, "b n c -> b c n")

    x = self.act(x)

    x = self.dropout(x)

    return x

After I switch to layernorm, it overfits fairly smoothly under large batchsize and could also work for bs=1. Note that I did also make some other changes for my personal use, but I think this normalization choice is a key factor here.
Looking forward to your opinion on this.

Hi Jionghao and thanks for the kind words
Your results line up with some papers I've been reading recently. Could you try a pixelnorm, either in place of the groupnorm, or in the direct main path, and see if it leads to comparable results to your layernorm run? Today is my last day open sourcing, but I can throw this last change if you get the experiments to me in time

Sure I will try it! But I will have to get back to you after I wake up in the morning, in no less than 7-8 hours...
I highly suspect the overfitting results would be similar, at least on my humble small dataset. From my understanding, once the norm dimension is over the 128 feature dimension and has nothing to do with the sequence length dimension, the results should be fine. But let's wait for the results.
btw, why do you favor pixelnorm over layernorm? I am not very familiar with pixelnorm's advantages

@shanemankiw there's a trend in transformers to remove the mean centering in layernorms (rmsnorm), so it lines up with Tero Karras' usage of pixelnorm

Thank you for the heads up about pixelnorm, very informative!
The experiment results are indeed similar, the loss curves look almost the same(ignore the 100/280 difference in the run name...):

And I saw the mesh reconstructions, they are flawless as well.

@shanemankiw thank you for those results 🙏 i've made the change in 1.1.0
just in the nick of time! alright, time to get back to those emails

@lucidrains @shanemankiw
At the start of the project I tested using smaller group sizes and even used layernorm before while testing but it seems like GroupNorm was better due to better loss improvements.
But I encountered the issue that 90% of the models perfect reconstructed and massively screw up the rest.
I was thinking it might have been some shapes were easier to generalize then others.
But it might have been due to some of the shapes where being normalized too much so anything outside the 'norm' of the batch average got normalized till it got squished.
An example of this was that the dataset contains many similar looking thick chairs and tables, but when it came to the models that are bit of the norm, like one legged chair or super thin glass table it messed them up quite bit.
I've been testing now with layernorm and it seems like that issue is gone!
The 'catastrophe forgetting' is no longer and problem and it seems like even using a 2k codebook manages to store the shapes accuracy!
Using such a small codebook It might even mean that I can release a little demo since the transformer wont take too much time training. After that I'll start right away with the holodeck.
Here is a example of  the  'catastrophe forgetting' ( i think it had like 0.4 loss with a bit bigger parameter count (33M+), probably 12h+ training):

vs
Training using (almost) the same parameters as the paper (15M), this would never have worked in the past:
0.43 loss after 4hrs:

PS: Here is the parameters, I used a smaller embedding dims since using a larger ones causing some problems (the default creates a total embedding space of about 840 vs the paper 192).
num_layers = 23
autoencoder = MeshAutoencoder(
        decoder_dims_through_depth =  (128,) * 3 + (192,) * 4 + (256,) * num_layers + (384,) * 3,
        dim_codebook = 192 ,
        codebook_size = 2048,
        dim_area_embed = 16,
        dim_coor_embed = 16,
        dim_normal_embed = 16,
        dim_angle_embed = 8
    )

@lucidrains Thanks for your efforts!
@MarcusLoppe Thanks for the experiments! The 'catastrophe forgetting' problem you talked about is precisely the problem that made me start debugging. You would think that a model this size could figure out a way to overfit on a few hundred meshes, but it always fail on around 10% of the cases. In the paper, MeshGPT could achieve 98% accuracy on even the dataset, so this is definitely not normal...
The thing about the loss is that, even if you can achieve a low loss under GroupNorm at batchsize>1, the output would not be the same during evaluation at batchsize=1.

@MarcusLoppe awesome! thanks for the corroboration!
you should switch into the field.. i really think you have a lot of potential
even your name is initialed ML lol

this single issue shows the power of open source. this kind of distributed problem solving just cannot happen within an organization, no matter how smart individual members are in the team.

@MarcusLoppe Thanks for the experiments! The 'catastrophe forgetting' problem you talked about is precisely the problem that made me start debugging. You would think that a model this size could figure out a way to overfit on a few hundred meshes, but it always fail on around 10% of the cases. In the paper, MeshGPT could achieve 98% accuracy on even the test set, so this is definitely not normal... The thing about the loss is that, even if you can achieve a low loss under GroupNorm at batchsize>1, the output would not be the same during evaluation at batchsize=1.

In the above I used 150 chairs and 150 tables and augmented each x50 times, so the dataset is 15000 meshes.
I ran a test for the 15000 meshes and got the MAE results:  Avg: 0.004, Min: 0.0028, Max: 0.016
I ran the code below to calculate the MAE, as you can see it's not batch processing.
I'm pretty sure that it's possible to get great results as in the paper.
for item in tqdm(dataset.data, desc="Processing samples"):
    codes = autoencoder.tokenize(
                vertices = item['vertices'],
                faces = item['faces'],
                face_edges = item['face_edges']
    )
    codes = codes.flatten().unsqueeze(0)
    codes = codes[:, :codes.shape[-1] // 2 * 2]

    coords, mask = autoencoder.decode_from_codes_to_faces(codes)
    orgs = item['vertices'][item['faces']].unsqueeze(0)
    abs_diff = torch.abs(orgs.view(-1, 3).cpu() - coords.view(-1, 3).cpu())
    mae = torch.mean(abs_diff)

While running I stored the worse and best results, in the image you'll see the row the best and the second the worse, the rest is 40 random samples.
In my book, that is a perfect result!

Here is the worst mesh, you can see some defects but that's pretty good after a few hours training!

I trained across 16 different categories with 50 models (800 models total) each and augmented them x100 times (80k meshes),  I let it run for about 10hrs and got 0.5 mse loss. The results usually gets good at 0.4 loss so some fragments are expected.
I used a 2k codebook size to test if the chair and tables where just so simple shapes it could be compressed into a small codebook, but it seems like even loads of different shapes can be compressed!
Although a hint that the codebook size is bit is that the commit loss was high when I restarted the training run, it usually gets lower after a training in the same session for a while.

@MarcusLoppe awesome! thanks for the corroboration!
you should switch into the field.. i really think you have a lot of potential
even your name is initialed ML lol
PS: i'm not kidding about the holodeck. in a decade, mark my words

Maybe, I'm not a ML programmer or know how to debug a model as @shanemankiw  did, if I did I've might've been able to  resolve this issue a long time ago :(
But I like using and training them in my software, for example I used Mistral-7B to extract and output the requirements from job adverts in JSON. I was extracting informations such as hard skills, soft skills, certifications, company culture, education and other qualifications.
Then I extracted the data from the JSON output and fine tuned Reranker on the different labels and used the unused text in the job ad or the other labels as negative.
I then convert it to a ONNX model used it in my asp .net backend and made a little nice react front-end this way you can quickly sift through many job ads so you don't need to waste time and read the whole thing until you'll realize they want 7+ years of experience :)

@MarcusLoppe Your results are great! Thank you so much for sharing. All of these with only 2k codebook? This thing sure has a lot of potential.
btw I don't know if I am qualified to say this, but I concur with all the nice things @lucidrains said about you. My tests on this project could not have gone anywhere without your notebook demo! Besides, the way you design and present your experiments are fantastic, and your results in multiple issues have been extremely helpful.

@MarcusLoppe Your results are great! Thank you so much for sharing. All of these with only 2k codebook? This thing sure has a lot of potential. btw I don't know if I am qualified to say this, but I concur with all the nice things @lucidrains said about you. My tests on this project could not have gone anywhere without your notebook demo! Besides, the way you design and present your experiments are fantastic, and your results in multiple issues have been extremely helpful.

Correct only using 2k,
Here it is at 0.42 loss, there is some fragments but there was still some room for improvements for the loss
During a 11hr run using kaggle's free P100  I went from:  0.45 @ 0.8 commit loss to 0.4235 @ 0.58 commit loss.
I think this means that it can still compress the meshes some more.
Thank you very much :) I appreciate yours and @lucidrains comments, not many people in real life cares about this so it's refreshing and heart warming to get some compliments :)
https://filebin.net/uyni821gf0r3utti

@shanemankiw
I got some strange results...
I was thinking of how AlphaGeometry managed to get results with a relative small model, it has a vocab of 757 tokens and 1024 context window.
They were talking how they tested with small vocab size due to compress the information to reduce the complexity.
So I used 400 meshes (less then 250 faces) from 16 categories and augmented them x50, resulting with about 20k meshes.
Then I tested using 128 codebook size and I had great success, 0 fragments and took like 2hrs to reach 0.44 loss.
The commit loss was consistently low so I guess to reach any sort of good results requires you to somehow estimate the codebook size.  It sort of explains the bad results and that you need to adjust the model to the dataset.
You'll probably need a bigger codebook for more meshes but when dealing with testing/smaller dataset it's probably better to use a smaller codebook size.


databar expanded stacked odd last row separator end check

Check that don't set modules at end of last row separator for DataBar Expanded Stacked symbols when last row is odd (ends with finder), eg
10 100 moveto ((255)9501101534001(3941)0035) (segments=6) /databarexpandedstacked /uk.co.terryburton.bwipp findresource exec
does not match GS1 General Specifications 20.0 Section <IP_ADDRESS> Example 5 (extra module set at end of last row separator).

Nice catch. Thanks!
The incorrectly lit module is one of the "alternating" modules over the finder pattern at the end of the row.
We are clearing the four modules at either extent of the separator, and only then performing the alternation, which in this case sets the previously cleared module.
Referring to ISO/IEC 24724, I'm assuming that the intent is that this:

The first four and last four modules of the separator rows are always light, overriding the complementary alternating pattern.

Trumps this:

[The lower row separator pattern] is the complement of the bars and spaces in the adjacent symbol row below, except for the ends and 13 modules over the finder pattern elements 1, 2 and 3 of a version 1 finder pattern and elements 3, 4, and 5 of a version 2 finder pattern. These 13 modules are light under the adjacent finder bars and alternating dark, light, dark, etc. under the adjacent finder spaces.

Therefore I think the correct thing to do is move the code that clears the end modules until after the code that performs the alternation:
        % Derive the separator pattern
        /sep [ row {1 exch sub} forall ] def
        /finderpos [  % Finder pattern module positions
            19 98 row length 13 sub {} for
            68 98 row length 13 sub {} for
        ] def
        finderpos {
            dup 14 add 1 exch {
                /i exch def
                row i get 0 eq {
                    row i 1 sub get 1 eq {
                        1
                    } {
                        sep i 1 sub get 0 eq {1} {0} ifelse
                    } ifelse
                } {
                    0
                } ifelse
                sep exch i exch put
            } for
        } forall
        sep 0 [ 0 0 0 0 ] putinterval               % <---- Moved to the end
        sep row length 4 sub [ 0 0 0 0 ] putinterval

Does this seem right with you?
Happy to give you the credit if you agree and want to revise the PR. In which case let me know if you'd like to be acknowledged by your real name rather than you handle.

Merged manually.

Hi Terry, yes have updated the PR accordingly. I'm fine with just being acknowledged by handle thanks.
I've just started using bwipp to automatically verify Zint in the backend tests, starting with non-composite DataBars for the moment, by adding a small frontend to bwipp to dump the barcodes as binary strings (using dontdraw).
The only place where they differ now (after this change) is for DataBar Stacked, again involving the clearing of the first/last 4 modules as here, where it depends on how you interpret Section <IP_ADDRESS> as to where the dark/light alternation starts. See https://sourceforge.net/p/zint/tickets/183/ for details.
I'd be interested in your opinion on this. It's hard to find "official" examples either way. One I did find is on the Norwegian GS1 site (https://www.gs1.no/support/standardbibliotek/datafangst/gs1-databar). tec-it.com also does it this way.
A counter-example is IDAutomation.com (https://www.gs1.no/support/standardbibliotek/datafangst/gs1-databar)
Thanks, Martin

Hi Terry, yes have updated the PR accordingly. I'm fine with just being acknowledged by handle thanks.

Thanks. You're now acknowledged for your hard work:
https://github.com/bwipp/postscriptbarcode/blob/master/THANKS.md
https://slides.com/terryburton/barcode-writer-in-pure-postscript#/21

I've just started using bwipp to automatically verify Zint in the backend tests, starting with non-composite DataBars for the moment, by adding a small frontend to bwipp to dump the barcodes as binary strings (using dontdraw).
The only place where they differ now (after this change) is for DataBar Stacked, again involving the clearing of the first/last 4 modules as here, where it depends on how you interpret Section <IP_ADDRESS> as to where the dark/light alternation starts. See https://sourceforge.net/p/zint/tickets/183/ for details.
I'd be interested in your opinion on this. It's hard to find "official" examples either way. One I did find is on the Norwegian GS1 site (https://www.gs1.no/support/standardbibliotek/datafangst/gs1-databar). tec-it.com also does it this way.
A counter-example is IDAutomation.com (https://www.bcgen.com/demo/IDAutomationStreamingDatabar.aspx?S=4&D=07010001234567&CD=&SG=22&ST=T&X=0.1&O=0&ECL=0&CG=0&BH=3&LM=0.2&EM=0&CS=0&PT=T&COL=3&MODE=Text&XYR=0.06)

I'll take a look into this, thanks.
You might be interested in the following which I freshened up recently (i.e. got it to build): https://github.com/gs1/gs1-encoders
This code was originally written by the creator of GS1 DataBar (nee Reduced Space Symbology).
Thanks again for the work that you are doing for Open Source barcoding, and AIDC overall, by improving Zint and BWIPP.

ISO/IEC 24724 contains the following image which differs from the output of the traditional GS1 library:

It concurs with my approach, so I choose to "stick" :-)

Ah but that's one of the (majority of) cases where it doesn't matter! For instance (01)00000000000000,  or (01)0701000123456 show the difference.

Yes, you're right.
After a more careful reading I choose to plod it out from the left-most module then blank the ends. I've pushed a fix. "Twist".

lol cool (thanks very much for pointing out https://github.com/gs1/gs1-encoders, fab resource)

Perhaps more of a historical treasure that I've blown the dust off of than a "resource" :-) But I'm very glad that GS1 agreed not to let something with such pedigree bitrot forever and that it can now be put back to use.


create_dataset with DDI XML

Afaik, at the current state (for me it's 4.11), DDI XML is the only way to get existing DOIs into Dataverse. Therefore this functionality would be very useful. I guess it's just the :importddi that would need to be added.

Thanks for the input. As far as I know, DDI 2.5 XML works in a new release (guess 4.11 is right then). My idea is, to convert the internal datastructure in all kind of output formats. Different DDI XML versions are on top of the lists, but need to dive a bit into it, cause i am not really used to DDI.
Will add the outcome here, when I did some research about the issue.

So, this are two different issues:

get existing doi into dataverse via api request
import/export DDI XML (#18)

@skasberger yes. and it would be very nice if that functionality would be accessible independent of the metadata format - it is of course not the objective of pyDataverse to provide a workaround for issues in the core project....

@RightInTwo you mean, that it is possible to convert from DDI XML to Dataverse metadata JSON, and reverse?

API Docs

http://guides.dataverse.org/en/latest/api/native-api.html#create-a-dataset-in-a-dataverse
http://guides.dataverse.org/en/latest/api/native-api.html#import-a-dataset-into-a-dataverse

Mailinglist Discussion: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/dataverse-community/uQqWyMAx0X4/N4IT3o3_BgAJ

Closed in https://github.com/AUSSDA/pyDataverse/commit/d954619485b16ec3cf826bb7786893a1e01a0c10


[Hub Generated] Review request for Microsoft.CostManagement to add version preview/2019-03-01-preview

If you are a MSFT employee you can view your work branch via this link.
Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-js

Automation for azure-sdk-for-python

Automation for azure-sdk-for-java

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-go

Can one of the admins verify this patch?

@noferrar

Can you please remove the BOM from ExternalBillingAccountForecast.json

resolved

There are several model validation failures due to invalid examples that need to be addressed.  Please see the following log.
https://dev.azure.com/azure-sdk/public/_build/results?buildId=30021

There are several model validation failures due to invalid examples that need to be addressed. Please see the following log.
https://dev.azure.com/azure-sdk/public/_build/results?buildId=30021

these errors are from another service and not Forecast. can we advance without addressing them?

@taleib these errors cannot be suppressed.  Please file an issue to track fixing them, then we can go ahead with the PR.

@taleib these errors cannot be suppressed. Please file an issue to track fixing them, then we can go ahead with the PR.

resolved


Falcor with Rx

Hello, Thanks for sharing this resource. Could you also post some examples using falcor, react and rx. Or may be give directions on how to make them work, then I can implement an example and share.

Rx is out of scope here, but there is already code that makes use of Falcor and React.

yes, but all the examples use Promises not Observables...

That's true. I don't see any reason to not use Promises. As I said, that is out of scope here, and I have no plans to integrate Rx into the examples.

@rnicholus I wanted to create a simple todo app, but  I am new to both observables and falcor, so my implementation looks weird I just make stuff work and not sure whether it is supposed to be that way. No resources on this topic either... :( Anyways thanks for quick responses. Your examples were really helpfull

Thanks for the kind words. My suggestion is to use Promises, as this is currently the standardized way of dealing with asynchronous operations.

@rnicholus So many benefits from observables though. If you are familiar with it, may be you can have a look at my code? :)

Perhaps you can list the benefits of Observables over Promises in this context? Even better, post a comment on the blog so we can discuss there.

@rnicholus well I mean general benefits of FRP, I do not think I have enough knowledge to argue about it. But it just feels more natural for me and easier to reason about and I do not need to learn framework after framework and choose between all the flux implementations. But it is just my opinion though :)

Promises are part of ECMAScript 6/2015, not part of a framework or library. They are fairly straightoward to use, and the core syntax is the same regardless of the library that includes them as part of an API. Conversely, Observables are not part of any formal specification and are, as a result, library-specific. Unless you can articulate compelling reasons to use Observables, I would stick to a standardized solution instead.

I should add that the Promise specification in ES6 paves the way for other standards, such as the async functions proposal, which is currently a stage 3 draft, and, as a result, is likely to be part of ECMAScript 7. Async functions make it even easier to deal with promises.


Implement a function to find element at any rank.

Do the checklist before filing the issue:

[x] Do you have Node.js and all the relevant dev-dependencies installed?
[ ] Is this a bug fix?
[x] Is this an enhancement?
[x] Is this a feature request?

NOTE: Provide a clear and concise description of the feature that needs to be added! Or if its a bug, then provide the necessary steps to reproduce it along with screenshots.

Give your answer below:

Write a function to find a element with the given rank. If no such element exists, then return an error. Time complexity must be O(n).
rank = 1 +(number of >= elements)
 Example: arr = [1,2,3,4,2,6]
 EleAtRank(2) = 4;
 EleAtRank(5) = 2;
 EleAtRank(4) = //error;

I will work on this if you approve of it.

Yes

Why the element at rank 2 is 5, cause 5 isn't present in the array!

Oh my bad, the ranks are all integers. So we round up the fractional ranks.

For this array, [1, 5, 3, 8, 1, 3, 3]. Let me know, what's the rank of all the elements!

OK!
8 is at rank 1.
5 at rank 2.
3 at rank 5.
1 at rank 7.

Alright, got it!

So, shall I get 1 at rank 6, or 3 at rank 4 & 3?

Rank 6 will be an invalid input.

OK!
8 is at rank 1.
5 at rank 2.
3 at rank 5.
1 at rank 7.

Any rank values apart from these will be considered invalid.

Alright! Implement it like this:
const EleAtRank = M.rankify([1, 5, 3, 8, 1, 3, 3]);

EleAtRank(1);   /* 8 */
EleAtRank(2);   /* 5 */
EleAtRank(5);   /* 3 */
EleAtRank(7);   /* 1 */

All right. Thanks!

Wait where is the input for the array? What exactly does rankify do?

Alright! Implement it like this:
const EleAtRank = M.rankify([1, 5, 3, 8, 1, 3, 3]);

EleAtRank(1);   /* 8 */
EleAtRank(2);   /* 5 */
EleAtRank(5);   /* 3 */
EleAtRank(7);   /* 1 */

Hey, @pbiswas101  I don't think I will be able to complete it within the stipulated time. I have too many projects to complete. I am extremely sorry :-/ .

@sateslayer No problem! I can extend the time until 11:59 pm  if  you want!

Um no use, I was busy till now for some project.

The problem is not with the time, but the code to be honest. My program which works perfectly in C is not working in JavaScript. I am searching for possible bugs, but I'm unsuccessful till now.

I have implemented the code, it's working but with slight variations to the definitions I have described above. However I don't think my code is worth adding to Mathball, because it's unstable. I suggest you close this issue or assign it to someone else.

@sateslayer No problem.

Can I implement the normal way to do this? It will be O(n*log n) because it involves sorting. If I can get the O(n) algorithm working some other time, I'll update it(outside of GsSOC issues).

@sateslayer sure!

Can i work on this issue?

@AishwaryaDASH can you confirm your gssoc19 slack username?

My username is Aishwarya(P). I joined the Mathball channel just today.

@AishwaryaDASH okay, you're assigned!

I believe this issue is pretty useless if it can't be implemented with efficient time complexity.


[Hub Generated] Review request for Microsoft.MarketplaceOrdering to add version 2015-06-01

If you are a MSFT employee you can view your work branch via this link.
Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-js

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Automation for azure-sdk-for-node

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

Automation for azure-sdk-for-net
A PR has been created for you:
https://github.com/azure/azure-sdk-for-net/pull/5488
.NET SDK Commits:
https://github.com/adxsdknet/azure-sdk-for-net/pull/5488/commits/bf4b0bddd1768719d979b466f186662e8439fcaa

What's the status on this pull request? We'd like to get this merged soon to resolve the error in documentation.


Experiments on CTB dataset

Hi,
I read your paper and is particularly interested in applying your method and training models on CTB datasets. I noticed you provided a pipeline for CTB preprocessing, so i come to wonder whether you have conducted any experiments on Chinese datasets and summarized a set of hyperparameters that can produce nice results. If so, would it be possible to share such hyperparameters or even better, pretrained models, if that would be ok?
I'd greatly appreciate your assistance.

Ah I get that, thanks for the reply!


GSoC: Complete implementation of Set and FrozenSet and partial implementation of socket module

Task
I will complete the implementation of the Set and FrozenSet data types and partially implement the socket module.
Goal
100% completion of Set and FrozenSet and 75% (40) methods from the socket module.
Technical details
Set and FrozenSet
Set and FrozenSet are same and both can be done at the same time.
The following methods will be implemented in Set and FrozenSet which are simple.

sub, rsub and isub
and, rand and iand
xor, rxor and ixor
or, ror and ior
All the existing methods of Set will be ported to FrozenSet.

The following methods are not straight forward and needs some work.

difference, difference_update, intersection,intersection_update, union and update (Implemented but needs improvements.)
isdisjoint, issubset and issuperset
symmetric_difference and symmetric_difference_update
format

socket module
In socket module I plan to implement 40 methods out of which 20 are simple and can be implemented directly using Java.net library.
The methods which can be implemented easily are:

getaddrinfo, gethostbyname, gethostbyname_ex, gethostname, gethostbyaddr, getnameinfo, getprotobyname, getservbyname, getservbyport
ntohl, ntohs, htonl, htons
inet_aton, inet_ntoa, inet_pton, inet_ntop
getdefaulttimeout, setdefaulttimeout, sethostname

The methods which needs hard work are:

socket, socketpair, create_connection
connect, connect_ex, bind, close
listen, accept, detach, dup
recv, recvfrom, recvmsg
send, sendall, sendto
shutdown,settimeout, sendfile.

Schedule
Community  Bonding period: May 4 -May 30

Get involved in the pybee community.
Enhanced research on socket module and every methods planned to implement.
Get friendly with other GSoC students.

Week 1: May 30 – June 2

Enhance the difference, difference_update, intersection and intersection_update methods and implement them in FrozenSet.

Week 2: June 5 – June 9

Implement isdisjoint, issubset and issuperset.

Week 3: June 12 – June 16

Implement symmetric_difference and symmetric_difference_update and improve union and update.

Week 4: June 19 – June 23

Implement the 12 easy methods of the Set and FrozenSet.

Week 5: June 26 – June 30

Implement format for Set and FrozenSet.

Week 6: July 3 – July 7

Implement all the 20 easy methods of socket module.

Week 7: July 10 – July 14

Implement socket, create_connection and socketpair of the socket module.

Week 8: July 17 – July 21

Implement connect, connect_ex, bind, close.

Week 9: July 24 – July 28

Implement listen, accept, detach, dup.

Week 10: July 31 – Aug 4

Implement send, sendall, sendto.

Week 11: Aug 7 – Aug 11

Implement recv, recvfrom, recvmsg.

Week 12: Aug 14 – Aug 18

Implement shutdown,settimeout, sendfile.

I assure to work 8 hours a day in weekdays. I will work on weekends if the project needs it.
My works
2 of my pull requests got merged

swapcase() for Str pybee/voc#412
split for Str pybee/voc#433

1 pull request is open and I am working on it to improve it.

iterator for Set, FrozenSet, and Tuple.

I also contributed to the batavia project

swapcase for String pybee/batavia#465

This is not bad as a first pass - but it needs a lot more detail. It reads like you've worked out what you want to do, and just split it up over 12 weeks - not that you've worked out how long things will take, and determined that it's 12 weeks of work.
Some specific comments:

The "not straight forward" set methods - why are they complex? Is it because they're not direct analogs to underlying Java operations? Or is there something difficult required to implement them?

Socket is an interesting choice - it's very low level. Why is that a good target to implement? Are there advantages to implementing the socket API? Most end users won't be using socket directly - they'll be using httplib, email, or similar. Are those libraries dependent on socket? How much of socket is written in Python and can be re-used? How much is written in Python but can't be reused? And how much is a C layer that needs reimplementation?

Assuming implementing socket is the best approach - is the implementation just a matter of wrapping Java APIs in Python? Or is there more manipulation required? Which Java API will you be using?

Are there any data types or structures defined as part of the socket module? Will you have to implement those as well?

As per my research

The "not straight forward" methods accept any iterable object, so dealing with them is a litttle harder.
socket is a good target to implement because httplib, email or similar are dependent on it. They need socket to work. socket written in python is only a wrapper above the  _socket, the C implementation providing additional facilities. Total of 6 method/functions can be used from the Python's implementation in python.

makefile, dup, __repr__, family, type, getfqdn, create_connection.

Most of the implementation needs wrapping Java APIs in python with a little manipulation. I will be using the Java's default net APIs.
As of now I have came across only error and constants which need to be implemented. The socket initialization takes tuple.

Unfortunately, this proposal wasn't accepted.


Methodology for user-friendly types without UIP on the index

In Example.v, the current methodology for deriving the user-friendly type of the proof uses the fact that nat is an hSet, and so the auxiliary rewrites we apply are irrelevant. It would be nice to have a methodology that does not rely on this fact. While many indices have types that are hSet, and while UIP can safely be assumed in Coq in general, it's still not great.
Without UIP, the way the rewrites for the other user-friendly types are derived should be relevant. Thus the methodology should instruct the user to write the auxiliary lemma proofs in such a way that proofs of equalities between rewrites using the auxiliary lemmas will go through easily (and eventually, automation should help with this).
I think more generally that even when the index type itself isn't an hSet, there's something about the structure of an algebraic ornament here that is useful: the new index must fully determined by a fold over the old type. So my guess is that this forces some structure on the indices themselves that makes this possible without relying on any properties of the type. The intuition is fuzzy, though, and I don't know how to reify it into the code yet. (Please comment if you do!)

Cyrill Cohen thinks the fold intuition may be right here. We are going to play with this tomorrow.

Also, generating the { l : list T | length l = n } and implementing lifting along that as well may be another way around this. There is an issue open for that, too.

I think generally showing the latter equivalence directly from the former relies on UIP over the index. But maybe I can get that from something else, like from the fact that length is a fold that projects the first element of ltv.

Going to see if I can derive the whole equivalence without relying on UIP, though.

I think generally showing the latter equivalence directly from the former relies on UIP over the index

What is "the former" here, and what is "the latter equivalence"?

I tried playing with Example.v a bit, but I think I don't have enough context here to do anything.
However, I think using this type instead of vector will be informative in trying to drive things:
Inductive tlist (A : Type) : Type -> Type :=
| tnil : tlist A Empty_set
| tcons (a : A) {T} (xs : tlist A T) : tlist A (option T).

(Note that, with this type, zip_index' and zip_with_index' are highly non-trivial, though still true.  (They are true because forall x : tlist A T, T = option^(length x) Empty_set.))

Are these the other definitions you're looking for, re proving the equivalence?

Lemma ltv_u'u {A n x} : ltv_u' A n (ltv_u A n x) = x.
Proof.
  destruct x as [l H].
  cbv [ltv_coh ltv_u]; subst n; cbn [eq_rect projT1 projT2].
  cbv [ltv].
  cbn.
  induction l as [|x xs IHxs]; [ reflexivity | ].
  cbn.
  rewrite IHxs; clear IHxs; cbn; reflexivity.
Qed.
Lemma ltv_uu' {A n x} : ltv_u A n (ltv_u' A n x) = x.
Proof.
  induction x; cbn; [ reflexivity | ].
  cbv [ltv_u] in *.
  cbn.
  generalize dependent (ltv_u' A n x); intros [x' H]; intros; subst; cbn.
  reflexivity.
Qed.

Not quite. That's what I mean by showing that equivalence directly in the tool; we don't do that yet. I want to figure out if I can avoid doing that. So I want that equivalence, but I want to see if it's possible to show it via functions:
ltv : list A -> sigT (vector A)
ltv_inv : sigT (vector A) -> list A

that form an equivalence, but without relying on UIP on the index, even implicitly.

But to show section and retraction this way, I think you have to show that all proofs of:
ltv_index A l = n

lift to eq_refl.
I basically don't want to depend on anything other than the ltv, ltv_inv, section, retraction, coherence, the fact that ltv_index is a fold, and the constructors and eliminators for eq and sigT.

It's probably not a good idea to try to solve this without playing around with the Example.v file or you lose context.
You can:
Set DEVOID search prove coherence.
Set DEVOID search prove equivalence.

To get section, retraction, and coherence over sigma if you do that.
If I can't show it generally, I want to see if I can construct my user-friendly functions such a way that I can avoid relying on the index, and instead this will reduce nicely.

I also don't want to change the type of list and vector; they're important because they are just two easy examples of a broader class of types with nice properties the tool can automate.
This is why I want to see if I can avoid relying on any facts other than the ones I mentioned before.

Is Find ornament supposed to error with Set DEVOID search prove equivalence. on exotic indices?

I basically don't want to depend on anything other than the ltv, ltv_inv, section, retraction, coherence, the fact that ltv_index is a fold, and the constructors and eliminators for eq and sigT.

You need one more property (at least): you need that the section and retraction form an half-adjoint-equivalence:
ltv_adjuction : forall A x, ltv_retraction A (ltv A x) = f_equal (ltv A) (ltv_section A x)

If you have this, then (at least in cases where coh is refl), you can prove your equivalence:
Lemma ltv_ltv_inv : forall A n v, ltv_u A n (ltv_inv_u A n v) = v.
Proof.
  cbv [ltv_u ltv_inv_u].
  cbn [projT1 projT2].
  intros.
  set (p := ltv_retraction _ _).
  set (q := ltv_coh _ _).
  clearbody p q.
  cbv beta in *.
  generalize dependent (ltv A (ltv_inv A (existT [eta vector A] n v))).
  intros [x y] p q.
  cbn [projT1 projT2] in *.
  subst x.
  inversion_sigma.
  repeat match goal with H : _ = ?v |- _ => is_var v; destruct H end.
  reflexivity.
Qed.
Lemma ltv_inv_ltv : forall A n v, ltv_inv_u A n (ltv_u A n v) = v.

Qed.

(These proofs are a bit messy, sorry.)
Is this what you're looking for?

Neat! Adjunction should always follow from section and retraction, according at least to the proof from EFF. Next we need to derive the proof of adjunction (#57) and figure out how to use it to port proofs as in Example.v.

Adjunction (credit to Jasper) with few dependencies: https://github.com/jashug/IWTypes/blob/master/Adjointification.v
I think we should start by generating applications of this automatically, and then using that to manually write some unfolded equivalences. Then, once we understand what those proofs look like, we can automatically generate the unfolded equivalence with an option. Doing that would build the groundwork necessary to understand how to repeat the same process for other functions and proofs. We can then do those manually, then work on automating those.
But even generating the other version of the equivalence means we can already provide a very powerful tool for hooking into tools like EFF.

I will likely not get to this myself, but I still am super curious!!

My student @cosmoviola may look at this a bit, which is cool! The language in this issue is a bit out-of-date. Note that adjunction has been proven, but we're still trying to figure out whether we can get interesting proofs for Example.v without relying on UIP on the index. There should be a corresponding comment in Example.v that mentions this issue.

Still stuck on the more general question about UIP. Have a Tweet thread going: https://twitter.com/TaliaRinger/status/1475897510342594560

Conor McBride has refined this question---we need UIP to hold locally on the elements in the range of the function in the return datatype. But such datatypes should exist. Remains to be seen whether this is at all consequential for making proofs of equalities between equalities easier though
https://twitter.com/PTOOP/status/1475920399749763083

https://cubical.1lab.dev/wip.maximal-set.html

we need UIP to hold locally on the elements in the range of the function in the return datatype

As I said at https://twitter.com/diagram_chaser/status/1475941698739965955, probably the way you want to state this is that, if your indexing function is fold f init data you need UIP for the base case(s) (i.e., forall p q : init = init, p = q), and you need that ap (uncurry f) is a retraction, i.e., forall x, exists (g : uncurried_f x = uncurried_f x -> x = x), forall (p : uncurried_f x = uncurried_f x), f_equal uncurried_f (g p) = p (or maybe you want the more concise forall x, IsEquiv (@f_equal _ _ uncurried_f x x)).      Is this enough?)


Update modify-user-defined-functions.md

@AssafFraenkel : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Docs Build status updates of commit 810ed6e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/relational-databases/user-defined-functions/modify-user-defined-functions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@rwestMSFT
Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

private repo

Docs Build status updates of commit 810ed6e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/relational-databases/user-defined-functions/modify-user-defined-functions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[AppLifeCycle] Normal use-case of AppInstance.RedirectActivationToAsync will assert in debug

Following the documentation here - https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/applifecycle/applifecycle-instancing
When a compatible AppInstance has been found that we want to redirect to, we call instance.RedirectActivationToAsync(activationArgs).get();
The .get() at the end makes sense, we're switching to another app, and about to close the current instance down (though I appreciate for Win32, the app could continue running if it wanted).
However, the following assert is triggered:
inline void check_sta_blocking_wait() noexcept
{
    // Note: A blocking wait on the UI thread for an asynchronous operation can cause a deadlock.
    // See https://docs.microsoft.com/windows/uwp/cpp-and-winrt-apis/concurrency#block-the-calling-thread
    WINRT_ASSERT(!is_sta_thread());
}

By the functions get() => wait_get(const Async&) => check_sta_blocking_wait().
Is there any way to work around this? Is waiting on the main thread for the redirection acceptable in this case? If it is acceptable, then is the assert unnecessary?

This assert is indicating there is a bug in the calling code.  Waiting like this on a Single Threaded Apartment causes deadlocks.

@aeloros it's not going to cause a deadlock because the current app instance is going to close after redirecting to the original instance.
As I mentioned at the top of the post, I'm following the documentation, which uses that function as an example. Is the documentation / example wrong? What's the correct way of doing this without triggering the assert?

Hi Mark
I'm actually in the process of building a bunch of new samples that exercise all the AppLifecycle sets of APIs, and I'll post those soon. Also, I'll work on updating the docs to use snippets from those same samples, so that everything ties up nicely.
Apart from that, I believe aeloros is correct, we're not expecting you to be doing this in an STA. Is there a particular reason why you need this context, I'm just curious?
Thanks
Andrew

@andreww-msft , this is to enable a single-instance application. When the second instance starts, it redirects, then immediately exits. This is why calling instance.RedirectActivationToAsync(activationArgs).get(); is convenient, I'm going to be exiting the second instance immediately afterwards, so I don't care if the main thread of the second instance is temporarily blocked.

Hi Mark, calling .get() does a wait that blocks the entire apartment.  This is not a safe way to wait for completion of an async operation.  Search for the 'wait_for' method in our documentation to show how to properly wait here.
https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/concurrency-2

Hi @aeloros , thanks for the link. Is it really an issue if the current process is going to terminate immediately afterwards? wait_for looks like it'll only wait for a period of time before returning. I'm attempting to prevent a second launch of our application, and I just want to redirect all of the second app instance activation args to the original app instance.

It could be an issue.  .get() does the equivalent of a WaitForSingleObject() which blocks the thread completely.  There are mechanisms in WinRT, COM, and async programming in general that could need to respond during that time.  If waiting is done correctly then they are not blocked.  That assert is a general assert added to all C++/WinRT Async calls, because it is almost never correct to block like that.
As for the timeout value though, is it truly acceptable to wait infinitely?  Think about what that means to the user.  My suggestion would be to come up with what you think is an acceptable user experience when waiting for one of these redirections.  If it hasn't returned, then an error message might be more useful than a hung application.
From: Mark Ingram @.>
Sent: Tuesday, September 28, 2021 9:45 AM
To: microsoft/WindowsAppSDK @.>
Cc: Scott Darnell @.>; Mention @.>
Subject: Re: [microsoft/WindowsAppSDK] [AppLifeCycle] Normal use-case of AppInstance.RedirectActivationToAsync will assert in debug (#1371)
Hi @aeloroshttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faeloros&data=04|01|scodar%40microsoft.com|0cab716345c34feaf40208d9829f42ee|72f988bf86f141af91ab2d7cd011db47|1|0|637684444788481773|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GXL1ZmM52ZqR%2BKTUcXmi0rYHLLS67KjBNkrIz7tE5KY%3D&reserved=0 , thanks for the link. Is it really an issue if the current process is going to terminate immediately afterwards? wait_for looks like it'll only wait for a period of time before returning. I'm attempting to prevent a second launch of our application, and I just want to redirect all of the second app instance activation args to the original app instance.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FWindowsAppSDK%2Fissues%2F1371%23issuecomment-929399055&data=04|01|scodar%40microsoft.com|0cab716345c34feaf40208d9829f42ee|72f988bf86f141af91ab2d7cd011db47|1|0|637684444788481773|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=AaQXOy02LddTya6mx3%2FMHK8fXjecq0ZIam7tXHVfXbc%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAE4I5URR5EHDACQ4LMCVNE3UEHWHLANCNFSM5DMC3NAQ&data=04|01|scodar%40microsoft.com|0cab716345c34feaf40208d9829f42ee|72f988bf86f141af91ab2d7cd011db47|1|0|637684444788491760|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=DY8eoXFj6YDF8ZCZi51mxrpfiU6MoyTCGyWsez7t7F4%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|scodar%40microsoft.com|0cab716345c34feaf40208d9829f42ee|72f988bf86f141af91ab2d7cd011db47|1|0|637684444788501755|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=IzZvQTTtraV4khoJcS5TR1Czy47PDp1opABsILMM6zE%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|scodar%40microsoft.com|0cab716345c34feaf40208d9829f42ee|72f988bf86f141af91ab2d7cd011db47|1|0|637684444788511755|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=84S7RTksUi3TE2t2dZF8ds3dhxAm8B6Ky4dU4IEwNQg%3D&reserved=0.

Thanks @aeloros , that's interesting. We only use this route for passing file paths from Explorer currently, so the user experience would be that double clicking a file in Explorer would appear to "not work", and there would be an additional myapp.exe listed in Task Manager which is just sat there, hung. Perhaps we could improve that by showing an error message to the user ("Could not open file ..."). It just feels like wait_for requires an arbitrary amount of time before reporting an error. How long do I expect the switch to original app instance to take? 1s? 5s?
For reference, this is a copy & paste of our current WinMain (with some class name tweaks and additional comments...):
int WINAPI wWinMain(HINSTANCE instance, HINSTANCE, PWSTR, int)
{
	if (MyApp::SwitchToSingleInstance())
	{
		// Successfully switched to the original running instance, so we can now terminate
		return 0;
	}

	// We only get here if we're the original instance
	return MyApp(instance).Run();
}

bool MyApp::SwitchToSingleInstance()
{
	using namespace winrt::Microsoft::Windows::AppLifecycle;

	AppActivationArguments activationArgs = AppInstance::GetCurrent().GetActivatedEventArgs();

	auto instances = AppInstance::GetInstances();

	bool switched = false;
	for (AppInstance instance : instances)
	{
		if (instance.Key() == L"myApp")
		{
			switched = true;
			// Note: This will assert, because we're waiting for an async operation on the main thread.
			instance.RedirectActivationToAsync(activationArgs).get();
			break;
		}
	}

	if (!switched)
	{
		AppInstance::FindOrRegisterForKey(L"myApp");
	}

	return switched;
}

It turns out wait_for isn't the solution you need after all anyway.  I misread details about it when replying to you.  Sorry about that.
Andrew and I are working with others to get a proper solution to the problem and have it integrated I to the samples.
Sent from Outlookhttp://aka.ms/weboutlook

From: Mark Ingram @.>
Sent: Wednesday, September 29, 2021 3:21 AM
To: microsoft/WindowsAppSDK @.>
Cc: Scott Darnell @.>; Mention @.>
Subject: Re: [microsoft/WindowsAppSDK] [AppLifeCycle] Normal use-case of AppInstance.RedirectActivationToAsync will assert in debug (#1371)
Thanks @aeloroshttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faeloros&data=04|01|scodar%40microsoft.com|3fe0017286e04946444808d98332f4a1|72f988bf86f141af91ab2d7cd011db47|1|0|637685077213554631|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=l0RYQR38Cr4OpD3Yr03%2BhQe4zVc5Fe2oDEI4R2HKhz0%3D&reserved=0 , that's interesting. We only use this route for passing file paths from Explorer currently, so the user experience would be that double clicking a file in Explorer would appear to "not work", and there would be an additional myapp.exe listed in Task Manager which is just sat there, hung. Perhaps we could improve that by showing an error message to the user ("Could not open file ..."). It just feels like wait_for requires an arbitrary amount of time before reporting an error. How long do I expect the switch to original app instance to take? 1s? 5s?
For reference, this is a copy & paste of our current WinMain (with some class name tweaks and additional comments...):
int WINAPI wWinMain(HINSTANCE instance, HINSTANCE, PWSTR, int)
{
if (MyApp::SwitchToSingleInstance())
{
// Successfully switched to the original running instance, so we can now terminate
return 0;
}
    // We only get here if we're the original instance
    return MyApp(instance).Run();

}
bool MyApp::SwitchToSingleInstance()
{
using namespace winrt::Microsoft::Windows::AppLifecycle;
    AppActivationArguments activationArgs = AppInstance::GetCurrent().GetActivatedEventArgs();

    auto instances = AppInstance::GetInstances();

    bool switched = false;
    for (AppInstance instance : instances)
    {
            if (instance.Key() == L"myApp")
            {
                    switched = true;
                    // Note: This will assert, because we're waiting for an async operation on the main thread.
                    instance.RedirectActivationToAsync(activationArgs).get();
                    break;
            }
    }

    if (!switched)
    {
            AppInstance::FindOrRegisterForKey(L"myApp");
    }

    return switched;

}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FWindowsAppSDK%2Fissues%2F1371%23issuecomment-930046147&data=04|01|scodar%40microsoft.com|3fe0017286e04946444808d98332f4a1|72f988bf86f141af91ab2d7cd011db47|1|0|637685077213564631|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=Uyy9xY2WoGPcVitK4f7GrMNREjauNs6DuLzOfMUd9I4%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAE4I5UTTDXOSXQFCDTQLA5DUELSD7ANCNFSM5DMC3NAQ&data=04|01|scodar%40microsoft.com|3fe0017286e04946444808d98332f4a1|72f988bf86f141af91ab2d7cd011db47|1|0|637685077213564631|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=CXf10angdjJsLNvTBIDT8%2BNUfVVSMkYyATKZd%2Fc0DC8%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|scodar%40microsoft.com|3fe0017286e04946444808d98332f4a1|72f988bf86f141af91ab2d7cd011db47|1|0|637685077213574622|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=x5wp2u4vmdEwSepnuQt9ILPrS4v%2BHjV3%2BGVppV6lwag%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|scodar%40microsoft.com|3fe0017286e04946444808d98332f4a1|72f988bf86f141af91ab2d7cd011db47|1|0|637685077213574622|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=U4Z%2FegRkJPsK7%2BVbQmpTGQGHQPVOjFB%2Bfj1KT%2F1w8Oo%3D&reserved=0.


Fixing the operation wait logic in TestClusterAPI

@mgarolera  I addressed the two issues: 1) a more idiomatic check for error 2) propagating the interrupt.  PTAL

Good catches.  Addressed the 3 issues: 1) remove ERROR_DESCRIPTOR 2) remove InterruptedException try/catch 3) removed the extraneous return.  PTAL

LGTM


when :tagging=true, why is @tag=addTag necessary to update the v-model reference?

I am under the impression that v-model will provide a 2-way data-binding to its data reference, so i think it would make sense, when I add a tag, even if it's not in the :options to still auto-push it to the referenced array in v-model attribute?
However, if you comment out this line below this.list.push(tag); the data.list never gets updated when you select a NEW tag that does not exists in the data.options
 <multiselect
    v-model="list"
    :options="options"
    :multiple="true"
    :taggable="true"
    :searchable="true"
    @tag="addTag"
    >

// ... trimmed
  data: {
  	list: [],
  	options: ['abc', 'vue', 'vuemutlselect']
  },
  methods: {
  	addTag(tag) {
                // why is this line necessary? isn't updating the list implied by v-model?
   		this.list.push(tag);
        }
  }
// .... trimmed

Working fiddle
https://jsfiddle.net/c86n383x/1/

Exactly, This will a problem when using this component in loop because no way to add new item to selected list

This is necessary because the component can’t predict how to construct a tag when the option list is an array of objects.
@tungserver you can figure out which component called the addTag method by the 2nd param which is id that you can pass to the component.
For example in a loop:
<div v-for="(item, index) of items">
  <multiselect v-model="item.value" :options="item.options" @tag="addTag" :id="index"/>
</div>

addTag (tag, index) {
  this.items[index].value.push(tag)
  this.items[index].options.push(tag)
}

@shentao What if I have multiple multiselects in my loop? Need to not only pass the index, but also the attribute name via the :id then? 😂

@shentao What if I have multiple multiselects in my loop? Need to not only pass the index, but also the attribute name via the :id then? 😂


Clear button is active when no input is selected in dropdown

Describe the bug
AutoComplete dropdown clear-button state remains show always even when there are no selected field.  When clicked, it opens the dropdown and when the user clicks outside it then clears out.
To Reproduce

Go to Patients
Click on add a patient
When the prompt is open, the clear button is already present even when the user hasn't selected anything.

Expected behavior

The clear button state shouldn't been shown when no input field is selected.

Screenshots
https://github.com/user-attachments/assets/a606cfde-a606-4d6e-9b72-290a3a325d61
Desktop (please complete the following information):

OS: MacOS
Browser - Chrome

I would like work on this, if that's okay.

hey @ANIR1604  are you working on this issue if not i have solved this if you need any help please let me know else let me make a pr

Yes I am working on it and I will raise the PR tonight.

hey @ANIR1604 are you working on this issue if not i have solved this if you need any help please let me know else let me make a pr

Can you help me solve the Failed Cypress Tests .

hey @ANIR1604 are you working on this issue if not i have solved this if you need any help please let me know else let me make a pr

Can you help me solve the Failed Cypress Tests .

Completed via https://github.com/ohcnetwork/care_fe/commit/113ddddd5058a0bc8c160cd0dae1c6a59f9134e9


[admin] (Grammar) Tweaking cache note

Docs Build status updates of commit f54b081:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/testing/clear-cache.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Remove outdated shell scripts

The cleanup-*.sh scripts are obsoleted by teuthology-nuke features. The
check-syntax.sh script is obsoleted by our tox configuration.
Signed-off-by: Zack Cerza<EMAIL_ADDRESS>

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/teuthology-pull-requests/1689/
Test PASSed.


Fixed a typo in manage-resources-containers.md

Fixed a typo in manage-resources-containers.md (schedules → scheduled)

I have just signed a Contributor License Agreement.


fix chinese display bug in page “Creating a single control-plane cluster with kubeadm”

I want to explain that  is html comment syntax, not markdown comment syntax, so all the code between will be compiled and only blocked by brower. So in this file,  don't have a end block and the rest of the file couldn't be compiled successfully.
这里需要解释一下，作为html注释语法，并不是markdown注释，所以它仅仅在最终浏览阶段被浏览器屏蔽，里面的所有内容仍然会被markdown进行编译。在这里因为找不到对应的结束块，会使后续内容编译失败无法展示。

好像不能显示html标签，重新编辑一下
I want to explain that < !-- -- > is html comment syntax, not markdown comment syntax, so all the code between will be compiled and only blocked by brower. So in this file, < tabs >don't have a end block and the rest of the file couldn't be compiled successfully.
这里需要解释一下，< !-- -- >作为html注释语法，并不是markdown注释，所以它仅仅在最终浏览阶段被浏览器屏蔽，里面的所有内容仍然会被markdown进行编译。在这里< tabs >因为找不到对应的结束块< /tabs >，会使后续内容编译失败无法展示。

@zshea 谢谢


Fix redundant quotes in Step 25 of accessibility quiz

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #55750
Description:
Removed redundant quotes around "Question" in Step 25 of the "Learn Accessibility by Building a Quiz" section.

The tests here are failing because of something unrelated to this PR. If you update your branch, they should be fixed @ilkataa10. Do you mind doing that? Let us know if you need help.


Apply a function on a single column and return a TS object

Do you mean you want to apply a function on a single column and return the entire TS object?

Yes, it is sometimes useful to be able to do calculations directly. For instance if ts is a time series of temperature measurements in Kelvin but you want to plot it in Celsius.
Originally posted by @ValentinKaisermayer in https://github.com/xKDR/TSx.jl/issues/45#issuecomment-1195318514

Hi @chiraganand.
For broadcasting, my idea was to just use DataFrames.jl's broadcasting capabilities; for this, consider the following definition.
function Base.Broadcast.broadcasted(f, ts::TS)
    return TS(
        select(
            ts.coredata,
            :Index,
            Not(:Index) .=> (x -> f.(x)) => colname -> string(colname, "_", Symbol(f))
        )
    )
end

The idea here is very similar to the log function that is defined currently in src/log.jl. Using this definition, we can now do something like this.
using TSx
ts = TS(1:10)
sin_ts = sin.(ts)

Here's an example for a TS object with multiple columns.
using TSx, DataFrames
ts = TS(DataFrame(Index = [1, 2, 3, 4, 5], A = [10.1, 12.4, 42.4, 24.1, 242.5], B = [2, 4, 6, 8, 10]))

# get sin of column A
sin_A = sin.(ts[:, [:A]])

# take log of all the columns
log_ts = log.(ts[:, [:A, :B]])    # or equivalently, log.(ts)

Is something like this good? Or do we need something more?

Looks good!

@codetalker7 Yes, this does look good.


TimeoutError on building mobile example

Hi,
I encountered TimeoutError when I tried to run the mobile example included in this project.
$ node node_modules/react-native/local-cli/cli.js start --reset-cache
......
[11:39:04 PM] <START> request:/index.ios.bundle?platform=ios&dev=true&hot=true
[11:39:04 PM] <START> find dependencies
Error: TimeoutError: transforming /Users/hamazy/Documents/programming/javascript/sri/mobile-examples/index.ios.js took longer than 301 seconds.
You can adjust timeout via the 'transformTimeoutInterval' option
    at index.js:101:30
    at tryCallOne (/Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/promise/lib/core.js:37:12)
    at /Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/promise/lib/core.js:123:15
    at flush (/Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/asap/raw.js:50:29)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)
Error: TimeoutError: transforming /Users/hamazy/Documents/programming/javascript/sri/mobile-examples/index.ios.js took longer than 301 seconds.
You can adjust timeout via the 'transformTimeoutInterval' option
    at index.js:101:30
    at tryCallOne (/Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/promise/lib/core.js:37:12)
    at /Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/promise/lib/core.js:123:15
    at flush (/Users/hamazy/Documents/programming/javascript/sri/mobile-examples/node_modules/asap/raw.js:50:29)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)

Although @chandu0101 reported the same issue in facebook/react-native#6830 and it was already closed,  the problem still exists in the example. It would be nice if it runs right out of the box.
A possible solution would be fix-transform-timeout branch in hamazy/sri but I'm not sure the direction is ok. I will create a pull request if it's needed.

@hamazy  wow cool looks like you implemented Satya's suggestion!, please send PR  :)

@chandu0101 Ok, thanks. I created chandu0101/sri#39 with the file name changed.


Confusion regarding inputs

Hello!
I am trying to use this to build a gene regulatory network based on my single cell data. However, I am slightly confused by your inputs. In #3 in your README, I have to input gene_pair_list with the genes and the labels. What if I don't know the labels, as that is what i'm trying to find out. If we already input the labels into the model, then what is this used for? Let me know. Thanks!!!

So sorry for the late response, but that makes a lot of sense! I will give this a go, and will circle back with any issues I get. Thanks again for your help!


bin/doom install fails with  Native compiler error while (Re)generating autoloads file on emacs 28.0.50

[X] I have searched the FAQ and the documentation for solutions.
[X] I have searched the issue tracker for similar issues (the closed issues too).
[X] I have searched the Discourse for any errors and solutions.
[X] I can reproduce my issue on the latest commit of Doom Emacs.
[X] I have read How to Debug Issues and found no solution.

What did you expect to happen?
bin/doom install  to complete without error
What actually happened?
...
 > Natively compiling 1 files...
    \342\234\223 Installed 139 packages
  Regenerating autoloads files
  > (Re)generating autoloads file...
    > Generating autoloads file...
    x There was an unexpected error
      Message: Native compiler error
      Data: (native-compiler-error lambda (arg22 arg23 arg24 &optional arg25 arg26 arg27 arg28) (let ((f #'write-region)) (funcall f arg22 arg23 arg24 arg25 arg26 arg27 arg28)))
      Backtrace:
        (signal native-compiler-error ((lambda (arg22 arg23 arg24 &optional arg25
        (comp--native-compile (lambda (arg22 arg23 arg24 &optional arg25 arg26 arg
        (comp-trampoline-compile write-region)
        (comp-subr-trampoline-install write-region)
        (fset write-region (closure ((write-region . #<subr write-region>) (old .
        (progn (fset #'write-region vnew) (ignore write-region) (autoload-generate
        (unwind-protect (progn (fset #'write-region vnew) (ignore write-region) (a
        (let* ((vnew #'(lambda (start end filename &optional append visit lockname
        (let ((write-region (symbol-function #'write-region))) (let* ((vnew #'(lam
        (progn (fset #'load vnew) (ignore load) (let ((write-region (symbol-functi
    !  Extended backtrace logged to doom-emacs/.local/doom.error.log

Describe your attempts to resolve the issue
I reviewed other issues dealing with native compilation but none seemed to pertain.
Steps to reproduce

# First install Doom somewhere
git clone https://github.com/hlissner/doom-emacs ~/doom-emacs
# Then create a place to store our private doom configs. The bin/doom script
# recognizes the DOOMDIR environment variable.
export DOOMDIR=~/doom-emacs-config
mkdir -p "$DOOMDIR"

# Set up Doom for the first time; this may take a while
cd ~/doom-emacs

export EMACS=~/.emacs.d/emacs/src/emacs
## where I have built emacs 28.0.50

## doom emacs requires more recent git than 2.19, so, following
## https://serverfault.com/questions/709433/install-a-newer-version-of-git-on-centos-7#comment1379291_813293
sudo yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install git224

## putting /usr/bin on PATH to get more recent git I just installed
PATH=/usr/bin bin/doom install

witness reported error
``

### System Information

https://pastebin.com/W4Q0r1tM

I'm seeing something similar with any of the recent 28.0 builds and native-comp.
I had an installation that was working, but when I did a doom sync things wouldn't load anymore. Tried going back to basics, and doing a re-install like this, and again it failed to generate the autoloads file, and any future doom command would fail with There was an unexpected error.
Now it looks like nothing will work since the autoloads file doesn't exist, and I see output like:
$ env DEBUG=1 doom sync                                                                                ─╯
DOOM Initializing straight
Eager macro-expansion failure: (error "Recursive load" "/Applications/Emacs.app/Contents/Resources/lisp/jka-compr.el.gz" "/Applications/Emacs.app/Contents/Resources/lisp/jka-compr.el.gz" "/Applications/Emacs.app/Contents/Resources/lisp/jka-compr.el.gz" "/Applications/Emacs.app/Contents/Resources/lisp/jka-compr.el.gz" "/Applications/Emacs.app/Contents/Resources/lisp/jka-compr.el.gz" "/Applications/Emacs.app/Contents/Resources/lisp/info.el.gz" "/Users/username/.doom-develop/.local/straight/repos/straight.el/straight.el" "/Users/username/.doom-develop/core/core-cli.el" "/Users/username/.doom-develop/bin/doom")
DOOM Initializing recipes
DOOM Installing core packages
DOOM Initializing Doom CLI
DOOM Initializing Doom
x There was an unexpected error
  Message: File is missing
  Data: (file-missing . "Cannot open load file")
  Backtrace:
    (load "/Users/username/.doom-develop/.local/autoloads.28.0.50
    (condition-case e (load (string-remove-suffix ".el" doom-autoloads-file) n
    (progn (setq doom-init-p t) (if doom-debug-p (progn (let ((inhibit-message
    (if (or force-p (not doom-init-p)) (progn (setq doom-init-p t) (if doom-de
    (doom-initialize)
    (load-with-code-conversion "/Users/username/.doom-develop/init.el" "/Users/
    (load "/Users/username/.doom-develop/init" t nomessage)
    (let (file-name-handler-alist) (load (expand-file-name doom-module-init-fi
    (condition-case e (let (file-name-handler-alist) (load (expand-file-name d
    (load-with-code-conversion "/Users/username/.doom-develop/cor
! Extended backtrace logged to .local/doom.error.log
x There was an unexpected error
  Message: Error in private config
  Data: (doom-private-error . "init.el")
  Backtrace:
    (signal doom-private-error ("init.el" (no-catch exit 255)))
    (let* ((source (file-name-sans-extension target)) (err (cond ((not (featur
    (doom--handle-load-error (no-catch exit 255) "/Users/username/.doom-develop
    (condition-case e (let (file-name-handler-alist) (load (expand-file-name d
    (load-with-code-conversion "/Users/username/.doom-develop/cor
    (require core-cli)
    (load-with-code-conversion "/Users/username/.doom-develop/bin
    (command-line-1 ("-scriptload" "/Users/username/.doom-develop/bin/doom" "--
    (command-line)
    (normal-top-level)
! Extended backtrace logged to .local/doom.error.log
No catch for tag: exit, 255

No matter what doom command I run now, it fails.
My only workaround was to fallback to use Emacs 27.2, which runs just fine...

I've been on top of native-comp for the past several months and haven't seen these issues, nor can I reproduce them on any of my test systems (nixOS, Arch, macOS, and Ubuntu), so I am inclined to suspect your local installation of Emacs. As I have no reason yet to suspect this is a Doom issue I will close this, but feel free to follow up here if you find out more.

@darrenkenny Your issue appears to be unrelated to this thread. Your first error originates from your private ~/.doom.d/init.el file (i.e. (signal doom-private-error ("init.el" (no-catch exit 255))) suggests you're throwing something somewhere without catching it). Please investigate your config. The Discord would be a better place to discuss this.


Create README.md

A new readme file for the native code containing build steps.

Branch deleted as merged into trunk bny Charlie.


ci: merge staging to master

This is an automatic PR generated by the pipeline CI/CD. This will be automatically fast-forward merged if successful.

Pipeline Attempt on 909318269 for 22d82d7cc39d0c569acab6d995cc1799921b8ab0
https://gitlab.com/MatrixAI/open-source/js-async-init/-/pipelines/909318269


Server crash at /console/chat/ path

Tracking issue for:

[ ] https://github.com/sam4413/AMPLink/security/code-scanning/23

Fixed applied in unstable branch


Enables parsed logs for Tasks

Enables parsed logging for Tasks, displaying the logs in accordion format as Deployments do.

closes https://github.com/uselagoon/lagoon-ui/issues/207

@CGoodwin90 you're going to have to merge main/rebase this :smile:


Change order of checks in amm_info

High Level Overview of Change

Checking if account is well-formed currently happens before the check if asset , asset2 and amm_account are supplied, which results in an unexpected error messages if any of the fields is malformed. Swap the order of checks, so validity of fields is verified first. Since this is a breaking change, retain the existing behaviour if (apiVersion < 3) and add identical  check, but after checks of assets and accounts, if (apiVersion >= 3). Also add unit tests to demonstrate the old and new behaviour.
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactor (non-breaking change that only restructures code)
[ ] Performance (increase or change in throughput and/or latency)
[ ] Tests (you added tests for code that already exists, or your new feature included in this PR)
[ ] Documentation update
[ ] Chore (no impact to binary, e.g. .gitignore, formatting, dropping support for older tooling)
[ ] Release

API Impact

[ ] Public API: New feature (new methods and/or new fields)
[x] Public API: Breaking change (in general, breaking changes should only impact the next api_version)
[ ] libxrpl change (any change that may affect libxrpl or dependents of libxrpl)
[ ] Peer protocol change (must be backward compatible or bump the peer protocol version)

Before: sending an invalid account or asset to amm_info RPC method while other parameters are not set as expected would result in rpcINVALID_PARAMS error. This behaviour is retained in API version 2
After:  sending an invalid account or asset to amm_info RPC method while other parameters are not set as expected will result in rpcISSUE_MALFORMED or rpcACT_MALFORMED error. This behaviour is new in API version 3
This resolves https://github.com/XRPLF/clio/issues/1157

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

Comparison is base (e74cb35) 61.51% compared to head (99ea4fe) 61.51%.
Report is 1 commits behind head on develop.

Files
Patch %
Lines

src/ripple/rpc/handlers/AMMInfo.cpp
77.77%
0 Missing and 2 partials :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #4924   +/-   ##
========================================
  Coverage    61.51%   61.51%
========================================
  Files          797      797
  Lines        70157    70164    +7
  Branches     36261    36264    +3
========================================
+ Hits         43155    43162    +7
+ Misses       19757    19754    -3
- Partials      7245     7248    +3

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

this is good to merge - note it preserves the current behaviour in API version 2 and adds a test for it.

@godexsoft Yes, it should be merged today.

@Bronek this still requires [beta_rpc_api] to be set to 1 in config. Don't we want this to be enabled by default as the maximum allowed version yet? What's the plan for the switch if any?

this still requires [beta_rpc_api] to be set to 1 in config. Don't we want this to be enabled by default as the maximum allowed version yet? What's the plan for the switch if any?

We never want [beta_rpc_api] to be 1 by default. If we want to declare a particular version of the API as done, then we make that version supported by increasing apiMaximumSupportedVersion and then we open up a "new" beta version by incrementing apiBetaVersion. apiBetaVersion should probably always be one more than apiMaximumSupportedVersion.

this still requires [beta_rpc_api] to be set to 1 in config. Don't we want this to be enabled by default as the maximum allowed version yet? What's the plan for the switch if any?

We never want [beta_rpc_api] to be 1 by default. If we want to declare a particular version of the API as done, then we make that version supported by increasing apiMaximumSupportedVersion and then we open up a "new" beta version by incrementing apiBetaVersion. apiBetaVersion should probably always be one more than apiMaximumSupportedVersion.

I did not mean to have the beta enabled by default, that would be silly. I mean to have v3 as the new maximum version. I guess my wording was a little off 🔢
In Clio we will start treating v3 as the maximum (but not default) version in one of the next releases just so we can forward to rippled with v3. But turns out v3 is still in beta so this fix here can't be used unless the operator enables beta or rippled moves on to v3 as the new allowed max version to request.


parse activitysegments from location history

It seems that these are also now present in Location History/Records.json (in fact, its the reason why why the takeouts seem to keep increasing in size for me, my Records.json file is 500MB!)