fix(charts): prevent displaying stats before requests are made

Stat history would be charted by the client as a stream of consciousness
from the runners until they are stopped.
The client will no longer show unquantified stats (represented by the
number of requests).
Issue: #1852
State checking logic on the client has also been flattened to simplify the flow.
Considerations:

By only showing stats that contain request, there might be an appearance of unresponsiveness until requests are made because the chart will no longer be "ticking" without them.
The aggregated total stats are used to determine the number of requests, this is to allow a transition from ready state to running state to be displayed.
The times on the x-axis of charts diverge between a page that has been running for a while and a page refresh, this is because the client stores the time that it fetched the stats rather than the times of the stats themselves.

Thanks! This is, on the whole, a great improvement! (I dont really use the UI because I have an external reporting solution, and thus I havent really tried to improve it)
two things:

Is there some way (a vertical bar perhaps) to indicate the jump in time if someone has stopped and then restarted a test? Or at least disconnect the line somehow?
Is there a way to hide the initial dot

One possible way to indicate the time diff between test runs would be to listen for the test_stopped or test_started event and plot those somehow. If you do go down that route, it would be nice to plot spawning_complete as well :)

* Is there some way (a vertical bar perhaps) to indicate the jump in time if someone has stopped and then restarted a test?

echarts does have a markLine that I was considering for this purpose but locust does not seem to distinguish between runs in the data of /stats/requests so it was a challenge to determine where the line should be inserted in the graph. Is there a clear way to delineate between test runs on the client with the current data model?
I.e.:
{
  "current_response_time_percentile_50": 3,
  "current_response_time_percentile_95": 12,
  "errors": [],
  "fail_ratio": 1.0,
  "state": "running",
  "stats": [
    {
      "avg_content_length": 0.0,
      "avg_response_time": 9.050847440507383,
      "current_fail_per_sec": 8.5,
      "current_rps": 8.5,
      "max_response_time": 44.0,
      "median_response_time": 6,
      "method": null,
      "min_response_time": 1.0,
      "name": "Aggregated",
      "ninetieth_response_time": 17,
      "num_failures": 186,
      "num_requests": 186,
      "safe_name": "Aggregated"
    }
  ],
  "total_rps": 8.5,
  "user_count": 10
}

One thought was to mark test runs based on the action of user clicking "New test", this would be based entirely in the client side but this might be fine because starting a new test run clears the old run's stats on the server anyway.

Or at least disconnect the line somehow?

I think some fake plots could be inserted to keep the lines disconnected  (dependent on being able to distinguish between runs above)

* Is there a way to hide the initial dot in the response time graph?

This might be related to getting very fast response times (i.e.: from localhost). I'll investigate further.

* Is there some way (a vertical bar perhaps) to indicate the jump in time if someone has stopped and then restarted a test?

echarts does have a markLine that I was considering for this purpose but locust does not seem to distinguish between runs in the data of /stats/requests so it was a challenge to determine where the line should be inserted in the graph. Is there a clear way to delineate between test runs on the client with the current data model?

Probably not (although I’m not sure). But the events should work.

One thought was to mark test runs based on the action of user clicking "New test", this would be based entirely in the client side but this might be fine because starting a new test run clears the old run's stats on the server anyway.

Yes, that would also be acceptable imo.

Or at least disconnect the line somehow?

I think some fake plots could be inserted to keep the lines disconnected  (dependent on being able to distinguish between runs above)

👍

* Is there a way to hide the initial dot in the response time graph?

This might be related to getting very fast response times (i.e.: from localhost). I'll investigate further.

I dont think it is a real data point. Maybe it is added just to get the same timespan as the rps graph.

For very fast response times the percentile calculation would not find the time in the initial cached response times window and would return None instead of 0 (the default return was missing).
Verified this behavior with a failing test case and resolved the issue. You should now see a contiguous line on the chart for response times.
I'm still tinkering with the separation of test runs on the client UI.

I'm still tinkering with the separation of test runs on the client UI.

Good, because the gap in response times between test runs that was there before at least gave you the chance to infer that something strange happened at that time (test stop and then restart), but now it looks like one big continous test run :)

The issue was caused by initial runner stats of 0 being populated, my assumption was that response times outside the window of response times should match this rather than vanish (e.g..: 0 => null => 1) because that is how the disjointed graph would end up being drawn.
Instead, stats history will now not be injected on the client page unless there has been requests made. This keeps it consistent because initial runner stats are cleared when a test run is started.
Also added line marker to distinguish between test runs on the client.

There might be differing views on the correct representation of the {ready -> spawning -> running} states, that is, there are a number of runners executing but they have not yet made requests, or their requests have not yet completed:

Represent the response times during this period as zero
Do not plot the response times until they exist

This PR implements option 2 but I believe it addresses the issue raised in #1702.
The initial graph will no longer be disconnected but will instead only be plotted after requests are made.
Possibly fixes #1702

Looks amazing now! One tiny thing: Shouldnt it say "Run #2,3,..." on the label, instead of Run #1,2,..."?

Looks amazing now! One tiny thing: Shouldnt it say Run #2,3,... on the label, instead of Run #1,2,..., as it marks the start of the new run?

It depends on whether you consider the lines as end-of-run or start-of-run markers :smile:
I wanted to avoid cluttering single-run graphs so I excluded the Run# marker before the first test run. This meant the first line marker would start with Run #2 but there would be no Run #1 on the graph - this might be equally confusing.
Here are some of other ideas I considered:

Change label text to Start of run #n or End of run #n  - at the cost of more visual noise from a longer label text. Start of run #n implies a line marker before the first run.
Omit the label - at the cost of user not being sure what the line means.
Omit the label but have a tooltip - at the cost of the information not being visible in downloaded images, plus passing run# information to echarts is quite complicated since markLine is not passed as part of the arguments to the tooltip formatter ( https://echarts.apache.org/en/option.html#tooltip.formatter ) which increases code complexity substantially (storing run numbers on each plotted series) unless I am missing something.
Plot line marker before the first run - at the cost of more visual nose and less space for single-run graphs.

I'm happy to implement either.

The line is shown at the time when the second test was started, so it should be 2, 3,... imho. The user should be able to infer that it refers to the start of a run, and not the end of one, so a longer text is not necessary. The missing #1 is a little confusing maybe, but it should be kind of obvious why it is not there (reducing clutter).
Idk if there is the option of showing the Run #1 only once there actually IS a run 2, if so then that is even better, but I dont consider the missing 1 so bad.
Omitting the label entirely (your option 2) is acceptable, but I prefer doing it as above.

Agreed.
Test run markers now mark the start of a test run (leading).
The first marker will only be shown once there is a second run to show.
Hooked run markers into the stats update loop to make the x-axis times manageable.

Great!


Timber integration with Livefyre Comments

I am trying to add Livefyre Comments on my wordpress blog.
https://wordpress.org/plugins/livefyre-comments/
Livefyre plugin adds the filter on comments_template. I try to put the comments into the context for a further use in twig.
context['comments'] = comments_template();
But it immediately outputs the comments at the top of my page. Do you have any idea how to handle it?
Thanks

@aleksandr-grinevich try...
$context['comments'] = TimberHelper::ob_function('comments_template');

OR
<div id="my-comments">
    {{ function('comments_template') }}
</div>

... this will take the output of comments_template and hold it in a buffer so you can control where it gets outputted.

Perfect! Thank you


add anti-affinity to kube-dns deployment

Currently kube-dns pods could be placed on the same node. This change adds anti-affinity to prefer that pods be scheduled to different nodes that match the label k8s-app=kube-dns
Note that this change only is supported in Kubernetes 1.6 and beyond

This change is

@lachie83,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@acs-bot test this please


Transcript and logs should be closed in case of a build error

Error is:
ERROR: Cannot remove item C:\Git\DscWorkshop\DSC\BuildOutput\Logs\TestDscResources.log: The process cannot access the file 'TestDscResources.log' because it is being used by another process.
At C:\Git\DscWorkshop\DSC\Build\Tasks\CleanBuildOutput.ps1:22 char:61
+ ... tem -Path $BuildOutput -Exclude Modules | Remove-Item -Force -Recurse

Right now, 'Stop-Transcript' needs to be called before being able to trigger a new build

Fixed quite some time ago.


Incorrect JSONOptions.BY_DATA_VERSION construction or incorrect option defaults

The option fields default to the modern version (1.20.3+), however the builder does not set EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY and VALIDATE_STRICT_EVENTS for VERSION_1_16.
The default values may be wrong, as the builder for VERSION_1_20_3 sets the values to their defaults.
Whichever case it is, the result is that VERSION_1_16 is emitting compact components, UUIDs as 4 int arrays, and validating strict events.

I am unable to reproduce this based on the following test:
  @Test
  void testNonCompactOn116() {
    assertFalse(JSONOptions.byDataVersion().at(2586).value(JSONOptions.EMIT_HOVER_SHOW_ENTITY_ID_AS_INT_ARRAY));
  }

Do you have a test case that can reproduce this issue?

Closing due to lack of a response.


Code review

https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L9
Replace with a placeholder
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L15
Replace with boolean true / false values
Both for CREATE_DEVICES and CREATED_DESC - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L12
Improve comment, for example:
# specifies the Zone where devices will be searched for by address
# CASE SENSITIVE; leave commended to use the Default Zone - DONE

https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L91
Consistent function formatting across whole script please - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L21
Unify indenting of function bodies, both format (tab vs. space) and the initial offset. - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L24
Write logs to script file dir, not to current pwd - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L69
Order functions by their usage in the main process_files function - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L33C11-L33C20
Rename directory to ftpDirectory please - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L1
Add a note at the start of the script that this script will only work with Unimus 2.4.0 or newer - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L71
Formatting (double space here and 3 lines below) - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L38
Also validate that id is not an empty string in all validations of id - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L40
Yellow is better here, this is not a failure. Also improve log wording here, to better specify that we are continuing the script, and enabling device creation is just a hint - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L44
Test with big files (3MB+ of text), optimize to work if there are issues - DONE
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L48
Sleep should not be needed here, we should investigate why curl returns back before the backup is stored by Unimus. Likely curl doesn't block until the API call is finished (for some reason).
https://github.com/netcore-jsa/unimus-useful-scripts/blob/c3c7acac12273f377502f3253d15dd767ea3adf7/unbackupables.sh#L60
The trailing \ seems wrong. - DONE

@willfreim further changes needed:

Header

comment spacing consistent (FTP comment is wrong)
keep current Unimus version formatting in Beta3 requirement comment
leave Zone commented out by default

boolean handling
Uncomment both boolean variables by default, set them to false by default.
Change handling of both to evaluate as booleans: if $TEST; then echo "true"; else echo "false"; fi;

consistency

processFiles function has a newline at the start, others don't
better formatting of heredoc in processFiles
move backup file deletion to current rm which deletes other files
double space in createBackup

@willfreim last review:

in header, : should be in brackets together with port
cd to $script_dir to ensure files are not created in random places
PS: check if file is binary differently (to support special characters like š, č, etc.)
line 80 wrong indent


[ENHANCEMENT] Make it possible for guest cluster Harvester VMs to have different hostnames than their Harvester VM names when using harvester-csi-driver

Is your enhancement related to a problem? Please describe.

Related to: https://github.com/harvester/harvester/issues/4291
It is possible to configure a Harvester VM with a different hostname than its VM name, then install a Kubernetes distribution onto it, import it into Rancher, and install the harvester-csi-driver. For example, the cloud-init userdata could specify a hostname that is different from the VM name; the Terraform provider also allows users to specify a different hostname from the VM's name.
The trouble is, mounting volumes via the harvester-csi-driver will fail because the harvester-csi-driver will send the VM's hostname to Harvester as a way of identifying itself and Harvester assumes this hostname matches the VM's name. So if the hostname is different from the VM name, the volume hotplug will fail to attach to the expected VM.
Describe the solution you'd like

A cluster node running as a Harvester VM does not need its hostname to match the Harvester VM name

namespace/vm-name
VM hostname
Expected result
Actual result

default/k3s-1
prod-k3s
Works
Does not work

default/k3s-2
k3s-2
Works
Works

Describe alternatives you've considered

Additional context

Fix is included in latest tagged release of harvester-csi-driver: https://github.com/harvester/harvester-csi-driver/releases/tag/v0.1.6, but that release is not packaged into a Helm chart anywhere, so for testing it will have to be manually installed to the guest cluster.

Provide test result on v1.3.0-dev-20231222, close as fixed.
In the test we use cloud provider Default - RKE2 Embedded since we observe the cluster can not Active and stuck at Updating (waiting for cluster agent to connect) when using Harvester cloud provider, trace in another issue #4947.
Environment

Harvester

Version: v1.3.0-dev-20231222
Profile: QEMU/KVM, 2 nodes (8C/16G/500G)
ui-source: Auto

Rancher

Version: v2.7.9
Profile: Docker (1C/4G)

Test Steps

 Create RKE2 cluster myrke2-embedded with hostname xyz and cloud provider Default - RKE2 Embedded

Refer to ^1

 Rancher -> myrke2-embedded -> Apps -> Charts -> Harvester CSI Driver -> Install (harvester-csi-driver-v0.1.5)

 Rancher -> myrke2-embedded -> Storage -> PersistentVolumeClaims -> Create pvc015

 Workloads -> Create -> Deployment nginx w/ pvc015, should FAIL due to node xyz not found :ballot_box_with_check:

 Manually kubectl edit ds harvester-csi-driver -n kube-system

...
   image: rancher/harvester-csi-driver:v0.1.6
   imagePullPolicy: Always
...

In myrke2-embedded, manually delete pods harvester-csi-driver-* and harvester-csi-driver-controller-* and let them redeploy automatically.

 Check harvester-csi-driver version is v0.1.6

 Rancher -> myrke2-embedded -> Storage -> PersistentVolumeClaims -> Create pvc016

 Workloads -> Create -> Deployment nginx w/ pvc016, should SUCCESS :ballot_box_with_check:

https://docs.harvesterhci.io/v1.3/rancher/cloud-provider#prerequisites Item 3 in the prerequisites is outdated. This behavior has changed after the introduction of this improvement.
@albinsun can you help with the doc update?


Add EC key generation paragraph in doc/HOWTO/keys.txt

Seems this documentation is not dead, so add this missing part.

Checklist

[x] documentation is added or updated

Fixed and new commit added.

BTW, if you add "[skip ci]" to commit, it won't push it through ci-s. It's appropriate for documentation, commentary and pure re-formatting fixes...

New commit added

new commit added to address the comments

I apologize for bummer, but I'd really prefer if this is approved by somebody who is more proficient in language. But allow me to offer myself for second approval, squashing and merging :-)

new commit added. I squashed all NOTE parts into one 5. NOTE section

I'll squash and merge...

Merged. Thanks for patience! :-)


[Feature Request] Update documentation with SCSS On Demand Load

Existing Component
Yes
Component Name
SCSS
Description
Seems like it's possible to load SCSS on demand with babel-plugin-component :
  // in .babelrc or babel.config.js

  plugins: [
    [ "component", {
      libraryName: "element-ui",
      ext: ".scss",
      styleLibraryName: "../packages/theme-chalk/src"
    }]
  ]

Should I worry about it to change in any future release ?
Using this trick, it's even possible to use SCSS variable (to change color) using data option of sass-loader
Is it possible to document it ?
http://element.eleme.io/#/en-US/component/quickstart#import-element
http://element.eleme.io/#/en-US/component/custom-theme#update-scss-variables-in-your-project
Linked issue : #9842
Thanks

This is an advanced usage with https://github.com/ElementUI/babel-plugin-component plugin.
We might don't have to mention this in Element project.

Only found how to do this through here. Was about to open a ticket requesting docs. @scriptxotic is this still working?

Yes it might be, as long as they keep the same relative directory for theme-chalk sources:
https://github.com/ElemeFE/element/tree/master/packages/theme-chalk/src


Move contents of plus_one and minus_one to traits

Renamed plus_one to add_one (more inline with rust arithmetic)
Renamed minus_one to sub_one (more inline with rust arithmetic)

Closes #48


PSAvoidUsingUserNameAndPasswordParams should not flag boolean/switch type password parameter

For the following code snippet in a file called test1.ps1
function foo
{
    param(
    [string] $Username,
    [switch] $HidePassword
    )
}

PSScriptAnalyzer trips PSAvoidUserNameAndPasswordParams.
PS> Invoke-ScriptAnalyzer -Path C:\tmp\test1.ps1

RuleName                            Severity     FileName   Line  Message
--------                            --------     --------   ----  -------
PSAvoidUsingUserNameAndPassWordPara Error        test1.ps1  4     Function 'foo' has both Username and Password
ms                                                                parameters. Either set the type of the Password
                                                                  parameter to SecureString or replace the Username
                                                                  and Password parameters with a Credential parameter
                                                                  of type PSCredential. If using a Credential
                                                                  parameter in PowerShell 4.0 or earlier, please
                                                                  define a credential transformation attribute after
                                                                  the PSCredential type attribute.

In this case $HidePassword is clearly not intented to pass the password parameter and hence, this rule should ignore it.
Related issue: #571

Resolved in #573


As the 32blit hardware is using rev. V chip, We could tune off this work around to increase the axi speed

https://github.com/pimoroni/32blit-beta/blob/6080222d2aeff927c1026b0e5630818aedfb1767/32blit-stm32/Src/system_stm32h7xx.c#L233
According to the stm32h750 errata sheet, the issue 2.2.9 only accoured in rev. Y chip. If all 32blit hardware are using 480mhz rev. V chip. It is not necessary to set this work around any more. Then it will increase the read issuing capability and improve the CPU speed on memory bus.
In errata sheet page 13:
"2.2.9 Reading from AXI SRAM may lead to data read corruption
Description
Read data may be corrupted when the following conditions are met:
• Several read transactions are performed to the AXI SRAM,
• and a master delays its data acceptance while a new transfer is requested.
Workaround
Set the READ_ISS_OVERRIDE bit in the AXI_TARG7_FN_MOD register. This will reduce
the read issuing capability to 1 at AXI interconnect level and avoid data corruption."

Oo, any reason why you closed this? I tried to follow the IF/ELSE flow around that particular snippet of code, and ... well it's painful! Is it something we're already inadvertently excluding via a compiler definition?


(do not merge) Gatsby

This PR contains the current WIP framework conversion to Gatsby!
In this version, the UI stays the same, but primarily we gain:

The ability to directly query our .md and .yml files (so far) using GraphQL, in addition to any future data sources
More flexibility in future UI features through React, especially responsive features.
More structured logic for our already existing responsive features (such as filtering and copy link interaction)

This is a WIP build and should not be considered for merging into main at this point, this PR exists mainly to use the CI/CD workflow.

Nice job! I like gatsby as well since they have really good documentation.

Nice job! I like gatsby as well since they have really good documentation.

I love that too! It almost seems like anything I'm trying to find has its own doc article


guide grid

points rather than lines for that modern feel
shader that fades away with distance from window
option to force always show grid and
choose the max alpha

add a string picker mode to save space
show grid: never / on drag / always


Urfave before hook not called by ./ocis server

The Before hook of urfave is not called from single-binary (./ocis server). So arguments defined in Before closure to workaround missing Destination for slice-args in urfave don't work.

After further debugging it seems that every ocis cmd is responsible to call the Before hook by itself.


Lines Do Not Appear

Version
Stable
OS
MacOS Big Sur
Problem
When attempting to draw markings, nothing appears: no lines, no fill, nothing. No amount of changing settings can fix this.
To Reproduce
Steps to reproduce the behavior:

Subscribe to the Mod
Disable overlapping markings option in game
Attempt to draw lines for any junction

Expected behavior
Expected a line to appear when drawing the markings
Additional information
Cannot find any information elsewhere relating to this issue or how to fix it.

You don't forgot subscribe to harmony?

Hi, I have subscribed to Harmony and have none of the conflicting Mods. I can't find any further information about possible conflicts or dependencies which may be causing this.

post your game log


RVC - update TC 3.1 and 3.3

Update the RVC TC 3.1 and 3.3 yaml tests to bring them in sync with the test plan (see this).

The RVC 3.x yaml tests were removed.


Cli command for ListTaskListPartition API

Coverage decreased (-0.04%) to 67.707% when pulling 7e687a809ebc6bc24065fbc672f6cb6fdc98c93c on anish531213:aanish/cli/scalable-tasklist into 533e36b9aa776129fc337d885ee77cf74d9123ff on uber:master.


Cannot enable DNSSEC for this domain.

I'm getting this error in the web interface:
Cannot enable DNSSEC for this domain. Error: Adding key failed, perhaps DNSSEC not enabled in configuration?
How can I enable DNSSEC?
is there a private key i need to store outside of docker?
how do i enable dns over https?
this project is the best/easiest regarding powerdns i found. 👍

Hi @firstdorsal,
Thanks for your feedback.
The PowerDNS Docker image which we use (psitrax/powerdns) should support DNSSEC - you just need to enabled it via the environment variable MYSQL_DNSSEC=yes in the environment section of the pdns-server service (https://github.com/HSRNetwork/docker-powerdns-admin/blob/master/docker-compose.yml#L62).
See inside their readme for more information.
Can you please test this? Unfortunately we do not use DNSSEC at the moment so I can't help you very much.
Regards,
Philip

thank you for the quick reply!
pdns-server:     image: psitrax/powerdns:4.1.10     hostname: powerdns     restart: unless-stopped     ports:       - "53:53"       - "53:53/udp"     command: >       --api=yes       --api-key=SELF GENERATED KEY       --webserver-address=<IP_ADDRESS>       --webserver-allow-from=<IP_ADDRESS>/0     environment:       - MYSQL_HOST=pdns-server-mysql       - MYSQL_DB=powerdns       - MYSQL_USER=powerdns-svc-user       - MYSQL_PASS=powerdns-svc-user-pw       - MYSQL_DNSSEC=yes     depends_on:       - pdns-server-mysql
now looks like this but error is the same.

Hi @firstdorsal
Hmm.. can you plase exec into the running psitrax/powerdns container and check the gmysql-dnssec value inside /etc/pdns/pdns.conf? The entrypoint script from this image should set it properly (https://github.com/psi-4ward/docker-powerdns/blob/2cf9524f20d3ee691d796d7f4dd9401a2fe46ac4/entrypoint.sh#L54) but just to ensure it's really enabled there.
More information about this pdns configuration: https://doc.powerdns.com/authoritative/backends/generic-mysql.html#gmysql-dnssec
If it's enabled inside the /etc/pdns/pdns.conf configuration, I would need to check it on my local machine in the next days by myself.
Regards,
Philip

/etc/pdns/pdns.conf shows:
gmysql-dnssec=yes
i updated to: psitrax/powerdns:v4.3.0
now its working
thank you!

Thanks for the answer and solution. I updated the pdns image in the example docker-compose.yaml to version v4.3.0.
Regards,
Philip

I use pschiffe/pdns-mysql docker image which I need to config the similar PDNS_gmysql_dnssec=yes to enable DNSSEC, see also https://github.com/pschiffe/docker-pdns/issues/82.


test: behaviors-message_on_lock_failure (2024-02-08 18:31:17.965139+00:00)

automatic test cleanup


Variable substitution issues in workspace-specific cmake-kits.json

Brief Issue Summary
When using a project-specific kits file in .vscode/cmake-kits.json, variable substitution no longer seems to work normally. Given a kit definition like this:
  {
    "name": "GCC 11.2.0",
    "compilers": {
      "C": "${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1",
      "CXX": "${workspaceFolder}/../cpp-build-tools/g++11.2.0-1"
    }
  },

when opening the project I now see the following lines in the output window:
[proc] Executing command: ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 -v
[proc] The command: ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 -v failed with error: Error: spawn ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 ENOENT
...
[proc] The command: gcc11.2 -v failed with error: Error: spawn gcc11.2 ENOENT
[proc] The command: g++11.2 -v failed with error: Error: spawn g++11.2 ENOENT

Oddly, the actual cmake configure step still seems to work ok, and find the compiler at the correct path.
In addition (and this was actually the first thing I noticed), I get two new empty directories created in my home dir:
[~]% ls -ltr ~
...
drwxr-xr-x  2 mhellige mhellige            6 Sep  8 14:16  cpp-build-tools
drwxr-xr-x  2 mhellige mhellige            6 Sep  8 14:16 '${workspaceFolder}'
[~]%

I believe the workspaceFolder variable should be expanded in cmake-kits.json, and in any case the extension should definitely not be creating random directories in my home dir!
CMake Tools Diagnostics
  "os": "linux",
  "vscodeVersion": "1.71.0",
  "cmtVersion": "1.12.26",
  "configurations": [
    {
      "folder": "/home/mhellige/drw/test",
      "cmakeVersion": "3.12.1",
      "configured": true,
      "generator": "Ninja",
      "usesPresets": false,
      "compilers": {
        "C": "/home/mhellige/drw/test/../cpp-build-tools/gcc11.2.0-1",
        "CXX": "/home/mhellige/drw/test/../cpp-build-tools/g++11.2.0-1"
      }
    }
  ],
  "cpptoolsIntegration": {
    "isReady": true,
    "hasCodeModel": true,
    "activeBuildType": "Debug",
    "buildTypesSeen": [
      "Debug"
    ],
    "requests": [],
    "responses": [],
    "partialMatches": [],
    "targetCount": 4,
    "executablesCount": 2,
    "librariesCount": 0,
    "targets": [
      {
        "name": "test_project",
        "type": "UTILITY"
      },
      {
        "name": "fake-target-for-clion",
        "type": "EXECUTABLE"
      },
      {
        "name": "test_project-test",
        "type": "UTILITY"
      },
      {
        "name": "test_project-benchmark",
        "type": "EXECUTABLE"
      }
    ]
  },
  "settings": [
    {
      "communicationMode": "automatic",
      "useCMakePresets": "auto",
      "configureOnOpen": true
    }
  ]
}

Debug Log
[main] Safe constructing new CMakeTools instance
[variant] Constructing VariantManager
[main] Constructing new CMakeTools instance
[main] Starting CMakeTools second-phase init
[variant] Loaded new set of variants
[main] CMakeTools instance initialization complete.
[kit] Reading kits file /home/mhellige/.local/share/CMakeTools/cmake-tools-kits.json
[kit] Successfully loaded 10 kits from /home/mhellige/.local/share/CMakeTools/cmake-tools-kits.json
[kit] Reading kits file /home/mhellige/drw/test/.vscode/cmake-kits.json
[kit] Successfully loaded 4 kits from /home/mhellige/drw/test/.vscode/cmake-kits.json
[main] Injecting new Kit into CMake driver
[extension] Configuring workspace on open file:///home/mhellige/drw/test
[main] Starting new CMake driver
[main] Starting CMake driver
[driver] Initializating base driver using kit
[kit] Testing GCC binary: ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1
[proc] Executing command: ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 -v
[proc] The command: ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 -v failed with error: Error: spawn ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1 ENOENT
[kit] Bad GCC binary ("-v" returns -2): ${workspaceFolder}/../cpp-build-tools/gcc11.2.0-1
[driver] CMakeDriver Kit set to GCC 11.2.0
[kit] The environment for kit 'GCC 11.2.0': {
  "ELECTRON_RUN_AS_NODE": "1",
  "USER": "mhellige",
  "LANGUAGE": "en_US",
  "XDG_SEAT": "seat0",
  "TEXTDOMAIN": "im-config",
  "XDG_SESSION_TYPE": "x11",
  "SHLVL": "2",
  "QT4_IM_MODULE": "xim",
  "OLDPWD": "/home/mhellige",
  "HOME": "/home/mhellige",
  "CONDA_SHLVL": "0",
  "DESKTOP_SESSION": "xsession",
  "GTK_MODULES": "gail:atk-bridge",
  "VISUAL": "/usr/bin/vim",
  "COLORTERM": "truecolor",
  "_CE_M": "",
  "IM_CONFIG_PHASE": "2",
  "LOGNAME": "mhellige",
  "GTK_IM_MODULE": "ibus",
  "WINDOWID": "48234499",
  "_": "/usr/bin/code",
  "DEFAULTS_PATH": "/usr/share/gconf/xsession.default.path",
  "XDG_SESSION_ID": "4",
  "TERM": "xterm-256color",
  "USERNAME": "mhellige",
  "_CE_CONDA": "",
  "WINDOWPATH": "2",
  "LC_COLLATE": "POSIX",
  "S_COLORS": "auto",
  "DISPLAY": ":1",
  "HISTSIZE": "20000",
  "LANG": "en_US.utf8",
  "XDG_CURRENT_DESKTOP": "GNOME-Flashback:GNOME",
  "XMODIFIERS": "@im=ibus",
  "XDG_SESSION_DESKTOP": "xsession",
  "DEBIAN_FRONTEND": "noninteractive",
  "SHELL": "/bin/zsh",
  "GDMSESSION": "xsession",
  "QT_ACCESSIBILITY": "1",
  "_JAVA_AWT_WM_NONREPARENTING": "1",
  "TEXTDOMAINDIR": "/usr/share/locale/",
  "QT_IM_MODULE": "ibus",
  "XDG_VTNR": "2",
  "SAVEHIST": "10000",
  "JAVA_HOME": "/site/apps/jdk17",
  "PWD": "/home/mhellige",
  "CLUTTER_IM_MODULE": "xim",
  "XDG_CONFIG_DIRS": "/etc/xdg/xdg-xsession:/etc/xdg",
  "XDG_DATA_DIRS": "/usr/share/xsession:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop",
  "AUTOJUMP_SOURCED": "1",
  "HISTFILE": "/home/mhellige/.zsh_history",
  "VTE_VERSION": "5202",
  "JDK_HOME": "/site/apps/jdk17",
  "EDITOR": "/usr/bin/vim",
  "VSCODE_CWD": "/home/mhellige",
  "APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL": "1",
  "VSCODE_CLI": "1",
  "ELECTRON_NO_ATTACH_CONSOLE": "1",
  "CHROME_DESKTOP": "code-url-handler.desktop",
  "ORIGINAL_XDG_CURRENT_DESKTOP": "GNOME-Flashback:GNOME",
  "GDK_BACKEND": "x11",
  "VSCODE_NLS_CONFIG": "{\"locale\":\"en-us\",\"availableLanguages\":{},\"_languagePackSupport\":true}",
  "VSCODE_CODE_CACHE_PATH": "/home/mhellige/.config/Code/CachedData/784b0177c56c607789f9638da7b6bf3230d47a8c",
  "VSCODE_IPC_HOOK": "/run/user/7043/vscode-b24e4f06-1.71.0-main.sock",
  "VSCODE_PID": "17745",
  "VSCODE_AMD_ENTRYPOINT": "vs/workbench/api/node/extensionHostProcess",
  "VSCODE_HANDLES_UNCAUGHT_ERRORS": "true"
}
[driver] Trying to detect generator supported by system
[cms-driver] Run doRefreshExpansions
[cms-client] Started new CMake Server instance with PID 7314
[cache] Reading CMake cache file /home/mhellige/drw/test/build/CMakeCache.txt
[cache] Parsing CMake cache string
[driver] Setting new variant Debug
[cms-driver] Run doRefreshExpansions
[cms-client] Started new CMake Server instance with PID 7331
[cache] Reading CMake cache file /home/mhellige/drw/test/build/CMakeCache.txt
[cache] Parsing CMake cache string
[main] Configuring folder: test
[main] Saving open files before configure/build
[cms-driver] Run doRefreshExpansions
[driver] Start configure
[driver] Running pre-configure checks and steps
[driver] Using compilers in GCC 11.2.0 for configure
[cms-driver] Run doRefreshExpansions
[cmake] Using multiarch at x86_64-linux-gnu
[cmake] The test_project compiler supports the C++ 2a standard
[cmake] Configuring done
[cmake] Generating done
[proc] The command: gcc11.2 -v failed with error: Error: spawn gcc11.2 ENOENT
[proc] The command: g++11.2 -v failed with error: Error: spawn g++11.2 ENOENT
[cache] Reading CMake cache file /home/mhellige/drw/test/build/CMakeCache.txt
[cache] Parsing CMake cache string
[cache] Reading CMake cache file /home/mhellige/drw/test/build/CMakeCache.txt
[cache] Parsing CMake cache string
[cache] Reading CMake cache file /home/mhellige/drw/test/build/CMakeCache.txt
[cache] Parsing CMake cache string

Additional Information
No response

The fix should be available in tomorrow's pre-release: 1.13.7

I've verified that this is fixed in 1.13.7. Thanks!!
One strange behavior remains. With 1.13.7, my output from above becomes:
[proc] Executing command: /home/mhellige/drw/test/../cpp-build-tools/gcc11.2.0-1 -v
... [ everything is fine, cmake runs ok, etc. then finally: ]
[proc] The command: gcc11.2 -v failed with error: Error: spawn gcc11.2 ENOENT
[proc] The command: g++11.2 -v failed with error: Error: spawn g++11.2 ENOENT

(And the stray directories are no longer created in my home dir.)
I still can't figure out those last two ENOENT lines... Where in the world is gcc11.2 coming from? My compiler binary is called gcc11.2.0-1, as you can see above. I can't find that string in any file in the workspace, nor in ~/.vscode or ~/.local/share/CMakeTools. I've tried enabling trace logging and everything else I can think of, but I can't for the life of me figure out where it's getting the string gcc11.2...
I'm not sure if this is a different bug, or a configuration issue, or what, but I would be very grateful for any insight!


my hosts file

green.example.com
blue.example.com
<IP_ADDRESS>
<IP_ADDRESS>
Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
alpha.example.org
beta.example.org
<IP_ADDRESS>
<IP_ADDRESS>
If you have multiple hosts following a pattern you can specify
them like this:
www[001:006].example.com
Ex 3: A collection of database servers in the 'dbservers' group
[dbservers]

db01.intranet.mydomain.net
db02.intranet.mydomain.net
<IP_ADDRESS>
<IP_ADDRESS>
Here's another example of host ranges, this time there are no
leading 0s:
db-[99:101]-node.example.com
localhost

Don't raise issue for every reply. Please use #272


Group.js removeAll(true)

This Issue is about

A bug in the API (maybe?) or then feature request

In the group.js removeAll there is a param to invoke destroy on each children. However the recent changes in api to the objects destroy has a possibility to destroy the base texture. In case you use removeAll(true) it does not destroy the base texture and I think it should or it should be an option somewhere. Perhaps an option would be a better idea.
Phaser.Group.prototype.removeAll = function (destroy, silent) {

    if (destroy === undefined) { destroy = false; }
    if (silent === undefined) { silent = false; }

    if (this.children.length === 0)
    {
        return;
    }

    do
    {
        if (!silent && this.children[0].events)
        {
            this.children[0].events.onRemovedFromGroup$dispatch(this.children[0], this);
        }

        var removed = this.removeChild(this.children[0]);

        this.removeFromHash(removed);

        if (destroy && removed)
        {
        //here we could do true,true?  destroy: function (destroyChildren, destroyTexture) {
            removed.destroy(true);
        }
    }
    while (this.children.length > 0);

    this.hash = [];

    this.cursor = null;

};

Thanks for submitting this issue. We have added this feature, and it has been pushed to the dev branch.


Store user settings to file

I think we should store user settings in a local file (e.g. %APPDATA% for Windows).
Implement the following:

Create default settings file on user install
Add ability to update settings
Read settings file on load and apply settings
Regenerate default settings if user settngs file is not detected on load

Basic implementation complete.


SSR Loadable can not detect code splitting with typescript, ts-loader

💬 Questions and Help
Problem
typescript project like App.jsx can not code split with @loadable/babel-plugin.
To Reproduce
I'm forked this project and copied examples/server-side-rendering-ts.
Example js code was transformed to ts or tsx.
After yarn build:webpack, there is only one js file main.js in public/dist/node and public/dist/web. It seems like @loadable/component not working properly.
https://github.com/DylanJu/loadable-components/tree/master/examples/server-side-rendering-ts/public/dist
If yarn start, you can see an error "Invariant Violation: loadable: SSR requires @loadable/babel-plugin, please install it"
Expected behavior
Output of yarn build:webpack is letters-A.js, letters-B.js, letters-C.js.... etc and main.js like server-side-rendering.
Details
For typescript project, I changed some config

Added ts-loader in webpack
Transformed .js to .ts, .tsx (except minor issue about preventing uglify remove)
Changed babel target from src to ts-output because babel can not read typescript directly.
ts-output is compiled files from src.

I guess my problem is 'Loadable detection'.
Seeing ts-output/client/App.js in here
(https://github.com/DylanJu/loadable-components/tree/master/examples/server-side-rendering-ts/ts-output/client)
App.tsx
const A = loadable(() => import('./letters/A'))
compiled App.js
const A = component_1.default(() => Promise.resolve().then(() => __importStar(require('./letters/A'))));
It seems keyword loadable is gone. So @ladable/babel-plugin can not detect code splitting. It's just my opinion.
Please help me!

Hello @DylanJu, I am not Typescript compliant. @theKashey help!

@neoziro @theKashey
It is solved by myself. The problem is because typescript compile as I guessed.
Using webpack, babel and typescript same time, A.tsx is compiled in order ts-loader, babel-loader, webpack.
In my case, ts-loader changed loadable based on typescript config.
If configure tsconfig.json like this
"compilerOptions": {
    "module": "commonjs",
}

It change App.tsx
const A = loadable(() => import('./letters/A'))
to
const A = component_1.default(() => Promise.resolve().then(() => __importStar(require('./letters/A'))));
Then @loadable/babel-plugin can't detect loadable
My Solution
tsconfig.json
"compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
}

It don't change loadable(() => import('something') so the detection is enable compile normally.
I wish help someone like me.

I would suggest (having babel coming next):
"compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
     "jsx": "preserve", // <--- this is important
    "target": "es2016" // <-- this might be important for arrow functions
}

@theKashey
Thanks your suggest.
I'm using "target": "esnext", "jsx": "react", it's not make any problem but I'll follow your suggest.
Thanks again.
And I hope that the official README show your suggest for typescript user.

@DylanJu I have the same issue when converting to TypeScript (The system works ok with normal JS).
The compiled files now are named as 0.js, 1.js, etc., instead of A.js, B.js, where A and B are the name of loadable components.
My tsconfig.json:
{
    "compilerOptions": {
        "outDir": "./dist/",
        "esModuleInterop": true,
        "sourceMap": true,
        "noImplicitAny": true,
        "module": "esnext",
        "moduleResolution": "node",
        "target": "esnext",
        "jsx": "react"
    }
}

and here is the webpack config:
module.exports = {
    entry: './client/index.tsx',
    output: {
        path: path.join(__dirname, 'dist'),
        // filename: '[name].[contenthash].js',
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader'],
            },
            {
                test: /\.ts(x?)$/,
                exclude: /node_modules/,
                use: 'ts-loader',
            },
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            },
        ],
    },
    resolve: {
        extensions: ['.js', '.jsx', '.ts', '.tsx'],
    },
    ...
}

Can you help me?

Never mind. The order of loaders are important.
I changed the loaders to
{
    test: /\.ts(x?)$/,
    exclude: /node_modules/,
    use: ['babel-loader', 'ts-loader'], // The orders are important
},

and it works perfectly now!

@phuoc-ng what are your configs for ts and babel? Could you share these plz?

@dakiesse Yes, sure.
I have been using loadable-components for a few sites such as this vs that, CSS Layout, HTML DOM with the same setup as following.
All those sites are open source, so you can take a look at them or fork one of them.
Here is an example

package.json:

"dependencies": {
        "@loadable/component": "^5.12.0",
},
"devDependencies": {
        "@loadable/babel-plugin": "^5.12.0",
        "@types/loadable__component": "^5.10.0",
        "babel-loader": "^8.0.6",
        "ts-loader": "^6.2.1",
}

.babelrc:

{
    "plugins": ["@loadable/babel-plugin"],
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ]
}

webpack.config.js

module.exports = {
    ...
    module: {
        rules: [
            ...
            {
                test: /\.ts(x?)$/,
                exclude: /node_modules/,
                // The order of loaders are very important
                // It will make the @loadable/component work
                use: ['babel-loader', 'ts-loader'],
            },
            ...
        ],
    },
    ...
};

App.tsx

const App = () => {
    return (
        <Router>
            <RouteSwitch>
                <Route
                    path='/:slug'
                    render={(props) => <PostLoader slug={props.match.params.slug as string} />}
                />
            </RouteSwitch>
        </Router>
    );
};

PostLoader.tsx will use @loadable/component to load a page located in the ../posts folder:
import loadable, { LoadableComponent } from '@loadable/component';
import React from 'react';

import Spinner from './Spinner';

interface PostLoaderProps {
    slug: string;
}

const loadDetails = /* #__LOADABLE__ */ (props: PostLoaderProps) => import(`../posts/${props.slug}`);

const PostLoader: LoadableComponent<PostLoaderProps> = loadable(loadDetails, {
    fallback: <Spinner />,
});

export default PostLoader;

I hope it helps you.

Thanks, @phuoc-ng, worked for me.


[FLINK-17543][Azure] Add timestamp to log name to allow multiple uploads per module

Brief change log
Re-running a failed stage leads to an error message on AZP, because the log artifact exists already.
With this change, we are adding a timestamp to the log file name to avoid this situation.
Verifying this change
Tested on my personal account: https://dev.azure.com/rmetzger/Flink/_build/results?buildId=8014&view=results

Thanks a lot for your review!


bug: requestAnimationFrame zone grows forever

When using a basic requestAnimationFrame render loop, the zone grows forever.
Related to https://github.com/angular/angular/issues/2912
zone.fork().run(function () {
    function frameCallback() {
        // frame++
        requestAnimationFrame(frameCallback);
    }
    requestAnimationFrame(frameCallback);
});

Example: https://jsfiddle.net/9dqzky6g/3/

It looks like subsequent calls to requestAnimationFrame create child Zones, so unless your requestAnimationFrame loop stops, you will add a child zone for each invocation.
zoneBoundFn eats up all of the profile idle time in a few thousand frames.

Anyone care to comment on this?  It is making it hard for me to run my app for more than a few minutes with Angular2.  Everything is wonderfully fast, until the zones start piling up.
I'm willing to look at fixing the issue if I could get some direction on where to go with it.

Updated example with patch applied: https://jsfiddle.net/cg9fa5nf/1/

closed via #147

:clap: Thanks @vicb


RPi2 and RPi3 images don't fit in IMAGE_SIZE

Both Raspberry Pi 2 (RPi2) and Raspberry Pi 3 (RPi3) images have grown beyond the 1GB or 2GB respectively allocated to each.  Both are increased to 3GB in pull requests: https://github.com/freebsd/crochet/pull/244 and https://github.com/freebsd/crochet/pull/243 .

Both pull requests have been picked up so this can be closed.


Update MongoDB Version

Install MongoDB version 7.0 when AVX is supported and OS is Focal or Jammy.

** This removes installation of version 6.0, but keeps the purge for 6.0 in place.

I've reorg'd how we structure the mongo vars in vars.yml.
Instead of having a version # var for 6, just have a 'generic' mongo.path and mongo.list that we update the version number on or something like that... IF we need to hard-code another version of mongo for any reason, we can create another var specific for that version (just like we are continuing to do with mongo 4.4).


mul_mod does not work on all provided types

I appreciate the addition of mul_mod in the release candidate 0.6.0. So, thank you!
While exploring this new function I received errors when using certain types. For example:
use crypto_bigint::{U576, NonZero};

pub fn main() {

    let p = NonZero::new(U576::from(3u32)).unwrap();
    let a = U576::from(1u32);
    let b = U576::from(1u32);

    a.mul_mod(&b, &p);
}

gives the following error when building:
the trait bound `Uint<9>: crypto_bigint::Concat` is not satisfied
...
 |     a.mul_mod(&b, &p);
 |       ^^^^^^^ the trait `ConcatMixed` is not implemented for `Uint<9>`, which is required by `Uint<9>: crypto_bigint::Concat`

However, swapping U576 for U256 builds w/out error. I have not tested against other types.

cc @andrewwhitehead
I would also expect this to work. The ConcatMixed impls are written by these macros:
https://github.com/RustCrypto/crypto-bigint/blob/78f70ae/src/uint.rs#L425-L445
I'm not sure exactly what would need to change to be able to support this offhand.

I think that only defines splitting U576 in various proportions, but not joining two U576 which is what you need for multiplication.
Also I wonder if we can get rid of the Concat bound for multiplication by just using two separate Uint of single size for storage.

The bound appears to be required because MontyForm new uses rem of a double-wide UInt in its calculation of R2, since rem_wide is not defined (only rem_wide_vartime).
I think concat and split of U576 might be gated on the extra_sizes feature.


"a11y show" class clips box shadows

Instead of using explicit values to override clip, set clip to initial to avoid cutting off box shadows

Fixed in julep


feat(firebase_storage): Add complete path getter

Description
This PR adds a convenience method to getting the complete path of the object.
    // output: gs://test-bucket/foo/ba
   ref.completePath

This is useful when using other Google Cloud services such as Vertex AI where a complete reference is needed for adding training data.
Related Issues
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Hi @Tasseri, we discussed internally about adding completePath. We believe that adding this new variable to the Reference object could lead to confusion for newcomers, especially since it's close to fullPath. As a workaround, you can always create a Dart extension so you can always have it available.
Thanks

Hi Lyokone!
Thank you for your feedback.
I use a extension locally but thought this would be useful for the greater community. But I understand your points of having a clean API.


Ui changes

Just a lot of padding really and the menu is simpler. :)

That's looking great, I just tried to borrow the style of Ristretto's toolbar.


Remove deprecated objects

Part of https://github.com/gtk-rs/gir/pull/744
WIP as better have gir update
cc @GuillaumeGomez, @sdroege

Updated gir submodule

Awesome, thanks!


Locked out of pimpmystremio

Hi,
I was trying to access remotely an i didn't saw the warning in the guide. Now i am locked out of pimpmystremio. What can i do to access back?
Thank you!

WINDOWS VERSION
Hey there CharbelChaer.
I did the exact same mistake you did, but I found out a way to correct it. As PimpMyStremio runs locally, the files can be found on your computer. Luckily, there is a text file called PimpMyStremio-userConfig.json found here: C:\Users\USERNAME\AppData\Roaming\PimpMyStremio\PimpMyStremio-userConfig.json which you can edit the password and various configurations. Just remove the password and change the Remote Access Type to No (local).
Cheers


[5.8] fix Illuminate\Console\Scheduling\ManagesFrequencies::dailyAt() accepts a parameter specific to the second, which happened error.it  happen in the initial minute of the corresponding hour.

fix Illuminate\Console\Scheduling\ManagesFrequencies::dailyAt() accepts a parameter specific to the second, which happened error.it  happen in the initial minute of the corresponding hour.
see #26752

Laravel Version: 5.*
PHP Version: 7.1.19
Database Driver & Version:

Description:
First of all, my English is very poor.
Illuminate\Console\Scheduling\ManagesFrequencies::dailyAt() accepts a parameter specific to the second, which happened error.
For example
<?php

namespace App\Console;

use App\Console\Commands\Test;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     * @var array
     */
    protected $commands = [
        Test::class,
    ];

    /**
     * Define the application's command schedule.
     * @param  \Illuminate\Console\Scheduling\Schedule $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('test:test')->dailyAt('12:59:00');
        //$schedule->command('test:test')->dailyAt('12:00');
    }

    /**
     * Register the commands for the application.
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');

        require base_path('routes/console.php');
    }
}

That is, dailyAt('12:59:00') => dailyAt('12:00').
This should not happen, although the cron task is executed every minute, not specific to the second, but it should not happen in the initial minute of the corresponding hour.
Let's look at the code
    /**
     * Schedule the event to run daily at a given time (10:00, 19:30, etc).
     *
     * @param  string  $time
     * @return $this
     */
    public function dailyAt($time)
    {
        $segments = explode(':', $time);

        return $this->spliceIntoPosition(2, (int) $segments[0])
                    ->spliceIntoPosition(1, count($segments) === 2 ? (int) $segments[1] : '0');
    }

I can understand the meaning here: when the developer is lazy, dailyAt('12') = dailyAt('12:00').
but 12:59:00 is also a standard time, so I think
dailyAt('12:59:00') = dailyAt('12:59')
dailyAt('12:00:00') = dailyAt('12:00') = dailyAt('12')
This is reasonable.
Therefore, dailyAt('12:59:00') = dailyAt('12:00') is a serious bug.
I recommend
    public function dailyAt($time)
    {
        $segments = explode(':', $time);

        return $this->spliceIntoPosition(2, (int) $segments[0])
                    ->spliceIntoPosition(1, count($segments) === 1 ? '0' : (int) $segments[1]);
    }

Steps To Reproduce:
I have a timed task, as follows
<?php

namespace App\Console;

use App\Console\Commands\Test;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     * @var array
     */
    protected $commands = [
        Test::class,
    ];

    /**
     * Define the application's command schedule.
     * @param  \Illuminate\Console\Scheduling\Schedule $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('test:test')->dailyAt('12:59:00');
    }

    /**
     * Register the commands for the application.
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');

        require base_path('routes/console.php');
    }
}

But I found that it didn't execute at 12:59
It was executed at 12:00.
end
so,I want to submit a pull request to fix it

@laurencei emmmmm.
It's not a proper way to run dailyAt('12:59:00') at 12:00. If dailyAt('12:59:00') is considered as an invalid parameter, instead of identifying it as dailyAt('12:00'). It's better to throw an exception.
Proposed Changes:

Throw an exception (warning the developer)
Intercept to the minute (I recommend this way)

count($segments) === 2 ? (int) $segments[1] : '0' is a very bad treatment.
Anyway, It does not make sense to treat the time specific to the seconds as the first minute of the hour it belongs to.

Throwing an exception for an incorrect format seems like a better idea to me 🤷♂

@laurencei  OK，thx.
I have a question, this is my first time to submit a PR.
If I build a version that throws an exception to submit a PR, do I have to write the relevant unit test? (The current dailyAt() method does not have a corresponding test case)
And if I want to fix this in version 5.7, do I need to create my repair branch based on 5.7?（although I encountered this problem in version 5.5）

this is my first time to submit a PR.

Awesome - thanks for contributing 👍

If I build a version that throws an exception to submit a PR, do I have to write the relevant unit test?  (The current dailyAt() method does not have a corresponding test case)

The PR contribution guidelines here dont specifically require a test, but it is considered a good idea when/where possible. By adding unit tests, it helps show what your code does, and prevents regressions errors in the future.

And if I want to fix this in version 5.7, do I need to create my repair branch based on 5.7?（although I encountered this problem in version 5.5）

Because you are potentially making a breaking change (you will be throwing an exception somewhere that has not done before), you need to target master branch. This would be pulled into the framework ready for Laravel version 5.8 (due out around February).
However - before making any other changes, just wait for @taylorotwell to decide on the PR. It's his decision, and he might accept this PR as it is. Or he might have a different opinion on how to solve this issue. So my recommendation is wait for his response and then take it from there.

I don't think we ever imply or document that seconds are supported in the first place?

@taylorotwell  Pay homage to you!!!
So do you agree that this method throws an exception for an unreasonable parameter?


[sailfish-secrets] Ensure that authentication plugin are installed with GnuPG plugins.

Currently, pulling in the GnuPG plugin on a bare system will install the daemon but the authentication plugin that is used by pinentry is not installed.
@chriadam and @pvuorela this may solve some of the dependency issues we have went installing only this package on a bare system.

LGTM


Remove the Exception Status code 409 from SFTPTransport since it is only notification and generate FATAL-ALERT and we don't need to do anything in response.

FATAL-ALERT gov.cdc.prime.router.azure.SendFunction - Success: sftp upload of cdcprime_cdcprime_laoph_production_production_20231025153539.hl7 to SFTPTransportType(host=<IP_ADDRESS>, port=22, filePath=./, credentialName=null), FAILED Sftp upload of inputReportId 1263542f-009c-4218-ba3f-dc5455be1780 to SFTPTransportType(host=<IP_ADDRESS>, port=22, filePath=./, credentialName=null) (orgService = la-doh.elr), Exception: Status code 409, '?BlobAlreadyExistsThe specified blob already exists.

I discussed this with @victor-chaparro, and he suggested contacting the sender to not send duplicate messages.

Duplicated ticket with what Angela is working on.


fix: Fix test connection for extra fields

SUMMARY

Allowing extra_json to be serialized into extra before trying to connect to DB from sqla form
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

🏷 2021.27


OverlappingInstances are deprecated in GHC 7.10.

You may still need to add OVERLAPPING pragmas to some instances. GHC doesn't report overlapping instances at the definition site, and I couldn't find them just by reading the code. Tests and benchmarks still compile, though.

Figuring out what on earth the new pragmas mean is why I haven't fixed this yet. I was hoping someone could figure it out for me.

I was hoping someone could figure it out for me.

The main problem here is that GHC will happily accept code with overlapping instances even without {-# LANGUAGE OverlappingInstances #-}, but removing the pragma may break client code. Figuring out which instances need to be marked as OVERLAPPING is non-trivial for someone not very familiar with the code. Ideally there would be a GHC flag that would enable warnings about overlapping instances at definition site, so that I would at least start with a smaller list of possible suspects.
Since you are also using UndecidableInstances in that module, just removing OverlappingInstances is probably OK, but I'm not 100% sure.
I'll try compiling Hackage packages that depend on cassava against a patched version and report the results.

So I went through the list of cassava's reverse dependencies on Hackage and tried to compile them against my patched version. The following packages compile fine: cassava-conduit, cassava-streams, criterion, gipeda, hmatrix-csv, keyword-args, pipes-csv, target.
The following packages failed to compile due to a missing OVERLAPPABLE pragma: music-parts. music-parts still failed to compile after I fixed this, but due to another reason.
The following fail to compile due to non-cassava-related reasons (e.g. too permissive version bounds): clippings, Haggressive, music-parts, SBench.
The following fail due to too restrictive version bounds (i.e. a solver error): BenchmarkHistory, borel, cndict, hakaru, kickass-torrents-dump-parser, subhask, postgrest, Referees, yahoo-finance-conduit. Will try with --allow-never later (maybe).

Note also that if client code starts to break due to them having declared an instance that overlaps one of cassava's, they can fix it themselves by adding an `{-# OVERLAPPING #-} pragma. So a version bump is probably appropriate here.

What if we just removed the OverlappingInstances pragma? Users can still provide an OVERLAPPING pragma if they want to overlap any of the instances.

What if we just removed the OverlappingInstances pragma? Users can still provide an OVERLAPPING pragma if they want to overlap any of the instances.

Yes, that's also a valid solution. In fact I think that the one library that broke is better fixed in this way (it defines an instance for Maybe Foo, and cassava has one for Maybe a).
A major version bump will be also needed.

Will the major bump also be required if we keep the OVERLAPPABLE pragma?
Thinking about it there might be other instances that can be overlapped, like:
instance (FromField a, FromField b, Ord a) => FromNamedRecord (M.Map a b) where

Removing the OverlappingInstances pragma really means adding OVERLAPPABLE pragmas to all of them if we want to avoid bumping the major version.

Removing the OverlappingInstances pragma really means adding OVERLAPPABLE pragmas to all of them if we want to avoid bumping the major version.

Yes, I think you're right. I haven't found other libraries broken by this change on Hackage, but that doesn't mean such code doesn't exist.


[PyAMQP] Connections TODO

the old PR is here #25802
Fixed latest comments

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-eventhub

/azp run python - eventhub - tests


Refactor TransactionBuilder

Refactoring transaction builder. In some corner case situation, the transaction builder can pay less than the relay fee. Fixing this bug is not easy, so I need to refactor step by step this spaghetti.

The old TransactionBuilder had a slight change to generate a transaction with fee lower than the feerate if the coinselector was chosing a different set of coins than it did when SendEstimatedFee was called.
This was a very rare bug, actually found it via spurious tests running the builder thousands of time as the CI was sometimes failing the test.
 This is the trickiest code of NBitcoin. But now it is not only more readable, with the bug fixed, but also it will generate transactions with way closer to the expected fee rate!


explain some words

What's the PK FK ref id meaning

Where is "ref id" you refer to... file, line?

Thanks for your reply.
https://github.com/EOSIO/eos/wiki/Database Schema
WIKI: Database schema

PK = primary key
FK = foreign key

@gleehokie thanks, you solved many questions.


[ja] Updated content/ja/docs/concepts/workloads/pods/_index.md file

There are several updates in the original English text and therefore this page is outdated.
This PR updated Japanese translation for the content/ja/docs/concepts/workloads/pods/_index.md file.
Fixes https://github.com/kubernetes/website/issues/35828

The original page has "Pod update and replacement" section between "Pod templates" and "Resource sharing and communication".
It looks like this section should be added to the Japanese page as well.
ref: https://github.com/kubernetes/website/pull/25756

The original page has "Pod update and replacement" section between "Pod templates" and "Resource sharing and communication". It looks like this section should be added to the Japanese page as well.
ref: #25756

Thank you for your kind instruction! I will go check it right away.

/retitle [WIP][ja] Updated content/ja/docs/concepts/workloads/pods/_index.md file

/retitle [ja] Updated content/ja/docs/concepts/workloads/pods/_index.md file

/assign
/approve
but I'm not sure we should use {{< skew currentVersion >}} in Japanese page (because actually sometimes Japanese pages are not well-maintained... sadly though)

/assign /approve but I'm not sure we should use {{< skew currentVersion >}} in Japanese page (because actually sometimes Japanese pages are not well-maintained... sadly though)
@nasa9084 Thank you for your approval!
And regarding {{< skew currentVersion >}}, could I ask that what would happen if I still use this piece of code and didn't maintain these pages on time? I thought it will change automatically when there's new kubernetes version come out. Thank you so much!

/cc @t-inu @atoato88
Hi! I've updated Japanese translation for the content/ja/docs/concepts/workloads/pods/_index.md file., would you mind checking if everything looks alright at your convenience time please?

And regarding {{< skew currentVersion >}}, could I ask that what would happen if I still use this piece of code and didn't maintain these pages in time? I thought it will change automatically when there's new kubernetes version come out. Thank you so much!

Yes, as you said, it will change automatically when there's a new kubernetes version, even the document is not updated.
so, my concern is, if .spec.os.name field affects scheduling with a new kubernetes version and this page is not updated, the page will say "the field won't affect scheduling with THE NEW VERSION"....
anyway, I can go as it is for now

And regarding {{< skew currentVersion >}}, could I ask that what would happen if I still use this piece of code and didn't maintain these pages in time? I thought it will change automatically when there's new kubernetes version come out. Thank you so much!

Yes, as you said, it will change automatically when there's a new kubernetes version, even the document is not updated. so, my concern is, if .spec.os.name field affects scheduling with a new kubernetes version and this page is not updated, the page will say "the field won't affect scheduling with THE NEW VERSION".... anyway, I can go as it is for now

@nasa9084 Thank you so much for your detailed explanation!

It's LGTM.
Should I add ltgm label or wait for adding lgtm tag by other reviewers?

BTW, I agree with the topic about {{< skew currentVersion >}} spoken here.
And an original English contents have also  {{< skew currentVersion >}}, so it's a same situation both of EN and JP(and maybe also same with other language).

/label tide/merge-method-squash

Looks good!
/lgtm

LGTM too :smile:


nic is not added to a lb backend pool if the nic is referenced by the id

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az network nic ip-config address-pool add
Errors:
The command failed with an unexpected error. Here is the traceback:

'child_name_1'
Traceback (most recent call last):
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-dsvrkf2x\knack\knack\cli.py", line 206, in invoke
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-dsvrkf2x\azure-cli-core\azure\cli\core\commands\__init__.py", line 508, in execute
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-dsvrkf2x\knack\knack\cli.py", line 162, in raise_event
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-dsvrkf2x\azure-cli-core\azure\cli\core\commands\arm.py", line 310, in parse_ids_arguments
KeyError: 'child_name_1'

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

Put any pre-requisite steps here...
az network nic ip-config address-pool add --ids {} --address-pool {}

The problem seems to lie in the use of id, because if --nic-name  and --name are specified the command works as expect.
The id is correct, the problem not a malformed id, it was extracted using
Expected Behavior
the referenced NIC on ids parameter is added to the LB pool
Environment Summary
Windows-10-10.0.18362-SP0
Python 3.6.6
Shell: cmd.exe

azure-cli 2.0.65 *

Extensions:
azure-devops 0.10.0
resource-graph 0.1.8

Additional Context

The real issue here is that --ids should not even be exposed. You are expected to provide the name components.


Mxnet Seq2Seq task cost huge memory

Recently, I use Mxnet for seq2seq task, such as Machine Traslation, however, I find mxnet will cost huge memory, even twice as that of Theano.
I find that the memory cost very strange.
Eg.
The softmax layer is (1024, 15w)， I set minibatch=1  Decoder seq_len=40  it will cost 11G memory
If i set softmax layer  (512, 15w),  minibatch=1  Decoder seq_len=40  it cost 8G memory
if i set softmax  layer (256, 15w), minibatch=1  Decoder seq_len=40 it cost 6G memory
Again, if i tune the minibatch
as softmax layer (512, 15w), minibatch=16 Decoder seq_len=40 it cost 9.5G memory , while minibatch=1, it cost 8G memory
In the meanwhile, if I use theano,
the softmax layer is (1024, 15w), minibatch=32  Decoder seq_len=40 it onlyt cost 4~5G memory!!!!
Not only for machine translation, I've tried lots of other seq2seq tasks,  mxnet always cost huge memory.
As far as i know, so far, mxnet/example has not give a seq2seq example yet, while seq2seq task are so popular for deeplearning, I am really looking foward to hearing advices from guys using mxnet for seq2seq task.

Mostly caused by the optimizer. For this situation the model size  is huge, and it seems the ndarray calculation in  optimizer  will allocate extra memory for some complex computation. like this:
 acc_g[:] = self.rho * acc_g + (1. - self.rho) * grad * grad

I'm not familiar with the mechanism of ndarray. Is there any other way to avoid the extra memory allocation except writing a c++ optimizer @piiswrong

use ccsgd.
If you use the nnvm branch, it's much easier to write an c++ optimizer. You only need to write an op, as shown in nnvm's sgd and adam implementation

@gmyofustc Hi, I am also trying this. Did you use attention? And did you compared the training speed with theano?

@gmyofustc I would be really helpful if you can get some demo codes with dummy data.

@magic282 yes, I did use attention, and the speed has no big difference with that of theano

@sxjscience sorry for my late reply. Currently, I can not get the code from my inner network environment, but I think I can write the seq2seq code personally in my free time, and contribute to MxNet/Example, perhaps I need one week

@gmyofustc Thanks a lot! Just take your time.

Close it now as there is no discussion for a long time.


fix: report fields are not disabled after disconnect accounting integration

Explanation of Change

If connected to an accounting integration that is allowed on the collect workspace - report fields are enabled. When disconnecting - report fields should be removed.
Fixed Issues

$ https://github.com/Expensify/App/issues/50472
PROPOSAL: https://github.com/Expensify/App/issues/50472#issuecomment-2400913896
Tests

Create a Collect workspace
Enable Accounting > Connect QBO
Go offline
Disconnect QBO
Verify Report fields are disabled
Go online
Verify Report fields are disabled

[x] Verify that no errors appear in the JS console

Offline tests

See Tests
QA Steps

See Tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/6bac2520-3258-4c5a-9c02-3d9ec2285798

Android: mWeb Chrome

https://github.com/user-attachments/assets/4ce56393-081b-4ad4-a1c9-8168c13a2f90

iOS: Native

https://github.com/user-attachments/assets/d6899ff5-b9f1-49a9-9257-78873433fa3d

iOS: mWeb Safari

https://github.com/user-attachments/assets/088faeaa-739c-4b43-afbb-4cd7974c724d

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/646c0a52-c2af-4390-b516-0abb58270047

MacOS: Desktop

https://github.com/user-attachments/assets/3556ab27-df60-41f8-8e80-da66ebe3c313

@allgandalf Updated.


Add a section for blog and news post

Summary
Fixes #2 #11
Add a section for the blog and news inside the website
List of changes proposed in this PR (pull-request)

Add a section for blog posts (this blog was connected to the quarto blog)
Add a section for news posts.
Fix some Links.

Hi @AsmaKacem1, thank you for doing this, I really appreciate that!
However, as I mentioned, I am afraid we can't merge a PR if there's over 20 files changed, the PR needs to be broken down into smaller ones. This PR address three things and is very heavy!
Can you possibly break it down into steps and address each step I a single PR. We do prefer to address the news section in a separate PR from the news section. We have few open PR to add event pages such as #187 - can you use the same cards design?
Let me know if anything isn't clear!

@all-contributors add @AsmaKacem1 for idea and infra

Sorry @BatoolMM for the delay I have just seen the message now because I was a little bit busy with exams. yes of course, I will break it down into steps and address each step in a single PR.
Thanks a lot for the explanation🌷


Images(stored as base64 string) retrieved from Firebase takes too long to load(around 20-30 seconds). Any idea why this delay is happening?

We tried 2 options so far:

using  ref.once("value") and ref.on("value)
$FirebaseArray. with $loaded event

The loading time is really slow for both the cases but overall the Array seems to takes more time than the 1st approach. We are using Supersonic framework to create our mobile app.
Any thoughts?

This is almost certainly a Firebase issue (not angularFire).
How big are these files?
Somebody from FB may correct me, but I would wager that Firebase is not optimized for serving images. You are not going to be able to implement caching, I doubt firebase transfer speeds compare favorably to GCS/S3, and I'm sure Firebase bandwidth costs more. If this is for a low traffic prototype, then by all means - use firebase.
Create a minimal demo with only firebase as a dependency. Just have it load up a single image. That eliminates Supersonic / angularFire as the source.

Thanks for the quick response ! Image size would be approx 500-700 KB. And yes there is going to be high traffic for our app. We were also considering moving to Parse/s3.

I can't comment on Parse vs Supersonic. I've never used either.
The mechanics of either solution will be similar.
What type of security do you want for the image?
The easy option is using a secret URL. Simply knowing the URL is what grants access. It can be made sufficiently long that it's unlikely anyone would ever guess it, so "cracking" a secret URL is not a security concern. However, once the secret URL is known, there are no further checks (logged in? paid up on account? doesn't matter if you know the URL).  The exception here might be using GCS cookie base authentication, but that means forcing your users to have a google account.
Signed GET requests offer additional control (not necessarily more security), but you introduce additional server side code and overhead.
In either case, you are going to want to use Signed PUT requests to validate uploads. That will require a server. Here is the GCS documentation on the subject.

We aren't bothered about security that much since its just going to be an
app used for a college project . We just wanted the loading time to reduce.
So your saying we just store the URL in firebase and retrieve the image
through GCS/S3?
On Tue, 20 Oct 2015 at 12:32 am James Talmage<EMAIL_ADDRESS>wrote:

I can't comment on Parse vs Supersonic. I've never used either.
The mechanics of either solution will be similar.
What type of security do you want for the image?
The easy option is using a secret URL. Simply knowing the URL is what
grants access. It can be made sufficiently long that it's unlikely anyone
would ever guess it, so "cracking" a secret URL is not a security concern.
However, once the secret URL is known, there are no further checks (logged
in? paid up on account? doesn't matter if you know the URL). The exception
here might be using GCS cookie base authentication
https://cloud.google.com/storage/docs/authentication#cookieauth, but
that means forcing your users to have a google account.
Signed GET requests offer additional control (not necessarily more
security), but you introduce additional server side code and overhead.
In either case, you are going to want to use Signed PUT requests to
validate uploads. That will require a server. Here is the GCS
documentation
https://cloud.google.com/storage/docs/access-control?hl=en#Signed-URLs
on the subject.
—
Reply to this email directly or view it on GitHub
https://github.com/firebase/angularfire/issues/669#issuecomment-149437491
.

James is right in that, in general, Firebase is not a great solution for blobs like images, videos, and files. You are better off storing the blobs in Google Cloud Storage of Amazon S3 and storing metadata like the URLs in Firebase. You can see some more information here. Short story is that this is a very common feature request and it is a top priority for us. We have plans for a true blob storage solution so you don't have to hack together something for yourself. Hang tight!

So your saying we just store the URL in firebase and retrieve the image through GCS/S3?

Yep, that is what I am saying.

We have plans for a true blob storage solution so you don't have to hack together something for yourself. Hang tight!

How close is that?

It's under active development, though priorities may--and do--shift. Like most Google products, we don't publish a public road map, offer ballparks or release dates, so we can't be more specific.

That time is now! 🚢🔥🎉
Check out Firebase Storage, it'll make this problem so much easier :)

is the FirebaseStorage solve the problem or still I need to upload my image to GCS then store the link in the firebase. Special If I have to download and upload many images in my app.

We handle the upload to GCS and then you can store that link anywhere (like the Firebase DB). It actually does make things much easier though, I promise :)


Fix wrong implementation of horizontal centering the grid-container

Description

The margin on top and bottom of the container should not be set to ZERO. And vertical margin on the grid-container makes it impossible to add a new margin top or bottom. Should not be set by default.

Closes https://github.com/zurb/foundation-sites/issues/11633

Types of changes

[ ] Documentation
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (anything that would change an existing functionality)
[ ] Maintenance (refactor, code cleaning, development tools...)

Checklist

[x] I have read and follow the CONTRIBUTING.md document.
[x] The pull request title and template are correctly filled.
[x] The pull request targets the right branch (develop or develop-v...).
[x] My commits are correctly titled and contain all relevant information.
[x] I have updated the documentation accordingly to my changes (if relevant).
[x] I have added tests to cover my changes (if relevant).

Hi @ncoden,
Thanks for the quick response. I am happy to hear that you approve the changes.
Looking forward to the next update! 👍


[BREAKING] Deprecate support for Python 3.6

Discussed in https://github.com/CycloneDX/cyclonedx-python-lib/discussions/216
Python 3.6 is reached its end of life as of December 2021.
This feature will drop support for Python 3.6.
FYI: @jkowalleck

Update pyproject.toml

[x] classifiers
[x]  dependnecy minimum-versions
[x]  and other such data

[x] Remove Python 3.6 tests from CI
[x] remove 3.6 from CI/CT (github workflows)
[x] adjust requirements.lowest.txt to versions that at least support python3.6
[x] migrate code to the features of py37

TARGET BRANCH: dev/3.0.0

Included in 4.0.0 and contributed by @hakandilek - many thanks!


Added onProgress to assets manager

Cool! do you mind updating the doc as well?
http://doc.babylonjs.com/how_to/how_to_use_assetsmanager


for loop: breaks even if condition valuates to true

What version of Go are you using (go version)?

$ go version
go version go1.13.6 darwin/amd64

Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/amitbasuri/Library/Caches/go-build"
GOENV="/Users/amitbasuri/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=" -mod="
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/amitbasuri/goWork"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/Users/amitbasuri/sdk-go/go1.13.6"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/amitbasuri/sdk-go/go1.13.6/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/amitbasuri/goWork/src/go-algo/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/9c/68n6djhd0yld73s97pfgyz0r0000gq/T/go-build587761073=/tmp/go-build -gno-record-gcc-switches -fno-common"
GOROOT/bin/go version: go version go1.13.6 darwin/amd64
GOROOT/bin/go tool compile -V: compile version go1.13.6
uname -v: Darwin Kernel Version 17.7.0: Sun Dec  1 19:19:56 PST 2019; root:xnu-4570.71.63~1/RELEASE_X86_64
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G10021
lldb --version: lldb-9<IP_ADDRESS>
  Swift-4.1

What did you do?
I was solving https://leetcode.com/explore/interview/card/top-interview-questions-medium/108/trees-and-graphs/786/
I figured out something weird happening with the for loop, Please find my code below.
https://play.golang.org/p/gD8uCtJURYq
What did you expect to see?
The loop  for root != nil || len(stack) > 0 { ...} should not exit if the value evaluates to true on the previous iteration.
What did you see instead?
The loop exits even if it evaluates to true.

The statement
    root := stack[len(stack)-1]

shadows the root variable used by the loop condition.  You may want to use = rather than := there.


support for github sponsorhip

It would be useful to add support for github sponsorship in addition to the other two existing options. Also you may want to enable it for your theme repo too.

it's a good idea.I'll take a look~


Ft fetch specific party 163683249

What does this PR do?

Adds a feature for the user to fetch a specific political parties

Description of Task to be completed?
When a user sends a GET request to the /api/v1/parties/<int:party-id> route
Then  the party matching that IDshould be returned as part of the response
{
  “status” : Integer (200) ,
  “data” : [
    {
      “id” : Integer,
      “name” : String ,
      “hq_address” : String ,
      “logo_url” : String ,
      "party_members": integer,
      "registered_on":timestamp
   }
  ]
}

or on failuire
{
  “status” : integer ,
  “error” : “String: relevant-error-message”
}

How the app should be tested
On Postaman App:
On a browser, visit
On a  terminal (Linux):

Install and set up git, python3 and a virtual environment

In a virtual environment,

Install curl

Clone the repository git clone https://github.com/artorious/politico-electoral-commission-api.git

Run git checkout ft-fetch-specific-party-163683249

Run cd politico-electoral-commission-api

Run pip3 isntall -r requirements.txt to install dependancies

Run python3 run.py

Run the unit tests coverage run -m pytest -v app/tests/

To post sample data, Run

curl --location --request POST "http://<IP_ADDRESS>:5000/api/v1/parties" \
  --header "Content-Type: application/json" \
  --data "{
    \"name\": \"Jubilee\",
    \"hqAddress\": \"Jubilee Tower, Pangani, Thika Road\",
    \"logoUrl\": \"/static/jubilee.jpeg\",
    \"Party members\": 225
}"

To fetch data:
curl --location --request GET "http://<IP_ADDRESS>:5000/api/v1/parties/1" \
  --data ""

Any background context you want to provide?
The application is a Restful Flask API
What are the relevant pivotal tracker stories?
#163683249
Screenshots

Questions:

Great job

good job perfect!!!


org/slf4j/LoggerFactory error when using pdfcompare ivy.xml dependencies

Hi @laurio , @geofflane , @abstractj , @ceefour , @sullis
I'm experiencing an issue when using the pdfcompare library in my project. I have an ivy.xml file that contains the following dependencies:
<dependency org="apache" name="commons-cli" rev="1.2" conf="release,dev->*" /> <dependency org="selenium" name="selenium" rev="3.7.0" conf="release,dev->*" /> <dependency org="testng" name="testng" rev="6.14" conf="release,dev->*" /> <dependency org="apache" name="log4j" rev="1.2.16" conf="release,dev->*" /> <dependency org="apache" name="freemarker" rev="2.3.28" conf="release,dev->*" /> <dependency org="jcommander" name="jcommander" rev="1.48" conf="release,dev->*" /> <dependency org="relevantcodes" name="extentreports" rev="2.41.2" conf="release,dev->*" /> <dependency org="rest-assured" name="restassured" rev="4.3.0" conf="release,dev->*" /> <dependency org="BeyondCompare" name="BCompare" rev="<IP_ADDRESS>58" conf="release,dev->*" /> <dependency org="poweradmin" name="psexec" rev="2.4.5" conf="release,dev->*" /> <dependency org="sqlite" name="sqlite-jdbc" rev="3.23.1" conf="release,dev->*" /> <dependency org="jna" name="jna" rev="5.8.0" conf="release,dev->*" /> <dependency org="eclipse" name="jaxb" rev="2.3.2" conf="release,dev->*" /> <dependency org="apache" name="pdfbox" rev="2.0.23" conf="release,dev->*" /> <dependency org="de.redsix" name="pdfcompare" rev="1.2.3" conf="release,dev->*" /> <dependency org="org.slf4j" name="slf4j-api" rev="2.0.16" conf="release,dev->*" /> <dependency org="ch.qos.logback" name="logback-classic" rev="1.5.12" conf="release,dev->*"/>
When I use the pdfcompare library in my Java tests, I'm getting the following error:
org/slf4j/LoggerFactory
I've tried the following to resolve the issue:
Removing the log4j dependency
Excluding the slf4j-api artifact from the pdfcompare dependency
Cleaning and rebuilding the project
However, the issue persists. I suspect there might be a conflict between the SLF4J versions or implementations being used by the different dependencies.
Could you please provide any guidance on how to resolve this issue? I'm happy to provide more information or diagnostics if needed.
Thank you for your assistance!

Hi @heenavasdani1
The error description looks incomplete.

When I use the pdfcompare library in my Java tests, I'm getting the following error:
org/slf4j/LoggerFactory

@ceki , Actually this error description is complete, I am getting only this error message when I am executing the below line of code-
boolean isEqual = new PdfComparator(masterFilePath, testFilePath).compare().writeTo("result.pdf");
For PdfComparator, I am using following line to import pdfCompare library(https://mvnrepository.com/artifact/de.redsix/pdfcompare)
import de.redsix.pdfcompare.PdfComparator;
PdfCompare's classes calling org.slf4j.Logger internally so it is not able to find slf4j. Please help me to resolve it, as I tried many things but nothing worked.
Thanks!


feat: conversation page

videonya agak outdated, coba aja sendiri kalo mau lihat yg latest
https://user-images.githubusercontent.com/51877647/213927079-9d064d34-ba44-4ee4-b612-dea882d72a08.mp4
exported chat dipindah ke public biar assetsnya bisa diakses

should we limit the message output on the repliedTo field? we should trim it to 100 characters or less, probably. so it wouldn't be a mess.