New chain connector: Cosmos

Add a new chain connector to support Cosmos.
MVP: support Cosmos Hub and ATOM (we can generalise to other chains/tokens at a later point). We should be able to reuse our Tendermint code.

[x] Research which transaction types we want to support
[x] Test setup of Cosmos Hub node (https://hub.cosmos.network/docs/deploy-testnet.html)
[x] Start Cosmos node in Travis
[x] @iov/cosmos package setup
[x] Encoding/decoding
[x] Codec
[x] Connection [MVP]
[x] Connector

Based on modules listed here: https://github.com/cosmos/gaia/blob/master/docs/what-is-gaia.md
Transactions to include:

bank/send: https://github.com/cosmos/cosmos-sdk/blob/master/x/bank/internal/types/msgs.go#L10-L15

Transactions to exclude:

bank/multisend: https://github.com/cosmos/cosmos-sdk/blob/master/x/bank/internal/types/msgs.go#L57-L61
staking/*: https://github.com/cosmos/cosmos-sdk/blob/master/x/staking/handler.go#L16-L41
distribution/*: https://github.com/cosmos/cosmos-sdk/blob/master/x/distribution/handler.go#L12-L31
slashing/*: https://github.com/cosmos/cosmos-sdk/blob/master/x/slashing/handler.go#L10-L24
gov/*: https://github.com/cosmos/cosmos-sdk/blob/master/x/gov/handler.go#L10-L30

@webmaster128 Under which version should CHANGELOG entries appear?

@webmaster128 Under which version should CHANGELOG entries appear?

I suggest collecting them at an extra place (here, wiki, private notes, Confluence, gist) and add them to the first release that publishes a @iov/cosmos package.

@webmaster128 OK to close this issue and open follow-ups for improvements eg RPC support?

👍 We just need to create an overview of what is missing before we can un-private @iov/cosmos. Using the chain IDs from https://github.com/ChainAgnostic/CAIPs/issues/5 is one open thing. Balance subscriptions would be needed for wallet integration.


[ DEVCONTAINER ]dev & build environment

[x] add devcontainer config

so windows user could build too


SQL clauses on the resulting object of a subquery joined into a table are evaluated on the client.

Hello,
I am not sure if the title is very clear but I have an issue with SQL translation : every clause that apply on a object that has been created in a sub select query in a join operation in evaluated on the client
I have a complete self-contained example that shows the problem below:
using System;
using System.Linq;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

namespace EFIssues
{
    class ItemA
    {
        public int Id { get; set; }
        public string Test { get; set; }
    }

    class ItemB
    {
        public int Id { get; set; }
        public int ItemAId { get; set; }
    }

    class DtoB
    {
        public int Id { get; set; }
        public int ItemAId { get; set; }
    }

    class TestContext : DbContext
    {
        public TestContext(DbContextOptions<TestContext> options)
            : base(options)
        {
        }

        public DbSet<ItemA> ItemA { get; set; }
        public DbSet<ItemB> ItemB { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var connection = new SqliteConnection("DataSource=:memory:");
            connection.Open();

            var context = new ServiceCollection()
                .AddDbContext<TestContext>(options => options.UseSqlite(connection))
                .AddLogging(o => o.AddConsole())
                .BuildServiceProvider()
                .GetRequiredService<TestContext>();

            context.Database.EnsureCreated();

            var query = (
                from a in context.ItemA
                join b in
                    from b in context.ItemB
                    select new DtoB
                    {
                        Id = b.Id,
                        ItemAId = b.ItemAId
                    }
                    on a.Id equals b.ItemAId
                orderby b.Id // Client eval
                select new
                {
                    b.Id,
                    a.Test
                }).ToList();

            Console.ReadKey();
        }
    }
}

The client eval also happens with a WHERE clause.
This is a major issue for me because I have about 40 queries where I need to repeat the same join sequence over and over to get the same data that will be used as filter criteria. The obvious solution for me was to create a DTO that contains all the criteria and a subquery that gets all of it with the joins and all, and then replace the join sequences in the queries by a single join to that subquery. Also, this subquery will definitely evolve in the future, and I'd be very happy to update it once instead of 40 times.
Further technical details
EF Core version: 2.1.1
Database Provider: example with SQLite 2.1.1, using Npgsql.EFCore 2.1.1 in the real world

EF Test: This is a duplicate of https://github.com/aspnet/EntityFrameworkCore/issues/8107, but we can provide workaround. For example, we believe if you use an anonymous type instead of a DTO, it would translate to the server.

Hello,
Thank you for taking the time to answer, but this is a bit different from the issue you linked because the scenarios you're describing there are actually supported, the problem specifically arises when a join or multiple from queries are involved.
Using an anonymous type instead yields the same client-side evaluation and isn't a good workaround anyway, since the initial objective was to move the subquery into its own method, and you can't return an anonymous type from a method.

Translation for this case is indeed blocked even when anonymous type is used in the middle of the query, due to https://github.com/aspnet/EntityFrameworkCore/issues/8094. The workaround currently is to only use anonymous type when you are not binding to it afterwards (i.e. in final projection).
If the entire query gets translated, we won't pull any additional data from db so perf impact should be small. E.g.
var query = from a in ctx.ItemA
			join b in ctx.ItemB on a.Id equals b.ItemAId
			orderby b.Id
			select new
			{
			    b.Id,
			    a.Test
			};

produces:
SELECT [b].[Id], [a].[Test]
FROM [ItemA] AS [a]
INNER JOIN [ItemB] AS [b] ON [a].[Id] = [b].[ItemAId]
ORDER BY [b].[Id],


Pastanaga UI styling for folder contents

Fixes #1328. Updating the icons to the latest Pastanage Icons. @sneridagh @tisto

@iFlameing btw, just saw you are working on a fork. It's better you use a local branch in the main Volto repo.

This pull request moved to this link https://github.com/plone/volto/pull/1343


report metrics should downloable in csv format

Basically want to make csv versions of the tables and graphs that are downloadable when you click an icon or text.

Appears to be non-trivial to get the data from bokeh and into a csv. Maybe it should be a link going back to the database anyways. In any case, not going to happen for initial beta.

Should be possible to pull the data directly from the plots w/ javascript. See https://github.com/bokeh/bokeh/tree/master/examples/app/export_csv

That doesn't seem so bad after all. It looks easy enough that I am concerned about why bokeh doesn't directly support it.

closed in #321


[BlockList] Don't share the SourceManager in BlockListStore

BlockListStore doesn't need to keep the buffer after the block-list is parsed. Don't share the same source manager as the compilation so it doesn't need to make sure the buffer is valid during the entire duration of the compilation.
rdar://137448231

preset=asan
@swift-ci Please test with preset

@swift-ci please smoke test


[Sorting List] Mark the sorting criteria

Actual behaviour
After sorting the results of a search, there is no way to identify the sorting criteria.
Expected behaviour
For instance, add a marker in the list of sorting criteria.
Versions
Focus-core: 0.12.1
Focus-components:  0.8.4

https://github.com/get-focus/focus-search/issues/30


deploy-all deploys livy and livy for spark3 twice

This is the current state of deploy-all.yml playbook :
...
- import_playbook: deploy-spark.yml
- import_playbook: deploy-livy.yml
- import_playbook: deploy-spark3.yml
- import_playbook: deploy-livy-spark3.yml
...

But deploy-spark.yml already deploys livy, and deploy-spark3.yml already deploys livy for spark3.
This should be enough :
...
- import_playbook: deploy-spark.yml
- import_playbook: deploy-spark3.yml
...

Since we're deploying per service, I think the fix should be to remove the livy deployments from the spark playbooks, and keep the livy playbooks.

I agree, remove livy deployments from spark playbooks and keep livy playbooks inside deploy-all.

Thanks for your feedbacks, will make changes accordingly.


Preserve query and fragment part of the URI while redirecting for relative paths (swagger doc)

Description

Ported from cardano-wallet c49e93a350e8294a380385258b9232df2d00ac20 to

lib/src/Pos/Util/Swagger.hs (for the node monitoring api docs)
wallet/src/Cardano/Wallet/API/V1/Swagger.hs (for the wallet docs)

Todo:

[x] Update changelog
[x] Fill in QA

Linked issue
input-output-hk/cardano-wallet#299
Type of change

[x] 🐞 Bug fix (non-breaking change which fixes an issue)
[ ] 🛠 New feature (non-breaking change which adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[ ] ~I have read the style guide document, and my code follows the code style of this project.~
[ ] ~If my code deals with exceptions, it follows the guidelines.~
[ ] ~I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.~
[x] CHANGELOG entry has been added and is linked to the correct PR on GitHub.

 See input-output-hk/cardano-wallet#306.
How to merge
Send the message bors r+ to merge this PR. For more information, see
docs/how-to/bors.md.

bors r+


What are the 10-12 water quality parameters?

Is there a way I can easily figure them out?

Extracted from table in Tristar report - saved in repo as variables-by-station.csv.
Note they vary by station


How to CopyFromBitmap and CopyToBitmap on Lazarus?

Hi,
I hope this message find you well.
The support for these function has been dropped on Lazarus:
CopyFromBitmap
CopyToBitmap
Is there an alternative to copy between TBitmap and TImage32?

  Image1.Picture.Bitmap.PixelFormat:= pf32bit;
  Image1.Picture.Bitmap.SetSize(img.Width, img.Height);
  img.CopyToDc(Image1.Picture.Bitmap.Canvas.Handle);

  img.SetSize(Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height);
  img.CopyFromDC(Image1.Picture.Bitmap.Canvas.Handle, img.Bounds);
  img.saveTofile('test.bmp');

Thank you :-)

Hi,
I hope this message find you well.
Is there an alternative for non-windows Lazarus?

procedure CopyImage32ToBitmap(img: TImage32; bmp: TBitmap);
var
  ms: TMemoryStream;
  bmpFormat: TImageFormat_BMP;
begin
  ms := TMemoryStream.create;
  bmpFormat := TImageFormat_BMP.Create;
  try
     bmpFormat.IncludeFileHeaderInSaveStream := true;
     bmpFormat.SaveToStream(ms, img);
     ms.Position := 0;
     bmp.LoadFromStream(ms, ms.Size);
  finally
    ms.Free;
    bmpFormat.Free;
  end;
end;

procedure CopyBitmapToImage32(bmp: TBitmap; img: TImage32);
var
  ms: TMemoryStream;
  bmpFormat: TImageFormat_BMP;
begin
  ms := TMemoryStream.create;
  bmpFormat := TImageFormat_BMP.Create;
  try
    bmp.SaveToStream(ms);
    ms.Position := 0;
    bmpFormat.LoadFromStream(ms, img);
  finally
    ms.Free;
    bmpFormat.Free;
  end;
end;

Thanks you for your answer.
Maybe some people uses this library to load and save images into files,  however I believe that most people want to load images into their GUI. Most GUIs are made of TControls, some are custom, but most are standard or inherited from standard TControls. For instance, our custom button control (showing svg images) inherit from TBitButton, which accepts TBitmap.
This is just a little context to explain why I think that converting from and toward TBitmap (or TPictures) makes the cornerstone of this library.
Few months ago, we had CopyToBitmap and CopyFromBitmap for this purpose, but since latest changes, they are only usable under VCL Windows, which makes them mostly useless.
Saving into a stream and re-loading it could possibly work but:

BMP does not accept transparency, consequently, your example above will not work most of the time.
PNG could work, but TPngImage is not supported by Lazarus, and PNG format is not supported by Delphi.
PNG image compression, creating the headers, color tables, etc. Saving into a stream is a huge overload for something that is probably called quite few times for drawing the GUI.

IMHO, it would be great to have something cross-platform, something like CopyToBitmap and CopyFromBitmap. Working on Delphi, Lazarus, Windows/OSX/Linux, etc.
What, would be really fantastic :-)
I created the following functions to make the new CopyToBitmap compatible with the previous overload:
 {$IF DEFINED(VCL)}
class procedure ClearBitmapToTransparent(ABitmap: TBitmap);
var
  x, y: Integer;
  p: PRGBQuad;
begin
  if not Assigned(ABitmap) then Exit;

  // Ensure the bitmap format supports transparency
  ABitmap.PixelFormat := pf32bit;

  // Access the raw bitmap data
  ABitmap.Handle;

  // Loop through all pixels
  for y := 0 to ABitmap.Height - 1 do
  begin
    p := ABitmap.ScanLine[y];
    for x := 0 to ABitmap.Width - 1 do
    begin
      p^.rgbReserved := 0;
      p^.rgbRed := 0;
      p^.rgbGreen := 0;
      p^.rgbBlue := 0;
      Inc(p);
    end;
  end;

  ABitmap.Modified := True;
end;
{$ELSE}
  // TODO something similar for LCL
{$ENDIF}

class procedure CopyToBitmap(origImg32: TImage32; destBmp: TBitmap);
begin
  if Assigned(destBmp) then
  begin
    {$IF DEFINED(VCL)}
      destBmp.SetSize(origImg32.Width, origImg32.Height);
      destBmp.PixelFormat := pf32bit;
      destBmp.AlphaFormat := afDefined;
      ClearBitmapToTransparent(destBmp);
      origImg32.CopyToDc(destBmp.Canvas.Handle, 0, 0, origImg32.HasTransparency);
    {$ELSE}
      // TODO Non-Windows or Non-VCL needs fix on Image32
    {$ENDIF}
  end;
end;

Maybe some people uses this library to load and save images into files, however I believe that most people want to load images into their GUI. Most GUIs are made of TControls, some are custom, but most are standard or inherited from standard TControls. For instance, our custom button control (showing svg images) inherit from TBitButton, which accepts TBitmap. Unfortunately, most of Delphi/Fmx/Lazarus works with TBitmaps, and consequently, code that could need Image32 soon or late needs to convert those TImage32 to TBitmap. This is just a little context to explain why I think that converting from and toward TBitmap (or TPictures) makes the cornerstone of this library.

I agree that it's very likely that most users will use this library in combination with either FMX or VCL. However I don't want the library to be tied to either of these, but I do also want the library to be easy to use.

Few months ago, we had CopyToBitmap and CopyFromBitmap for this purpose, but since latest changes, they are only usable under VCL Windows, which makes them mostly useless.

No, certainly not useless (though perhaps useless to you 😁).
Nevertheless, I will concede that removing these 2 methods may not have been well thought out.

Saving into a stream and re-loading it could possibly work but:

BMP does not accept transparency, consequently, your example above will not work most of the time.

Yes, but that's because there's a bug in TImageFormat_BMP.LoadFromStream in Img32.Fmt.BMP.pas (and I'm about to upload the fix for that).

PNG could work, but TPngImage is not supported by Lazarus, and PNG format is not supported by Delphi.
PNG image compression, creating the headers, color tables, etc. Saving into a stream is a huge overload for something that is probably called quite few times for drawing the GUI.

However the TBitmap class doesn't directly support these formats.

IMHO, it would be great to have something cross-platform, something like CopyToBitmap and CopyFromBitmap. Working on Delphi, Lazarus, Windows/OSX/Linux, etc.

I agree, and I'll see if I can fix that. 🤞

Should be fixed now 😁.

That was quick! Thank you :-)
I created a PR to fix few minor compatibilities with Lazarus.
Also, transparent bitmap was black without setting up pf32bit and afDefined.
After this, it seems to work well (not yet fully tested, but at least the majority) on all 3 platforms I am working on: VCL+Windows, LCL+Windows, and LCL+Linux.
After this, I still get a glitch in some cases on VCL:
      bmp := TBitmap.Create();
      img32 := TImage32.Create();
      img32_2 := TImage32.Create();

      img32.LoadFromFile('button_logo.png');
      img32.CopyToBitmap(bmp);
      bmp.SaveToFile('test1.png'); //Comment this out, and then, test2.png is ok.
      img32_2.CopyFromBitmap(bmp);
      img32_2.SaveToFile('test2.png');
      FreeAndNil(img32);
      FreeAndNil(img32_2);
      FreeAndNil(bmp);

I wonder if you know the underlying reason for this?


Convert images or gifs to ascii art

We should use this npm package: https://www.npmjs.com/package/image-to-ascii to convert images to ascii.
We might even be able to do ascii gifs somehow, that might be neat.
Maybe we could convert the gif to images, convert images to ascii, convert ascii back to images, then make the images into a new gif, then post the gif?
https://www.npmjs.com/package/gif-frames
https://www.npmjs.com/package/gifencoder

There is a branch for this, but there isn't any way to do this in pure ascii due to the discord message character limit :(


Is it expected that dataframe.row behaves differently for single and multiple index values?

Dataframe.row gives your result as a new vector if you specify a single row index but as a dataframe if you provide multiple row indexes. Is that expected? Seems inconsistent?
[32] pry(Daru::Core::Query)> data_frame.row[0]
=> #<Daru::Vector(22)>
                                         0
                   ID              8517337
          Case Number             HV194652
                 Date 03/12/2012 02:00:00
                Block   027XX S HAMLIN AVE
                 IUCR                 1152
         Primary Type   DECEPTIVE PRACTICE
          Description ILLEGAL USE CASH CAR
 Location Description ATM (AUTOMATIC TELLE
               Arrest                false
             Domestic                 true
                 Beat                 1031
             District                  010
                 Ward                   22
       Community Area                   30
             FBI Code                   11
                  ...                  ...
[33] pry(Daru::Core::Query)> data_frame.row[0,1]
=> #<Daru::DataFrame(2x22)>
                    ID Case Numbe       Date      Block       IUCR Primary Ty Descriptio Location D     Arrest   Domestic       Beat   District       Ward Community    FBI Code X Coordina Y Coordina       Year Updated On   Latitude  Longitude   Location
          0    8517337   HV194652 03/12/2012 027XX S HA       1152 DECEPTIVE  ILLEGAL US ATM (AUTOM      false       true       1031        010         22         30         11    1151482    1885517       2012 02/04/2016 41.8417380 -87.719605 (41.841738
          1    8517338   HV194241 03/06/2012 102XX S VE       0917 MOTOR VEHI CYCLE, SCO     STREET      false      false       0511        005          9         49         07    1181052    1837191       2012 02/04/2016 41.7084956 -87.612580 (41.708495```

Yes, it is deliberate inconsistency. Ruby's Array works exactly the same way:
a = (1..5).to_a
# => [1, 2, 3, 4, 5]
a[1]
# => 2
a[1,2]
# => [2, 3]

In simple functionality, we always try to follow Ruby's default collections behavior. For rubyists, it will produce least surprise, even despite the inconsistency.

@db579 - Daru a #to_df method you can use if you want to ensure that the result is always a dataframe.  df[:a] will return a vector, but df[:a].to_df will return a dataframe with a single vector.  Likewise df.to_df returns df, so if you are dynamically selecting vectors and there's a chance you may only select one, it's safe to add #to_df.


Display boot menu on booting after upgrading to 2.9

Describe the bug
My startup disk is BOOTCAMP, computer boot from windows by default without boot menu. But after upgrading to 2.9, it displays boot menu on booting everytime. But after I set the startup disk as MacintoshHD, it boot without boot menu. I didn't check the "show boot menu" option when installing HaC Mini.  How can I fix this?
Expected behavior
Computer boot from windows by default without boot menu
Configuration

HaC Mini version [e.g: 2.0]: 2.9
OSX version [e.g: 10.14.6]: 10.15.5
NUC model [e.g: NUC8i7HNK]: NUC8i7HNK

Modifications
none

Can you try setting startup disk to BOOTCAMP again? Also older instructions said to modify the BCD entry. That is no longer needed and if you did that you should revert the change. If you didn't do it, then you don't need to do anything.

Can you try setting startup disk to BOOTCAMP again? Also older instructions said to modify the BCD entry. That is no longer needed and if you did that you should revert the change. If you didn't do it, then you don't need to do anything.

I tried setting startup disk to BOOTCAMP again, it didn't work. I think the reason is the BCD entry, I used to set {bootmgr} path to \EFI\OC\OpenCore.efi with bcdedit. How to revert the change, please?

Try Bcdedit /set {bootmgr} path \efi\microsoft\boot\bootmgfw.efi

Try Bcdedit /set {bootmgr} path \efi\microsoft\boot\bootmgfw.efi

It works. Thank you!


Allow Matrix diagonal as mutable elements

We could reduce the number of places in the code with get_unchecked calls if we were able to return a MatrixSlice and a MatrixSliceMut that consists of a diagonal.
This would only require setting row_stride equal to cols() + 1, so that the column is incremented each time. We should have assert! checks to ensure that the inputs are good, then use get_unchecked_mut if all is well.

I like this idea - though it is possible that it may be unsafe in places (due to assumptions in other areas of the code). It may be fine but we'd need to check carefully that none of our iterators etc. broke in any weird cases.

We should have assert! checks to ensure that the inputs are good, then use get_unchecked_mut if all is well.

I'm not too sure what you meant by this part though? If all worked as expected we should be able to access, iterate, etc. the elements of the slice in the same way as we would normally.

I was thinking about this too, the other day. I think we could perhaps take it one step further, by letting us take slices also from off-diagonals? I.e., we introduce some convention to number the diagonals, and then to get the kth diagonal, you would call something like mat.diagonal(k). Or maybe mat.diagonal() should be reserved for the standard diagonal, and mat.off_diagonal(k) would be better. I'm just thinking out loud here. MATLAB has the following convention, by the way:

D = diag(v,k) places the elements of vector v on the kth diagonal. k=0 represents the main diagonal, k>0 is above the main diagonal, and k<0 is below the main diagonal.

@AtheMathmo: In terms of checking carefully that none of our iterators break in weird cases, I think that's an excellent opportunity to write more tests for said iterators!

Thinking of a function signature like:
impl Matrix ...
    pub fn diag_slice_mut(&self mut, start_row: usize) -> MatrixSliceMut;

This would allow us to get diagonals aside from just the main diagonal. Basically what @Andlon just said. I'm not convinced we should follow MATLAB's convention, but let's look at a few other examples first and see what would be the most elegant for this library.

@andrewcsmith: Agree. Do note, however, that in your case it's impossible to slice above the main diagonal, since usize cannot be negative! Also, a negative start_row would be a bit strange, no...?

Right, I'm not tied to this either. Seems that (no surprise) numpy also uses k so maybe that's the way to go.

It doesn't play very nice with our current usize-based indexing though... Slightly worried we'll introduce weird corner cases from this. Any thoughts?

I do think this is really valuable functionality - and I think it is worth working on. But a few more thoughts/concerns we should address:

We'd like to have this in BaseMatrix ideally. But how do we handle calling this/these functions on a diagonal slice?
On a similar note to the above - I have pretty liberally assumed that a MatrixSlice is a contiguous (in the 2-d sense) block of data. This may break things too.
We'd want to make clear that this diag has n rows and n cols (where n = min(rows, cols)). But having no. elements != n*n will probably cause some breakage.

If we did want to have a single function for getting the diagonal (which I think we do) - maybe an enum is an appropriate way to go?
enum Diag {
    Above(usize),
    Below(usize),
    [Main]?
}

(Forgive the naming)

I don't think that k is an index if we don't treat it like one. In the case of matlab etc. k is an offset, not an index.
I agree, slice is not the right word for this. In my opinion, slice should pretty much always mean contiguous. (At least the MatrixSlice has contiguous rows.) Instead, perhaps we should just use an iterator.
My main concern is making sure we have a way to iterate over the elements mutably, rather than iterate over the indices and use get_unchecked. If we can reduce the scope of the unsafe access and use an iterator instead it will be an improvement. Might be worthwhile adding some benchmarks to prevent regressions.

I think an Iterator is a better idea - mostly because it will be a lot easier to implement. Using the current MatrixSlice would be near impossible I think - all the arithmetic would also be prone to errors.
I think adding a Diagonal(Mut) iterator which can be used to iterate over the (off-)diagonal elements is a smart move. We can retain existing functionality by collecting the iterator - though we'll probably want to force a breaking change on the diag function (so it returns this iterator instead of a Vec). We can modify the from_diag function to take an Into<Diagonal> (and implement this for Vec/&[T]).
This seems a lot more attainable (and less frightening) to me.

@AtheMathmo: Definitely agree that an iterator is the way to go here!

By the way, one thing that's very useful about how Numpy and MATLAB models super/sub-diagonals, is that by having a single number, you can write code that, for example, scales elements in a three-diagonal matrix:
// Might not work exactly as I've written here, but I hope you get the point!
let diagonals = (-1 .. 1).flat_map(|k| mat.diag_mut(k));
for ref mut element in diagonals {
    *element *= scale_factor;
}

So there definitely is some merit to this convention.

I think I understand - though I'm not sure that the borrow checker would be happy with that? I think that multiple mutable references to mat would be an issue that we couldn't get around.

Ah, good catch! That's a shame. My example also has the wrong range (it will only include -1 and 0), by the way.

Anyway, I think my point still holds, as you can rewrite that particular example to make the borrow checker happy.
// The -1 .. 2 range doesn't look so intuitive though
for k in -1 .. 2 {
    for ref mut element in mat.diag_mut(k) {
        *element *= scale_factor;
    }
}

You can! It's possible that the compiler is smart enough to know that one borrow ends before the next begins in the flat_map too actually.
I'm pretty sold on the iterator - if no one else wants to I may try to get a PR in within the next 24 hours (or less). I'll stick with non-breaking changes for now though.

What, really? Wow, rustc never ceases to amaze! That's really cool, actually :) I'm all in favor!

Ah, sorry maybe I was unclear. I haven't tested it - I just thought it might be possible :) (and would indeed be amazing).

Oh, heh, all right. I thought perhaps you'd tried a simplified example with placeholders already. Well, in any case, I suppose my other proposed alternative is almost as good.

I have a WIP PR in place for this. There are still some questions to resolve that we discussed here.


[BUG] Primary: ERROR	failed to generate workload	{"error": "json: cannot unmarshal array into Go struct field .Contracts.Abi of type string"}

Describe the bug
Run the etherum example at Master branch
To Reproduce
Steps to reproduce the behavior:

./scripts/sample/start_testnet.sh
./diablo primary -c scripts/sample/workloads/sample_contract_store.yaml -cc scripts/sample/blockchain-configs/ganache-using-keyfile.yaml -a "<IP_ADDRESS>:8323" --level DEBUG
./diablo secondary -m ":8323" -c scripts/sample/workloads/sample_contract_store.yaml -cc scripts/sample/blockchain-configs/ganache-using-keyfile.yaml --level DEBUG --timeout 2

Expected behavior
Run succssfully.
Screenshots
Primary:
2022-09-19T15:02:05.395+0800	INFO	Secondary 1 / 1 connected	{"Addr:": "<IP_ADDRESS>:37920"}
2022-09-19T15:02:05.395+0800	DEBUG	SendSync	{"len": 9}
2022-09-19T15:02:05.398+0800	DEBUG	GOT REPLY FROM <IP_ADDRESS>:37920
2022-09-19T15:02:05.398+0800	INFO	Benchmark secondaries all connected.	{"secondaries": 1}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	DEBUG	tps interval	{"total": 5, "thread": 5}
2022-09-19T15:02:05.399+0800	INFO	Generating workload	{"workloadType": "contract", "threadsTotal": 1, "totalTransactions per worker": 25}
2022-09-19T15:02:05.422+0800	ERROR	failed to generate workload	{"error": "json: cannot unmarshal array into Go struct field .Contracts.Abi of type string"}
2022-09-19T15:02:05.422+0800	DEBUG	Closing Secondary 0 @ <IP_ADDRESS>:37920
Secondary
2022-09-19T15:02:05.394+0800	DEBUG	Loaded accounts	{"accounts": 2000}
2022-09-19T15:02:05.395+0800	WARN	Overwriting config timeout (0) with flag 2
2022-09-19T15:02:05.395+0800	DEBUG	Connection OK	{"ADDR": ":8323"}
2022-09-19T15:02:05.395+0800	INFO	Secondary init
2022-09-19T15:02:05.395+0800	DEBUG	Performing Initial Read
2022-09-19T15:02:05.395+0800	DEBUG	Received Command Message	{"CMD": "AQAAAAAAAAAB"}
2022-09-19T15:02:05.395+0800	INFO	Got command from primary	{"CMD": "PREPARE"}
2022-09-19T15:02:05.398+0800	DEBUG	Connect and Init of workload handler and client interface OK	{"ID": 0}
2022-09-19T15:02:05.398+0800	DEBUG	OK sent to master
2022-09-19T15:02:05.398+0800	DEBUG	Performing Initial Read
2022-09-19T15:02:05.422+0800	WARN	failed to read	{"err": "EOF"}
2022-09-19T15:02:05.422+0800	DEBUG	Closing Connection to primary
Desktop (please complete the following information):

OS:Ubuntu 21

go version: go1.17 linux/amd64
-- npm: npm: '8.5.5',
node: '17.9.0',
-- Ganache CLI v6.12.2 (ganache-core: 2.13.2)

Additional context
Add any other context about the problem here.

Hi @KunPengRen
Thanks for submitting the bug.
This looks like an issue with the solidity version, but we might need a few more things before we can triage; what is your solidity version?
solc --version

In the sample https://github.com/NatoliChris/diablo-benchmark/blob/master/docs/sample-example.md
One of the requirements is solidity version 0.7.5, this is primarily because the ABI coder for 0.8.0+ changed the interface, which made it incompatible with the way that solidity contracts and invocation functions are generated in the workload.
Unfortunately this does mean in the master branch release, the sample will only run with that specific solidity version (0.7.5).
https://github.com/ethereum/solidity/releases/tag/v0.7.5
Or get the binary: https://github.com/ethereum/solc-bin
Please note, we are looking to deprecate the master branch, since the majority of the development has been focused on v2 and with preparations for a more stable release.
Right now, the master branch was a last-minute migration from a different VCS due to limitations in the availability.

Hi @NatoliChris ,Thanks for your reply. After I change the solc to 0.7.5. The system work ok. Thank you again.


Unable to find and load 'GoogleMaps.bundle' for Google Maps SDK for iOS after upgrade to 2.4.6

I'm submitting a ...  (check one with "x")

[ ] question
[x] any problem or bug report

OS:  (check one with "x")

[ ] Android
[x] iOS
[ ] Browser

cordova information:  (run $> cordova plugin list)
cc.fovea.cordova.purchase 7.1.3 "Purchase"
cordova-plugin-camera 4.0.3 "Camera"
cordova-plugin-crop 0.3.1 "CropPlugin"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-email-composer 0.8.15 "EmailComposer"
cordova-plugin-facebook4 2.2.0 "Facebook Connect"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-firebase 1.0.5 "Google Firebase Plugin"
cordova-plugin-googlemaps 2.4.6 "cordova-plugin-googlemaps"
cordova-plugin-googleplus 5.3.0 "Google SignIn"
cordova-plugin-ionic-keyboard 2.0.5 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 1.1.19 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
ionic-plugin-keyboard 2.2.1 "Keyboard"

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)
@ionic-native/core : "^4.12.0"
@ionic-native/google-maps : "^4.9.1"

Current behavior:
In XCode, when I run the app with real device, it gives me errors as such:
2018-09-27 13:43:42.990837-0400 AppName[75314:27829103] WARNING:
Unable to find and load 'GoogleMaps.bundle' for Google Maps SDK for iOS.
This may be a sign that you've forgotten to include a resources bundle in your
'Copy Bundle Resources' build phase. As this bundle contains important resources,
 you may encounter missing images, translations and other incorrect behavior.

2018-09-27 13:43:43.001105-0400 DealCrunch[75314:27829103] *** Terminating
app due to uncaught exception 'GMSServicesException', reason: 'Google Maps SDK
for iOS requires GoogleMaps.bundle to be part of your target under 'Copy Bundle Resources''

Duplicated #2434


Generate child components without higher order components?

Hi there, from the docs it seems that the only way to use wrapped child components is via higher order components and applyHOC(). I tried it and was able to get it to work... but it took many hours and in general I find the HOC approach very cumbersome and unintuitive. Sadly if HOC's are the only way to generate child components I'm afraid it'll be a dealbreaker for my use case.
I was wondering if there is any way to do a more "traditional" approach to using wrapped child components? Something like the following example. I know there is an internal validation that will fail if I try this. Is there a way to perhaps turn off the validation (of course I would take care to only return the proper elements)?
Sandbox link: https://codesandbox.io/s/cool-sara-uqgqe?file=/src/App.js
const MyMenuItem = (text) => <MenuItem>{text}</MenuItem>
const App = () => (
  <Menu>
       <MyMenuItem text="hello" />
  </Menu>
)

// returns the following validation error...
The permitted children inside a Menu or SubMenu are MenuDivider, MenuHeader, MenuItem, FocusableItem, MenuRadioGroup, SubMenu. If you create HOC of these components, you can use the applyHOC or applyStatics helper, see more at: https://szhsin.github.io/react-menu/docs#utils-apply-hoc

thanks in advance.

Hi @gang-qiu-social-chorus , you don't need applyHOC() for your use case because you are not creating an HOC of MenuItem.
The validation is to ensure MenuItem is a DIRECT child of Menu in React component tree. Menu communicates with MenuItem for correctly maintaining a number of state (hover/focus/active) and keyboard navigation. You are free to put anything wrapped inside MenuItem as children. Think of MenuItem acts of a middle man between Menu and its children(your code) and helps encapsulate a lot of details that a menu library should be doing.
So, instead of doing:
const MyMenuItem = (text) => <MenuItem>{text}</MenuItem>
const App = () => (
  <Menu>
       <MyMenuItem text="hello" />
  </Menu>
)

You need to do:
const AnyComponent = ({ text }) => <>{text}</>
const App = () => (
  <Menu>
      <MenuItem>
          <AnyComponent text="hello" />
      </MenuItem>
  </Menu>
)

This should not be cumbersome if you create menu items using Array.map.
If you create menu items individually and don't want to repeat the outer <MenuItem> every time, just a little tweak of your pattern and make the function return MenuItem rather than a new component wrapping MenuItem inside:
const myMenuItem = (text) => <MenuItem>{text}</MenuItem>
const App = () => (
  <Menu>
       {myMenuItem('hello')}
       {myMenuItem('world')}
  </Menu>
)


shadows arent adapting to the classname with the switch

related to #357, the adjustments arent propagating to where they're used. fixed with *, which would also allow tinting and other things to be easier.

related #249


Request: allow for 3 channels on input shape (for RGB images)

I like the calculator!
A common convolution input is RGB images (3 color channels).  It would be cool to have the calculator's input.shape allow for 3 channels.  Cheers!

You can input custom numbers in the fields! Only the sliders move by square numbers.
Maybe this is not what you mean?  And maybe this can be made more clear in the UI somehow.

Ah I see that now, yeah I was just moving the slider (which doesn't index to 3, as you said).
The up/down arrows on the number only show up if you move the mouse over the number, which I didn't think to try.  I see that's an option now, or typing in the number.
I do agree the UI could make this more obvious, regardless, feel free to close this out 👍


Add two methods to BigQueryBaseCursor:

get_method, which allows access to the schema of a given BigQuery table.
get_tabledata, which allows access to all the data in a given table.

+1 LGTM


CoL - Add basic metadata

Feature or enhancement
For now we'll just include the project title, date issued, and TW version.
Location
/tasks/exports/coldp
Screenshot, napkin sketch of interface, or conceptual description
No response
Your role
No response

https://github.com/SpeciesFileGroup/taxonworks/commit/0d90689e9f5911222a25d2f821cc2419c4391443


Unable to access Deployments and Namespace practice tests

Hi ,
I am unable to access deployments and Name space practice tests,pls do the needful
Thanks and Regards
Balaji

pls find the error

Hi @sbalu300
I realise this is a very old issue and is probably long since solved, however I was tasked with closing off all old issues following the upgrade.
For issues such as this, reach out to<EMAIL_ADDRESS>Thanks


Update dockerfile to add curl

It would be great to have curl included in this docker image

Hi @absentio, any reason to add this?

Could be useful to use in exec_publish or exec_pull

Fair, thank you!


Investigate whether a compiled SpectatorView.WinRTHelpers binary can be checked in to the repo.

We should also assess whether its possible to support OpenCV dlls and Blackmagic/elgato dependencies

This dll is needed for .NET scripting backend, it will go away if we move purely to Unity 2019/IL2CPP


Time sync issue in Windows?

Hi all, I too have been struggling to get the docker command to run under windows. Issue #7 had the answer in using c:\users<user>\nodemcu-firmware path on the host os (with //c/Users//nodemcu-firmware in the docker command), this works whereas other paths on the host os do not. I think it is something to do with automatic shares for c:\Users created by virtualbox guest additions, but not sure exactly why.
After figuring that out, I could run the build, however it always fails at some point through with a similar output to;

xtensa-lx106-elf-ar ru .output/eagle/debug/lib/liblibc.a .output/eagle/debug/obj/c_ctype.o .output/eagle/debug/obj/c_math.o .output/eagle/debug/obj/c_stdio.o .output/eagle/debug/obj/c_stdlib.o .output/eagle/debug/obj/c_string.o
xtensa-lx106-elf-ar: creating .output/eagle/debug/lib/liblibc.a
xtensa-lx106-elf-ar: unable to rename '.output/eagle/debug/lib/liblibc.a'; reason: Operation not permitted
make[2]: *** [.output/eagle/debug/lib/liblibc.a] Error 1
make[2]: Leaving directory /opt/nodemcu-firmware/app/libc' make[1]: *** [.subdirs] Error 2 make[1]: Leaving directory /opt/nodemcu-firmware/app'
make: *** [.subdirs] Error 2

It's not always the same file that it stops on (sometimes it is cjson.a or whatever), but it always is the renaming that drops the ball.
I think it is something to do with the virtual folder mount, as I also sometimes get time sync warnings like such and such file has timestamp 0.063s in the future. Anyone able to help here?

I'd surprise me if it was related to the time sync warning you mentioned. The error message "Operation not permitted" is actually pretty clear.
If you run the Docker command as usual but append " /bin/bash" you get a prompt inside the container that Docker created and started (based on the image). It allows you to poke around and run a few tests e.g. doing file system operations such as creating, removing and renaming files. That might give you a few more hints.

Thanks Marcel.
I did actually get it going - but I have to admit I have no idea why the steps I took worked, they don't make a lot of sense.
What I had to do was copy the nodemcu firmware from the host os filesystem into the default docker vm filesystem (into the opt/nodemcu-firmware location). I still needed the -v option on the docker command, and still needed the firmware source in the host win7 filesystem under c:\Users etc. and it is in the host fs that the resultant bin files were created (as per normal). As I said, I have no idea why doing this had any effect - if anything I thought it would make  the mount part fail, but nevertheless this is what I did, and this is what let the build continue to the end and successfully produce output files.


Added Free Certified Course on Game Development by Michigan State University

What does this PR do?
Add resource
For resources
Description
If you love games and want to learn how to make them, then this course will start you down that path. Making games is a creative and technical art form. In this course you will familiarize yourself with the tools and practices of game development and well as the process. You will get started developing video games using industry standard game development tools, including the Unity 2020 game engine. At the end of the course you will have completed two hands-on projects, including an Intro to Unity project and a 2D Shooter game, and will be able to leverage an array of game development techniques to create your own basic games.
Why is this valuable (or not)?
The course extensively covers the entire working process of game development and helps beginners understand how to effectively use the Unity Game Development Service to create amazing games.
How do we know it's really free?
You can easily go to the course on Coursera and click on 'Enroll for free', Audit this course' to access it free of cost
For book lists, is it a book? For course lists, is it a course? etc.
It is a course
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Is this course time limited? i.e. would this need to be removed in 6 months? If so, we shouldn't add it.

No, it's not limited. Please do let me know what indicated the same to you incase I missed something

Duplicated of #7479

Duplicate of ##7478


Shortened

Shortened
Shortened is a framework Javascript and Css
It is being created

I'm not sure what this issue is about.


Api gql-compile not compiling directives

@model Seems to be the only thing to be respected.
@auth Does not seem to make it to build
In Appsync I can manually add the appropriate code e.g @aws_auth(cognito_groups: ["Admin"]) to the queries and they work!
However,  when I add the directive e.g @auth(rules: [{allow: groups, groups:["Admin"]}]).
I can publish just fine, with no errors, but the schema fails to add the appropriate directive in Appsync
To Reproduce
Steps to reproduce the behavior:

amplify add api
Using this schema

type Product @model @auth(rules: [{ allow: groups, groups: ["Admin"] }]) {
  id: ID!
  name: String!
  description: String
}

Run amplify api gql-compile
No Errors
Check build file at amplify/backend/api/{yourapi}/build/schema.graphql

Expected behavior
I'm expecting to see directives like @aws_auth(cognito_groups: ["Admin"]) in the queries.
Desktop (please complete the following information):

OS: Mac
I'm on node version : v11.10.0
amplify cli version : 1.6.8
Javascript

As I get deeper into the tool, I noticed that the directives affect the resolvers that would be in the amplify/backend/api/{yourapi}/build/resolvers/ folder.  I was mistaken in assuming it actually made the changes in the schema.
I do see they change when I run gql-compile.
The issue still remains though, I have default permissions set to ALLOW in appsync, but with the @auth directive above, and no groups associated to my user, I'm able to query the data in listProducts .
I get the desired affects when I manual add the @aws_auth(cognito_groups:... straight to the schema in Appsync.
I'm not sure what I'm missing

Alright, I was finally able to figure this out and I can mark as resolved.
I had to create edit the default resolver and added the $util.unauthorized() code if the group wasn't in the user claim.
My final resolver looks like this...
## [Start] Static Group Authorization Checks **
## Authorization rule: { allow: groups, groups: "["Admin"]" } **
#set( $userGroups = $util.defaultIfNull($ctx.identity.claims.get("cognito:groups"), []) )
#set( $allowedGroups = ["Admin"] )
#set($isStaticGroupAuthorized = $util.defaultIfNull($isStaticGroupAuthorized, false))
#foreach( $userGroup in $userGroups )
  #foreach( $allowedGroup in $allowedGroups )
    #if( $allowedGroup == $userGroup )
      #set( $isStaticGroupAuthorized = true )
    #end
  #end
#end
## [End] Static Group Authorization Checks **

## [Start] If not static group authorized, filter items **
#if( ! $isStaticGroupAuthorized )
  $util.unauthorized()
#end
## [End] If not static group authorized, filter items **

$util.toJson($ctx.result)

So I'm guessing it was always working, but items would return empty instead of unauthorized.
I'm not sure why by default, the resolver doesn't look more like my edit.  It would make more sense for a beginner like myself.


escapeshellarg(): Input string contains NULL byte with anonymous classes

I get this error when running paratest with a test case using anonymous classes.
Running the same suite on phpunit it works.
PHP Fatal error:  escapeshellarg(): Input string contains NULL bytes in /home/jean/projects/compufacil/Backend/vendor/symfony/process/ProcessUtils.php on line 74
PHP Stack trace:
PHP   1. {main}() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/bin/paratest:0
PHP   2. Symfony\Component\Console\Application->run() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/bin/paratest:35
PHP   3. ParaTest\Console\ParaTestApplication->doRun() /home/jean/projects/compufacil/Backend/vendor/symfony/console/Application.php:123
PHP   4. Symfony\Component\Console\Application->doRun() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Console/ParaTestApplication.php:29
PHP   5. Symfony\Component\Console\Application->doRunCommand() /home/jean/projects/compufacil/Backend/vendor/symfony/console/Application.php:192
PHP   6. Symfony\Component\Console\Command\Command->run() /home/jean/projects/compufacil/Backend/vendor/symfony/console/Application.php:844
PHP   7. ParaTest\Console\Commands\ParaTestCommand->execute() /home/jean/projects/compufacil/Backend/vendor/symfony/console/Command/Command.php:259
PHP   8. ParaTest\Console\Testers\PHPUnit->execute() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Console/Commands/ParaTestCommand.php:62
PHP   9. ParaTest\Runners\PHPUnit\Runner->run() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Console/Testers/PHPUnit.php:83
PHP  10. ParaTest\Runners\PHPUnit\Runner->fillRunQueue() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Runners/PHPUnit/Runner.php:37
PHP  11. ParaTest\Runners\PHPUnit\ExecutableTest->run() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Runners/PHPUnit/Runner.php:74
PHP  12. ParaTest\Runners\PHPUnit\ExecutableTest->command() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Runners/PHPUnit/ExecutableTest.php:185
PHP  13. ParaTest\Runners\PHPUnit\ExecutableTest->getCommandString() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Runners/PHPUnit/ExecutableTest.php:214
PHP  14. Symfony\Component\Process\ProcessBuilder->getProcess() /home/jean/projects/compufacil/Backend/vendor/brianium/paratest/src/ParaTest/Runners/PHPUnit/ExecutableTest.php:310
PHP  15. array_map() /home/jean/projects/compufacil/Backend/vendor/symfony/process/ProcessBuilder.php:270
PHP  16. Symfony\Component\Process\ProcessUtils::escapeArgument() /home/jean/projects/compufacil/Backend/vendor/symfony/process/ProcessBuilder.php:270
PHP  17. escapeshellarg() /home/jean/projects/compufacil/Backend/vendor/symfony/process/ProcessUtils.php:74

Fatal error: escapeshellarg(): Input string contains NULL bytes in /home/jean/projects/compufacil/Backend/vendor/symfony/process/ProcessUtils.php on line 74

My test case:
<?php

namespace Fiscal\Service\NFE;

use Fiscal\Model\NFE as NFEEntity;
use ApplicationTest\Helper\Entity as EntityHelper;
use FiscalTest\Helper\NFE as NFEHelper;
use ApplicationTest\Helper\Client as ClientHelper;
use Fiscal\Service\Client\EmissorGateway;
use FiscalTest\Helper\Fiscal as FiscalHelper;
use InventoryTest\Helper\Product as ProductHelper;
use InventoryTest\Helper\UnitOfMeasure as UnitOfMeasureHelper;
use CoreTest\Helper\Xml as XmlHelper;

/**
 * @author Jean Carlo Machado<EMAIL_ADDRESS> */
class NFEFileSignerTest extends \FiscalTest\ConcreteDatabasesTestCase
{
    use EntityHelper;
    use NFEHelper;
    use ClientHelper;
    use ProductHelper;
    use UnitOfMeasureHelper;
    use FiscalHelper;
    use XmlHelper;

    const OUTDATED_CERT =  [
        'cnpj' => '99999090910270',
        'passwd' => 'associacao',
        'cert_file' => __DIR__.'/../../Mock/cert_test.pfx'
    ];

    public function testReadCertificate()
    {
        $pkcs = new \NFePHP\Common\Certificate\Pkcs12('', self::OUTDATED_CERT['cnpj'], '', '', '');
        $pkcs->loadPfx(file_get_contents(self::OUTDATED_CERT['cert_file']), self::OUTDATED_CERT['passwd'], false, true, true);
        static::assertTrue(!empty($pkcs->pubKey));
        static::assertTrue(!empty($pkcs->priKey));
    }

    public function testSignWithOutdatedCertificate()
    {
        $validXml = $this->getValidXML();
        $signInfo = $this->getSignInfo();
        static::setExpectedException(\Fiscal\Service\NFE\NFEException::class, 'The given certificate is outdated');
        $signer = new \Fiscal\Service\NFE\NFEFileSigner($signInfo);
        $signer->sign($validXml);
    }

    public function testSignWithValidCertificate()
    {
        static::markTestIncomplete('this test only works with no outdated certificates that I cannot leave on the repository - but the intent is to create a self signed one in the future to assert this test').
        $validXml = $this->getValidXML();

        $xml = $this->getManipulableXml($validXml, 'http://www.w3.org/2000/09/xmldsig#');
        static::assertTrue(empty($xml->xpath('//c:SignedInfo')));

        $signInfo = $this->getSignInfo();
        $signer = new \Fiscal\Service\NFE\NFEFileSigner($signInfo);
        $result = $signer->sign($validXml);

        $xml = $this->getManipulableXml($result, 'http://www.w3.org/2000/09/xmldsig#');
        static::assertTrue(!empty($xml->xpath('//c:SignedInfo')));
    }

    private function getSignInfo()
    {
         return new class (self::OUTDATED_CERT) implements \Fiscal\Service\NFE\SignInfoAwareInterface {
            private $config;
            public function __construct($config)
            {
                $this->config = $config;
            }
            public function getCNPJ()
            {
                return $this->config['cnpj'];
            }

            public function getCertificatePassword()
            {
                return $this->config['passwd'];
            }

            public function getCertificateFilePath()
            {
                return $this->config['cert_file'];
            }
        };
    }

    private function getValidXML()
    {
...
    }
}

If I comment or substitute the return new class (self::OUTDATED_CERT) implements  for a new class it works.

I made a hacky fix here: https://github.com/Multiply/paratest/commit/e8f9cd485493756b3ba24f3df343d8609436d366
I can make a PR if you want, but the code is not nice at all. Not even sure if this is the best place to fix it.

Wow where das that come from?
Imho a fix (with a test) is better than a bug ;) @Multiply

The null byte comes from PHP's internals. I read some mailinglists to figure out why it was even there in the first place, but no good answer so far.
@julianseeger Do you feel this is the right place to fix it? If so, how would you like me to test it properly?

As it's the first place where the broken name appears it sounds reasonable to me.
And for the test: what about creating such an anonymous class, passing it to the parser, calling getClass() on it and get the name out of the result. The error should be observable then (without the fix), shouldn't it?

@julianseeger Take a look at #216 when you have time. I'd love some pointers.

That's a hard one. I actually don't know whats happening. If it's just php-code-coverage that loads that file because it has the .php suffix, it would be enough to move the file elsewhere or change the extension to something other than .php... but that's just guessing :/


Allow scripts in *.code-workspace

Hello! I use workspaces to handle monorepos. Works great. We put our build scripts at the repo root and they reach into each folder as needed. I would like to be able to put a script at the top level so we can trigger these scripts from the command palette. In searching for a solution it seems that the scripts need to be placed in %WORKSPACE_ROOT%/%WORKSPACE_FOLDER%/.vscode/config.json which means that we need the scripts placed in every individual top level folder in our monorepo.
Perhaps I missed something but this feature request is to allow scripts in *.code-workspace.
Cheers
Luke

It seems to me that the proper layout in your case would be to move the scripts you have at the root into a dedicated scripts folder and to make that scripts folder part of your workspaces. This way, tasks, etc. can pick up the scripts as expected.

Thanks for letting me know and I believe closing this issue is reasonable. Cheers.


feature Support get row count for JDBC external table. (#38889)

backport: https://github.com/apache/doris/pull/38889

run buildall


sap.m.List: Focus lost after item deletion

OpenUI5 version: Latest version
Browser/version (+device/version): All common browsers
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible): https://openui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.ListDeletion/preview
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

On a desktop computer, click on an item from the list
Using the keyboard only, press the keyboard delete key to delete the item
Observe that the focus has left the list.

What is the expected result? Expected that focus would remain in the list, with perhaps the next adjacent item having focus.
What happens instead? Instead the list loses focus, and the keyboard user has to tab their way back to the list. The number of tabs varies depending on the browser.
Any other information? (attach screenshot if possible)

Whoever responsible for the list item deletion should be responsible to put the focus back to the List since deletion can come from binding or a button at the footer or list delete button.
Test page is updated and works as expected.
Thanks for your feedback.

Thanks for the response, though I'm not sure I really agree with it. In this case the user is responsible for deleting the item, since they pressed the delete key. I don't think it's acceptable for them to put the focus back on the list. We're trying to make the experience easier for the user, so this should be handled automatically by the List control.
Now if the item is removed as part of a binding, or via the API, then I can see that focus should be handled manually in some circumstances. But even still, if the List has focus on an item and an item is removed via a binding, the List would know this case, and the default expectation would be for the List to keep focus on the item, or move to another item if the focus item was deleted.
I do see the sample has been updated (thanks), but doesn't it seem like this basic/expected functionality should go into the List control itself, rather than requiring every consuming instance of the List to have to do this themselves?

I don't think Cahit wants the end-user to put the focus back, but the code that triggered the deletion.
I guess the question is how much the List really knows about deletion when the bound items change... E.g. what if the user did not hit the "Del" key to delete the item, but he pressed a Button in the UI? Then I'd expect the focus to remain on this Button, it should not go to some adjacent list item. Maybe it can also be detected by the List that the focus went away right before deletion, but maybe there are other, even more tricky cases...

I recognize the complexity of some of the other cases, particularly with bindings. But since the list control listens for Del key presses and deletes the item, it seems like it should be responsible for maintaining focus in that scenario. And that should be a pretty easy win since it's a common use case.


docs(translation): add portuguese translation

Changes proposed in this pull request:
-Change structure of docs folder to accomodate other languages
-Add portuguese and begin translation
-Suggest new docs file that explains how to best use the documentation and may provide best practices/other information
// Still need to finish the translations
// I will also try to make it more explicit and easy to understand where possible

Well that was a waste of time 🤦♂ lol

However, I think it would be nice to have a translated storybook!


Update Express to latest

See #1379

Awesome, I'd been sitting on this for a while... can't believe the timing. :-)
I was wondering how to test the HTTP endpoint, it's not actually tested. I'm a node noob but from skimming https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x it didn't look like it would be anything to do.
Will that change be merged here? What is currently the most maintained fork?

Hi, any chance of merging this or should I close it?


Landmark label scale issue with 3D viewer #2

I cannot seem to control the scale of the landmark label with the Markups module display tab in viewer #2 (the one that deforms). I can change it in slice views and viewer #1 but not in viewer #2

I forgot those were two separate nodes. I know how to it now. Closing


Restart DjinnServer if it raises an exception

https://ocd.appscale.com:8080/job/Daily Build/1378/


array_indentation is wrong in nested short array creation

PHP CS Fixer indents the nested short array creation twice, with closing bracket indented also. This happens only in one file (form validation config) and in one array creation.
The PHP version:
PHP 5.6.40-1+ubuntu18.04.1+deb.sury.org+1 (cli)
Framework:
CodeIgniter 3.1.7
PHP CS Fixer version:
2.14.0
The command to run PHP CS Fixer:
php-cs-fixer fix
installed with composer (global)
The configuration file:
<?php

$finder = PhpCsFixer\Finder::create()
    ->exclude('assets')
    ->exclude('img')
    ->exclude('system')
    ->exclude('application/cache')
    ->exclude('application/logs')
    ->exclude('application/vendor')
    ->exclude('application/views')
    ->in(__DIR__)
;

return PhpCsFixer\Config::create()
    ->setRules([
        '@PSR2' => true,
        'array_syntax' => ['syntax' => 'short'],
        'logical_operators' => true,
        'align_multiline_comment' => ['comment_type' => 'phpdocs_only'],
        'array_indentation' => true
    ])
    ->setRiskyAllowed(true)
    ->setFinder($finder)
;

Samples of PHP code:

before running PHP CS Fixer (no changes):

$config['change_pass'] = [
    [
        'field' => 'password',
        'label' => 'password',
        'rules' => 'required|min_length[4]'
    ],
    [
        'field' => 'password2',
        'label' => 'Confirm password',
        'rules' => 'required|matches[password]'
    ],
];

with unexpected changes applied when running PHP CS Fixer:

$config['change_pass'] = [
        [
            'field' => 'password',
            'label' => 'password',
            'rules' => 'required|min_length[4]'
        ],
        [
            'field' => 'password2',
            'label' => 'Confirm password',
            'rules' => 'required|matches[password]'
        ],
    ];

with the changes expected instead:
(No changes)

I finally found what causes this. If the line with 4 spaces is before the array creation, Fixer indents it additionally, and leaves the 4 spaces.
$config['event'] = [
    [
        'field' => 'name_events',
        'label' => 'Название мероприятия',
        'rules' => 'required'
    ]
];

$config['change_pass'] = [
    [
        'field' => 'password',
        'label' => 'password',
        'rules' => 'required|min_length[4]'
    ],
    [
        'field' => 'password2',
        'label' => 'Confirm password',
        'rules' => 'required|matches[password]'
    ],
];

I think this is not normal behavior.

Thanks for the report, #4291 should fix the issue.


Default flag -f90 for TAF

In the light of PR #709 it may be useful to pass the -f90 flag to TAF by default (and retire ALWAYS_USE_F90).
With -f90 the main differences in generated code are

array operations, making the code much easier to read, especially with the many initialisations of adjoint variables
declarations with in f90-style, e.g.
      double precision :: runoff(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
instead of
      double precision runoff(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
and
      integer, parameter :: nr = 50
instead of

     integer nr 50
     parameter(nr=50)

end subroutine forward_step statements.

I do not know what g77 or pgf77 think about this, but one can always pass FORTRAN_VERS_TAF=F77 to genmake2 to use the -f77 flag explicitly (via -taf_extra or TAF_EXTRA).

@mjlosch Thanks for opening this discussion.
Right now, it does not seem to be a high priority to change this default.
Also the ALWAYS_USE_F90 setting is also used in other places, independent of TAF.


Complete failure on IE9 and IE10: 'Redeclaration of const property'

The current player version fails to load on both IE9 and IE10. I tested this on multiple machines, virtual and real. This is before even trying to load a json file.
The error thrown is SCRIPT5039: Redeclaration of const property, referring to line 1 character 1.
The script here starts with var window=.., which should probably never be called in this way!
See https://stackoverflow.com/a/17587242/588163 for more information.

This problem was probably introduced with https://github.com/bodymovin/bodymovin/commit/c666a401ac32995c19893830f251492dd6d26347

any solution for this in order to support server side rendering?

https://github.com/bodymovin/bodymovin/pull/637
This fixed it for us.


Fix for 'status' filter, separate inherent_attributes test

Hi, coming back to the inherent_attributes filter.
AWS expects a case-sensitive Enabled or Disabled value for this filter, as can be seen working correctly here:

With that mistake out of the way, I've decided to make a separate test case, to verify all inherent_attributes.

Codecov Report

Merging #4129 (5470902) into master (f364a05) will increase coverage by 0.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4129      +/-   ##
==========================================
+ Coverage   94.37%   94.50%   +0.13%
==========================================
  Files         473      473
  Lines       52021    52079      +58
==========================================
+ Hits        49095    49219     +124
+ Misses       2926     2860      -66

Flag
Coverage Δ

servertests
55.31% <ø> (-0.03%)
:arrow_down:

unittests
94.43% <ø> (+0.13%)
:arrow_up:

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

Impacted Files
Coverage Δ

moto/cognitoidp/responses.py
98.42% <ø> (ø)

moto/events/models.py
91.92% <0.00%> (-1.69%)
:arrow_down:

moto/iam/models.py
95.08% <0.00%> (-0.15%)
:arrow_down:

moto/secretsmanager/responses.py
100.00% <0.00%> (ø)

moto/secretsmanager/models.py
98.79% <0.00%> (+0.01%)
:arrow_up:

moto/events/responses.py
92.22% <0.00%> (+0.05%)
:arrow_up:

moto/ec2/models.py
94.53% <0.00%> (+0.80%)
:arrow_up:

moto/rds2/models.py
84.49% <0.00%> (+0.91%)
:arrow_up:

moto/ec2/utils.py
92.41% <0.00%> (+1.35%)
:arrow_up:

moto/rds2/responses.py
98.96% <0.00%> (+2.40%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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


gpu hardware encoding h.264 avc 444 more disqualified than software cpu encoding

Hello, I have been using wrapper for several months with RDP configured for gpu hardware encoding with the two settings activated h.264 avc444 in "remote session environment" and everything has always gone perfectly.
With the latest windows update and subsequent wrapper autoupdate I had to disable hardware encoding because the RDP images were more disqualified than the software encoding, however with the software encoding, fully loaded on the CPU, the system is very slow.
Are there any solutions or should I wait for a new windows/wrapper update?
PS: I use the same PCs, they do not change, I have not installed software but only made windows updates; the server is win10enterprise, the client win10home.
Thanks.

Are there any solutions or should I wait for a new windows/wrapper update?

RDP Wrapper is a wrapper over termsrv.dll that runs it with different parameters.
The problem is most likely in Windows.
You can check this by uninstalling the RDP Wrapper and going to the Enterprise multi-session (ServerRdsh) edition.
In the description of the group policy for hardware rendering, there is a warning about a graphical breakdown.

Not an rdpwrapper issue, but M$


Don't let user turn off screen brightness fully from menu

Set minimum brightness to 10 when changing by menu, so that the game doesn't become unusable without a reset

Can we fix setBrightness to never allow 0?

And enforce the bounds


Images in articles from JATS-Ingester using incorrect URL

On http://unstable.libero.pub images in ingested articles are not using the correct URL.
For http://unstable.libero.pub/articles/00666 this is an example of an img tag:

This results in the image not appearing on the page.
The xml:base= attribute added to the jats:article tag by the ingester is set to:
https://unstable-jats-ingester-expanded.s3.amazonaws.com/elife-666-vor-1
Therefore, the url used in the img tag should be:
<img src="https://unstable-jats-ingester-expanded.s3.amazonaws.com/elife-666-vor-r1/fig1-v1.jpg" alt="" class="image">

Take a look at https://tools.ietf.org/html/rfc3986#section-5.2, specifically:

return a string consisting of the reference's path component appended to all but the last segment of the base URI's path (i.e., excluding any characters after the right-most "/" in the base URI path, or excluding the entire base URI path if it does not contain any "/" characters).

You'll need a trailing slash if you want the elife-666-vor-1 component included in the result.

You'll need a trailing slash if you want the elife-666-vor-1 component included in the result.

Similar to a URL being entered into a browser, it's the job of the website (consumer) to be and to handle routes with and without a trailing slash. As the issue is on the consumer side, I would expect the content-store to be able to handle both the inclusion and exclusion of a trailing slash.

XML Bass follows RFC 3986 for its URI resolution rules, so it is working correctly.

RFC 3986 seems clear, it behaves the same as the HTML  element.

Thank you, @giorgiosironi. The jsfiddle you posted is very clear. I wasn't aware that this is the approach agreed upon that would be used.
Can someone point out in the RFC 3986 document where this is explained specifically? Unless my english is poor, this does not detail the requirement of a trailing slash:

5.2.  Relative Resolution
This section describes an algorithm for converting a URI reference
that might be relative to a given base URI into the parsed components
of the reference's target.  The components can then be recomposed, as
described in Section 5.3, to form the target URI.  This algorithm
provides definitive results that can be used to test the output of
other implementations.  Applications may implement relative reference
resolution by using some other algorithm, provided that the results
match what would be given by this one.

Also, I would like to point out that the specification of the task for creating the jats-ingester, point 6 does not indicate the need for a trailing slash:

Add xml:base="" attribute to jats:artcle tag like so:

<jats:article xml:base="https://unstable-elife-style-content-adapter->expanded.s3.amazonaws.com/<article-id>">

Perhaps in future more oversight from the creators of the consuming service is required?


LIIKUNTA-126 | Fix map searches redirecting to list view

Previously searches in the map view of search would redirect the user into the search view. After this change map view searches will stick to the map view.

Codecov Report

Merging #49 (d17e534) into main (4513477) will increase coverage by 0.04%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main      #49      +/-   ##
==========================================
+ Coverage   65.64%   65.68%   +0.04%
==========================================
  Files          72       72
  Lines         850      851       +1
  Branches      191      192       +1
==========================================
+ Hits          558      559       +1
  Misses        292      292

Impacted Files
Coverage Δ

i18nRoutes.config.js
100.00% <ø> (ø)

src/hooks/useSearch.ts
25.92% <75.00%> (+2.84%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix s1ap code generation (2nd pull reuqest)

Fix most S1AP decoding issue found till now. See discussion in #185.
After merged with #226, some S1AP sample messages can be decoded.

Coverage increased (+0.09%) to 71.426% when pulling 72fc0f130901187a5bfdd0985376cc17b948b41b on brchiu:fix_s1ap_code_generation_2 into 3f52df00df500231571db3dc361d4e31f5bf74d1 on vlm:master.

Coverage increased (+0.1%) to 71.459% when pulling 6b7bbccb07d8ecf8a9688c3cc15fbd43038287f7 on brchiu:fix_s1ap_code_generation_2 into 3f52df00df500231571db3dc361d4e31f5bf74d1 on vlm:master.

Coverage increased (+0.1%) to 71.52% when pulling 8663b7469834da5570a6d23576fafb9f44478eea on brchiu:fix_s1ap_code_generation_2 into 07f8c3eaf5face938f792b9bb1bc893bc6687e47 on vlm:master.

Coverage increased (+0.1%) to 71.52% when pulling 92fa4bd0cb1d593f407b5856745982f51ca768b8 on brchiu:fix_s1ap_code_generation_2 into 07f8c3eaf5face938f792b9bb1bc893bc6687e47 on vlm:master.

Coverage increased (+0.1%) to 71.369% when pulling d517381c59227f6c07950b2c93062d3140c6860c on brchiu:fix_s1ap_code_generation_2 into 34df4e579942f13c07f7be07580d10301dc08d40 on vlm:master.

This PR has a (small) conflict with #234 in file tests/tests-asn1c-compiler/50-constraint-OK.asn1.-Pgen-PER.

@mouse07410, you can refer to my local branch https://github.com/brchiu/asn1c/tree/s1ap to see how to resolve it.
This conflict comes from my commits : https://github.com/brchiu/asn1c/commit/e436f61aa7fcd336e65c317b425b098713d67192 and https://github.com/brchiu/asn1c/commit/8d0f6857eb032b04558a12d9a6757efd717e8f46 which generate some constant definition not available in current implementation.
I think my tweak is quite ugly and perhaps requires to be rewritten in a better way.


Clarified stipulation on hash and struct support

Motivation
The current wording is confusing and I wanted to add a bit of clarity.
Test plan
documentation only
See included automated tests.

@jez that is fair. I took another stab that left the wording closer to the original.


az interactive failed after powershell-core version upgrade

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az interactive
Errors:
The command failed with an unexpected error. Here is the traceback:
No module named 'argcomplete.compat'
Traceback (most recent call last):
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 233, in invoke
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 663, in execute
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 697, in _run_job
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 333, in __call__
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 121, in handler
  File "D:\a\_work\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/interactive/custom.py", line 41, in start_shell
  File "C:\Users\jamesyang3\.azure\cliextensions\interactive\azext_interactive\__init__.py", line 10, in start_shell
    from .azclishell.app import AzInteractiveShell
  File "C:\Users\jamesyang3\.azure\cliextensions\interactive\azext_interactive\azclishell\app.py", line 38, in <module>
    from .az_completer import AzCompleter
  File "C:\Users\jamesyang3\.azure\cliextensions\interactive\azext_interactive\azclishell\az_completer.py", line 19, in <module>
    from .argfinder import ArgsFinder
  File "C:\Users\jamesyang3\.azure\cliextensions\interactive\azext_interactive\azclishell\argfinder.py", line 9, in <module>
    from argcomplete.compat import USING_PYTHON2, ensure_bytes
ModuleNotFoundError: No module named 'argcomplete.compat'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az interactive

Expected Behavior
Environment Summary
Windows-10-10.0.19044-SP0
Python 3.10.8
Installer: MSI

azure-cli 2.44.1

Extensions:
amg 0.3.0
azure-devops 0.25.0
interactive 0.4.5
portal 0.1.3
powerbidedicated 0.2.1

Dependencies:
msal 1.20.0
azure-mgmt-resource 21.1.0b1

Additional Context

Duplicate of https://github.com/Azure/azure-cli/issues/25128


Use npm commands for building docs

Fixes #23
Update: the following is no longer relevant
Relies on punkave/habit#3, so for now I've added the specific Habit branch like so
"devDependencies": {
  "habit": "github:candlewaster/habit#ignore-node-modules"
}

obviously it would be better to have an updated version of Habit in npm. If you agree with my change to Habit we can update this package.json

I updated this

This seems like a good idea. No more global module only installed for this repo. @austinstarin @boutell?

Also this error after adding the apostrophe dependency:
> npm run generate
Error while constructing the apostrophe-assets module Error: ENOENT: no such file or directory, open '/apostrophe-documentation/_api-reference-generator/data/generation'

Closing because we're moving this to gitbook shortly and have addressed some of this in other ways


Expected end date in Education Entry

In some cases, it can be helpful to have the expected end date instead of "present". It could show as, for example, Sept. 2024 (Expected)

FYI, if you don't put an end_date, it will (at least in the modern CV theme) default to to present, in the Education section. :)

@tobybaratta Indeed, leaving end_date blank will always default to present in all themes.
Currently, we don't have a mechanism to write end_date: 2024-12 (expected) though. If anyone can think of how this would look in the YAML file, considering the locale_catalog field, we may be able to do this.


Bump the operator sdk version

Bumping to the latest version and making it possible to override it from outside.

Is this a BUG FIX or a FEATURE ?:

Uncomment only one, leave it on its own line:
/kind bug
/kind cleanup
/kind feature
/kind design
/kind flake
/kind failing
/kind documentation
/kind regression

What this PR does / why we need it:
Update operator-sdk to a newer version.
Special notes for your reviewer:
Release note:

NONE

Also, fixed all the new complains from operator-sdk.


Future binary?

Hi,
I have written an ios app using OSMD. It uses a WKWebview but all files are loaded locally. I would love to incorporate your audio player. I have just started to experiment with it. I can run the basic demo locally but am trying to figure out how I am going to add this to my XCode project.
Do you think it may be possible for you to provide a master binary in your future releases? I don't know Javascript well so am not sure if this is practical. But with OSMD, I just add the binary opensheetmusicdisplay.min.js to the project and I can easily reference everything using that and get it all to work. With the audio player, importing and connecting all of the various parts of the project (../../dist/PlaybackEngine, etc.) make it relatively complicated and impractical for an app development situation.
Please let me know if the binary idea makes sense and is a possibility. I would appreciate any advice otherwise.
Thank you!
Matt

Interesting question. Not that I have good answer ( nor am I maintainer ) but doing something similar from a bit different perspective - mainly to learn iOS dev (from JS background) and overcome some Web limitations ( such as iOS midi I/O and use more robust audio frameworks ).
What I am currently working on is to receive a midi message from OSMD web view to native and handle audio playback using AudioKit. It's robust and doesn't have usual single threaded web audio problems.
Curious how you are handling passing XML files between native context and web view.

Hi, sorry for the delay! You have to correct me if I'm wrong @matty90278, but if I understand you correctly your mainly after a single bundled distribution of the audio player that can be used in the same style as the opensheetmusicdisplay.min.js you mentioned? You're not looking to integrate it with native code in the iOS app?
In case you're just after a bundled distribution in the same fashion as OSMD is offering it's absolutely something I can fix, and that I've also planned. The current build exports modern Javascript using ES modules. But I do also plan to fix a more standard old-fashioned build to be easily referenced in an web page, also with better support for slightly older browsers.
I've got a similar request by email previously, so I'll look into doing this rather soon.

@matty90278 There is now a minified UMD build available. See the updated README. It can be downloaded through JSDelivr at: https://cdn.jsdelivr.net/npm/osmd-audio-player/umd/OsmdAudioPlayer.min.js

@matty90278 There is now a minified UMD build available. See the updated README. It can be downloaded through JSDelivr at: https://cdn.jsdelivr.net/npm/osmd-audio-player/umd/OsmdAudioPlayer.min.js

Hi,
Yes, that is exactly what I was asking for. Thank you!! I got it running in my iOS app. I haven’t tested thoroughly yet and there are some error messages (I think they are Apple bugs) but I think this approach will work for me.
I’ll have to look through your files more but do you have any simple guides to turning on/off settings yet? For instance, is there a feature to have a cursor track through the music as it is played?
I look forward to the future updates. Thanks again for the quick response!


Helm lint and upgrade commands do not enforce Chart version to be in SemVer compatible format

Output of helm version:
version.BuildInfo{Version:"v3.7.1", GitCommit:"1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4", GitTreeState:"clean", GoVersion:"go1.16.9"}
Output of kubectl version:
Not relevant / Not used in this bug
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
EKS, but is locally reproducible.
Expected behavior:
If the version field in Chart.yaml is not valid SemVer, then Helm commands needing this value should fail with proper warning. I would expect that helm lint would inform me of incomatible version naming.
Actual behavior:
If a Chart.yaml is created with following content:
apiVersion: v2
name: test
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 20220224-093343-68fa7b32

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

Then the output of helm lint is as follows:

==> Linting .
[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, 0 chart(s) failed

As you can see there is no error. Further I have installed an application with non-SemVer version via helm upgrade command and it worked without issue.
I consider this a bug, since the documentation here says following :

More complex SemVer 2 names are also supported, such as version: 1.2.3-alpha.1+ef365. But non-SemVer names are explicitly disallowed by the system.

From my analysis, helm uses the function semver.NewVersion to control the version here. The current regex used is the following:
const semVerRegex string = `v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?` +
	`(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?` +
	`(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?`

So, in my case, this accepts a pattern which does not follow the the following SemVer2 requirement:
A normal version number MUST take the form X.Y.Z where X, Y, and Z are non-negative integers,
and MUST NOT contain leading zeroes.
X is the major version, Y is the minor version, and Z is the patch version.
Each element MUST increase numerically. For instance: 1.9.0 -> 1.10.0 -> 1.11.0.

So, we would expect an error to be raised if version 1.0 is used, but like in this issue above, the linter says it's ok.
Using the semver.StrictNewVersion function can be something better to provide a stricter check on version used. This can be used behind a flag or something else to not make this a breaking change.
In our context, this causes problem with other tools using helm, like fluxcd which isn't able to automatically upgrade after the version scheme changed from 1.2.3 to 2.0.

Hi @davinkevin, while I do understand what you are saying I fail to grasp the conclusion. Is it that you see this as "works as designed" instead of as a bug? That is completely valid, but documentation should reflect that as well.

For me, it's a bug like you described. I expect the lint operation to be strict enough to catch our problem.
About flux, because it's based on an expectation from SemVer2 specification, it can be hard to reason about this strange case if the underlying tool you are using doesn't strictly follow the specification described.


Extends 'teams user app add' command with support for specifying name of the app. Closes #5703

Extends teams user app add command with support for specifying name of the app as an option. Closes #5703

Thank you, we'll try to review it ASAP!

Hi @waldekmastykarz
The id needs to be a valid GUID.
Please see the Remarks section:
The `id` has to be the ID of the app from the Microsoft Teams App Catalog. Do not use the ID from the manifest of the zip app package. Use the [teams app list](../app/app-list.mdx) command to get this ID.

I was able to reproduce. I will check and update the PR.

Hi @waldekmastykarz
Raised new PR https://github.com/pnp/cli-microsoft365/pull/5770. Closing this one.


Create Scope For activeGuide In Custom Themes

VSCode Version: 1.8.1
OS Version: Windows 10

I read through the VSCode theme scopes. I'd like a way to target the active guide, ie:
<key>guide</key>
<string>#3A3A39</string>
<key>activeGuide</key>
<string>#5D5D5D</string>

Additionally, a setting to choose line, dotted, or dashed for the guide style would be welcomed... perhaps a string could be passed to the "editor.renderIndentGuides" property instead of a boolean.

Covered by the "editorIndentGuide.activeBackground" themable property I believe


WIP: experiment with request scoped bean, token holder

Inspired by: https://github.com/DataBiosphere/terra-workspace-data-service/pull/537#discussion_r1492773297
This is WIP/experimental, and I'm not planning to implement this with AJ-1633, but wanted to share a picture of what it might look like (if I could get it working properly).
This PR experiments with adding a "request-scoped" bean for BearerTokenHolder, which is populated by our existing BearerTokenFilter, and can be injected by Spring whenever we have a bean that needs to know the BearerToken.
This is a more Spring-native approach to how we set and fetch the BearerToken in TokenContextUtil, as we can trust Spring to manage the thread state for us.  It also lets us avoid having to craft Factories just to provide a creation hook that we can use just in time.
What's demonstrated here is for BearerToken, but I could just as easily imagine having another RequestFilter that pays attention to the URI, extracts an instance identifier (or even a name!), and automatically fetches & populates the corresponding WorkspaceId for use with making Authorization checks.
And, I bet you could take it one step further, and codify Authorization as an up-front concern in your Controller classes, declaratively, using annotations, like:  @Authorization(resource=WORKSPACE, action=WRITE), for example.

Closing for now, this is purely experimental.


Expose pipeline file name in target runtime environment

Currently the pipeline processor has no insights into which pipeline file was used to produce the input in https://github.com/elyra-ai/elyra/blob/master/elyra/pipeline/processor.py#L68.
Since a user can assign a custom pipeline name prior to submitting a job, the embedded pipeline name doesn't necessarily reflect the file name. This is potentially a problem because  there is no link between the artifacts found in the target runtime environment and the source ("the pipeline" file).

I'm not familiar with the UI code at all, but there seem to be currently three places that would require patching.
Submit pipeline from editor
https://github.com/elyra-ai/elyra/blob/master/packages/pipeline-editor/src/PipelineEditorWidget.tsx#L1338
pipelineFlow.pipelines[0]['app_data']['filename'] = PathExt.basename(this.widgetContext.path)

Submit notebook as pipeline
https://github.com/elyra-ai/elyra/blob/master/packages/pipeline-editor/src/utils.ts#L65
template.pipelines[0].app_data.filename = PathExt.basename(filename)

Submit Python script as pipeline
Should probably be addressed in https://github.com/elyra-ai/elyra/issues/933 @karlaspuldaro
CLI
TBD @lresende

Requires https://github.com/elyra-ai/elyra/pull/1284