Updates AlamoFire dependency to 1.3.0

AlamoFire has added SSL Pinning, and a host of other features that I'm sure are just lovely, but that I don't have an immediate need for.
But I think SSL Pinning is the most compelling feature of this release.

> make ci
..............................................

	 Executed 46 tests, with 0 failures (0 unexpected) in 3.557 (3.574) seconds

Whaddup with those specs failing on CircleCI?  I haven't seen that on previous PRs.

Oh, I see, looks like it's a known issue since #161.

Looks legit to me, would be sweet to get SSL Pinning in!

OK cool, I'll merge and we can fix CI later.
I don't think master is in a stable state to release a build, so you'll have to use this in your Podfile:
pod 'Moya', :head

Do we need a minor version bump in Moya to use :head that way?

I don't believe so, :head fetches from the repo's HEAD iirc.

OK, so once #174 is done, I'll be release 2.0 in #149, so we should be :+1: soon.


Responsive

The documentation header/navigation is not responsive

This has been resolved in https://github.com/adobe/reactor-developer-docs/pull/67. Thanks for reportin g this issue!


P2H Heat Pump for district heating should not produce MUCH more heat than P2H electric boiler for same installed capacity

In this scenario the P2H heat pump displays weird behaviour. When installing equal (heat output) capacities of the P2H HP and the P2H boiler for district heating, the former produces much more heat at impossibly high full load hours.
Situation with P2H boiler @750 MW:

producing 13.21 PJ with 4892 FLH.
Situation with P2H HP @750 MW:

Producing 58.88 PJ at 21806 FLH (!). The maximum FLH is 8760 as this is the number of hours in the year so, something non-physical is going on here!
Because the PH2 HP has a COP of 4.5 and 13.21 PJ * 4.5 ~ 59 PJ, I suspect that the installed capacities of these technologies refer to the electricity input capacity rather than the heat output capacity as should be the case.
Perhaps fallout from https://github.com/quintel/etmodel/issues/3324?
Including @AlexanderWirtz @michieldenhaan @marliekeverweij

Are you sure you linked the correct scenario? I can't reproduce the results you're showing in those screenshots.
With 750MW of boiler capacity, the boiler produces 1.2PJ of heat, while the heat pump produces 5.36PJ. Those numbers look correct to me: the heat pump uses 22.22% electricity to produce heat; the rest is made up from ambient heat.
What I cannot reproduce in a copy of that scenario is the amount of energy and the resulting FLH.

What I cannot reproduce in a copy of that scenario is the amount of energy and the resulting FLH.

@antw I think the link is correct, but be careful that you need to place these P2H units higher in the Flex merit order (typically before P2G), before they get used much. That may be why you cannot reproduce the FLH.

Edit: Oh I see; the sliders set heat output capacity, so that's why you expect to see the same output. I will investigate.

Yes, the issue is indeed that we are setting output capacity and therefore expect them to make pretty much the same amount of heat.
In a nutshell: X MW installed output capacity of the P2H heat pump should use less power to make the same amount of heat as X MW installed output capacity of P2H electric boiler

I've pushed a fix to production. It turns out that these are the only two technologies not to have a merit_order.subtype value, which means that ETEngine falls back to its base class for flex technologies. This class doesn't compensate for input/output efficiency.
Production now has a quick fix in place, but I have not fixed beta: I want to come up with something more robust.

but be careful that you need to place these P2H units higher in the Flex merit order (typically before P2G), before they get used much.

I think we need to revisit the decision to hide flex options with no capacity, but that's a discussion which I'll take elsewhere.

Thanks @antw for the quick fix.

@antw I am wondering: has this issue been fixed in this PR https://github.com/quintel/etengine/pull/1113?

This has indeed been fixed.


[labs/gen-wrapper-vue] Build of generated component fails due to type check

Which package(s) are affected?
Other/unknown (please mention in description)
Description
The gen-wrapper-vue test is failing due to failing build. Getting the following TS error on build.

This seems to be caused by a bump in vue-tsc to version 1.4.
I don't know enough about how Vue components should be written to know whether this is a regression or a fix on vue-tsc's part.
Reproduction
npm test in packages/labs/gen-wrapper-vue
Workaround
Pin the version of vue-tsc in generated package to 1.3
Is this a regression?
Yes. This used to work, but now it doesn't.
Affected versions
0.2.3
Browser/OS/Node environment
Node 18

Filed issue with vue-tsc
https://github.com/vuejs/language-tools/issues/2638

This was fixed upstream by vue-tsc.


Adding nodes inside OnInitializedAsync causes weird port rendering.

I was playing around with this library and tried building a diagram from information I got from an API.
So my OnInitializedAsync first creates the DiagramManager, then calls the API and then builds the nodes based on the information from that API.
That all happens inside of the OnInitializedAsync method.
But doing that causes the ports to be rendered way under the actual nodes.
Important here is, that the nodes I used are custom nodes.
But also something to mention is, if I create those nodes hard coded (so not dynamic with the API result), and do that BEFORE the API Call everything is fine.
But doing it after, so I guess after an await call, will cause this weird rendering.
Something interesting is also, that if you zoom in on the diagram, so the nodes are outside of the boundaries and then zoom out again, so you can see the nodes again, the ports get fixed.
Edit:
After some more playing around, I noticed, that if you create the nodes inside of OnAfterRender, there seems to be no problem...

Hello,
For me, this works:
protected override async Task OnInitializedAsync()
{
    await Task.Delay(5000);
    diagram.Nodes.Add(NewNode(500, 500));
}

I'm not sure exactly how you're doing, so can you please show me?
If you can reproduce the issue and post the code here, that would be great!

Ok so:
First I think you meant diagram.AddNodes(...) because your Nodes are an IReadOnlyCollection.
Second my current OnInitializedAsync looks like this:
`
    protected override async Task OnInitializedAsync()
    {
        _itemTotals.Clear();
        if (!Guid.TryParse(RecipeIdParameter, out _currentRecipeId))
            throw new ArgumentException("Given recipe id is invalid!");

        _currentRecipe = await RecipeService.GetRecipeAsync(_currentRecipeId);
        _topRecipeTreeItem = await RecipeTreeService.CreateRecipeTreeAsync(_currentRecipe, 1);

        var firstNode = new RecipeNodeModel(_topRecipeTreeItem, new Point(0, 0));
        firstNode.AddPort(PortAlignment.Top);
        firstNode.AddPort();

        var secondNode = new RecipeNodeModel(_topRecipeTreeItem, new Point(0, 50));
        secondNode.AddPort(PortAlignment.Top);
        secondNode.AddPort();

        DiagramManager.AddNodes(firstNode, secondNode);
        DiagramManager.AddLink(firstNode.GetPort(PortAlignment.Bottom), secondNode.GetPort(PortAlignment.Top));

        //BuildNodeDiagram();
        //CalculateTotals();
    }

`
I first parse some string parameter into a GUID, but thats not the problem.
The problem is the two async calls I make after that.
The two nodes I add below are just some testing nodes which are getting weirdly rendered.
RecipeNodeModel is a custom node I created but that isn't the problem either because:
If I move the creation of the nodes above my two async calls, everything works fine.
Also somehow it depends which kind of async call you make...
A simple Task.Delay doesn't cause the problem.

Yes, my bad, that's 2.0.0 lol.
I'm sorry but I can't really reproduce it. Can't you make a simple repro for me to try and debug on? Otherwise I can't really help

I'll see what I can do.
I realized, that a simple API call is no problem.
So I really have to find out what about those calls are causing stuff -.-

Ok I finally figured it out, what the problem was.
At the start of my page I have a h2 element which has the name of an object.
That object gets requested from the API inside those two lines.
So because at the beginning that h2 element is empty and then later (but still inside OnInitializedAsync) gets filled, the port rendering is kind of bricked.
I don't exactly know why that is but a workaround for it is just setting a default value for that string inside of that h2 element.
That way it has text in it from the beginning and even if it gets updated later, it won't cause any height issues.

Ah, right! This is the same issue as https://github.com/zHaytam/Blazor.Diagrams/issues/81.
This is fixed in 2.0.0, which handles any change in the DOM and notifies the DiagramCanvas to update itself.

https://github.com/TheAnachronism/Blazor.Diagrams.PortRenderingHeightBug
Here I have a repo if you want to take a look at it.

When do you think 2.0.0 will be released?

I hope to release this month. There is already almost 50+ changes to the library. I'm currently working on the last TODO items (e.g. Orthogonal edges).

Nice
Anyway, thanks for the help and thanks for the awesome library!


Document how to view private repos

Scratched my head on this for a while figuring out how to analyze private repos.

@michenriksen Any thoughts on this?


Roman Numeral Converter

Flesh out spec based on roman numeral rules (http://mathforum.org/dr.math/faq/faq.roman.html)
implement solution to get full spec passing

Really enjoyed the frontend masters course :+1:

Hey @BrianLoughnane -- thanks a lot for doing the exercise and showing your solution. I'm going to leave the codebase as-is (the oversimplification it represents is helpful to me when I teach out of the repo), but looks like you really wrote a robust one!

It's totally fine, I was going through the video and did all that stuff anyway, just figured I'd float over a pull request.

Thanks a lot for sharing. It encouraged me today

To tweet this? https://twitter.com/searls/status/719726285803675648 =P

Lol, nope, that subtweet wasn't directed at you. It was all @deanius's fault https://github.com/testdouble/scripty/pull/6 :green_heart: :green_heart: :green_heart: :green_heart:


Are there any to to get printer's status

I double if there are any ways to get printer status , such as no paper in the printer box , or  oil etc warings from printer

I use Epson L120 Series and Ubuntu 20.04.2 LTS. "lpstat -l -p name" return none on alert line if no paper or out of paper when printing process is running. Why I cannot get any message?

@arzakmiftakhul Unfortunately, legacy printers like the L120 depend on the printer driver to provide status information. If you aren't getting any messages, then the driver doesn't set them...


ext: hal: stm32f3xx: Fix LSI_VALUE

This patch sets the correct LSI_VALUE, according to the
section 9.2.5 of the reference manual (RM0316).
Signe-off-by: Yannis Damigos<EMAIL_ADDRESS>

@erwango @apodogrocki Can you check it, please?


lapack/lapack64: add Pstrf

lapack/gonum: extend docs for Dpstrf and Dpstf2
lapack/lapack64: add Pstrf

Please take a look.

Codecov Report

Merging #1766 (ba6e0d5) into master (820f299) will decrease coverage by 0.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1766      +/-   ##
==========================================
- Coverage   73.38%   73.24%   -0.15%
==========================================
  Files         522      504      -18
  Lines       61661    61016     -645
==========================================
- Hits        45252    44689     -563
+ Misses      13854    13806      -48
+ Partials     2555     2521      -34

Impacted Files
Coverage Δ

lapack/gonum/dpstf2.go
87.09% <ø> (ø)

lapack/gonum/dpstrf.go
86.91% <ø> (ø)

internal/asm/c64/conj.go
0.00% <0.00%> (-100.00%)
:arrow_down:

graph/coloring/coloring.go
89.42% <0.00%> (-0.91%)
:arrow_down:

graph/formats/rdf/graph.go
71.23% <0.00%> (-0.46%)
:arrow_down:

internal/asm/f64/stubs_noasm.go

mat/index_bound_checks.go

internal/asm/c64/stubs_noasm.go

internal/asm/f64/axpy.go

internal/asm/f32/ge_noasm.go

... and 13 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 820f299...ba6e0d5. Read the comment docs.


Support model validations

While field-level validations are supported, it doesn’t look like there’s any support for model validations.
http://docs.sequelizejs.com/manual/tutorial/models-definition.html#model-validations
class Person extends Model<Person> {
  @Column
  name: string;

  @Column
  phoneNumber: string;

  @Validator
  mustProvideNameOrPhoneNumber() {
    if (!this.name && !this.phoneNumber) {
      throw new Error('you must provide your name and/or phone number');
    }
  }
}

Hey @natesilva,
Since the table decorator excepts DefineOptions, you can validate models like this:
@Table({
  validate: {
    mustProvideNameOrPhoneNumber(this: Person): void {
      if (!this.name && !this.phoneNumber) {
        throw new Error('you must provide your name and/or phone number');
      }
    }
  }
})
class Person extends Model<Person> {}

But your suggested approach fits better in the sequelize-typescript world.


Docs.MS Release Updates for azure-core-serializer-json-jackson

Update docs metadata and targeting for release of azure-core-serializer-json-jackson

Docs Build status updates of commit 524ad74:
:clock10: Full build: the average full build time is 296 min(s) 13 sec(s), this is based on the last 984 build(s) for this repository.


Restrict to valid Argon2 algorithms only

Throw an exception if an invalid Argon2 algorithm is encountered.
This is to ensure the user is aware that they are doing something improper and for them to correct it instead of doing something they may not want.

Codecov Report

Merging #531 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #531      +/-   ##
============================================
- Coverage     99.41%   99.41%   -0.01%
- Complexity     1234     1235       +1
============================================
  Files           209      209
  Lines          3935     3927       -8
  Branches        210      210
============================================
- Hits           3912     3904       -8
  Misses            5        5
  Partials         18       18

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/com/quorum/tessera/argon2/Argon2Impl.java
100% <100%> (ø)
8 <0> (+1)
:arrow_up:

Continue to review full report at Codecov.

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


Add filters!

I converted the list items in the "types of activities" list into buttons, so that you can filter by activity type! 🎉

Done did a rebase! /cc @jlord, since I don't know how your notifications are set up :)

Oh my gosh, yay! This was on my wish-list (written inside my head) 🎉 👯 Thank you!

since I don't know how your notifications are set up

Omg, thanks for reminding me you still have to follow your own repos 😓

@jlord people be trying to fix your typo too! 😂


NanoPreProcess is successfully running but it's not giving me a clear output?

I've been messing around with the MoP pipeline to get it running on a SLURM cluster, and have just gotten it to work. Problem is, it's not giving me an output where I told it to. Here is the parameters I have set up in the nanopreprocess.nf file:
`kit                       : SQK-LSK112
flowcell                  : FLO-MIN107
fast5                     : /home/rober136/scratch/WhyardData/NextFlow/MockData/*.fast5
reference                 : /home/rober136/scratch/WhyardData/NextFlow/genome.fna
annotation                : /home/rober136/scratch/WhyardData/NextFlow/genome.gtf
ref_type                  : genome
seq_type                  : RNA
output                    : /home/rober136/scratch/WhyardData/NextFlow/Output
qualityqc                 : 5
granularity               :
basecaller                : guppy
basecaller_opt            :
GPU                       : ON
demultiplexing            : guppy
demultiplexing_opt        :
demulti_fast5		 :
filter                    : nanofilt
filter_opt                :
mapper                    : minimap2
mapper_opt                : -uf -k14
map_type                  : spliced
counter                   : YES
counter_opt               :
downsampling		 :
variant_caller            : YES
variant_opt               :
email<EMAIL_ADDRESS>"""`
See the attached .txt file for the output. I see no errors, it says the execution status is ok, yet it's not putting anything in the Output folder I specified. I have tried running this with and without the Output folder being created ahead of time.
If I look at the NanoPreProcess/work folder, I can find the QC reports it does look like it's run successfully. Any idea what's going on?
MoP_Test_GPU-29766474.txt

Closing the issue. I see that this version of MoP is depreciated and am now looking into MoP2.


Validator for date/time

The date and time inputs for the range picker should have mask options and a validator.

Only validators were added.


Side pane slide animation not working with images or jupyter notebooks

Everything works normally and the animations play out as they are supposed to, but whenever I open up a jupyter notebook or an image the side panel sliding doesn't work. It just dissapears when I hit ctrl + b instead of sliding to the side. I also noticed that smooth scrolling option in VS Code's own settings doesn't work with notebooks, but I'm not sure if this is related to the problem.

Ok, I might look into this soon but currently animations partially disable when an iframe (jupyter notebook uses iframes and image likely too) is detected because vscode manually calculates iframe sizing so it does not animate properly and previously when I tried it ended up breaking iframes entirely (making them odd widths).

Hi, I just reinstalled vscod eand got vscode animations to work.

Hi
I just reinstalled vscode and got vscode animations working.
I don't know if it because I have soo many items in one folder but the slide animations is not working.
Is there any possible reasons for this?
Thanks!

Hi I just reinstalled vscode and got vscode animations working. I don't know if it because I have soo many items in one folder but the slide animations is not working. Is there any possible reasons for this? Thanks!

nvm it worked after a restart


[PDI-16915] Master doesn't identify slaves as inactive in dynamic car…

…te cluster when master is Pentaho Server

The poll for status of slave servers have been added into ClusterSchema and GetSlavesServlet classes

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -Dsurefire.runOrder=alphabetical -B -fn -f 'pom.xml' -pl 'engine' -P '!assemblies' -amd clean install && mvn -B -f 'pom.xml' -pl 'engine' -P '!assemblies' -amd site

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/cluster/ClusterSchema.java
  engine/src/main/java/org/pentaho/di/www/GetSlavesServlet.java
  engine/src/test/java/org/pentaho/di/cluster/ClusterSchemaTest.java
  engine/src/test/java/org/pentaho/di/www/GetSlavesServletTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes: <0.1% (click to expand)
org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.3% :small_red_triangle_down:
Line Change: -3.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -1.2% :small_red_triangle_down:
Complexity Change: -0.7% :small_red_triangle_down:
Instruction Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta

Branch Change: -3.3% :small_red_triangle_down:
Complexity Change: -1.8% :small_red_triangle_down:
Instruction Change: -0.3% :small_red_triangle_down:

org.pentaho.di.www.TransformationMap

Branch Change: -10.3% :small_red_triangle_down:
Complexity Change: -7.7% :small_red_triangle_down:
Instruction Change: -10.2% :small_red_triangle_down:
Line Change: -10.7% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupsert.SalesforceUpsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

@mbatchelor @pamval can you please take a look?


Record intermediate redirect locations

Hi!
I've added tracking redirect locations in the response attributes. I've also pulled the status code handling logic into a separate function.

@rossabaker Nice catch! Prepending the list threw me for a spin too and I only wrote the feature a few days ago 🤦♂ . I've added a comment to remind the reader that function is recursive.

The build is failing because we need to run test:scalafmt.


Examples in all languages

Examples are not consistent, some have C*, Java, JS, and some have all 3.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 401d2997-0fbd-7966-8996-edbaab1819ff
Version Independent ID: c3ee3318-4c69-8ded-a8d5-5059d699351b
Content: Application Insights API for custom events and metrics
Content Source: articles/azure-monitor/app/api-custom-events-metrics.md
Service: application-insights
GitHub Login: @mrbullwinkle
Microsoft Alias: mbullwin

@mydiemho Thank you for the feedback!  We are investigating this and will get back to you shortly.

@mydiemho We will assign this to the document author so they can update the documentation accordingly.  Thank you again for bringing this to our attention!

@mydiemho This appears to have been updated.  We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


FeatureRequest: Async support for send/receive payload

Currently in SPDM Requester case libspdm triggers send callback registered when it has payload to send.
Based on return value of the callback the receive callback registered is called subsequently.
In many applications(example: OpenBMC etc) async way of request/response is implemented at transport layer(mctp) where request is sent and once response is received it is handled.
The current implementation of libspdm requires response to be received before returning from send callback.
Can we have async way of handling in SPDM Requester case ?

libspdm will trigger send callback
Once the application receives the response
application will call for example: process_received_message provided by libspdm to process the response for all the SPDM Request message

Thanks,
Prithvi A Pai

See #1049 and #2406.

I checked the provided links.
I see the support only for VCA. However, other APIs are still require support is that correct ? what is the plan for supporting all the APIs ?

We need some one validate and confirm that split is working, before we move too far.
@PrithviAPai , can you help to try the new API?

@jyao1  I tried testing this PR(https://github.com/DMTF/libspdm/pull/2406) on my setup.
The test was NOT successful.
About my setup:
I have libspdm tagged version 3.1.1 on top of which I cherry-picked the changes from the above PR.
SPDM version I am using isa 1.0.
I have my device which acts as SPDM Requester and i2c simulator as SPDM Responder on which spdm-emu code is running.
The transport between the two is MCTP over SMBUS.
Test Results:

Without this PR everything works fine.
We are NOT encoding/decoding transport layer messages(In case of MCTP adding SPDM_MSG_TYPE(5) to beginning of payload etc and removal of same on arrival of message)
The response from SPDM Emulator after removal of SPDM_MSG_TYPE(5) fails to be validated when libspdm_process_response_version is called.
The receive payload seems fine  however, the check fails(attached request/response payload below).
It fails in very first check

    if (spdm_response->header.spdm_version != SPDM_MESSAGE_VERSION_10) {
        status = LIBSPDM_STATUS_INVALID_MSG_FIELD;
        goto receive_done;
    }

Request/Response Payload:
spdm_responder_emu version 0.1
ver - 0x10
context_size - 0x6420
Platform server listening on port 2323
Client accepted
Platform port Receive command: 00 00 de ad
Platform port Receive transport_type: 00 00 00 01
Platform port Receive size: 00 00 00 0e
Platform port Receive buffer:
    43 6c 69 65 6e 74 20 48 65 6c 6c 6f 21 00
Platform port Transmit command: 00 00 de ad
Platform port Transmit transport_type: 00 00 00 01
Platform port Transmit size: 00 00 00 0e
Platform port Transmit buffer:
    53 65 72 76 65 72 20 48 65 6c 6c 6f 21 00
Platform port Receive command: 00 00 00 01
Platform port Receive transport_type: 00 00 00 01
Platform port Receive size: 00 00 00 05
Platform port Receive buffer:
    05 10 84 00 00
SpdmReceiveRequest[.] ...
SpdmReceiveRequest[0] (0x4):
0000: 10 84 00 00
SpdmSendResponse[0] ...
SpdmSendResponse[0] (0x8):
0000: 10 04 00 00 00 01 00 10
Platform port Transmit command: 00 00 00 01
Platform port Transmit transport_type: 00 00 00 01
Platform port Transmit size: 00 00 00 09
Platform port Transmit buffer:
    05 10 04 00 00 00 01 00 10

We need some one validate and confirm that split is working, before we move too far.
@PrithviAPai , can you help to try the new API?

Hi @jyao1,
I did test the APIs provided in the PR.
About my setup:
I have my device acting as SPDM Requester and a i2c simulator acting as SPDM Responder(which internally uses spdm-emu)
The transport used is MCTP over SMBUS.
Findings:

Transport layer encode/decode is NOT supported with the APIs provided. (The integrator has to add/remove Message Type SPMD(5) in case of MCTP).
GET VERSION Requester and Response is obtained.
GET CAP Request is sent but Response validation fails. The reason is:

    if (spdm_response->header.spdm_version != spdm_request->header.spdm_version) {
        LIBSPDM_DEBUG((LIBSPDM_DEBUG_INFO, "libspdm_process_response_capabilities header request version %02x\n",spdm_request->header.spdm_version));
        status = LIBSPDM_STATUS_INVALID_MSG_FIELD;
        goto receive_done;
    }

Prints: 0x00

Last message is NOT properly assigned.

@steven-bellock @jyao1  can this be supported ?
The PR added is NOT helping as transport encoding is not done and Receive part is NOT correctly handled.
BMC is designed to work in asynchronous manner but libspdm requires synchronous approach. Please provide your feedback

I think what you want is a library that completely removes the transport portion. So in this case the Integrator

Calls libspdm to generate a request that is stored in some buffer. This request may be encrypted.
Sends the request to the Responder.
Receives the response from the Responder and puts it in some buffer. This response may be encrypted.
Calls libspdm to parse the Response.

In particular the Integrator has full ownership over 2 and 3. If so then yes, that's doable. @JakubLedworowski does that work for you as well?

yes, existing library can work as it is till encode/decode transport messages. Post which we can make sure the integrator takes care of sending and receiving the API.
This helps in allowing integrator send and receive response in async way.

@steven-bellock yes, that approach works for me as long as the integrator has the option to use the transport layer methods directly (eg. libspdm_transport_mctp_encode_message) to avoid code duplication as it is already implemented in libspdm.
So, in case the integrator wants to use the new approach while reusing transport layer the flow would look like this:

Calls libspdm to generate a request that is stored in some buffer. This request may be encrypted.
[Optional] Calls libspdm to encode the request
Sends the request to the Responder.
Receives the response from the Responder and puts it in some buffer. This response may be encrypted.
[Optional] Calls libspdm to decode the response
Calls libspdm to parse the Response.

@steven-bellock up to transport layer encoding/decoding can be as we have currently. But, integrator need option to send/receive  without having callbacks called for the same.

@steven-bellock can you please tell us some rough time when this will be available so that we can plan our deliverables accordingly ?
Thanks a lot for your support and quick reply.

If it's at the normal pace of things maybe a year. We are focused on SPDM 1.3 features right now and it's taking a (long) while. That can obviously be accelerated if you, or someone else, implements the feature.

@steven-bellock please suggest if this looks.
SEND PART

Integrator to acquire SenderBuffer.
Integrator to call libspdm_build_spdm_request
libspdm_build_spdm_request to build spdm request + add transport encoding
Integrator gets the SPDM payload to be sent to spdm endpoint

Questions
In libspdm_handle_large_request we have a looping logic which requires callback to triggered
How should that be handled when we split the APIs ?

I'm interested in this feature as well.


Wront mention of route server name

[Enter feedback here]
The route server subnet name is mentioned incorrectly as "Route Server Subnet". It should "RouteServerSubnet" without any spaces.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 3058f85a-d0d1-bc2e-0801-25c5150319cd
Version Independent ID: 3058f85a-d0d1-bc2e-0801-25c5150319cd
Content: Update route tables by using Azure Route Server - Azure Example Scenarios
Content Source: docs/example-scenario/networking/manage-routing-azure-route-server.yml
Service: architecture-center
Sub-service: example-scenario
GitHub Login: @priyshar
Microsoft Alias: architectures

@gulzarshaikh
Thanks for your feedback! We will investigate and update as appropriate.

@gulzarshaikh Thanks for sharing this feedback and helping us drive improvements toward MS Docs! I've created a PR that removes the spacings and the change will be live shortly after a merge within the next 24hrs.
We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Deep search for DatagridCells in DatagridRow

Summary
Enable grouping of several ClrDatagridCells in a custom component, by deeper ContentChildren search.

What is the change?
Search for descendant cells instead of only row's direct children:
https://github.com/vmware/clarity/blob/master/src/clr-angular/data/datagrid/datagrid-row.ts#L167
Current: @ContentChildren(ClrDatagridCell) dgCells: QueryList<ClrDatagridCell>;
Wished: @ContentChildren(ClrDatagridCell, {descendants: true}) dgCells: QueryList<ClrDatagridCell>;

Why should it go in Clarity?
To enable better structure/encapsulation in large data grids.

Does this change impact existing behaviors? If so how?
Maybe if someone has nested cells, which seems for me unlikely.

Workarounds
Not as far as I know.

Hello, I'm trying to make sure I understand the net result of your ask instead of talking about the implementation only. Are you asking if we could support something like the following?
<clr-dg-row>
  <my-row-wrapper>
    <clr-dg-cell>Query should also</clr-dg-cell>
    <clr-dg-cell>find these cells</clr-dg-cell>
  </my-row-wrapper>
</clr-dg-row>

I'm not really sure what the problem is exactly that you are having with encapsulation/structure in large datagrids, and would prefer to discuss those shortcomings first with clear use cases.

Thx for your response - Of course, it's better to discuss the use case first, sorry.
You're got the main idea. I have a component (e.g. parent) with a datagrid. For the rows I want to use a custom component (e.g. row wrapper) which I pass on the data of the current row. That way I try to extract row's template from the datagrid template.
Parent Template
<clr-dg-row *clrDgItems="let data of dataList">
  <my-row-wrapper [data]="data"></my-row-wrapper>
</clr-dg-row>

Row Wrapper Template
@Component({
  selector: 'my-row-wrapper'
  template: `
    <clr-dg-cell>Query should also</clr-dg-cell>
    <clr-dg-cell>find these cells</clr-dg-cell>
    <clr-dg-cell>{{data.description}}</clr-dg-cell>
  `,
})
export class RowWrapperComponent {
  @Input() data: { description: string };
}

Did I describe the use case satisfactory?
Maybe I missed another appropriate solution for this.

Thanks, I just needed to be sure I understood because it is easy to assume the wrong intent. I'm not certain about the proposed solution, but the request to allow for wrapper components like this is worth consideration.

@gnomeontherun
Is this something we want to move into the backlog?

@gnomeontherun
I just run into another use case: When I want to wrap my row with an anchor tag.
Something like this:
<clr-dg-row *ngFor="let user of users">
  <a [routerLink]="['/users', user.id]">
    <clr-dg-cell>{{user.name}}</clr-dg-cell>
    <clr-dg-cell>{{user.email}}</clr-dg-cell>
  </a>
</clr-dg-row>

@twittwer I caution against doing the above behavior with wrapping a row in an anchor. There are a few reasons but namely that the link is not intended to be there and could cause rendering issues. Also we are removing row selection (which this is very similar to) because of accessibility issues and breaking datagrid aria patterns.

we are removing row selection because of accessibility issues

What is the recommended approach to a list-detail-view?

overview page shows datagrid with item list
"clicking" on a item navigates to next page with a detail view of the clicked item

You should wait for #3797 to land for a detail pane view.

After further discussion, this has been determined to be invalid because you should be able to handle this with ng-container and project as, see https://medium.com/claritydesignsystem/ng-content-the-hidden-docs-96a29d70d11b.
Closing as an Angular capability that should make this possible, and not a bug in Clarity.


thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0'

I'm getting the following error after I recently upgraded various wasm bindgen crate versions:
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', crates/cli-support/src/descriptor.rs:277:15

Steps to reproduce
git clone https://github.com/chinedufn/percy
cd percy
cargo +nightly build -p jsdom-tests --target wasm32-unknown-unknown &&
  wasm-bindgen --nodejs --no-typescript target/wasm32-unknown-unknown/debug/jsdom_tests.wasm --out-dir ./tests/jsdom

Version info:
$ wasm-bindgen -V
wasm-bindgen 0.2.21 (f18b10ca5)
$ rustc -V
rustc 1.30.0-nightly (2224a42c3 2018-09-17)
$ cargo -V
cargo 1.30.0-nightly (a5d829494 2018-09-13)

Do let me know if I'm missing any information!

Are you using the git version of web-sys and wasm-bindgen with patching in Cargo.toml? Are you also using wasm-pack? If yes to both, you'll need to also use the git version of the CLI:
cargo install -f --root $crate --git https://github.com/rustwasm/wasm-bindgen --bin wasm-bindgen
wasm-pack init -m no-install # use this for building

Looks like I needed to cargo install wasm-bindgen-cli --git https://github.com/rustwasm/wasm-bindgen --force

Ha yea you beat me too it ( ;


Add new Language translation node

machine translation service is deprecated and there is a new language translation service. Need node-red nodes for the language translation service.

I'm going to start working on this shortly.

Hi James,
Is there a timeline for this? I have a SI partner who is using this in node-red and they are asking when this will be fixed.
Thanks,
Arun.

I have the code changes done, I'm testing today and will hopefully push an update later on. It'll take a few days for the changes to be merged into the project and then pushed the Bluemix.
@knolleary

I'm primed to get them published as soon as they are ready :+1:

This has been resolved in the latest changes.


Use less state-full design for collecting metrics

discussion started in https://github.com/CozySynthesizer/cozy/pull/93

@Calvin-L @izgzhen I have several questions:

What do you think the stats structure look like? Can it be a class with fields for all the data it stores? Can it just be a dictionary created by the improve_implementation method?
Should the stats structure handle threading itself or should improve_implementation handle threading. More specifically, since we are updating it in the ImproveQueryJob for-loop, are they sharing the same stats structure? Or are we somehow making one for each, then aggregating them into one in improve_implementation? Or maybe there's a better way than both of the ones I said.
How would we go about getting the difference in time between each improve loop iteration (the "forever" while-loop) if we want to preserve its responsibility and not have an out-parameter?
What Zhen mentioned in his comment in #93, not messing with improve itself also creates some difficulties in implementing improvement number limit.

Ultimately the design is up to you, but:

What do you think the stats structure would look like?

It doesn't really matter, as long as it is documented. I would probably do something lightweight, like "a dictionary whose keys are method names and whose values are lists of the timestamps of when improvements were made".

since we are updating it in the ImproveQueryJob for-loop, are they sharing the same stats structure?

That would be an example of shared mutable state, so I'm opposed to it. It would be much better for each job to collect its own local statistics and to aggregate them at the end. If you use the dictionary I proposed, each job would store a list and the aggregation would just arrange them into a dictionary by job name.

How would we go about getting the difference in time between each improve loop iteration

This can be done by the loop in ImproveQueryJob.
How comfortable are you with generators (sometimes called "coroutines") in Python?
def generate():
  i = 0
  while i < 100:
    print("yielding...")
    yield i
    i += 1

for value in generate():
  print("got {}".format(value))

In the example, the generator generate() and the loop interleave: instead of printing 100 "yielding..." lines followed by 100 "got X" lines, the program alternates between "yielding..." and "got X".
The improve loop is a generator, so the time difference between yields can be easily calculated by the caller. Instead of printing "got X", compute the current time and subtract it from the previous time.
You may want to alter improve so that it yields once on every loop iteration, even if an improvement was not found. (In the other thread I wrote up a more detailed description of this idea.)

not messing with improve itself also creates some difficulties in implementing improvement number limit

Actually it doesn't! The reason you were messing with improve was to make it check the improvement number and stop when it reached a threshold. However improve already comes with a super-general stopping mechanism: the stop_callback parameter. All you should need to do is modify the stop callback passed by the ImproveQueryJob.
If you intend the limit to be global rather than per-job, then instead you should modify the top-level loop that collects results to call stop_jobs(...) and return when a threshold is reached.


Kinesis Consumer Shutdown Testing: Exception handling

When processing a batch and an exception scenario occurs we need to gracefully handle this. Exceptions include:

The application not acknowledging the processing of messages above the configured threshold. (failed batches)
Exception within the Kinesis Client itself (definitely a bug, but again, causing a failed batch) - handled in the manager.
Losing connectivity to Kinesis - I'm almost certain the KCL will retry x times before shutting down the worker, this in turn will cause a "GracefulShutdown" which will notify the application's message processor actor. It's up to that what happens (Notification's calls System.exit - sugar perhaps shouldn't?). What's certain here though is that once the Worker shuts down - it won't ever restart. Can we increase the retries on the KCL/KPL via config? Or do we need a process which restarts the worker? Alternatively shutdown? ...

By gracefully do we mean:

Shutting down the whole application? Regardless of the number of individual stream consumers, producers & shards
Delegating this to the application?

Currently we shutdown the processing and then the whole application, working on the assumption that without a consumer the application can't serve it's purpose. Perhaps this should be configurable?

Completed by @DavidW-ww
Scenario: #1 - Baseline
1 producer putRecord for 10MM records over 30 minutes.  Make sure that towards the end of the 30 minutes, records are still being put.
1 consumer writing all sequence numbers to file.
1 shard
Expectation: Ensure that exactly 10 MM sequence numbers in file.
Scenario #2 - Single worker recovers
1 producer putRecord for 10MM records over 30 minutes.
1 consumer writing all sequence numbers to file.
1 shard
At 10 minutes after start, Ctrl-C consumer
Wait 2 minutes then restart consumer
At end of test, expect exactly 10MM unique sequence numbers inside file.
Scenario #3 - Inter-worker Checkpoint
1 producer putRecord for 10MM records over 30 minutes.
1 shard
2 consumers listening to same stream writing all sequence numbers to file.
Start consumer #1.
Start producer.
Start consumer #2.  Consumer #2 has no lease since there is only one shard which is being used by Consumer #1
10 minutes after start, Ctrl-C consumer #1
Verify consumer #2 is picking up messages from stream.
Verify at end of test that 10MM unique sequence numbers are in file
Scenario #4 - Simulate Kubernetes terminate during re-deploy
Five shards for stream.
1 producer
5 consumers
Start producer
Verify 5 consumers are processing messages
10 minutes after start of test, Ctrl-C 2 consumers.
2 minutes later, restart 2 consumers previously shut down.
At end of test, verify exactly 10MM unique sequence numbers in file.


Allow ComponentFactory to be extended

When using a custom DI container that doesn't provide an IServiceProvider it's not possible to inject services into components.
I'm using SimpleInjector as a DI container. Now I can't inject services into Views that were registered into that container.
It would be great If the renderer wouldn't depend on the IServiceProvider but instead take an IComponentFactory that I can then override to provide my own implementation using my DI container.
Here's a great post on the creator of SimpleInjector on this topic: https://simpleinjector.org/blog/2016/06/whats-wrong-with-the-asp-net-core-di-abstraction/

Hardcoding ComponentFactory isn't flexible. It's very useful to have ability of creating components by other means than Activator.CreateInstance. For example, my dynamic components are all of the same C# type and have special rendering logic. So I'm making a TypeDelegate around a real Type to make it look as N fifferent types. But Activator.CreateInstance can't create such types. And there's no way to override ComponentFactory.


Rethink the deploy timeout

Related to https://github.com/rollbar/rollbar-gem/issues/853
We need to rethink our strategy around how we deal with timeout issues in deploy tracking

Currently, the timeout is set to 60 seconds which IMHO is definitely too short. I'd suggest to bump it to at least 5 minutes

We also need to improve the error message. The message that customers get when the deploy times out is not helpful.


Loader loads in upper-left corner before centering on page

Hi João, thank your for this great, simple plugin!
I've got it all set up with a custom animated SVG and it's working fine except for the loading part. The SVG briefly shows up in the upper-left corner before centering on page. Is there a way to center the container before it loads?
Thanks for your help.

Can I get some support on this issue, please?

@erwanx
I find a way to resolve your problem ,you can open the fakeLoader.js file,then find the code "
$(window).load(function(){
centerLoader();
$(window).resize(function(){
centerLoader();
});
});"
in this file . you can excute 'centerLoader()' before window.load,like this:
centerLoader();
$(window).load(function(){
centerLoader();
$(window).resize(function(){
centerLoader();
});
});
and it can center the container before it loads.

@zxcHolmes  i don't now why...but your solution does not work for me

Try this:
//Each
el.each(function() {
    ...
});

// Add this here
$('.fl').css({
    'display': 'none'
});

//Return Styles
return this.css({

And then add to centerLoader() function:
$('.fl').css({
    'position':'absolute',
    'left':(winW/2)-(spinnerW/2),
    'top':(winH/2)-(spinnerH/2),
    'display':'block' // Add this here
});

You can add:
.fl {   left: calc(50% - 20px);   top: calc(50% - 20px); } to css and it's the easiest solution.

Hi all,
This is fixed in the new version of fakeLoader.
you can see the documentation here:
https://github.com/joaopereirawd/fakeLoader.js/blob/master/README.md
What's new:
https://github.com/joaopereirawd/fakeLoader.js/releases/tag/V2.0.0


Enable usage of external libraries

Summary
Enable option to choose/switch between different set of libraries for a given language.
Motivation
There are many prime libraries out there in the Web. Learning them is not an easy journey for every developer, no matter how experienced he/she is. Codewars introduces a great way to learn  intricacies of a language by solving different kind of computational/algorithmic problems.  However, basic in-build language libraries are often not enough, especially when working in commercial projects. Let's extend Codewars functionality to let developers learn libraries by actually using them.
Description
In the near of a language and its version dropdown introduce a button to select libraries which API should be accessible in a given Kata. For Java that could be: apache commons, google guava, vavr.io etc., for Javascript that could be: Lodash, ... etc.
This request does not intend to provide access to every possible library which exists. First and foremost, available libraries should provide utility functions for common programming tasks. Usage of all other libraries is strongly discouraged.
Second selection factor could be a popularity of a library, just to avoid usage of all legacy, not supported or not popular ones.
Non-Goals

usage of frameworks,

usage of ORMs,

usage of logging libraries,

You can request packages for each language by opening an issue on https://github.com/Codewars/codewars-runner-cli . There's a template for package request. It can be added if the request is reasonable or there's enough demand.
You can already use lodash in JavaScript, some Apache commons and Guava in Java. See the wiki pages for installed packages.
We don't have any plans to add drop down, but the authors can restrict access to some libraries to some extent by inspecting the solution file.


NULL pointer dereference in scanvideo_begin_scanline_generation

If:

routine scanvideo_begin_scanline_generation is called with block = false,
there are no available buffers on shared_state.free_list.free_list
and PICO_SCANVIDEO_LINKED_SCANLINE_BUFFERS is true

then at line 1092 of scanvideo,c:

the variable fsb is NULL
and is dereferenced.

This line should probably be moved up to line 1081.

ha, yes i've definitely never tried that :-)

I haven't tried it either :)
I don't even know what PICO_SCANVIDEO_LINKED_SCANLINE_BUFFERS is for. I am just reading through the code, trying to understand it, and spotted that.


Polished the table and entry boxes.Standardizing CSS classes name in …

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 84.81%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
215

Relevant Lines:
242

💛  - Coveralls


Simplify SublimeLinter implementation by focusing on executables rather than paths

I'm a long-time user of this package, like many other people, and it's been invaluable to me. Recently my flake8 linter broke and it took quite a while to fix. As of now, the only fix is to hack linter.py in that package, as described here, to change the shell command run by SublimeLinter.
My eslint linter for certain projects has also broken due to this unresolved issue.
I'm aware that the second issue is with eslint itself, which might suggest that it has no bearing on SublimeLinter. But I finally fixed the problem by modifying SublimeLinter-eslint and submitted this PR. This PR simply gives the user of SublimeLinter-eslint more control over the shell command that's run by SublimeLinter. It essentially solves the same problem, in the same way, as the problem with SublimeLinter-flake8.
These aren't the first times one of my SublimeLinter linters has broken and been difficult to fix. I know there are many users that would echo this.
The fixes described above are stop-gaps, and they don't address the root problem, which is that SublimeLinter doesn't give you good control over the shell commands executed by the various linters. So, just throwing this out as a path towards a simpler, more powerful SublimeLinter implementation...

I think using system paths and path settings to resolve linters is a bad idea. It's opaque, hard to configure, and prone to breaking. At the end of the day, linters are executables that can be run from the command line. The important thing is to run one of these executables with a given set of arguments, and give the user total control over both the executable and the arguments. That's it.
The only job of a SublimeLinter extension like SublimeLinter-flake8 should be to translate the output of the linter to a format SublimeLinter understands.
SublimeLinter itself should have an executable setting for each linter, which is a path to the executable, and an args setting. If the executable path is defined in project settings, or .sublimelinterrc, a relative path to the executable can be used, and it will simply be resolved relative to this file. The args just get appended after the executable, and the resulting command is run using subprocess or whatever by the linter.
This elegantly solves problems like the ones I described above with eslint and flake8. It also makes the implementation of SublimeLinter and its extensions much simpler.
For example, why bother with the excludes setting, if this can just be configured by passing different args to the linter? Making this a SublimeLinter setting that works for all linters means each linter extension has the extra responsibility of translating this setting into command line options that work for the given linter. Also, the idea that this makes things easier for the user is mistaken. It just adds a poorly documented layer of abstraction on top of the well-documented linter executable.
And it makes debugging a pain. Imagine how easy would it be if you could run flake8 from the command line, changing the args until you're satisfied with the output, paste your executable and args into your project settings, and know for sure that SublimeLinter will run this exact same command every time you edit a file. It's more powerful, more intuitive, more debuggable, and easier to implement.
Consider another example of a problem I have with the flake8 linter (for which I haven't created an issue). SublimeLinter disregards the .flake8 config file at the root of my repos, and only respects linter options defined in .sublimelinterrc. Therefore, I have to define the same options in both files, and some guy has to write code that parses .sublimelinterrc and passes the options to the linter executable. This file has to go in version control, even though it's useless to anyone working on the project who's not using Sublime Text.
The source of truth here should be .flake8. If I go to the shell and run flake8 from the root of the repo, it picks up the options in .flake8 perfectly. Shouldn't SublimeLinter do the same thing?
Here's an example of what the SublimeLinter settings for flake8 might look like in this simplified implementation:
    // ...
    {
      "flake8":
      {
        "executable": "/usr/local/bin/flake8",
        "args": ["--max-line-length", "100"]
      }
    },
    // ...

Say goodbye to @python. Say goodbye to the global paths and python_paths settings. Say goodbye to paths in general. It's an ode to simplicity.
The command run by the linter is obviously /usr/local/bin/flake8 --max-line-length 100. Want to exclude folders? Just add them to your exclude directive, either in the args, or better yet in the .flake8 file in the repo root.
In a deep sense, this implementation works better because it recognizes where the responsibility of the linting framework ends and the responsibility of the linter executable begins.
I'm very curious to know what features would be broken by a migration to this simplified implementation, to help find good work-arounds to these issues. The big question whether it can be done in a backwards compatible way. In other words, can we add the executable and args settings to SublimeLinter and tell individual linters to execute commands constructed from these settings, without modifying legacy behavior?
It's clear that it would solve a lot of problems, both for maintainers and users, that currently exist with SublimeLinter. Just to list a few that have popped up in the last week:

https://github.com/SublimeLinter/SublimeLinter3/issues/648
https://github.com/SublimeLinter/SublimeLinter3/issues/654
https://github.com/SublimeLinter/SublimeLinter3/issues/655
https://github.com/SublimeLinter/SublimeLinter3/issues/656

I don't do this to criticize the package. The core machinery of SL is solid, which is why it's so popular. It's awesome at queuing up lint requests, parsing the responses, and displaying errors. And frankly, this is all it should do.
Having SL be responsible for finding linters takes power away from the user, and will continue to be a source of frustration to users and maintainers. I think it's time to take advantage of SL's core strengths and give control of linter executables back to the user.

I think using system paths and path settings to resolve linters is a bad idea

Well, what's nice about PATH is when it just works. However, finding linter executables is the biggest problem we have. We really really really need a new idea on how to deal with situations where the linter you want isn't in your PATH. Ideas like this really help. I'm personally not qualified to judge a design one way or the other, so I'm really hoping we can have a discussion about how to approach and solve this. It might take a while though.

PATH should be a generally safe fallback, but it doesn't integrate into all the various kinds of virtual environments at all, because those environments are not shared with Sublime Text as ST is run globally side-by-side to a terminal where this environment is active.
I believe, in general, there are two options here:

Try to detect the existence of a virtual environment and prioritize executables provided by that virtual env. This would have to be implemented for several languages since each has their own idea of virtual envs, e.g. Python and node.js.

Do not try at all and have the user specify custom paths should they need a different version of an executable than their system default (on their system PATH).

Option 2 is easy to implement since it doesn't involve magic, but also very inconvenient for the user. For example those switching between Python 2 and Python 3 often. One could simplify this a bit by offering a concept of env profiles that users can choose from in a quick panel for each view individually (or project, even), but imo option 1 should be prioritized.
Regarding option 1, I believe that the current idea of trying to go through known paths to find a (potentially existing) environment isn't too bad, but it needs an overhaul. I saw that https://github.com/SublimeLinter/SublimeLinter-flake8/pull/57 introduced an updated PythonLinter class but haven't looked into the code as to whether this is going into a good direction or not. Note that for Python you'd technically have to adjust other variables like PYTHON_PATH as well.
Trying to group linter into environment types sounds like a good idea to me, too, but configuration for those should be grouped as well. E.g., within an environments dict a python key could be added with another dict of settings like a path to the virtual env to be used globally or within a project.
As such, individual overrides should also always be possible in case the automatic detection isn't satisfactory. This should probably take a list as an argument as well, containing of the executable to run and arguments to be prepended before the usual option stuff from linter plugins.
I am generally supportive of removing all the inline override capabilities for linters and always have the specified args be appended run directly. I have probably only used this once during all the years of using SL, but I don't know about others. Many linters have override functionalities like this themselves (flake8, jshint). It would certainly get rid of a lot of cruft within Linter configuration, but I believe this is a separate concern.
Overall, this topic is really complex and the decision between simplicity and convenience is a really tough one. I think the best next step to take currently would be to draft a couple example scenarios for which the required effort for the user would be compared, including the cases where automatic detection fails.

Regardless of what is being chosen, trying to execute external module code within ST and modifying sys.path by appending the system's site-packages folder to it definitely has to go. It is broken in so many ways and entirely unnecessary as well. If people need module access to a certain linter because for some reason the output isn't satisfactory or whatever, they should bundle a script to be executed with the desired system interpreter instead. This pattern could be supported by SL core in some way, depending on how much it is desired.

I'm just cherry picking some things I want to react to here.

I am generally supportive of removing all the inline override capabilities for linters and always have the specified args be appended run directly.

One of the things that are getting in the way of making SL easy to use and to maintain is the overload of ways to configure it. Configuring inline overrides in what is essentially just a GUI makes no sense to me at all, unless the linter doesn't support this itself, all users of the linter use our GUI, and they never want to run CI or automated tests. Similarly, having settings in a sublime-project file sounds nice until someone looks at a file in that project without going through the project. I totally agree with @kylebebak in that configurations like max-line-length for flake8 has to go. It makes no sense at all to select a handful of arguments that can be specified directly instead of through arguments. I'd definitely like to remove support for everything except @disable and args, and might do so in 4.0.
This overload of configuration that only works if everything goes according to plan, is probably contributing to this sense of fragility: the chain is so long and complicated it's hard to tell which link is broken.

the decision between simplicity and convenience is a really tough one

Indeed it is, but if we are able to compile a set of use cases that we can examine, we might be able to design something that works reliably for a lot of them. Which is probably, usually, also a simple solution. The convenience will have to come from the reliability, not because it matches one guy's workflow exactly.

Regardless of what is being chosen, trying to execute external module code within ST and modifying sys.path by appending the system's site-packages folder to it definitely has to go.

Ok. Definitely don't mind removing stuff like this in 4.0 even if it breaks a couple of things. Let's see what breaks and go from there. You're welcome to open a PR for it.

Okay, guys, you should really first read the new python linter (I wrote) which is based on finding executables. @FichteFoll You probably use it already? It has completely undocumented features, for reasons, because it was not decided what should be ported back to into the main repo. So you have to read the source. For better separation, I've put all the utils into a separate module, just like here in this repo.
Features:

pipenv support and detection
explicit executables setting
virtual env support

And please don't consider breaking anything a good way. We go the Windows™ way.
I propose:

@FichteFoll reads the source of flake8 (the 'prior' art) and tries every feature implemented. (I implemented this on windows!)
We backport to SublimeLinter Core and expose it as NewPythonLinter
Open PR or issues on other python linters we know.
Maybe deprecate the old linter.
Maybe remove some code


Break command into two subcommands

There are two different modes of audience consumption, so match those
modes with subcommands: prompt and update
Fix: #13

It appears that this is a duplicate Pull Request. When I rebased to adjust some Git comments (and then squashed the two commits together while i was at it), I had forgotten there was already this PR.
I am closing this PR and this is addressed in the second (edited) PR:
https://github.com/glenjarvis/github_commit_status/pull/21


Aurora Installer

I'm not sure if this is the best place to put this, but I wanted to have this installed on my computer, so I made a quick script in Inno Installer to make the installer. Seems to work fine so far. No clue if this is useful or not for the project, but it worked for me:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9444602B-C5D8-4EF5-9D5B-E76D06B53C71}
AppName=Aurora
AppVersion=0.5.1a
;AppVerName=Aurora 0.5.1a
AppPublisher=Last Bullet
AppPublisherURL=http://aurora.lastbullet.net/
AppSupportURL=http://aurora.lastbullet.net/
AppUpdatesURL=http://aurora.lastbullet.net/
DefaultDirName={pf}\Aurora
DisableProgramGroupPage=yes
OutputDir=YYYYYY
OutputBaseFilename=setup
SetupIconFile=XXXXXX\Aurora.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "XXXXXX\Aurora.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "XXXXXX\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\Aurora"; Filename: "{app}\Aurora.exe"
Name: "{commondesktop}\Aurora"; Filename: "{app}\Aurora.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\Aurora.exe"; Description: "{cm:LaunchProgram,Aurora}"; Flags: nowait postinstall skipifsilent

Replace XXXXXX with the path to a folder containing the latest version, and YYYYYY with where you want the output to be. You'll need the Aurora.ico attached (in zip because github doesn't support the format) to be placed in the same folder as everything else for a nice icon to be used by the installer.
Above should be pretty self-explanatory if you want to change anything. You can get the software I used at http://www.jrsoftware.org/isinfo.php
Attached also is a copy of the .iss file (same as pasted above but with my values), and the compiled exe from the latest version (run this through a virus scanner or something!)
Aurora.zip

Thank you for your input. But my plan is to make a web installer, so users can get the latest version.
Still neat though. I might include this as an "offline install" alternative. But I am not sure.

Hey, so I did some more playing around and made a network install version. For it to automatically get the latest version (right now the script only downloads a manually set zip file from your git repo), you'll want to upload the latest version to a single point with direct download (eg http://aurora.lastbullet.net/latest.zip). I've looked around for GitHub providing a direct download location that automatically updates but couldn't see anything without using the API.
Like last time, attached is a link to a zip containing the inno script file, a compiled example (using the latest version), as well as some assets I used to create the wizard (background image sourced freely from https://unsplash.com/search/Aurora under a Creative Commons Zero license).
Let me know if you can't host the file this downloads as I'll try to find a place to host it on my servers (NZ). Also, if you'd rather not compile it yourself just pass me a url to the download zip, and I'll build it again with that.
Photos of installation:

Instructions to compile (windows only)

Download Inno Setup - Quick start pack is what I used, but the normal version will work fine too
Download Inno Download Plugin - add this to your PATH
Extract zip file to a location of your choice
Open the "installer.iss" file with the Inno Script compiler/studio

Classic. Forgot to actually attach the files. Here:
Aurora.zip

Well done. Let me see what I can do server-side.

Actually, just found this: http://stackoverflow.com/questions/21439239/github-latest-release
I'll do some investigating to see if I can work this in the installer (would mean no hosting required, as well as no manual labor to update)

I already host updates on the site. So it won't be more work.

Oh sweet, no worries then

http://aurora.lastbullet.net/download-latest.php will return the latest file.

Alright, sweet. do you mind if I add myself to the list of awesome people? Also, is there anything else you want on the home screen?

I will credit you on the repo, could add you as a collaborator too. If this works, I will compile my own with my own image for the background, as well as create a download page on the site. You will definitely not be forgotten. :+1:

Alright :) I'm happy to help out wherever I can on here!
I can confirm that it's working fine on my pc with the download link set to your host. I've attached the files again with the updated exe and inno script. I recommend you run it through on your PC to confirm that it's working well on another system. The uninstall should also remove all files. An easy way of replacing that background would be to just replace the Aurora-wizard.bmp with your own and then recompiling. Keep in mind that it does have to be a BMP and the resolution needs to be 164 x 314 for the installer to accept it. Line 24 contains the welcome message displayed when you open it.
Image of new welcome screen:

Aurora.zip

Is it possible to have the installer automatically install C++ redistributables? Specifically C++ 2015 for 32 and 64 bit.

Sure thing. I have two assessments due tomorrow but I should be able to figure this out when I have time later this week (hopefully!)
Cheers!

Don't worry about it too much. Next version isn't ready yet, I'm aiming for a release by end of the month. I was just wondering if this can install redists, it would eliminate some issues with wrappers for users.

Yes, it can do that. I don't know how right now but I have found some code online to test whether the c++ redis is already installed and if not install it. The trick will be to implement this and also find a way to either include the packages in the exe or host them online. I have also found a way to check whether the os is 32-bit or 64-bit but I haven't looked at combining that with the above.

Alright, here's a version that will install c++ 2015 (latest version that I downloaded) if it finds either the x86 or x64 version of 14.0.24212 or 14.0.23026 (latest). If there is a version installed that it doesn't detect, then it will run the c++ installer and the installer will fail, so possibly a notice about that should be added, up to you. If you'd like to host the c++ files for keeping in line with the webinstall format, then I can add that as well with minimal effort.
Cheers!
Aurora.zip 😄
(psst! With all the new code, I can't upload it here, so I've placed the zip on mega)

I've adjusted the installer to my liking. One problem, I am unable to set Aurora.exe to run as administrator. In some cases, Aurora will not run without Admin. So it would be nice to set up Aurora to run as administrator from the getgo.
I have committed the installer to the repo (in dev branch) in the "Web Installer" folder.


Disallowed variable names

Variables injected by us in the package (in particular: t, lambda_, u_) cannot be used simultaneously as variables in F. For t, this is actually somewhat inconvenient.
A simple solution would be prefixing our variables with some string (acsv_...) -- alternatively, we could make the generation of these structures more intelligent to just automatically avoid this situation.
Maybe we should also just substitute the user-supplied variables with SR.var('x', d) and thus avoid this situation altogether.

Yeah, I mainly wanted to document this so that we don't forget about it. I'll look into it after we are done with the currently still open updates. 👍


Bug Week View.  Today 10pm to tommorw 8am event will trhow an error

_calendarWeekEventList.add(CalendarEventData(               date: DateTime(2022, 08, 14, 20, 0),               startTime: DateTime(2022, 08, 14, 20, 0),               endTime: DateTime(2022, 08, 15, 8, 23),               endDate: DateTime(2022, 08, 15, 8, 23),               title: '${DateFormat.jm().format(_startDate)} '                   '- ${DateFormat.jm().format(_endDate)} '                   '\n${_provider.name}',               event: _event.toJson(),               description: _event.$id,               color: colorFromString(_provider.color),             ));
Error Message:
startDate must be less than endDate.
This error occurs when you does not provide startDate or endDate in CalendarEventDate or provided endDate occurs before startDate.
'package:calendar_view/src/event_arrangers/side_event_arranger.dart':
Failed assertion: line 130 pos 11: '!(endTime.getTotalMinutes <= startTime.getTotalMinutes)'

Hello @edoliantesjr That is the expected behaviour as we do not have the support for multi-day events yet.
Current implementation ignores dates in startTime and endTime parameters. So, If you have Date with value DateTime(2022, 08, 14, 14, 20) only hours and minutes will be considered. Year, Month and Day will be ignored.
We are planning to implement this in near future.

I'm closing this issue for now as we already have similar issue #23 open.

Is the problem solved?


Use direct values in pil analyzer.

This is a refactoring that changes pil_analyzer to process the ast by value instead of by reference.

Why?

Ah I see the dependency now


Job for tomcat.service failed because the control process exited with error code.

See "systemctl status tomcat.service" and "journalctl -xe" for details.
Well systemctl status tomcat.service outputs
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since sáb 2018-03-17 08:37:00 -05; 2min 26s ago

mar 17 08:37:00 compres-server systemd[1]: Starting Apache Tomcat Web Application Container...
mar 17 08:37:00 compres-server systemd[1]: tomcat.service: Control process exited, code=exited status=203
mar 17 08:37:00 compres-server systemd[1]: Failed to start Apache Tomcat Web Application Container.
mar 17 08:37:00 compres-server systemd[1]: tomcat.service: Unit entered failed state.
mar 17 08:37:00 compres-server systemd[1]: tomcat.service: Failed with result 'exit-code'.

journalctl -xe doesn't output any relevant information. I did run as sudo, as I was prevented from running it as regular user.

@Kreijstal Hi! This script is not used for a long time and it's pretty dumb anyway.
I would recommend you to use Docker for your applications.
If you still want to use this script only thing I can advise is to google this error code tomcat.service: Control process exited, code=exited status=203
Good luck.


[Bug]: AppDelegate.ReceivedRemoteNotification not called when using Shiny for Local Notifcations

Component
Notifications
What platform(s) are effected?

[ ] iOS 12
[ ] iOS 13
[X] iOS 14
[ ] Android 8
[ ] Android 9
[ ] Android 10
[ ] Android 11
[ ] UWP

Steps To Reproduce
Configure your iOS XF app to register for and receive remote notifications without using the Shiny libraries for example by calling your own ASP.Net WebApi
From your ShinyStartup class call UseNotifications so that you can still use Shiny to do local notifcations.
Expected Behavior
I expected that notifications pushed to the device from a remote source such as Azure Notification Hub would appear on the device (they do) AND that the AppDelegate override of ReceivedRemoteNotification would be called.
Actual Behavior
The remote notifcation does appear on the device but our ReceivedRemoteNotification does not get called.
If I continue calling Shiny's ShinyFinishedLaunching on startup but comment out the call to services.UseNotifications our ReceivedRemoteNotification override starts being called again.
We have an exisitng issue in our app that means the OnReceived method in out INotifcationDelegate does not called on iOS. This might be related.
I have also created a couple SO questions on the issue here and here.
I appreciate that the use of Shiny for Local Notifcations but not for Push might not be a supported scenario, https://stackoverflow.com/questions/69103875/using-shiny-for-local-notifcations-whilst-using-our-own-registration-code-for-re
Exception or Log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

You are using ReceivedRemoteNotification which is for the "old" way of catching remote notifications in the foreground.  Shiny.Notifications uses a UNUserNotificationCenterDelegate which I believe intercepts and stops that method.  You can implement the Shiny notification delegate to work with the notification or use Shiny.Push.AzureNotificationHubs.
You can also use: DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action completionHandler) which is a better method to handle remote notifications anyhow since it is needed for background processing.

Hopefully there is enough in this repo, https://github.com/munkii/PushDemoWithShiny. The readme.md explains how to break it/ fix it to show the repo

You still have this implemented though:
    public override void ReceivedRemoteNotification(
        UIApplication application,
        NSDictionary userInfo)
        => ProcessNotificationActions(userInfo);

You need to switch to DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action completionHandler)

I did that as per your suggestion in our actual app and that did not solve the issue. I was trying to leave this sample as close to the MS tutorial as possible.
I've pushed a change to the repo that is now implementing DidReceiveRemoteNotification. Again that gets called if I do not configure Noitifications but doesn't if i do

I'm not going to invest a ton of time into this because I've verified that it is working on samples & integration tests with both notifications and push with azure.  The only hooks that local notifications installs is the https://github.com/shinyorg/shiny/blob/dbfda1c44c06705f7076846bb2eaf9106cbcf03d/src/Shiny.Core/Platforms/Apple/AppleLifecycle.cs#L32
The only thing I noticed is that your info.plist is missing the necessary UIBackgroundModes.

I totally understand your position. The scenario of using Shiny for Local Notifcations but something else for Push is unlikely and understandable that it is not supported.
EnsureNotificationDelegate does look like the reason why my DidReceiveRemoteNotification is not called.
FWIW I already had the UIBackgroundModes in our app and have added those to the repro repository, same issue.
Thanks for looking into it.

My point here is that method (DidReceiveRemoteNotification) IS being called in my sample repository and the integration tests where push and local notifications are being used.  It isn't a case of it not being supported.

it IS being called in your Shiny Samples, yes I understand that.
What I meant was what seemed to be unsupported and also an unlikely use case was an app using Shiny for Local Notifcations and then trying to roll their own including their own Register, Registered and Received endpoints for Push.
That is what we are trying to do. We are only trying to do this because we want to secure the registering and tags behind a remote API.

You can use Shiny.Push if you only need the native push token and then you can push that to your backend.
Are you sending content-available=1 or any sort of data in the payload?

Sorry for the delay in replying but I was off working on other stuff (one man team).

You can use Shiny.Push if you only need the native push token and then you can push that to your backend.<<
I'll look at trying to do that today

"content-available=1" is just needed for background updates right? Assuming that's correct,  no right now we don't need to request the app to pull updated data in background. When you say "data in the payload" can you give me an example?


Check buffer size before reading in raw functions

Fixes #2050

This change is

go/lib/hpkt/read.go, line 182 at r2 (raw file):
Previously, Oncilla wrote…
Todo for this PR, or a future one?

Topic to discuss, I would not hardcoded but this makes is safe. What do you think?
(I vote to just remove the todo)

go/lib/hpkt/read.go, line 176 at r2 (raw file):
Previously, Oncilla wrote…
remove

I think this error is needed because I have removed it (or I think) from the function we call the CmdHdrParser() . If you can check versus the master commit

go/lib/hpkt/hpkt_test.go, line 173 at r4 (raw file):

require.NotContains(t, err.Error(), "panic")
the thing is I want to have a input that does panic, I make sure that nobody remove the defer/recover from the flow. Does it makes sense?


Add 'waitUntil' option to puppeteer of storyshots

If some elements use additional xhr requests (like async image loading).
Puppeteer might not imprint the end state of the page. Puppeteer has
built-in method to resolve this -
https://github.com/GoogleChrome/puppeteer/blob/v1.1.1/docs/api.md#pagegotourl-options
This option is fairly general so it should be okay to use for other cases
as well.
However, 'beforeScreenshot' could be used instead, but proposed approach seems
more definite and reliable
As additional further improvement, these goto options might be exposed to
consumber as well

Will it work on examples that do some kind of polling?

If a user decides to poll every 500ms in a story...

networkidle0 - consider navigation to be finished when there are no more than 0 network connections for at least 500 ms.

That is probaly super uncommon... If a story is about a component that changes over time.. My advice is to create a story for a few moment in time, not to do the actual polling in storybook.
What do you think @Hypnosphi ?

Ok, at TeamCity we have some stories that poll data from actual server, but we use a period larger that 500ms, so it's OK
But we may start utilizing websockets for that at some point. Would WS connection count as "network connection"?

Will it work on examples that do some kind of polling?

Good question.
I think even with old-school comet technics and the new ones like ws it should work in the same way (should be tested, to verify of course).
In the case, when ws, on user agent side, isn't always receiving new data and if there is no ongoing ping pong frames (https://html.spec.whatwg.org/multipage/web-sockets.html#ping-and-pong-frames) proposed logic should work.
Since of course while test run in in progress, you probably would want, at some point, to stop receiving new data during the screenshot time. And in both ws and comet technics (known to me), you can adjust the heart-beat rate


Block explorer (tinyscan)

I built a really simple block explorer for tinychain, gonna call it tinyscan.
Tinyscan is basically a Golang web server, using the built-in go templating engine, that minimally relies on the BlockDAG and StateMachine types to provide a basic view into the blockchain.
It doesn't require any custom RPC, it just uses the SQLite database.
To run:
cd cli/
go run tinychaind.go explorer --db ../build/node1.db

# In production.
tinychain explorer --db ./node1.db

Screenshots.

Bugs.

It appears like we're missing some state being processed? ie. http://<IP_ADDRESS>:9000/transactions/5fa1c5ae3e7dfcf29d9f73db92004558b81de5f4b3660467e8a1aa8f32c8b46c this transaction which was manually sent by brian is not coming up with any balance for the to account. Not showing up in the ledger table either

Tx confirmation status

Search function

List txs for account (TODO filter for only ones in the longest chain)


updated list of USB adaptors

@muralikk : Thanks for your contribution to the Azure documentation! The author, @muralikk, has been notified to review your proposed change.

#Sign-off

#Sign-off

@muralikk Article authors working in the public repo says...
If you are the listed author for an Azure technical article, you need to use the private repository (azure-docs-pr) for all content updates and new articles.
Closing this pull request. Please make updates in azure-docs-pr. Thanks.


chore(logs): lower bitswap-server verbosity

May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.439Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.440Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: stream reset
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.443Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.443Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.443Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.443Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)
May 24 04:10:51 celestia[1806932]: 2024-05-24T04:10:51.443Z        INFO        bitswap-server        server/server.go:547        Bitswap Client ReceiveError: Application error 0x0 (local)

These logs are pretty annoying, and this PR jams them.
However, the amount of those logs coming from stream resets is a bit concerning, and a quick look through the code path does not give me an idea of what could go wrong. I propose to shut them for now and observe if something goes wrong because currently, things are running well
Fixes https://github.com/celestiaorg/celestia-node/issues/3426

The amount of logs is concerning and worth keep the issue open or create new one to identify the root cause, as there might be underlying issues leading to logs, like misconfiguration or incorrect error handling.


infra/docs: remove single Docker image setups

Removes all single Docker image setups and deployments

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 79.54%. Comparing base (5ffff04) to head (02f0835).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #794   +/-   ##
=======================================
  Coverage   79.54%   79.54%
=======================================
  Files         244      244
  Lines       10378    10378
=======================================
  Hits         8255     8255
  Misses       2123     2123

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

What's the rationale for removing all single container builds? This also removed the only option for deploying to Azure. Thanks!


Question: How to set Window state to WindowState.Normal

To get the behavior I was looking for, I added to NotificationFlyoutApplication.cs the following:
        public void NormalizeWindowState<TUIElement>() where TUIElement : Windows.UI.Xaml.UIElement
        {
            var window = new XamlHost<TUIElement>();

            if (window.WindowState == WindowState.Minimized)
                window.WindowState = WindowState.Normal;
        }

... in Shell.xaml.cs

        private void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            var app = GetApplication();

            if (!App.IsWindowContentShown)
                app.OpenAsWindow<WindowContent>();
            else
                app.NormalizeWindowState<WindowContent>();
        }

I call this method if the WindowsContent window has been created with the expectation that if the window had been minimized, it will be brought back up.  When this method gets called, irrespective of the fact that the WindowsContent window has been minimized, the state is always "Normal", so my conditional check fails.
Any ideas why this is the case?  Is it a XAML Islands limitation?

Never mind, the following resolved the issue:
        public void NormalizeWindowState<TUIElement>() where TUIElement : Windows.UI.Xaml.UIElement
        {
            var window = new XamlHost<TUIElement>();

            //if (window.WindowState == WindowState.Minimized)
            window.WindowState = WindowState.Normal;
            window.Show();
        }

Thanks a bunch Daniel, I now have exactly what I was looking for.  Fantastic!
I added some bits to have a Singleton style main window that gets recreated if closed.


[Translation] zh_CN

[x] Summary
[x] Chapter 1
[x] Chapter 2
[x] Chapter 3

@TianLangStudio I started the infrastructure for book translations, see a preview at https://unruffled-kowalevski-2fc66b.netlify.app/zh_cn/. Do you think you can translate the SUMMARY.md as well so the chapter names are in the right language as well? 😄

Got it.
I'm happy to do it.

translations are done, waiting for PR fixes from @TianLangStudio before merging. thank you @TianLangStudio 🙏

fixed in #98


Zuul double encoding issue in RibbonClientConfiguration

We just tracked down an issue where zuul was encoding urls twice.
When a request passes through either RibbonRoutingFilter or SimpleHostRoutingFilter, ProxyRequestHelper::buildZuulRequestURI is called, encoding the request.
Later in the request, the uri passes through RibbonClientConfiguration.OverrideRestClient::reconstructURIWithServer and is potentially encoded again, escaping characters that have already been escaped.

The problem appears in https://github.com/spring-cloud/spring-cloud-netflix/blob/master/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java#L202 The code seems to be trying to change the scheme to "https" if the target scheme is not https but the server is configured to be secure.  The problem is the code is calls build(), which internally calls build(false) indicated the URL is not endcoded.  In this flow at least, the URL is already encoded so it ends up double-encoding it.  The other problem, in the this flow, is the URL is actually only a path so the call effectively does nothing except double-encode, as the scheme is null and remains null after the call.
It seems like the if block should only call the builder if the scheme is not null, and if it does call, it should call build(true);

@cah-oster thanks for the analysis, maybe you would like to submit a pull request for your suggested fix?

Using .build(true) won't encode the url but UriComponents will verify that the url does not contain any invalid character. We ran into this issue with a '+' in a query string IIRC https://jira.spring.io/browse/SPR-10172.
We fixed it in our internal branch by reconstructing an URI with the plain old URI class in the end : https://github.com/coveord/spring-cloud-netflix/commit/a0ac405ac81c0e7d0b7369f8565c8a835a1ce3c9.

@jebeaudet Right, my point was at least in this flow, the URL is already encoded.  I'm not sure if that's true in all the other incoming flows (e.g. URL-based routes).  When I get a few mins I'll try to whip up a patch.  Minimally we can expose the boolean as a parameter to the reconstructURIWithServer method.

You were right indeed, I just wanted to point out the limitations of UriComponents here.
At this point, I'm pretty sure the URI is always encoded since it's one of the last step before sending the actual request to the backend. We are running a big application composed of many microservices all in https and we haven't run into any issue yet with the commit I mentioned (who never encode the uri at this point).

For us we were able to short circuit this without code changes to spring by adding this bean:
@Bean
   ServerIntrospector serverIntrospector(){
       return new ServerIntrospector() {
           @Override
           public boolean isSecure(Server server) {
               return false;
           }

           @Override
           public Map<String, String> getMetadata(Server server) {
               return new HashMap<>();
           }
       };
   }

The DefaultServerIntrospector assumes any port ending in 443 isSecure (and thus trips this double encoding).  We are setting the communication to be https by specifying it in ribbon configuration, so this scheme transformation is unneeded.
ribbon:   IsSecure: true

Here's the pull request @ryanjbaxter
https://github.com/spring-cloud/spring-cloud-netflix/pull/1244
I misspoke early about scheme change to https not doing anything when the scheme is null. That works fine as is, so the only change I made was to pass in "true" to the call to build.  The tests I added failed until I made that change.

Maybe I wasn't clear before in my comment, using UriComponents build(true) method leads to a verification of the url so that no illegal character is in the URI. This longstanding issue is troublesome and I'm sure will lead to another issue opened: https://jira.spring.io/browse/SPR-10172.
I've added a failing test here https://github.com/coveord/spring-cloud-netflix/commit/58b8efd9a90d92a0681e5a8788a2844100f93522 :
Tests in error:
 testNotDoubleEncodedWhenSecure(org.springframework.cloud.netflix.ribbon.RibbonClientConfigurationTests): Invalid character '+' for QUERY_PARAM in "1+2"

Our fix is not the most compact but it does not have this limitation.
new URI("https", original.getUserInfo(), original.getHost(),
						original.getPort(), original.getPath(), original.getQuery(),
						original.getFragment());

@jebeaudet if the fix did not address your specific issue than open another issue describing the problem


CLI for release management

Implementation of https://github.com/giantswarm/giantswarm/issues/11782

This isn't perfect, but it should still save some time checking release versions and wiring everything up. We would like to use this for creating temporary releases directly on CPs so work will continue as part of that (including tests hopefully).

I have only some structure level comments here. I don't dive deeply into implantation details as I don't deal with releases often enough.
I'd also suggest to change the command structure to:
devctl release archive
devctl release create

The reason for that is that it's easier to discover functionality with shell completion that way. devctl is a swiss army knife tool and IMO some common verbs are not good enough entry points when we don't simply deal with REST API.

I disagree with the structure suggestion here. Discoverability is always an issue but the structure of cmd verb object is used in basically all CLIs (kubectl get nodes, gsctl list clusters, ...) changing this here seems questionable to me.

I have only some structure level comments here. I don't dive deeply into implantation details as I don't deal with releases often enough.
I'd also suggest to change the command structure to:
devctl release archive
devctl release create

The reason for that is that it's easier to discover functionality with shell completion that way. devctl is a swiss army knife tool and IMO some common verbs are not good enough entry points when we don't simply deal with REST API.

I disagree with the structure suggestion here. Discoverability is always an issue but the structure of cmd verb object is used in basically all CLIs (kubectl get nodes, gsctl list clusters, ...) changing this here seems questionable to me.

We already had this discussion when devctl repo list was implemented.
 docker image ls
kubectl operates mostly on dynamic REST API so this structure makes more sense here.

Hi gang. Can we get over with this? I see people crafting releases and thought some diffing would be cool to have for new releases, especially because we have that in releases@master already. Let's iterate if there is more to it and let me know when I can do anything to get this going.

Hi gang. Can we get over with this? I see people crafting releases and thought some diffing would be cool to have for new releases, especially because we have that in releases@master already. Let's iterate if there is more to it and let me know when I can do anything to get this going.

I've been focused on KVM 12.0.0, planning to finish this up today.

I have only some structure level comments here. I don't dive deeply into implantation details as I don't deal with releases often enough.
I'd also suggest to change the command structure to:
devctl release archive
devctl release create

The reason for that is that it's easier to discover functionality with shell completion that way. devctl is a swiss army knife tool and IMO some common verbs are not good enough entry points when we don't simply deal with REST API.

If it's alright with you, I would like to stick with the current approach (<verb> <noun>) since that's what I've already written and it's more consistent with our other command. Afterwards, I would then try to come up with a documented standard for all of the GS CLIs (or at least a heuristic for when to choose one style or the other) and add it to fmt. What do you think?

This will be inconsistent with devctl repo list already. We now also have opsctl release deploy. I can only disagree and commit here.

This will be inconsistent with devctl repo list already. We now also have opsctl release deploy. I can only disagree and commit here.

I discussed a bit with SIG-UX. The conclusion was basically that we should prefer <verb> <noun> for consistency and that <noun> <verb> is okay when it makes more sense. I've adjusted the order now.


DEBUG Setting Is Never Actually Used

This: https://github.com/lins05/slackbot/blob/master/slackbot/settings.py#L3 setting doesn't actually do anything as far as I can tell.

Actually it's used here: https://github.com/lins05/slackbot/blob/d4b176fe1fea71e43e8099491d79cfdeb8c6c3e8/run.py#L13 .


Campaign | Icons: POI locator

Approximate design from Lastenheft:

Prototype: https://www.figma.com/proto/7wE0Iveas3GGb8u4oL0714/App-Design-Mitglieder-App-(1)-(Copy)?node-id=2654-4866&t=b8swD5IOAFfZ0OSo-1

A definition of the icon as well as the green color is needed (HEX code). @leagerndt

Issue is reviewed.
Please use placeholder (icons and color) if necessary. Icons and hex-codes will be provided asap.
@nscharioth @leagerndt

@leagerndt kept as assigned here for now.


Move/delete all the contents of "4. Acronyms and abbreviations"

This addresses Issue #425.

This LGTM. I'll merge it.
Then, I'll open a PR to remove the file from the repo as a final test for the renumber mechanism.


RVI indicator

A request was made for the "Relative Volatility Index Indicator"
https://github.com/TA-Lib/ta-lib-python/issues/631

And also maybe the "Relative Vigor Index"
https://github.com/TA-Lib/ta-lib-python/issues/462


Failure using on Ubuntu 18.04

Hi Jussi,
I installed latest 1.2 version with script to Ubuntu18.04. Worked fine. I got latest astropy 2.0.6 installed -> great.
Server is running. When I start to solve an image, I get the following log entry and a not solved image.
Jun 20 21:34:37 ASTRO-MOUNT astrometry-api-lite-mgr[7830]: Checking for a work item...

 If the API has saved the uploaded files to one directory and the worker tries to find them from another, this is what would happen.
Both the API and the worker have their own configuration files (dist/api/configuration.json and dist/worker/configuration.json). The path to uploaded files is defined in both as queueFileUploadDir - do they match in both files? If not, there's the problem.

Jussi,
good hint. This was the issue. I used the install script and got 2 config files in dist/api. one is configuration.json and one named configuration.local.json. The config of the directories of .local.json did not match. once entered the right directory, I got solving. Why is there a configuration.local.json ? I did not have that in the past ?
Michel

The configuration.local.json has been there since the beginning, but I should really get rid of it. Originally it was there so that you could easily switch to use a different config by defining the AAPI_LITE_ENV environment variable but this is largely unnecessary and confusing. Also having multiple configuration files may be adding complexity unnecessarily. I'll add this to my todo-list to simplify the configuration.