Selection Action Title requirement not enforced on all platforms.

{
  "body": [
    {
      "columns": [
        {
          "width": "35",
          "items": [
            {
              "url": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fMostly+Cloudy-Square.png",
              "size": "medium",
              "type": "Image"
            }
          ],
          "type": "Column"
        },
        {
          "width": "65",
          "items": [
            {
              "size": "large",
              "weight": "bolder",
              "type": "TextBlock",
              "text": "{{longdate}}"
            },
            {
              "type": "TextBlock",
              "size": "medium",
              "text": "63 \/ 42"
            },
            {
              "type": "TextBlock",
              "text": "20% chance of rain",
              "isSubtle": true
            },
            {
              "type": "TextBlock",
              "text": "Winds 5 mph NE",
              "isSubtle": true
            }
          ],
          "type": "Column"
        }
      ],
      "type": "ColumnSet"
    },
    {
      "columns": [
        {
          "items": [
            {
              "type": "TextBlock",
              "text": "{{day1}}",
              "horizontalAlignment": "center"
            },
            {
              "url": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fMostly+Cloudy-Square.png",
              "type": "Image"
            },
            {
              "type": "TextBlock",
              "text": "62",
              "horizontalAlignment": "center"
            },
            {
              "horizontalAlignment": "center",
              "isSubtle": true,
              "type": "TextBlock",
              "text": "53"
            }
          ],
          "width": "20",
          "selectAction": {
            "url": "http:\/\/www.microsoft.com",
            "type": "Action.OpenUrl"
          },
          "type": "Column"
        },
        {
          "items": [
            {
              "type": "TextBlock",
              "text": "{{day2}}",
              "horizontalAlignment": "center"
            },
            {
              "url": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fDrizzle-Square.png",
              "type": "Image"
            },
            {
              "type": "TextBlock",
              "text": "60",
              "horizontalAlignment": "center"
            },
            {
              "horizontalAlignment": "center",
              "isSubtle": true,
              "type": "TextBlock",
              "text": "48"
            }
          ],
          "width": "20",
          "selectAction": {
            "url": "http:\/\/www.microsoft.com",
            "type": "Action.OpenUrl"
          },
          "type": "Column"
        },
        {
          "items": [
            {
              "type": "TextBlock",
              "text": "{{day3}}",
              "horizontalAlignment": "center"
            },
            {
              "url": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fMostly+Cloudy-Square.png",
              "type": "Image"
            },
            {
              "type": "TextBlock",
              "text": "59",
              "horizontalAlignment": "center"
            },
            {
              "horizontalAlignment": "center",
              "isSubtle": true,
              "type": "TextBlock",
              "text": "49"
            }
          ],
          "width": "20",
          "selectAction": {
            "url": "http:\/\/www.microsoft.com",
            "type": "Action.OpenUrl"
          },
          "type": "Column"
        },
        {
          "items": [
            {
              "type": "TextBlock",
              "text": "{{day4}}",
              "horizontalAlignment": "center"
            },
            {
              "url": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fMostly+Cloudy-Square.png",
              "type": "Image"
            },
            {
              "type": "TextBlock",
              "text": "64",
              "horizontalAlignment": "center"
            },
            {
              "horizontalAlignment": "center",
              "isSubtle": true,
              "type": "TextBlock",
              "text": "51"
            }
          ],
          "width": "20",
          "selectAction": {
            "url": "http:\/\/www.microsoft.com",
            "type": "Action.OpenUrl"
          },
          "type": "Column"
        }
      ],
      "type": "ColumnSet"
    }
  ],
  "speak": "<s>Weather forecast for {{weekday}} is high of 78 and low of 64 degrees with a 20% chance of rain<\/s><s>Winds will be 5 mph from the northeast<\/s>",
  "type": "AdaptiveCard",
  "backgroundImage": "https:\/\/urlp.asm.skype.com\/v1\/url\/content?url=http%3a%2f%2fmessagecardplayground.azurewebsites.net%2fassets%2fMostly+Cloudy-Background-Dark.jpg",
  "version": "1.0"
}

it's not iOS SDK issue; you're missing required "title" property in action items.

@dclaux,
It it looks like the Typescript renderer and the .dotnet renderers don't enforce title on actions as a required property. I'll fix the dotnet renderer, can you do the TS?

What should be the outcome if title isn't provided? What if an iconUrl is specified but no title?

I believe this should be treated as a error and fail to render the card since it's currently marked required in the schema file and docs. Although with iconUrl it may be something we should revisit in 1.2 if we want to allow cards to just have icons without titles? Currently the title is used for accessibility as well

This is likely to break some existing Actionable Message and Bot scenarios that use selectAction. I am not sure I am super comfortable making the change at this stage. How about we simply add a warning in the visualizer/designer? Especially if there is a possibility we relax this constraint in 1.2.

Ok, I think we'll relax the UWP/iOS/Android renderers to be consistent with the TypeScript and .NET ones.

For the time being, we'll accept the card if title isn't present and I've opened issue #1882 to track providing more consistency for the next release.

@dclaux,
I've noticed a slight change in behavior in the Typescript renderer between 1.0 and 1.1. In the absence of title in 1.1, the action gets dropped but in 1.0 the action remains and the title is set to undefined. I'm expecting that not putting undefined is now correct since we have iconUrl, but now the action gets dropped. Should we just treat that as the empty string?

Good catch - I probably introduced that when I added support for iconUrl. It's a parsing error; I think the button should still show and its title should be treated as an empty string as you suggest.

I've opened #1893 to track the fix in the HTML renderer.


AWS cloud credits

@sjackman I started the application for the AWS cloud credits
The deadline is June 30, by then we might have a better idea of what we need.
Here are 3 key things we need to apply (Would you mind helping with this section? We can chat more about it during our meeting in May and I will send you a friendly reminder in mid-April. If you are too busy we could ask someone else to help us):

“Please use the simple monthly calculator to estimate your monthly AWS bill based on various AWS services to be used, then multiply by the expected duration of your project. If your project involves interruption-tolerant jobs, we strongly encourage you to plan for the use of Spot Instances and alter your budget accordingly. Please see our FAQ for more information”
“Save and Share URL from Simple Calculator*”

Proposed AWS solution (including specific AWS tools, timeline, key milestones).

AWS Credits Desired for Entire Project in USD (one year maximum)*

Another item we might need to discuss is this section:

Any potential future use of AWS beyond grant duration by individual research group or broader community.

Thanks!

@sjackman I got in touch with Gaurab Basu from AWS in Seatle and he is willing to answer questions we might have about the application. Just let me know.

See https://aws.amazon.com/ec2/pricing/
My upper bound estimate for the weekend is $7000 USD. It's likely much less than that.
That estimate is based on one 64 GB machine per person * 100 people * 72 hours. One 64 GB machine is 96 cents per hour.
$0.958 * 100 * 72 = 6897.60
In the project proposal we should ask the team leaders whether they need any HPC at all. If they do, ask for a rough estimate of the amount of RAM required for their analysis. An 8 GB machine is only $0.10 per hour, a tenth of the cost of a 64 GB machine, but many people's laptops have that much RAM, in which case we wouldn't need to rent a machine at all.
Ask each leader:

No HPC needed, my laptop is enough
AWS EC2 with 8 GB RAM
AWS EC2 with 16 GB RAM
AWS EC2 with 32 GB RAM
AWS EC2 with 64 GB RAM
AWS EC2 with more than 64 GB of RAM
Does each team participant need a machine, or will the team share one machine?

If the machines are only needed during the day (8 hours per day rather than 24), then the cost will be a third.

Data storage costs will be minimal for a few days. I'll have to look into whether data transfer costs are a consideration. If anyone is planning on transferring multiple large sequencing datasets, it may be a consideration.

I'm thinking that it makes more sense that each team would share one machine (or possibly more) of sufficient size to suit that project's purposes, rather than one machine per participant. Let's ask the team leaders the following question:
How many of the following machines does your project require, for the team to share?

No HPC needed. The laptops of the participants are enough.
AWS EC2 with 8 GB RAM
AWS EC2 with 16 GB RAM
AWS EC2 with 32 GB RAM
AWS EC2 with 64 GB RAM
AWS EC2 with 160 64 GB of RAM

The application looks pretty straight forward.
https://aws.amazon.com/research-credits/

Proposal description should address the following topics:

Brief description of problem to be solved.
Proposed AWS solution (including specific AWS tools, timeline, key milestones).
Plan for sharing outcomes (tools, data, and/or resources) created during project.
Any potential future use of AWS beyond grant duration by individual research group or broader community.
Names of any AWS employees you have been in contact with (this is not a prerequisite for the application).
Any AWS Public Data Sets to be used in your research.

Brief description of problem to be solved.

Describe the HackSeq workshop in general terms. Include a one-sentence summary of each project.

Proposed AWS solution (including specific AWS tools, timeline, key milestones).

AWS EC2 and S3. Oct 15–17.

Plan for sharing outcomes (tools, data, and/or resources) created during project.

We should require that each project post a summary of their results to be posted on the HackSeq web site. We should also distribute any data resulting from their analyses?

Any potential future use of AWS beyond grant duration by individual research group or broader community.

Many participants will likely not have used AWS before, and this workshop will serve as their introduction to cloud computing and Amazon Web Services.

Names of any AWS employees you have been in contact with.

Gaurab Basu from AWS in Seattle

Any AWS Public Data Sets to be used in your research.

We'll have to ask the team leaders this question.

Estimating 20 teams and one m4.4xlarge machine with 64 GB of RAM and 500 GB of storage per team, and some wild, hopefully on the high side, guesses about data transfer requirements, the cost estimate is $3576.93 USD. Here's the AWS cost calculator:
http://calculator.s3.amazonaws.com/index.html#r=PDX&s=EC2&key=calc-7C5A8FDE-8340-4C8E-B8F1-66D57C4B00BB

What is the size of your data in GB?

I'm going to estimate that the size of the data transferred in (which is free) is going to be the same size as the data transferred out (which costs money).

We have run several of these things through AWS, and cost for 5 teams has
run ~~$1500 for a three day event.
I can put you and Adriana in touch with some folks I know at Amazon and/or
other cloud providers at some point.
Cheers!
Ben
On Sun, Mar 20, 2016 at 9:36 PM, Shaun Jackman<EMAIL_ADDRESS>wrote:

What is the size of your data in GB?
I'm going to estimate that the size of the data transferred in (which is
free) is going to be the same size as the data transferred out (which costs
money).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/hackseq/October_2016/issues/6#issuecomment-199080891

--
What have you done today to make the world a better place?

That's very helpful. Thanks for the estimate, @DCGenomics. (Do you have a real first name, that I can call you?)
My estimate of $179 per team seems to be on the low side then. Do you have a breakdown of the costs at $300 per team? I'd like to know if I was underestimating the cost of storage and transfer.
@adrisua has a contact, Gaurab Basu from AWS in Seattle.

Sure, my name is Ben Busby, and I work at NCBI.
Im also looping Matt Lesko from NCBI, who has been the technical lead for
our hackathons in on this conversation.  He can give you a specific
breakdown of costs per team (as you suspected before, its not the same for
each team).
Cheers!
Ben
On Mon, Mar 21, 2016 at 2:52 PM, Shaun Jackman<EMAIL_ADDRESS>wrote:

That's very helpful. Thanks for the estimate, @DCGenomics
https://github.com/DCGenomics. (Do you have a real first name, that I
can call you?)
My estimate of $179 per team seems to be on the low side then. Do you have
a breakdown of the costs at $300 per team? I'd like to know if I was
underestimating the cost of storage and transfer.
@adrisua https://github.com/adrisua has a contact, Gaurab Basu from AWS
in Seattle.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/hackseq/October_2016/issues/6#issuecomment-199423173

--
What have you done today to make the world a better place?

For such a short period of time (72 hacking hours, plus a few more to set things up and tear them down), the cost of an instance dominates. We've been pretty successful with giving each team a m4.4xlarge on Day 1 and one large root volume (~2TB, or more if somebody knows ahead of time). That's $0.958/hr/team as you identified earlier.
The advantage of AWS is that one can spin up more and larger instances as needed. We had one team working with RNASeq that requested, and used 100%, two additional m4.10xlarge instances.
So the answer is ... it depends. $300/team is sort of a "high-but-low" bound: it's conceivable that's not enough for the more computationally demanding users. And it's notoriously hard to estimate resource requirements. But it's sufficient for "most" teams.

@sjackman: is there any plan to use Galaxy at the hackathon?

No plan, and I have little experience with Galaxy myself, but let's get feedback from the project leaders if that would be useful to them.

My supervisor was considering leading a team focused on Galaxy tool development. However, we would just install Galaxy on vanilla EC2 instances.

That's fantastic @brunogrande! I will let the Galaxy Project people know - they mentioned that they will heavily promote the event if it's linked to Galaxy.

Great!

I received an email from Angel Pizarro from Amazon on the hackseq gmail

Hello hack seq team. Would it be helpful to provide AWS credits to the participants? If so let me know and I can start the process.

@sjackman could you possibly correspond with them via our gmail? It could be a good opportunity. Thanks!

I'd prefer to use my own e-mail address and cc the Hackseq e-mail address. Does that work for you? Yes, I'd be happy to follow up. Is this so that the participants can have some AWS credits in their name, not belonging to Hackseq? That does seem useful so they can do some follow up work after they leave.

Thanks, that works for me. I will forward the email to the gmail you have listed on your GiHub profile. I'm not sure, but I that seems what they are proposing.

Summarizing the project proposals
5 projects require HPC
1 project will use an AWS data set
The data size totals 2 TB: 1, 1000, 2, 700, 100 (GB)
The hard drive sizes total 17 TB: 2100 + 72000 + 6*32 + 1000 + 1000 (GB)
The requested machines: 1 large, 6 xlarge, 13 10xlarge
I'll put together a new AWS cost estimate spreadsheet for these resources. I don't have a good idea really of what I/O usage will be.

@gracezheng Which public AWS data sets will you be using?

We have not released the dataset to the public yet. But it'll be similar in nature to this one, except the matrix file is about 0.5GB.

Will you be using a public data set this already available on AWS? https://aws.amazon.com/public-data-sets/

Updated cost calculator estimate
for 10 m4.4xlarge and 13 m4.10xlarge each with a 1 TB hard drive

I have submitted the AWS credits application:

We are organizing the Hackseq Genomics Hackathon http://www.hackseq.com in the three days prior to the The American Society of Human Genetics (ASHG) 2016 meeting Oct 15-17 in Vancouver, Canada. We have 9 teams participating, each team with an estimated 5-10 participants, for a total estimated 50-100 participants.
The project leaders have provided estimates of the compute requirements for each of their projects. The total compute requirements of all the projects is 10 m4.4xlarge and 13 m4.10xlarge most with a 1 TB hard drive, and 7 with a 2 TB hard drive.
The teams will collaborate using GitHub. The results of each analysis will be shared using GitHub Pages. We will summarize these results on the Hackseq web site and share them on social media, primarily Twitter.
Many participants will not have used AWS before, and this workshop will introduce those participants to AWS. The participants may choose to continue to use AWS after the workshop has completed.
We have communicated with Gaurab Basu from AWS in Seattle, and Angel Pizarro.
I have provided my personal AWS Account Number. Should we set up a new AWS Account for this workshop?
Thank you for your support. My best regards,
Shaun Jackman
http://sjackman.ca
http://www.hackseq.com

We have been awarded $7500 (30 codes of $250 each)!

Well done @sjackman!! Go Team!!

@sjackman: Are team leaders aware that they will be able to use AWS during Hackseq? If not, I can include this in an email to team leaders describing what they can do prior to Hackseq (related to hackseq/October_2016_private#29).

Good catch. We haven't yet told the team leaders or participants. The team leaders definitely need to create an AWS account in advance of Hackseq, as they require authentication by a text / phone call and take a few days to approve.

Have aws account
On Sep 8, 2016 7:16 PM, "Shaun Jackman"<EMAIL_ADDRESS>wrote:

Good catch. We haven't yet told the team leaders or participants. The team
leaders definitely need to create an AWS account in advance of Hackseq, as
they require authentication by a text / phone call and take a few days to
approve.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/hackseq/October_2016/issues/6#issuecomment-245771441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFePtQDR53aai-JfpApMidn1ReSH4lEQks5qoJdFgaJpZM4H0g6U
.

@sjackman Melissa (one of the team leaders) asked the following about the AWS credits

Was there a default amount requested for each team? I'm sorry if I missed that.

Are the codes available based on what the team leaders requested in their original applications? Or are there codes available for everyone? Is there any other information that the team leaders need to know that I should add to the final email to them?

Each team was allocated the amount that they requested. If they did not request any, they were allocated $250.

Distribution of 30 codes:
Teams 10, 4, 2 should be given 4 codes per EACH team ($1,000 per team).
Team 8 gets 8 codes ($2,000)
Team 7 gets 5 codes ($1,250)
Teams 9, 6, 5, 1 get one code EACH ($250 per team)
There will be one remaining code of $250 for additional needs.

There was some confusion with the GitHub project issue numbers, before they were renumbered for the form. I'll have to double check my notes at work to make sure that these project numbers are correct.

@sjackman - that is awesome! Melissa did not request anything, but I will reply and let her know that each team has been assigned one code. Thanks!

Melissa has some more questions regarding the AWS codes:

What is one code worth in terms of compute hours?

Should we just have one person on AWS?

@sjackman @brunogrande can you answer these questions? Do you think it may be good to include how this will work in the intro session?

Each code is worth $250. The price per hour depends on the size of the machine. An m4.4xlarge machine with 16 cores and 64 GB of RAM is roughly $1 / hour. The pricing schedule is here: https://aws.amazon.com/ec2/pricing/on-demand/
The project leader will start up the machine(s) and then any number of participants can log into that machine. You pay per machine (not per user logged in).
Yes, let's give a short description of AWS at the intro.

@sjackman - perfect. Thank you!

Where can I get the codes for team 7? I'd like to upload some files on amazon for my team members to download.
Thanks

Hi, Grace. I've sent you your first code on Slack.


[Event Request] - OnBeforeCopyGLEntries in Codeunit 413 "AnalysisViewEntryToGLEntries"

Hello, please consider adding the following event to Codeunit 413 "AnalysisViewEntryToGLEntries"
    [IntegrationEvent(false, false)]
    local procedure OnBeforeCopyGLEntries(var AnalysisViewEntry: Record "Analysis View Entry"; var Handled: Boolean)
    begin
    end;

and call it accordingly inside "GetGLEntries" procedure:
procedure GetGLEntries(var AnalysisViewEntry: Record "Analysis View Entry"; var TempGLEntry: Record "G/L Entry")
var
    GLEntry: Record "G/L Entry";
    AnalysisViewFilter: Record "Analysis View Filter";
    UpdateAnalysisView: Codeunit "Update Analysis View";
    StartDate: Date;
    EndDate: Date;
    GlobalDimValue: Code[20];

    **Handled: Boolean;**

    begin
        AnalysisView.Get(AnalysisViewEntry."Analysis View Code");

        if AnalysisView."Date Compression" = AnalysisView."Date Compression"::None then begin
            if GLEntry.Get(AnalysisViewEntry."Entry No.") then begin
                TempGLEntry := GLEntry;
                TempGLEntry.Insert();
            end;
            exit;
        end;

        GLSetup.Get();

        StartDate := AnalysisViewEntry."Posting Date";
        EndDate := StartDate;

        with AnalysisView do
            if StartDate < "Starting Date" then
                StartDate := 0D
            else
                if (AnalysisViewEntry."Posting Date" = NormalDate(AnalysisViewEntry."Posting Date")) and
                   not ("Date Compression" in ["Date Compression"::None, "Date Compression"::Day])
                then
                    EndDate := CalculateEndDate("Date Compression", AnalysisViewEntry);

        **OnBeforeCopyGLEntries(AnalysisViewEntry, Handled);
        if not Handled then**

            with GLEntry do begin
                SetCurrentKey("G/L Account No.", "Posting Date");
                SetRange("G/L Account No.", AnalysisViewEntry."Account No.");
                SetRange("Posting Date", StartDate, EndDate);
                SetRange("Entry No.", 0, AnalysisView."Last Entry No.");
...
...

Thank you !

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 52098.


⚠ Bofrost.fr has degraded performance

In 088ccba, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1019 ms

Resolved: Bofrost.fr performance has improved in 29e6955 after 12 minutes.


Attempt to remove non-JNI local reference, dumping thread logs

We hear complaints from users about Attempt to remove non-JNI local reference, dumping thread logs littering the logcat. Referencing https://github.com/mapbox/mapbox-gl-native/issues/9688#issuecomment-373004990, we can work around those issues by using FeatureCollections and Functions/Expressions to update LocationLayer in various places like https://github.com/mapbox/mapbox-plugins-android/blob/1ccb76cc4b84d9e40ea1720eabf6c6a49e9e98a7/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java#L195 and https://github.com/mapbox/mapbox-plugins-android/blob/1ccb76cc4b84d9e40ea1720eabf6c6a49e9e98a7/plugin-locationlayer/src/main/java/com/mapbox/mapboxsdk/plugins/locationlayer/LocationLayer.java#L201, instead of using layer properties setters.

This has been quite annoying for me also, will pick this one up :)


Artifact identification

Theory
Currently, git SHA is used to identify a release.
But there is a valid circumstance with dockerised applications that some changes will not actually result in a change in the docker image, as seen here in a quay.io tag list:

The following tags:

git SHA fd8f213d25c31696ec66d2040802e9a0a7f570ee
git SHA 11368bddf1b0beddbc7ce328c514fdc057ca696a
git SHA ec52679d64cb35dfa4c0c3827fd6a00a09de9e62

Are equivalent in contents, however they are currently treated as 3, separately approvable releases.
Proposal
The current artifact identification for a release is:

Take git SHA. If changes, require approval.

Instead, collect artifact SHAs that contribute to a release:

This is still git SHA for non-dockerised, non-packaged applications. (Most Ruby applications.)
Can be a list of docker image SHAs for applications building images.

This is my use case and it would help in pushing through changes that touch files ignored by .dockerignore (READMEs, etc.).

Can be a list of JAR SHAs for applications providing JVM based languages.
Similar approach can be used with any other package.

Caveat
This approach only works if the generated artifacts are actually the same if there's no relevant change.
Approach

When deploying or building right now, we submit a version field. This is implied to be a git SHA because the UI has links towards GitHub using this value. No change here.
Add a new field called "artifact_versions": [...]. If missing or empty, assume default value of [version].
When making the check to sign off changes, see if the artifacts match up. If they do, there is no observable production change, so the change doesn't need to be deployed.
Win 😀

I created this ticket:
https://jira.fundingcircle.com/browse/TD-21
Idea is to add visibility within the new technical backlog and bring it live

^ @fernandezj Now asking about it :)

Note: I saw this and I don't have much context, so forgive me if I'm misunderstanding anything.
I like this idea, but I can see a potential issue: A Docker image may change even if the underlying git source did not. Consider:

The base image a Dockerfile builds on may have changed
New security updates may be available for dependencies pulled into the Docker image
The build process around the Docker image (e.g. Jenkins) may be adding new or different metadata to the image

Not all of these are likely or frequent, but I suspect it may be enough to break the assumption that no change in git == no change in the generated Docker image. That being said, I'm not certain if situations like these count as product changes that require approval.


Fixed some typos in Database.test

Fixed typoes in Auto Create Statistics, Auto Update Statistics and Auto Update Statistics Asynchronously at -Because
A New PR
THANK YOU - We love to get PR's and really appreciate your time and help to improve this module
Accepting a PR
Before we accept the PR - please confirm that you have run the tests locally to avoid our automated build and release process failing. You can see how to do that in our wiki
https://github.com/sqlcollaborative/dbachecks/wiki
Please confirm you have 0 failing Pester Tests
[x] There are 0 failing Pester tests
Changes this PR brings
Please add below the changes that this PR covers. It doesnt need an essay just the bullet points :-)
Fixed typoes in Auto Create Statistics, Auto Update Statistics and Auto Update Statistics Asynchronously at -Because

Thank you @RonaldHensbergen :-)


circlesclock: fixed crash if item has no image and cutting long text

Quick and dirty as my watch was crashing every time I was getting to the calendar clkinfo. In this case I guess the addInteractive could also populate the img field with the one from the menu item (still i think we ought to check it).
The text slicing is also preventing to draw outside the circle so that the text doesn't stay there while rotating, again this could be handled better splitting words, but I'd rather have clkinfos using the short field in this case (I'm planning to do it myself for the agenda, when I have some time).

Sorry, my bad, wasn't aware of this one. I mean the agenda clkinfo. Basically the icon is set for the main agenda menu but left empty for events (which made sense for bwclock I guess). In this case it doesn't really make sense to set the same image to all events, does it?

Ahh, interesting. Well, in the docs we don't say it's optional - so really agenda should do something IMO as I bet it could break other stuff too.
I've just pushed a change to Agenda that puts the standard icon there.

In this case it doesn't really make sense to set the same image to all events, does it?

In Circlesclock I think that makes a lot of sense? If you see a random item on the screen, it would be really helpful to have an icon to show you what it is. Same for SlopeClock++/etc.
It doesn't actually take up any more RAM either as we just reference the same icon we used before

But I guess a null check doesn't hurt anyway :)

Sure, if the specs say it, better have it!


Arr.cs optimization variable naming and guarding

Q
A

Branch?
v2.0(master)

Bug fix?
No

New feature?
No

Deprecations?
No

Internal Changed?
Yes

Removed
No

Tests pass?
Yes

Doc pr?
No

This submission optimizes the variable naming and guarding of Arr.cs

Codecov Report

Merging #263 into master will decrease coverage by 0.48%.
The diff coverage is 92.02%.

@@            Coverage Diff             @@
##           master     #263      +/-   ##
==========================================
- Coverage   90.13%   89.65%   -0.49%
==========================================
  Files          36       36
  Lines        2403     2407       +4
==========================================
- Hits         2166     2158       -8
- Misses        237      249      +12

Impacted Files
Coverage Δ

src/CatLib.Core/Support/Arr.cs
92.59% <92.02%> (-4.9%)
:arrow_down:

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 dbdbfd6...62d41e6. Read the comment docs.


std.experimental style fix: space between operators

follow-up to #4239

Closed in favor of doing it one PR - #4240


fix: prevent re-fetch runs

Description

Fixes #242

This commit introduces optimizations to avoid re-fetching of runs on accordian click.
Previously, the event handler handleExpandItem was triggered on each accordian click.
With this change, a cache check has been implemented determining whether the run or an accordian within a run,being expanded already exists in the cache(done by checking the key of the run in the cache).
If the run is not found in the cache, the handleExpandItem function is executed, thereby avoiding unnecessary network calls on subsequent accordian clicks.
This optimization also handles clicking an accordian inside the runs accordian.

Checklist

[x] My code follows the contributing guidelines of this project.
[X] I am aware that all my commits will be squashed into a single commit, using the PR title as the commit message.
[X] I have performed a self-review of my own code.
[X] My changes generate no new warnings.
[X] I have not reduced the existing code coverage.

Thanks @anantJjain :pray: If the PR is ready for review, please assign reviewers so that they will get notified (one or all of Javed, Anurag & Salihu)

This functionality has already been implemented. In _handleExpandItem method the part of the functionality that fetches the data is terminated when a cache of that item is found.


How to add same product twice with different attributes

Hello @tonyvu2014 , i just integrated your library with my project and yes it's really cool , i enjoyed the code and the way you manage the whole process , but as per my requirement , i am just trying to add same product in my cart list having different attribute but is unable to add , i tried alot but it seems i am confused with your one condition can you please help me to understand the point , What i simply want to do is , suppose i am having one product on my screen having multiple color and sizes , so at first i add the product to my cart with color Blue and size XS and now i am trying to add same product with Color Black and Size S or Color Blue but this time having Size M , your library do not let me to add same product twice  , can you please tell me that what should i do to achieve this As this is very basic feature for every shoping cart.
Here is my code :-
`public void add(final Saleable sellable, int quantity) {
    if (cartItemMap.containsKey(sellable)) {
        mConfigSelectedObject = sellable.getConfigurableselectedArray();
        Cart cartget = CartHelper.getCart();
        List<CartItem> cartlist = getCartItems(cartget);

        if (mConfigSelectedObject.length() > 0) {
            if (isEqualArray(cartlist, mConfigSelectedObject)) {
                cartItemMap.put(sellable, cartItemMap.get(sellable)
                        + quantity);
            } else {
                cartItemMap.put(sellable, quantity);
            }
        } else {
            cartItemMap.put(sellable, cartItemMap.get(sellable) + quantity);
        }
    } else {
        cartItemMap.put(sellable, quantity);
    }
    configurableparamArray = sellable.getConfig();
    totalPrice = totalPrice.add(sellable.getPrice().multiply(
            BigDecimal.valueOf(quantity)));
    totalQuantity += quantity;
}

private boolean isEqualArray(List<CartItem> cartlist,
        JSONArray mConfigSelectedObject2) {
    boolean isEqual = false;
    for (int i = 0; i < cartlist.size(); i++) {
        for (int j = 0; j < cartlist.get(i).getProduct()
                .getConfigurableselectedArray().length(); j++) {
            try {
                if (cartlist
                        .get(i)
                        .getProduct()
                        .getConfigurableselectedArray()
                        .getJSONObject(j)
                        .getString(Constants.KEY_ATTRIBUTE_ID)
                        .equalsIgnoreCase(
                                mConfigSelectedObject2.getJSONObject(j)
                                        .getString(
                                                Constants.KEY_ATTRIBUTE_ID))
                        && cartlist
                                .get(i)
                                .getProduct()
                                .getConfigurableselectedArray()
                                .getJSONObject(j)
                                .getString(Constants.KEY_OPTION_ID)
                                .equalsIgnoreCase(
                                        mConfigSelectedObject2
                                                .getJSONObject(j)
                                                .getString(
                                                        Constants.KEY_OPTION_ID))) {
                    isEqual = true;
                } else {
                    isEqual = false;
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

    }
    mConfigSelectedObject = new JSONArray();
    return isEqual;
}`

As you are the master of this library , so it will be easy for you to tell me what should i do with cartItemMap.containsKey(sellable)
Thanks

Hi @siddharth2824
Thank you for using this library. To answer your question, since my library uses HashMap for shopping cart, it must be able to differentiate between different products by hashCode. That's why in my README, i mentioned that you should extend Saleable interface and override equals() and hashCode() methods. In your case, the hashCode() implementation needs to make use of product attributes (size, color,...). You can find an example of Product class under demo module here:
https://github.com/tonyvu2014/android-shoppingcart/blob/master/demo/src/main/java/com/android/tonyvu/sc/demo/model/Product.java
There are also a lot of online examples on how to create a efficient hashCode() method.
Let me know if you still have some questions.

Thank you for your reply , so should i do something like this
`package com.mss.magentomobileshop.models;
import java.io.Serializable;
import java.math.BigDecimal;
import org.json.JSONArray;
import org.json.JSONObject;
import com.mss.magentomobileshop.basecart.Saleable;
public class Product implements Saleable, Serializable {
private static final long serialVersionUID = -4073256626483275668L;
private int pId;
private String pName;
private String image;
private BigDecimal pPrice;
private String pDescription;
private String CongiurableParamArray;
private String CustomParamArray;
private JSONObject customSelectedObject;
private JSONArray configurableSelectedArray;

public Product() {
	super();
}

public Product(int pId, String pName, BigDecimal pPrice,
		String CongiurableParamArray, String CustomParamArray,
		JSONObject customSelectedObject,
		JSONArray configurableSelectedObject, String Image) {
	setId(pId);
	setName(pName);
	setPrice(pPrice);
	setCongiurableParamArray(CongiurableParamArray);
	setCustomParamArray(CustomParamArray);
	setCustomSelectedObject(customSelectedObject);
	setConfigurableSelectedObject(configurableSelectedObject);
	setImage(Image);
}

@Override
public boolean equals(Object o) {
	if (o == null)
		return false;
	if (!(o instanceof Product))
		return false;

	return (this.configurableSelectedArray == ((Product) o)
			.getConfigurableselectedArray());
}

public int hashCode() {
	final int prime = 31;
	int hash = 1;
	hash = hash * prime + pId;
	hash = hash * prime + (pName == null ? 0 : pName.hashCode());
	hash = hash * prime + (pPrice == null ? 0 : pPrice.hashCode());
	hash = hash * prime
			+ (pDescription == null ? 0 : pDescription.hashCode());
	hash = hash
			* prime
			+ (configurableSelectedArray == null ? 0
					: configurableSelectedArray.hashCode());

	return hash;
}

public void setCongiurableParamArray(String congiurableParamArray) {
	CongiurableParamArray = congiurableParamArray;
}

public int getId() {
	return pId;
}

public void setId(int id) {
	this.pId = id;
}

@Override
public BigDecimal getPrice() {
	return pPrice;
}

@Override
public String getName() {
	return pName;
}

public void setPrice(BigDecimal price) {
	this.pPrice = price;
}

public void setName(String name) {
	this.pName = name;
}

public String getDescription() {
	return pDescription;
}

public void setDescription(String pDescription) {
	this.pDescription = pDescription;
}

public void setCustomParamArray(String customParamArray) {
	CustomParamArray = customParamArray;
}

public void setCustomSelectedObject(JSONObject customSelectedObject) {
	this.customSelectedObject = customSelectedObject;
}

public void setConfigurableSelectedObject(
		JSONArray configurableSelectedArray) {
	this.configurableSelectedArray = configurableSelectedArray;
}

@Override
public String getConfig() {
	// TODO Auto-generated method stub
	return CongiurableParamArray;
}

@Override
public String getCustom() {
	// TODO Auto-generated method stub
	return CustomParamArray;
}

@Override
public JSONArray getConfigurableselectedArray() {
	// TODO Auto-generated method stub
	return configurableSelectedArray;
}

@Override
public JSONObject getCustomeselectedObject() {
	// TODO Auto-generated method stub
	return customSelectedObject;
}

public void setImage(String image) {
	this.image = image;
}

@Override
public String getImage() {
	// TODO Auto-generated method stub
	return image;
}

}
`

Hi @siddharth2824
What is configurableSelectedArray? Where are your color and size? Why do you compare configurableSelectedArray in equals() method? Is it something that uniquely defines the product?

Yes it will be unique for all products as it contains the collection of color and size selected of product

ok, then it might work. Have you tried to run that code? Does it work?

its adding same product separately  every time

I suspect configurableSelectedArray.hashCode() is the same regardless of its content. Can you print out that value for different colors and sizes? If it is constant, then you have to go further by computing hashCode based on configurableSelectedArray items. Something like:
hash = hash
            * prime
            + (configurableSelectedArray[0] == null ? 0
                    : configurableSelectedArray[0].hashCode());
hash = hash
            * prime
            + (configurableSelectedArray[1] == null ? 0
                    : configurableSelectedArray[1].hashCode());

Closing this issue because it cannot be reproduced


Bonus time toggle

This is going to require rethinking how I do bonus time, since right now we effectively constantly add and remove bonus time.

I guess I didn't have to rethink it at all.


[Maintanence + DX] - delete old queries and POC gql-data

Context

[x] Ref #10185

Screenshot 📸

this has grown larger then i intended

I have deleted all unused graphql queries
i have deleted some dead pages and their associated components => delete more dead queries
I have converted some queries to types ones, but it's a large job, so let's continue in a follow up

@Jarsen136 @preschian

Playwright detection: Collection banner/names are not loading

@prury
yes i have noticed
fixed

3. but it's a large job, so let's continue in a follow up

Nice 👍🏻
Yes, there is no need to migrate it to one PR
Can you summarise a little bit of how to use it and the tradeoff? And mention internal dev

sure
first let's break this PR apart so it doesn't look so scary and big

56 deleted graphql files (old and unused queries, spring cleanup)
16 deleted .vue and .ts files. these are dead pages and their associated sub components (hot, sales, spotlight pages)
1 deleted unused composable (composables/drop/useCheckReferenDumVote.ts)
3 deleted types i've created in #10176

so far 76 deleted files

8 new .ts files  typed fragments
4 new d.ts files that contain the typings of the graphql clients, 1 file for the functions that take in a query text and return typed DocumentNode
6 new typed queried

19 new files
so far 95 files

6 edited componenets
4 misclenious (package.json, tsconfig and such)

105 files

If it is suitable -
Aka for queries that already use subsquid/general it is ok to use typed queries
However for specific chains I would resolve Query path - or better checl when and why it was added back then

if it is suitable -
Aka for queries that already use subsquid/general it is ok to use typed queries

However for specific chains I would resolve Query path - or better checl when and why it was added back then
i agree, this is a good tradeoff between both approaches
therefore, i will delete the typed clients that are chain specific, and will call https://ahp.gql.api.kodadot.xyz/ GENERAL

cc @preschian @Jarsen136

thx @Jarsen136
fixed

@preschian  Thank you
All done

Please @daiagi, @Jarsen136 and @prury go through app and make sure that every page and chain work as intended :)

@vikiival

Prob delete as it is same as nft.ts
add updatedAt to be able to remove

done

i have scanned throuh

home page (all chains)
explore collections and items (all chains)
my profile page
drops home page
single ahk drop page
create pages
single nfty page (all chains)
single collection page (all chains)

so far 0 graphql detected

How about trasactions like create collection,
list/buy NFT ?

i did buy and list 1 ahp nft

I went through the website and did not find anything abnormal.

How about trasactions like create collection,
list/buy NFT ?

i did buy and list 1 ahp nft

i will perform transaction tests as well trough the day

NFT Transfer :white_check_mark:
Change Price :white_check_mark:
Collection Creation :white_check_mark:
NFT Creation(List, copies) :white_check_mark:
Mass buy :white_check_mark:
Mass list :white_check_mark:
Drop Mint :white_check_mark:

failing test can be ignored

i've resolved conversations, merging now


Unable to run azd pipeline config

azd version 0.8.0-beta.3-daily.2756342
Not sure if this is related to starter template.
Repro steps:
Follow steps in https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/make-azd-compatible?pivots=azd-convert.

Run git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Replace main.bicep with what's in the tutorial

make sure in /core/host, the following files are found: appservice-appsettings.bicep; appservice.bicep and appserviceplan.bicep.

run azd provision
replace azure.yaml with what's in the tutorial
run azd deploy
run git remote rm origin
run azd pipeline config. Private repo is created but hit the following error message:

ERROR: failed to create or update service principal: failed retrieving application list, failed executing request: http call(https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/v2.0/token)(POST) error: reply status code was 400:
{"error":"invalid_grant","error_description":"AADSTS50158: External security challenge not satisfied. User will be redirected to another page or authentication provider to satisfy additional authentication challenges.\r\nTrace ID: 4b08afbe-880a-42b0-b310-afe60bb59000\r\nCorrelation ID: 17861d31-f579-475c-8cf9-4b817058ec98\r\nTimestamp: 2023-05-09 04:44:17Z","error_codes":[50158],"timestamp":"2023-05-09 04:44:17Z","trace_id":"4b08afbe-880a-42b0-b310-afe60bb59000","correlation_id":"17861d31-f579-475c-8cf9-4b817058ec98","error_uri":"https://login.microsoftonline.com/error?code=50158","suberror":"basic_action"}

I think this is due to the msgraph scope needing additional authorization.


Fix the fact that spyder_win_post_install.py can't be run from pip

Fixes #2188

add missing bdist_wininst functions from pywin32_postinstall.py:
file_created(), directory_created(), get_root_key(), create_shortcut()
and get_special_folder_path()
test for pythoncom and return message "pywin32 required" on ImportError
replace CSIDL_COMMON_PROGRAMS with CSIDL_PROGRAMS to be consistent with
desktop shortcut which is in user profile, and so that user doesn't have
to elevate rights in order to install Spyder
add TODO to remove error message "try running installer as
administrator" since it's unnecessary if admin rights not required.
if running spyder_win_post_install.py -install manually after installing
with pip, then spyder.ico and spyder_light.ico are in the
Python27\Scripts\ folder not in the distribution folder, so check if
ico_dir exists and use absolute path to spyder_win_post_install.__file__
clean up desktop and start menu shortcuts on removal
provide feedback on successful removal of context, desktop and start
menu shortcuts

Signed-off-by: Mark Mikofski<EMAIL_ADDRESS>

One thing that I'd like to know is if it's possible to tell pip to run this script after install/uninstall steps.
I mean, can't we add something to setup.py to make this happen automatically?

That would be very nice if the post install script could be run automatically, although I was thinking of making that a separate feature after this one gets pulled.
Another feature I thought would be nice is a post install script for other platforms that does the equivalent for linux and mac osx. IE on linux it could create a desktop file in .local/share/applications/ called spyder.desktop that would add spyder to the launcher. And in mac osx it could drop an .app file in the applications drawer that launched spyder instead of having to launch it from the terminal.
Back to your question, though, I don't know how to get pip to run the script. I don't if you can add it to setup.py but it seems plausible. It's a good place to start. But I'm okay with just running it manually. When I set up Python for other engineers here at SunPower, I usually use pip, and then manually make a shortcut to spyder on the desktop that runs C:\Python27\python.exe C:\Python27\scripts\spyder and then manually change the icon to C:\Python27\scripts\spyder.ico - so having this post installer will greatly improve the setup procedure since it will also add the Windows Explorer Context menu support.
Thanks!

Ok, my final review is done. Sorry for taking so much time to do it :-)
Please try to address my comments later today or tomorrow morning, if you want to include this PR in 2.3.5. Else, I'll leave it for 3.0.

Thanks @ccordoba12 for your review, I have addressed your current comments:

[ ] define root_key_name
[ ] complete TODO to remove "run -install with admin rights"
[ ] only run manual -remove if is_bdist_wininst == False

@mikofski, thanks for the quick response! I'll merge it tomorrow and backport it to 2.3.5 (which will be released tomorrow too :-)

@mikofski, I tested your work before releasing 2.3.5 and it's working great! Thanks a lot for it.

That's great news! Glad I could contribute.


substitude divide() or math.divide or multiply by decimal (when it's …

…a number) to comply with the sasslang request not to use '/' as divisor anymore
This PR wraps the #117 request to not use '/' as a divisor in sass anymore.
The strategy is similar as Bootstrap's fix in 5.0.2 . In preference order this is what we did::

If it's a division by a number, just change to multiply by decimal ($x / 2 -> $x * 0.5).
Whenever you can, use Bootstrap's new divide() utility function . More portable.
If neither of those applies, use Sass's recommended math.div function. We needed to do this in  one file: shared/_utils.scss .

Tested on my local machine. No more divisor deprecation warnings after making the changes here.

Just tried this out, LGTM.


No NFS share between two nebula hosts

I have trouble setting up an NFS share between two nebula hosts, one acting as a server (<IP_ADDRESS>), one as a client (<IP_ADDRESS>).
Are there any known limitations that could explain this?
Nebula config:
pki:
  ca: /etc/nebula/certs/ca.crt
  cert: /etc/nebula/certs/host.crt
  key: /etc/nebula/certs/host.key
  blocklist: []

static_host_map:
  "<IP_ADDRESS>": ["lighthouse1.example.com:4242", "IP1:4242"]
  "<IP_ADDRESS>": ["lighthouse2.example.com:4242", "IP2:4242"]

lighthouse:
  am_lighthouse: False

  hosts:
    - "<IP_ADDRESS>"
    - "<IP_ADDRESS>"

# Port Nebula will be listening on. The default here is 4242. For a lighthouse node, the port should be defined,
# however using port 0 will dynamically assign a port and is recommended for roaming nodes.
listen:
  host: <IP_ADDRESS>
  port: 4242

punchy:
  # Continues to punch inbound/outbound at a regular interval to avoid expiration of firewall nat mappings
  punch: true
  respond: true

tun:
  dev: nebula1
  drop_local_broadcast: false
  drop_multicast: false
  tx_queue: 500
  mtu: 1300
  routes:
  unsafe_routes:

logging:
  level: info
  format: text

firewall:
  conntrack:
    tcp_timeout: 120h
    udp_timeout: 3m
    default_timeout: 10m
    max_connections: 100000

  outbound:
    # Allow all outbound traffic from this node
    - port: any
      proto: any
      host: any

  inbound:
    - port: any
      proto: any
      host: any

/etc/exports on server side
/mnt/nfs/data	*(rw,async,no_subtree_check)

Mounting directly via sudo mount <IP_ADDRESS>:/mnt/nfs/data /data or just trying to showmount -e <IP_ADDRESS> fail and result in hanging terminal.

Are you able to ping the server that's hosting the nfs share, and if you do nmap scan do you see the open ports for nfs?

Are you able to ping the server that's hosting the nfs share, and if you do nmap scan do you see the open ports for nfs?

Are you able to ping the server that's hosting the nfs share

Yes
$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=1.40 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=1.38 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=64 time=1.72 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=64 time=1.32 ms
^C
--- <IP_ADDRESS> ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.039/1.371/1.722/0.217 ms

and if you do nmap scan do you see the open ports for nfs?

$ nmap <IP_ADDRESS>
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-10 11:18 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.18 seconds

only skipping host discovery
$ nmap -Pn <IP_ADDRESS>
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-10 11:19 CET
Nmap scan report for <IP_ADDRESS>
Host is up (0.0020s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 6.82 seconds

Are you able to ping the server that's hosting the nfs share

Yes
$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=1.40 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=1.38 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=64 time=1.72 ms
64 bytes from <IP_ADDRESS>: icmp_seq=5 ttl=64 time=1.32 ms
^C
--- <IP_ADDRESS> ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.039/1.371/1.722/0.217 ms

and if you do nmap scan do you see the open ports for nfs?

$ nmap <IP_ADDRESS>
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-10 11:18 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.18 seconds

only skipping host discovery
$ nmap -Pn <IP_ADDRESS>
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-10 11:19 CET
Nmap scan report for <IP_ADDRESS>
Host is up (0.0020s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 6.82 seconds

Looks like both ports are showing as open on the final nmap, you could further test connectivity to those tcp ports with telnet or netcat. It does appear the network layer is good though, have you dug through your logs on the NFS server and client?

Looks like both ports are showing as open on the final nmap, you could further test connectivity to those tcp ports with telnet or netcat. It does appear the network layer is good though, have you dug through your logs on the NFS server and client?

Thanks @userbradley @nbrownus
It seems it is working now. It definitely did not at first, maybe the nodes need some time to establish a robust network?

Thanks @userbradley @nbrownus
It seems it is working now. It definitely did not at first, maybe the nodes need some time to establish a robust network?


Error on a step of Sequence plugin aborts task

Expected behaviour:
Similar to the inputs plugin, where it prints a warning log message on failure of a step but continue executing the remaining steps and the task.

Config:
tasks:
  test:
    inputs:
      - rss: http://invalid.feed/rss
    exec:
      on_exit:
        phase: echo This actually prints

Log:

(click to expand)
VERBOSE  task_queue                    There are 1 tasks to execute. Shutdown will commence when they have completed.
WARNING  urllib3.connectionpool test            Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001DE70C7CC10>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /rss
WARNING  inputs        test            Error during input plugin rss: Unable to download the RSS for task test (http://invalid.feed/rss): HTTPConnectionPool(host='invalid.feed', port=80): Max retries exceeded with url: /rss (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001DE70CD06D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
WARNING  details       test            Task didn't produce any entries. This is likely due to a mis-configured or non-functional input.
VERBOSE  details       test            Summary - Accepted: 0 (Rejected: 0 Undecided: 0 Failed: 0)
INFO     exec          test            Would execute: echo This actually prints

Actual behaviour:
Failure on a sequence step aborts the whole task
Config:
tasks:
  test:
    sequence:
      - rss: http://invalid.feed/rss
    exec:
      on_exit:
        phase: echo This will never print

Log:

(click to expand)
VERBOSE  task_queue                    There are 1 tasks to execute. Shutdown will commence when they have completed.
WARNING  urllib3.connectionpool test            Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000024512CB7750>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /rss
CRITICAL plugin        test            Unable to download the RSS for task test (http://invalid.feed/rss): HTTPConnectionPool(host='invalid.feed', port=80): Max retries exceeded with url: /rss (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000024512CBC8D0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
WARNING  task          test            Aborting task (plugin: sequence)

Additional information:

FlexGet version: 3.11.42
Python version: 3.11
Installation method: git
Using daemon (yes/no): yes
OS and version: W10
Link to crash log: N/A

I feel like it's dependent on the config whether the whole task should fail or not, but I guess this would be better behavior given that we can't be sure.


Uncaught SyntaxError: Invalid regular expression: /should($/: Unterminated group

[Enter steps to reproduce below:]

require('./()')

Atom Version: 0.205.0
System: Mac OS X 10.10.3
Thrown From: autocomplete-modules package, v0.3.5
Stack Trace
Uncaught SyntaxError: Invalid regular expression: /should($/: Unterminated group
At /Users/rbarros/.atom/packages/autocomplete-modules/src/completion-provider.js:66

SyntaxError: Invalid regular expression: /should($/: Unterminated group
  at new RegExp (native)
  at CompletionProvider.lookupLocal (/Users/rbarros/.atom/packages/autocomplete-modules/src/completion-provider.js:66:65)
  at CompletionProvider.getSuggestions (/Users/rbarros/.atom/packages/autocomplete-modules/src/completion-provider.js:44:21)
  at /Applications/Atom.app/Contents/Resources/app.asar/node_modules/autocomplete-plus/lib/autocomplete-manager.js:255:56
  at Array.forEach (native)
  at AutocompleteManager.module.exports.AutocompleteManager.getSuggestionsFromProviders (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/autocomplete-plus/lib/autocomplete-manager.js:234:17)
  at AutocompleteManager.getSuggestionsFromProviders (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/autocomplete-plus/lib/autocomplete-manager.js:3:61)
  at AutocompleteManager.module.exports.AutocompleteManager.findSuggestions (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/autocomplete-plus/lib/autocomplete-manager.js:221:19)
  at /Applications/Atom.app/Contents/Resources/app.asar/node_modules/autocomplete-plus/lib/autocomplete-manager.js:3:61

Commands
     -0:10.1.0 project-switcher:toggle (atom-text-editor.editor.is-focused)
     -0:07.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:02.2.0 core:move-left (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "disabledPackages": [
      "wrap-guide",
      "atom-jshint",
      "jslint",
      "linter-jshint"
    ],
    "themes": [
      "seti-ui",
      "base16-pretty-dark"
    ]
  }
}

Installed Packages
# User
Stylus, v1.0.0
autocomplete-modules, v0.3.5
base16-pretty-dark, v0.2.3
better-handlebars, v0.1.1
docblockr, v0.7.2
git-log, v0.4.1
highlight-selected, v0.9.3
language-ejs, v0.1.0
language-jade, v0.4.0
language-swig, v0.1.0
linter, v0.12.6
linter-coffeelint, v0.2.4
linter-js-standard, v0.2.5
project-switcher, v0.2.3
seti-ui, v0.7.1
tabs-to-spaces, v0.11.0

# Dev
No dev packages

This happens when I type () inside require

@ricardofbarros yep, it's bug, but it's hack, can you suggest at least one real case where it's needed?

No real use case and I dont intend to use this hack, it is just simply annoying that an error pops out when I mistakenly type a parenthese

@ricardofbarros, I'll think how to fix this. This is not first bug, relative to generated regexp, I guess I'll add try-catch around matching.
Thanks for reporting!

Yeah that would be great :+1:

Fixed


Fix defects before delivery

Fix Read All" in Recents page : A spinner should be displayed while sending the read receipts #198

LGTM


CCO Azure Infrastructure Dashboard : Unable to Open Template

Describe the bug
Unable to open CCO Azure Infrastructure Dashboard template. There is some Unrecognized JSON Property error.
To Reproduce
Steps to reproduce the behavior:

Go to PowerbI desktop. Prior have Account logged on and clear previous credentials,
Click on File--> Import Template --> Import 'CCO Power BI Infra Dashboard v8.0.pbit'
Wait for couple of second, JSON error notification will pop up.
See error, C:\Users\Whicheveruser\Microsoft\Power BI Desktop Store App\FrownSnapShot1253893658.zip

Expected behavior
Template is not importing and functioning despite user logged in PowerBi is having sufficient permission as well as Resource Provider enabled
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Windows 10 Pro
Browser Not Applicable
Client PowerBI Desktop Client
Version 19.09
Additional details attached
CCOS Dashboard Frown.txt

Smartphone (please complete the following information):
Not Applicable
Additional context
Add any other context about the problem here.

Hi @spotakash
Please update your Power BI version (if it's possible download the product from the microsoft store and it will be updated automatically with the last release every month).
You are using the December 2019 release and the template has a lot of new features not supported in old Power BI versions


[$500] Chat - Start chat opens not smoothly

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.23-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Log in
Click on + (FAB) in LHN
Click on Start chat

Expected Result:
Start chat opens smoothly
Actual Result:
Start chat opens not smoothly
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] Windows: Chrome
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/f313a037-4f63-4e77-95eb-03553dc51c33
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~017aeb95424fe5c1b2
Upwork Job ID:<PHONE_NUMBER>500904448
Last Price Increase: 2024-01-09

Hm, I'm on staging mac chrome and can't repro this - it's fast and smooth for me. @lanitochka17, confirming this is reproducible on both staging and production? Is it Windows only?

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Start chat opens not smoothly
What is the root cause of that problem?
Every time we open the start chat navigation modal we are calling two times the getFilteredOptions from OptionsListUtils in:
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L185
This makes the animation of the navigation modal make this strange behavior, more because when use set the personal details using setFilteredPersonalDetails(newChatPersonalDetails).
What changes do you think we should make in order to solve the problem?
We should use useMemo to store the value of that function and use it every time the start chat navigation modal is called/toggle in these two lines:
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L133
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L185
The useMemo code could be something like:
const filteredOptions = useMemo(
        () =>
            OptionsListUtils.getFilteredOptions(
                reports,
                personalDetails,
                betas,
                searchTerm,
                selectedOptions,
                isGroupChat ? excludedGroupEmails : [],
                false,
                true,
                false,
                {},
                [],
                false,
                {},
                [],
                true,
                true,
            ),
        [searchTerm],
    );

Result:
Before changes:
https://github.com/Expensify/App/assets/5216036/eea98119-f9c2-484d-9dd3-cc281bb016dc
After changes:
https://github.com/Expensify/App/assets/5216036/b310d10d-cfce-4415-a680-1475464e9078

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Start chat opens not smoothly
What is the root cause of that problem?
Every time we open the start chat navigation modal we are calling two times the getFilteredOptions from OptionsListUtils in:
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L185
This makes the animation of the navigation modal make this strange behavior, more because when use set the personal details using setFilteredPersonalDetails(newChatPersonalDetails).
What changes do you think we should make in order to solve the problem?
We should use useMemo to store the value of that function and use it every time the start chat navigation modal is called/toggle in these two lines:
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L133
https://github.com/Expensify/App/blob/e9f27ab4218ec21ac6ecd755d4026b85c50f67d6/src/pages/NewChatPage.js#L185
The useMemo code could be something like:
const filteredOptions = useMemo(
        () =>
            OptionsListUtils.getFilteredOptions(
                reports,
                personalDetails,
                betas,
                searchTerm,
                selectedOptions,
                isGroupChat ? excludedGroupEmails : [],
                false,
                true,
                false,
                {},
                [],
                false,
                {},
                [],
                true,
                true,
            ),
        [searchTerm],
    );

Result: Before changes:
Before.changes.-.start.chat.not.smoothly1.mp4
With rendering painting enabled (notice the component is rendered two times while open):
Screen.Recording.2024-01-09.at.12.07.50.PM.mov
After changes:
After.changes.-.start.chat.not.smoothly.mp4
With rendering painting enabled (notice the component open smoothly):
Screen.Recording.2024-01-09.at.12.06.48.PM.mov

Good one, however it still doesn't fix the performance issue.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/dmytrom100

@lanitochka17 I've noticed this issue occurs only when the Developer Tools panel in Chrome is open. In my case, if I close it, the chat starts smoothly. Once it's opened, it consumes a lot of resources to render the DOM efficiently.
Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Start chat opens not smoothly
What is the root cause of that problem?
I have investigated the way animation is provided for the modal and have found it already uses the most efficient way to animate using transform style property. My presumption is that issue affected by opened dev panel and insufficient machine resources to render it smoothly.
What changes do you think we should make in order to solve the problem?
We can use will-change property together with transform to hint to the browser that an element will be animated, which can optimize rendering.
What alternative solutions did you explore? (Optional)

Use smoother animations.
Velocity.js or GreenSock Animation Platform (GSAP) instead of regular animations provided by React Navigation.

I imagine this is related/a dupe of https://github.com/Expensify/App/issues/33459.

I imagine this is related/a dupe of #33459.

My be caused by the same problem.

@trjExpensify Let's close this in favour of https://github.com/Expensify/App/issues/33459.

Works for me!


[Question/Feedback]: What is the best way to send alerts to an ARM role if PIM is being used

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Description
Large-scale deployment of alerts policies necessitates a mechanism to send alerts to not statically defined alert receivers but based on the role they have for each enabled subscription. This seems to work fine if receivers have, say, the owner role in a subscription. If alert policies are deployed at a management group node, with a single assignment, all attached subscriptions will have their alerts enabled such that they reach the owner of each subscription. However, this does not seem to work if the organisation has enabled PIm and hence there is no one defined as "Owner" most of the time. What is the recommended way assign the alert policies in such a scenario?

Hello @kasimrehman ,
thanks for your feedback and sorry if it took a bit to respond. We did some investigation in the meantime and we found out that PIM roles do not work. When using a PIM role, the role assignment if driven by a different resource type and so not included in the classic notification. Unfortunately this is not something we can resolve in AMBA since it is not something the AMBA team has control on. The notification feature is at an higher level and AMBA just uses it. Given that, I recommend you to open a support ticket (not mentioning AMBA) including this issue link in the details so we can cross reference it internally if needed.
I am going to close this issue, since no action for this team.
Thanks,
Bruno.


Be careful with using Path.Combine()

The code is using the C# Helper method Path.Combine() in multiple places. For example: https://github.com/FubarDevelopment/WebDavServer/blob/master/src/FubarDev.WebDavServer.FileSystem.DotNet/DotNetDirectory.cs#L101
Do you know that using this method might result in some unwanted behaviours and could cause serious security issues?
Like explained in the remarks of the API documentation (https://msdn.microsoft.com/de-de/library/fyy7a5kt(v=vs.110).aspx?f=255&MSPPError=-2147217396) the method call
Path.Combine(@"C:\MyWebDavDir", @"C:\Passwords\VerySecretFile.txt") will result in "C:\Passwords\VerySecretFile.txt".
Like in some of the methods in the DotNetFileSystem classes, the second argument of Path.Combine is often user-defined and therefore it might be possible to leave the WebDav root directory and read/write to any file on the system. At least on Windows.
I din't check the full code to make sure this is actually possible, but I'd recommend to replace every call to Path.Combine with one to an own more secure implementation.
And by the way: Many thanks for this awesome library!
Kind regards, Marcus Wichelmann

That would require one to try to create a file name like C:\Whatever\stuff.txt, which might be possible, because \ isn't recognized as path separator on the ASP.NET Core side.
I have to think about this problem.

Yes, you're right, only Windows should be affected.
I just noticed, that new Uri(Uri baseUri, string relativeUri) is also affected. So this might need to be checked, too.


fix: receive csv when output_format=text/csv

Issues with not receiving csv formatted answer stem from looking up accept: headers to derive in what format we want to send a response.
I suggest that output_format should be wholly in charge of this and that we get rid of raising 406 errors when there's a mismatch between accept headers and response type as user explicitly knows what format they'll get.
The only exception for it is for multipart/mixed but this solution does everything the same when accept: multipart/mixed is provided (which right now I'm not sure works over all, I didn't manage to successfully send a request through curl with this header included)

Please update tests with csv conversion (pd.read_csv) for example here (another one is in smoke test). I don't think we need this if csv is supported. Otherwise LGTM!

I actually think using pd.read_csv is good here and would rewrite my tests to use it as well, given that our csv does describe a table.
If we operate on csv str to e.g. check number of elements we can run into trouble, I've actually run into that right now when trying to remove pd.read_csv. A single value in csv represented table can span multiple lines so we can't rely on counting lines to validate number of elements.
Letting pandas parse this csv into a table makes it easier.


[Feature Request]: Differentiate between model-server metrics and model metrics

Feature description
Right now,  the menu item for viewing model-server metrics and the menu item for viewing model metrics both share the same name: "View metrics":

While I understand the difference it what these metrics are for, users could perhaps think they are referring to the same things and be confused when they are sent to different pages. Could we differentiate these names, something like "View model-server metrics" and "View model metrics"?
Describe alternatives you've considered
No response
Anything else?
No response

Yes, I was slacking with Rob and Berto about this. Seems like a one liner. Guessing you don't need a mockup?

@andrewballantyne Yep, that's it. Berto brought up a few other concerns, but I want to investigate those with "real" users during our upcoming test before deciding if anything else needs to change.


How can i log out?

Hi,
I did the whole download process to test the tools and everything is working just fine.
But when i ran it again, the authentication step is bypassed since my login is still valid. Is there any way to log out of the tool and re-login with another account? Any config file i should remove/modify?
Also a proposition to add a force-authentication flag or logout of some kind.
Thanks!

Hi!
You can log out by removing the file named .humblebundle_ebook_downloader.json in your home directory.
Adding a flag to force authentication or log out sounds like a good idea, will look at adding that in a future release.


Update docs with WebSocket proxy information

Provides some information on setting up a WebSocket Proxy to avoid confusion. #2260

I added small note to your fork: https://github.com/jamesblight/create-react-app/pulls
Thanks for PR.

Thanks for this1


chore/cxpui-26/hidden the carousel when we select any category

JIRA:https://newrelic.atlassian.net/browse/CXPUI-26
Description:When user selects a category in left navigation panel carousel of most popular and featured are supposed to be hidden
OLD VIEW:
when All option selected in left panel

when any category is selected

NEW VIEW:
when All option selected in left panel

when any category is selected

Closing this PR because I had raised another PR i.e, https://github.com/newrelic/instant-observability-website/pull/72 which have Gatsby build


Custom field accessor database performance

Environment

Python version: 3.5.3
NetBox version: 2.5.12

Use Case
One of the Netbox reports that we've written, needs to basically look at multiple Devices, and for each of them check various fields against another database for consistency. Some of them are Netbox's built-in fields, some of them are custom fields. Basically, semi-realistic example:
def test_devices_match(self):
    devices = Device.objects.all()  # or filter(...)
    for device in devices:
        other = fetch_from_other_data_source(device.serial)

        if device.asset_tag != other["asset_tag"]:
            self.log_failure(device, "Asset tag does not match")

        if device.cf()["ticket"] != other["ticket"]:
            self.log_failure(device, "Ticket does not match")

Observed behavior
Netbox issues hundreds of database queries, making this inefficient, slow and tough on the database. The .cf() accessor seems to be the culprit, as it's making a lot of queries for each of the ContentTypes etc., for each of those Device objects.
Proposed behavior
We've worked around that, with this piece of code:
devices = devices.prefetch_related("custom_field_values__field")
[...]
    netbox_ticket = None
    for cfv in device.custom_field_values.all():
        if cfv.field.name == "ticket":
            netbox_ticket = cfv.value
            break
[...]

This reduces the hotpath queries to just 1 big one, making this code path about 20-30x more efficient.
I think this could be generalized, and potentially replace the .cf() accessor.
I'm unaware of the history of .cf(), and it is a complicated piece of code, so I'm a bit hesitant diving in and submitting a PR there. Would love some guidance :)

Related to #3190

First, I should point out that cf was recently changed from a method to a property in #3190. Just something to be aware of with the upcoming v2.5.13 release.
There are a few opportunities for improvement here. First, we have this line in get_custom_fields():
fields = CustomField.objects.filter(obj_type=content_type)

Here, we're retrieving all applicable custom fields for the current instance. (This is needed to ensure we also represent fields which have no value assigned.) This line is called each time cf is accessed: not ideal. We should take a look at caching these similar to how ContentTypes are cached, however this will necessitate introducing a new manager for custom field models. This is a large enough undertaking to warrant its own issue.
Further down, we have this line:
values = CustomFieldValue.objects.filter(obj_type=content_type, obj_id=self.pk).select_related('field')

This forfeits any benefit from having pre-fetched values on the parent queryset. We should be referencing self.custom_field_values.all() instead.
And finally there's the cf property itself, which is currently calling get_custom_fields() on each access:
return {field.name: value for field, value in self.get_custom_fields().items()}

This means that accessing e.g. obj.cf.foo and obj.cf.bar will result in two separate queries. Instead, we can can cache the results from the first call to get_custom_fields() on the instance, and use that for successive references.

I've pushed 823257c to address the last two points above, and opened #3226 for the first one.


Decide what maven nexus to use

Either use one of @markrekveld or use github packages.

I have no personal preference on this, I can provide mine that runs on AWS CodeArtifact with anonymous access.
But will support using Github Packages.
In one of the last commits I added a TODO section in the pom where we can fill in the distribution repository settings.
However I have no experience with Github Action, Packages, etc so if we want that then we can set it up no problem.

I try to show how it will be used with GH packages and you can ultimately decide if it is worth / good enough. Me personally think it is just fine - let's just see how it turns out?

sounds good to me

Sure thing, I use AWS CodeArtifact so will adopt the release action you created to use those credentials.


uncrustify: 0.66.1 -> 0.67

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/uncrustify/versions.
These checks were done:

built on NixOS
/nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67/bin/uncrustify passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 0.67 with grep in /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67
directory tree listing: https://gist.github.com/71da32610fd0c4196f8b0f19061ca051
du listing: https://gist.github.com/6af9737f25aad6d34b2ee37f3d3a056e

meta.description for uncrustify is: '"Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA"'.
cc @bjornfor for testing.

Success on x86_64-darwin (full log)
Attempted: uncrustify
Partial log (click to expand)
Install the project...
-- Install configuration: "Release"
-- Installing: /nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67/bin/uncrustify
-- Installing: /nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67/share/man/man1/uncrustify.1
post-installation fixup
gzipping man pages under /nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67/share/man/
strip is /nix/store/kdff2gim6417493yha769kh00n63lnrw-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67/bin
patching script interpreter paths in /nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67
/nix/store/9ixc1inkmj7kwqlhwsrwg02ijwp4c01a-uncrustify-0.67

Success on aarch64-linux (full log)
Attempted: uncrustify
Partial log (click to expand)
-- Installing: /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67/share/man/man1/uncrustify.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67
shrinking /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67/bin/uncrustify
gzipping man pages under /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67/share/man/
strip is /nix/store/jk6j4lh9v5mvjdbdc35sj0zffhhf6s56-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67/bin
patching script interpreter paths in /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67
checking for references to /build in /nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67...
/nix/store/l8pd69a9w5p6r7z1km0l5ppbraj5p0n1-uncrustify-0.67

Success on x86_64-linux (full log)
Attempted: uncrustify
Partial log (click to expand)
-- Installing: /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67/share/man/man1/uncrustify.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67
shrinking /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67/bin/uncrustify
gzipping man pages under /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67/share/man/
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67/bin
patching script interpreter paths in /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67
checking for references to /build in /nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67...
/nix/store/k96qsfrnrv7wdps9i46pbfzwm4n0ml0x-uncrustify-0.67


[Feature] Custom Styles

Maybe allow custom styles? Or integrate multiple different styles.

I will consider this, possibly as a feature in Hawk 1.0.0.


HeadedDemo is not accessible from a browser

Apologies in advance: I realize that this issue has been discussed in a previous thread, but none of the  recommendations in that thread have helped me.
When running HeadedDemo, either debugging from within Visual Studio 2015 or directly from Windows 10, it works fine. However, I am unable to access it from a browser, either on the local machine or remotely.
I have tried disabling the Windows firewall but it makes no difference.
I have also experimented with Fiddler and found that HeadedDemo stops working when Fiddler is running. In this configuration the HeadedDemo client receives a message back from Fiddler, indicating that its onward request to the server timed out.
Any suggestions please?

Did you try to run demo using web server's source codes instead of NuGet packages?

Hello Aquisio,
Locally you can't access anything hosted by StreamSocketListener (which is used by restup internally), this is by design by Microsoft. In the HeadedDemo we get around by this because apps are allowed to connect to StreamSocketListeners hosted in the same process. See http://stackoverflow.com/questions/32665847/cannot-connect-to-streamsocketlistener.
Remotely you should be able to access the HeadedDemo, would you mind checking what you have got in your app manifest of the program you're trying to run?

Cheers,
Jark

Hello Jark,
Many thanks for your very quick reply.
Yes, I'm sorry - you're right. The manifest is correctly configured (I cloned your GitHub repo) and it does indeed work remotely. I'm not sure what I did wrong in my earlier remote tests, but it is definitely working now.
Is there any workaround that will enable me to test my app locally from the machine that it is being developed on?
Thanks again for your support. Restup looks like an awesome project that is very much needed.

Should we add something to the Wiki? If you run into this issue, more people will.

Hello Aquisio,
Unfortunately I don't know of any way... I have tried the loopback exemption, but that apparently just doesn't work... (https://msdn.microsoft.com/en-us/library/windows/apps/Hh780593.aspx).
This is the reason why I expanded the HeadedDemo ui to include a way to test the local server, maybe you can do something similar? E.g. conditional debug statements that include the test ui?
@tomkuijsten I already added this info here before: https://github.com/tomkuijsten/restup/wiki/Limitations, but I think it can do with some expanding, and maybe a rename to FAQ that features a bit more prominently on the main page.

I think it should be included somewhere on top of wiki. ;)
I faced the same problem and spent about an hour to find the solution.

That seals it, seems the wiki needs a little bit of work done to it, I'll take care of it today.

Good, just created a custom menu. You can change it if you like.

Thanks to everyone for your guidance. Now that I know about this limitation, it's easy enough to work around using 2 machines.

I've renamed the Limitations page to FAQ and have added to it: https://github.com/tomkuijsten/restup/wiki/FAQ, I've also added a CONTRIBUTING.MD so that when a new issue is raised they get referred to the FAQ first.
With this, I'm closing this issue.


bug fixed: made header logo working on about, faq, blog, contact page

Related Issue
[Cite any related issue(s) this pull request addresses. If none, simply state “None”]
Fixes:  #1426
Description
the header logo was not redirecting to the home page.  with this pr made the logo working.

Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes. Make sure to attach before & after screenshots in your PR.]
https://github.com/user-attachments/assets/25553a53-795d-4cac-9e6b-a2b860be3eba
Checklist:

[x] I have made this change from my own.
[ ] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@PriyaGhosal please review this pr.

@PriyaGhosal please review this pr!

@Palmistry2310
Please see the conflicts .

@Palmistry2310
Are you working on it or should I close it

@PriyaGhosal have resolved conflicts now.

Sorry, This issue has already been addressed  Find another issue or feature to contribute to. Thank you!


How can I realize that my items appear in the Blog

Hello Developers,
I discovered your Grav CMS and would like to run it for testing.
Now I have installed it and am just trying to publish an item in the blog. Unfortunately, the items do not appear in the blog and I do not understand why.
The blog is in my under /blog and a new item is then /blog/myItem and I can view from the backend out me this Item.
But when I'm in the blog at /blog I do not see the items.
How can I help myself. I work a lot with WordPress and I have to get used. Therefore, the first steps are a bit difficult.
Can you help me maybe?
Thank you in advance.

The easiest way is to download a skeleton with a blog, for example, the "Blog Site"   - https://github.com/getgrav/grav-skeleton-blog-site/releases/download/1.1.1/grav-skeleton-blog-site-v1.1.1.zip
This is a full blow Grav + Theme + Content + Plugins example, simply extract.
The bit that you want to look at specifically is the 01.blog/blog.md file that basically defines the blog.
https://github.com/getgrav/grav-skeleton-blog-site/blob/develop/pages/01.blog/blog.md
This sets up the page collection (items: @self.children), and then Grav gathers up the child pages and this is collection by the associated blog.html.twig file:
https://github.com/getgrav/grav-theme-antimatter/blob/develop/templates/blog.html.twig#L22-L24
Hope that helps explain it!

Thank you, that helped me a lot! And a question I have for the time being still.
How to add the content to "Some text widget" at Theme Afterburner? This can be seen with me in the right sidebar under http://wpzweinull.ch/cms/gravweblog/grav/de/blog

@AlexL777 Do you want to remove "Some text widget" form the sidebar? If so, then edit this files (or the correspondent file for your theme) antimatter/template/partials/sidebar.html.twig. Search there for the text.

OK thanks! Now I use a different theme and can in the Sidebar also place a "AboutMe" info. That's even better.


MNT: rerender

Hi! This is the friendly automated conda-forge-webservice.
I've started rerendering the recipe as instructed in #5.
If I find any needed changes to the recipe, I'll push them to this PR shortly. Thank you for waiting!
Here's a checklist to do before merging.

[ ] Bump the build number if needed

Fixes #5

Hi! This is the friendly automated conda-forge-linting service.
I failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory. You can also examine the workflow logs for more detail.
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/11993294544. Examine the logs at this URL for more detail.

error: identifier "FLT_MAX" is undefined

Found that xgboost had had the same problem, which needed https://github.com/dmlc/xgboost/pull/10574

@hmaarrfk, just saw your comment in #5:

For pytorch 2.5.1

Interestingly, the migrator still shows torchaudio as "Awaiting parents"; this could due to https://github.com/regro/cf-scripts/issues/3191 (and the bot not yet having retried torchaudio since that was fixed). In any case, aside the linter failure that I don't think is due to this PR (https://github.com/conda-forge/conda-smithy/issues/2165), we can merge this IMO, as it's a necessary clean-up anyway.


Breaking Change: loader define on external file

[ ] update README
[ ] Write documentation about image-loader.js and link to the error statement.

Codecov Report

Merging #5 (fd1eaca) into main (ba478dd) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #5   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           16        22    +6
  Branches         5         5
=========================================
+ Hits            16        22    +6

Impacted Files
Coverage Δ

src/image.tsx
100.00% <100.00%> (ø)

src/with-image-loader.ts
100.00% <100.00%> (ø)

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 ba478dd...fd1eaca. Read the comment docs.


MudSelect of type nullable int gives error when MudSelectItem value is not a nullable int

Bug type
Component
Component name
MudSelect, MudSelectItem
What happened?
I have a form which has a dropdown.
The dropdown needs to be blank initially, so the type of property of the model which binds to the dropdown is int?.
The dropdown needs to be filled with list of users. The UserDto class has a UserId property of type int.
When I add UserId as value of MudSelectItem it gives error on runtime that it is not of type int?.
Expected behavior
MudSelect of T=int? should allow having MudSelectItems of T=int.
As a workaround, I have to typecast the MudSelectItem value to int?.
<MudSelect T="int?"<EMAIL_ADDRESS>For="@(() => assignModel.AssignTo)"
           Label="Assign To" Placeholder="Please Select"<EMAIL_ADDRESS>AdornmentColor="Color.Success">
    @if (users is not null)
    {
        foreach (var user in users)
        {//typecasting to int? is necessary because MudSelectItem requires same type as MudSelect
            <MudSelectItem Value="<EMAIL_ADDRESS>        }
    }
</MudSelect>

Reproduction link
https://try.mudblazor.com/snippet/mEwyunalngGyVVFE
Reproduction steps

Run the code in reproduction link.

Relevant log output
Unhandled exception rendering component: Unable to set property 'IMudShadowSelect' on object of type 'MudBlazor.MudSelectItem`1[[System.Int32, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'. The error was: Unable to cast object of type 'MudBlazor.MudSelect`1[System.Nullable`1[System.Int32]]' to type 'MudBlazor.MudSelect`1[System.Int32]'.

Version (bug)
6.16.0
Version (working)
No response
What browsers are you seeing the problem on?
Chrome, Microsoft Edge
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

Hi.
This is totally expected and expected behavior, MudSelectItem is an underlying component of the MudSelect, therefore their types should much, this is why this check exist on the first place.

As a workaround, I have to typecast the MudSelectItem value to int?.

Not necessary, you can just set the T=int? for MudSelectItem
<MudSelectItem T="int?" Value="<EMAIL_ADDRESS>
https://try.mudblazor.com/snippet/mEGSkxavRiyJOlKo
Currently we use custom logic to check for that since [CascadingTypeParameter] didn't exist back then, but when we will use Microsoft's native solution to broadcast the generic type to child component the end result will be the same, the T will need to match.

Thanks, this works.
It's just that migrating existing select elements to MudSelect is a bit cumbersome.
I had an existing form using standard InputSelectNumber, both the bind value of model and value of dropdown items were of type int.
To make the dropdown empty by default, just setting the bind value to 0 would work because there was no dropdown option with value 0. But MudSelect displays text 0 in that case.
It is extra work, but I think the nullable int approach of MudSelect might be a more cleaner solution as this shows the intent to keep the dropdown empty by default whereas the default value 0 approach seems more like a hack.


Update Chromedriver Versions

This PR updates chromedriver in:
traffic_portal/test/integration: 114.0.2 -> 114.0.2
experimental/traffic-portal: 114.0.2 -> 114.0.2
Which Traffic Control components are affected by this PR?

Traffic Portal
Traffic Portal v2

What is the best way to verify this PR?
Verify that the affected e2e tests pass.
PR submission checklist

[ ] This PR has tests
[ ] This PR has documentation
[ ] This PR has a CHANGELOG.md entry
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Superseded


Adds article in markdown

(I fixed up the commit to remove the accidental file additions.)

Cool, looks good! :coffee:


Delete LICENSE

Summary

How did you test your changes?

Amazing work. Thank you for your contribution.


accept section

As a user i want a section to accept so i can see wich person accepted my meeting

ac

[ ] there is a accept section on the page
[ ] the accept section is in my meeting card

tasks

[ ] create a branch
[ ] create a accept section
[ ] position the accept section on the meeting card

Hi Nassir,
same here as I mentioned in your other user story. :) And your value proposition is not well formatted. Could you fix this?


Implement numerical integration with Romberg's Algorithm

https://www.math.usm.edu/lambers/mat460/fall09/lecture29.pdf

Implemented GAGS Quadrature algorithm from Swift's Accelerate framework


adding additional remarks on the cosmosdb connection string

to resolve the issue here: https://github.com/ealsur/serverlessnotifications/issues/1

Thanks!