add sum around sum total so columns can be used

Issue this PR Addresses/Closes
Closes #290
Summary of Changes
Just wrapped sum_total in Sum()
Why Do We Need These Changes
This will allow a column name or a literal number to be used.
Reviewers
@clausherther

Great catch, thanks for the PR! I think this is one of those holdovers from Great Expectations where tests are built against static values vs totals of other columns. Probably worth looking other tests as well.
Would you mind also adding a test that covers this new use case of testing against the sum of another column? We currently only have a static test, i.e.
      - dbt_expectations.expect_multicolumn_sum_to_equal:
          column_list: ["col_numeric_a", "col_numeric_b"]
          sum_total: 4

so we'll need something like
      - dbt_expectations.expect_multicolumn_sum_to_equal:
          column_list: ["col_numeric_a", "col_numeric_b"]
          sum_total: new_totals_column

Got most of the tests made. One snag, sorry haven't used postgres in a while.  Can you tell me why
SELECT Sum(4)
from postgres.dbt_expectations_integration_tests.data_test

returns 16
but
SELECT sum(4)

RETURNS 4?
Am I just insane that something is wrong?
Postgres version:
PostgreSQL 14.1 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027, 64-bit

Hopefully this is what you're looking for.  If not let me know.

Hopefully this is what you're looking for. If not let me know.

I'll check it out! FYI, you probably figured this out since, but sum(4) against the table return 16 b/c it does this for every one of the 4 rows. This may actually mean this is a break change. Any config that checks for 4 would now fail. Any thoughts?

FYI, updated the CI config on this PR to get Spark CI to pass. For some reason our CI configs breaks in dbt 1.7.x, but I'll fix that separately. CI is passing for you now 👍


Bump govuk-frontend to v4.8.0

Resolves #337
This release includes the ability to update the crown logo. You must do this between 19 February and 1 March 2024. Note that many docs repositories use this gem to set the version of the design system used.
We will need to carefully consider when to merge this and roll an update as it comes with immediate operational impacts around use of favicons.
As we cannot use the Nunjuks template here as a feature flag, when we are ready to enable the tudor crown we will need to follow the upgrading guidance here:
https://github.com/alphagov/govuk-frontend/releases/tag/v4.8.0
Note that a v5.1 of the design system has also been published. I suggest we get this merged then consider a broader set of upgrades as part of any next major release to this gem
What’s changed
Bumps govuk-frontend from v4.4.1 to v4.8.0
Identifying a user need
A required upgrade to ensure all instances of the Tech Docs Template are able to update to the Tudor Crown from the 19th Febuary.
This is a requirement before the 1st March 2024.

Hello @huwd - is there a timeline for bumping this one to 4.8.0?

Hey @abigail-houston-hmrc,
I too am a consumer of this gem and need to bump some of our docs along, so I suspect we're in a similar boat here.
There's a few conversations going on here at GDS I need to get resolved before I can take this off draft.
I'll try and get back with an update / timelines this week.

My colleague @kr8n3r has beaten me to it,
You can track progress over here:
https://github.com/alphagov/tech-docs-gem/pull/344
Should have a new version out soon. Thanks for your patience!


Switch Problem

I installed the custom component, but it doesn't create the switches for me. in the hassio log I find the following error:
Error while setting up platform fritzbox_tools
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/fritzbox_tools/switch.py", line 23, in setup_platform
port_forwards_count: int = fritzbox_tools.connection.call_action('WANIPConnection:1', 'GetPortMappingNumberOfEntries')["NewPortMappingNumberOfEntries"]
KeyError: 'NewPortMappingNumberOfEntries'

Thanks for reporting.
Looks like the Fritzbox doesn't reply with the configured port forwardings and then the whole setup function times out.
So, beside trying to understand why the request doesn't get a response (in time), it might be a good idea to add a timeout to this request?

I removed the port forward part of the configuration and the switches appeared. how can I increase the timeout and see if I can use the custom component in all its functions?

The hit timeout is set by the home assistant core.
We would need to implement an own timeout around those faulty requests (or even better understand why the Fritzbox is not responding).

@legolas0802 could you maybe provide information about your setup (hardware, wired/wifi, which Fritzbox, etc)
Can you reproduce the error after multiple reboots? Do you have „selbstständige Portfreigabe“ enabled for your home assistant device? Do you use your Fritzbox with DSLite (no ipv4 portforwarding possible)?
I agree with @mammuth. Looks like this is due to the connection with the Fritzbox.

I removed the port forward part of the configuration and the switches appeared. how can I increase the timeout and see if I can use the custom component in all its functions? I use fritzbox 7490, hassio works with wired. Possible that the problem is that I'm using a USB stick to give the internet to the fritzbox?

@legolas0802: If you have a data stick you might have Dslite.
Please check: https://www.wieistmeineip.de/ipv6-test/
Please check if you are able to open ipv4 ports in your Fritzbox configuration. If this is not possible the port switch will fail to initialise.
Our port switches only work with ipv4 port forwardings.

the problem is the usb stick, thank you!!!

Glad it's resolved for you!
I'll keep this issue open because the component should handle such cases.

@mammuth: we should check the ipv4 status before creating the switches

I added a try except statement in the setup of the platform.

@legolas0802 could you upgrade to 1.2.2 (should be available through HACS) and check whether the component is not crashing anymore?

@mammuth: I think you forgot to include the fix itself.

@mammuth: I think you forgot to include the fix itself.

Wow... 😁
I just remembered I recently merged a PR and thought it was that one. But turns out, it was the dependency update 🙈
@legolas0802 version 1.2.3 is up for your testing 😊

I tried it now and it works, obviously it didn't create the entity for port forwarding

Perfect. Thanks for the feedback.


Better estimate for SQS time to drain metrics

Version
v5.2.3
Steps and/or minimal code example to reproduce
It is not actually a bug but a better and simpler computation exist. Currently, time to drain metrics in SQS is calculated as below [1] , which is indirect. A better estimate can be calculated using RATE function [2].
  // Time to drain queue (number of visible messages / net consumption rate)
  // Net consumption rate is defined by consumption rate - incoming rate
  metricTimeToDrain() {
    return this.metricFactory.createMetricMath(
      "(visibleMessages / (consumptionVolume - incomingVolume)) * (PERIOD(consumptionVolume))",
      {
        visibleMessages: this.metricApproximateVisibleMessageCount(),
        incomingVolume: this.metricIncomingMessageCount(),
        consumptionVolume: this.metricDeletedMessageCount(),
      },
      "Time to Drain (seconds) (avg: ${AVG}, max: ${MAX})"
    );
  }

https://github.com/cdklabs/cdk-monitoring-constructs/blob/81f0c6ba0211bca586c9b994ec7aa037b2cd6e3c/lib/monitoring/aws-sqs/SqsQueueMetricFactory.ts#L82-L92
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html

Expected behavior
Instead of directly getting the consumption rate, current computation estimate based on different metrics which is less accurate.
Actual behavior
A better and direct method can be used.
Other details
A sample code for this is
{
    "metrics": [
        [ { "expression": "m1/RATE(m1)", "label": "TimeToDrain (sec)", "id": "e1", "region": "us-east-1" } ],
        [ "AWS/SQS", "ApproximateNumberOfMessagesVisible", "QueueName", "some-test-queue", { "id": "m1", "visible": false, "region": "us-east-1" } ]
    ],
    "view": "timeSeries",
    "stacked": false,
    "region": "us-east-1",
    "stat": "Average",
    "period": 300
}

Also, in the original formula the absolute value of diff need to be taken to avoid getting negative rate impacting the avg and other stats for Time to drain metric. Time to drain can't be negative, if there is no message it will be 0 but current formula adds negative datapoints  (though the visibility is capped at 0 min but datapoint are still negative) and which reduces the avg .


Allow JSON::Builder#field to accept non-scalar values.

This simplifies writing complex values in json fields:
Instead of json.field "field" { value.to_json(json) } you can simply
write json.field "field", value.

I've wanted this change in 2 projects now, would be great to get another opinion on this so it could be merged. Here's a snippet from a real project:
json.field "avatar" do
  json.object do
    json.field "id", @avatar_id
    json.field "url", "#{config.api_base_url}/v0/avatars/#{@avatar_id || "default"}"
  end
end

this would be written more neatly as
json.field "avatar", {
  id: @avatar_id,
  url: "#{config.api_base_url}/v0/avatars/#{@avatar_id || "default"}"
}


Fixing the unexpected format violated exception, when fetching OAuth tokens

Line 145 change form if(splitValues.length == 2) { to if(splitValues.length >= 2) {
this fix enables fetching OAuth tokens using curl with out any issues.
In the validation it must let the flow process ahead with out any blocks if the index 1 is available.
Before it block when the index 1 is available with more than 2 indexes in the array.

Check for the discussion in #977


bugfix: space in output_band of expression

[ ] I added an entry to CHANGELOG.md if knowledge of this change could be valuable to users.

Here is a brief summary of what I did:

 Output Bands führen zu Fehlern

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

99 of 100 (99.0%)  changed or added relevant lines in 3 files are covered.
6 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.01%) to 91.121%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

operators/src/processing/expression/mod.rs
12
13
92.31%

Files with Coverage Reduction
New Missed Lines
%

operators/src/util/stream_zip/vec_zip.rs
1
91.22%

services/src/pro/api/handlers/users.rs
2
95.7%

services/src/datasets/external/pangaea/mod.rs
3
86.31%

Totals

Change from base Build<PHONE_NUMBER>5:
0.01%

Covered Lines:
133250

Relevant Lines:
146234

💛  - Coveralls


White Blank Screen

After installing everything when I try to access the webpage of my pool its appear a blank white screen

anyone can help me?

Hi
make sure to edit your webUI
first go to your wbUI folder
/Miningcore.WebUI/js
then
var WebURL      = "http://solo.1pool.org/";
var API              = "https://yourserverIP:APIPORT/api/";
and then go to /etc/sitesenabled/
edit the default file
change this   root /var/www/html;
to >>     root  /home/pool/Miningcore.WebUI;
then
restart nginx service
good luck

I do this all
But the same issue.
Do you have telegram?

make sure that  api port and http port  by default is 80 is allowed
sudo apt install ufw
then
ufw status
then
ufw allow 80
ufw allow "apiport"
or
ufw allow http
ufw allow nginx


Compatibility for additional query points

Is there any way to incorporate query points from more than one frame in TAPIR?
so for instance, currently I believe we have a 1-shot approach where we select query points from one chosen frame.
Is there a way I can incorporate query points from multiple chosen frames for the same video? I'm trying to assess how much this would affect the performance.
One way would be to run inference separately for separate (frame,query_points) and find a way to merge the results for a best-case scenario, but this would consume a lot of resources.
I attempted to alter the query_points input for TAPIR model inference as a batch input with multiple frames and corresponding query points but I get an error, so just wondering if there is, if any, a way to do that.
Thanks!

The query points have the format [t,y,x] where t is the desired frame.  You should be able to query on arbitrary frames out of the box.
What error are you getting?

how can i use a batch query for a single inference?
for instance, [s,t,y,x] where s is the number of frames

Hi @hamdjalil, were you able to implement the addition of multiple query points? I'm having issues with the update_query_features function where I pass in multiple points and there's a dimension error.

I was able to do that, but I found that the model is just overlaying multiple videos in the output.
so if i sent a list of query points q1,q2,q3 the output would inference the entire video for q1 producing video with keypoints: vs1, and then followed by vs2 for q2 and vs3 for q3 and overlay the results in the same video, which was causing a clutter so it wasn't very helpful for me.
I think there was a specific input shape which allowed me to run it this way and bypass the dimension error, I might not have access to the script now but if you're still interested in running it you could share the error and I can see if I remember the resolution.

Hey thanks for the response, I am running the live_demo.py script because I want to use the webcam,
these are the query_points.
[[          0         312          80]
[          0         335          82]
[          0         315         121]
[          0         331         115]
[          0         283         161]]
the error is ValueError: Incompatible shapes for broadcasting: (1, 5, 256) and requested shape (1, 1, 256) when I call the update_query_features function

What are you passing as idx_to_update?  If you're updating 5 points at a time, you need to pass 5 indices.
Can you post the full stack trace?

Traceback (most recent call last):
File "C:\EPFL\Fall_2024\WasteFlow\tapnet\tapnet\live_demo_video.py", line 315, in
query_features, causal_state = tapir.update_query_features(
File "C:\EPFL\Fall_2024\WasteFlow\tapnet\tapnet\models\tapir_model.py", line 1237, in run
res = hk_fn.apply(
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\haiku_src\transform.py", line 456, in apply_fn
out = f(*args, **kwargs)
File "C:\EPFL\Fall_2024\WasteFlow\tapnet\tapnet\models\tapir_model.py", line 1232, in tapir_call
return fn(*args, **kwargs)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\haiku_src\module.py", line 464, in wrapped
out = f(*args, **kwargs)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\contextlib.py", line 79, in inner
return func(*args, **kwds)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\contextlib.py", line 79, in inner
return func(*args, **kwds)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\haiku_src\module.py", line 305, in run_interceptors
return bound_method(*args, **kwargs)
File "C:\EPFL\Fall_2024\WasteFlow\tapnet\tapnet\models\tapir_model.py", line 1168, in update_query_features
lowres=jax.tree_util.tree_map(
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\tree_util.py", line 343, in tree_map
return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\tree_util.py", line 343, in
return treedef.unflatten(f(*xs) for xs in zip(*all_leaves))
File "C:\EPFL\Fall_2024\WasteFlow\tapnet\tapnet\models\tapir_model.py", line 1165, in apply_update_idx
return s1.at[:, idx_to_update].set(s2)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\numpy\array_methods.py", line 493, in set
return scatter._scatter_update(self.array, self.index, values, lax.scatter,
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\ops\scatter.py", line 80, in _scatter_update
return _scatter_impl(x, y, scatter_op, treedef, static_idx, dynamic_idx,
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\ops\scatter.py", line 115, in _scatter_impl
y = jnp.broadcast_to(y, tuple(indexer.slice_shape))
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\numpy\lax_numpy.py", line 2087, in broadcast_to
return util._broadcast_to(array, shape)
File "C:\Users\jeffr\anaconda3\envs\tapir_yolo\lib\site-packages\jax_src\numpy\util.py", line 430, in _broadcast_to
raise ValueError(msg.format(arr_shape, shape))
ValueError: Incompatible shapes for broadcasting: (1, 5, 256) and requested shape (1, 1, 256)
in my code: idx_to_update=np.array([next_query_idx]). I suppose I pass in an array with 5 indices?

idx_to_update=np.array([next_query_idx]). I suppose I pass in an array with 5 indices?

Yes

Thanks! Is there anyway to remove query points?

You probably don't want to do this because it will result in a recompile, which can take over a minute.  However, for both causal_state and query_features, the relevant information for each point is stacked along the first axis.  It should be straightforward to change this function: https://github.com/google-deepmind/tapnet/blob/main/tapnet/models/tapir_model.py#L1157 so that it deletes a given index rather than adds it.  tree_util.tree_map can be called with a single arg.


[BACKLOG-5205] Change GUIOption cast exception to warning

Backport of #1777 to <IP_ADDRESS>

Without it, PME will log an error with stack trace. I fixed it as I believe we don't want to ship a product that looks like it throws Exceptions on startup

Ok - thanks!!!!


Intersect geometries documentation

I've updated in tools_utils documentation the intersect_geometries method, and the two files (population and concentration_layer) which call the method

Looks amazing!


feature/logging

See iss #83 for details
Testing of logging:

[x] get_curation_list script
[x] generate_qualtrics_link script
[x] prereq_script script (see below for details of testing)

I executed prereq_script with a stage dataset to see what happens. Here is the log:
15:52:52 -     INFO: ****************************
15:52:52 -     INFO: Number of Deposits: 1
15:52:52 -     INFO: Retrieving 6927930
15:52:54 -     INFO: Retrieving depositor_name for 6927930 ...
15:52:55 -     INFO:   Depositor == author
15:52:55 -     INFO: depository_name : Chun_Ly_6927930_v1
15:52:55 -  WARNING: Unable to find source_path for Chun_Ly_6927930_v1
15:52:55 -  WARNING: Unable to find source_path for Chun_Ly_6927930_v1
15:52:55 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/ORIGINAL_DATA
15:52:57 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/DATA
15:52:58 -     INFO: PROMPT: DOI reservation has not occurred! Do you wish to reserve?
PROMPT: Type 'Yes'/'yes'. Anything else will skip : Yes
15:53:22 -     INFO: RESPONSE: Yes
15:53:22 -  WARNING: Skipping...
15:53:23 -     INFO: Total number of files: 1
15:53:23 -     INFO: Total number of files: 1
15:53:23 -     INFO: Total number of files: 1
15:53:23 -     INFO: Retrieving 1 of 1 : pinehead.jpg
15:53:23 -     INFO: Retrieving 1 of 1 : pinehead.jpg
15:53:23 -     INFO: Retrieving 1 of 1 : pinehead.jpg
15:53:28 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/UAL_RDM
15:53:28 -     INFO: Saving ReDATA Curation Report to: /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/UAL_RDM
15:53:28 -     INFO: Saving as : ReDATA-DepositReview_Chun_Ly_6927930_v1.docx
15:53:34 -     INFO: Attempting to identify using article_id or curation_id ...
15:53:34 -     INFO: Unable to identify based on article_id or curation_id ...
15:53:34 -     INFO: Attempting to identify with name ...
15:53:34 -  WARNING: Multiple entries found
...
15:53:34 -  WARNING: Error with retrieving ResponseId
15:53:34 -     INFO: PROMPT: If you wish, you can manually enter ResponseId to retrieve.
PROMPT: An EMPTY RETURN will generate a custom Qualtrics link to provide ...
15:54:40 -     INFO: RESPONSE:
15:54:40 -     INFO: CUSTOM URL BELOW :
15:54:40 -     INFO: https://uarizona.co1.qualtrics.com/jfe/form/SV_39rs7lHGLUYFK7P?article_id=6927930&curation_id=449838&Q_PopulateResponse={"QID4": {"1": "Chun Ly", "2"<EMAIL_ADDRESS>"QID7": "Logging test"}
15:54:41 -     INFO: PROMPT: DOI reservation has not occurred! Do you wish to reserve?
PROMPT: Type 'Yes'/'yes'. Anything else will skip : Yes
15:54:56 -     INFO: RESPONSE: Yes
15:54:56 -  WARNING: Skipping...
15:54:57 -     INFO: No README files found.
15:54:57 -     INFO: Note: default README_template.md will be used
15:54:57 -     INFO: Saving default template in DATA ...
15:54:57 -     INFO: PROMPT: Do you wish to create a README file?
PROMPT: Type 'Yes'/'yes'. Anything else will exit : Yes
15:55:21 -     INFO: RESPONSE: Yes
15:55:21 -     INFO: Constructing README.txt file based on default template ...
15:55:21 -     INFO: Writing file : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/DATA/README.txt
15:55:22 -     INFO: PROMPT: Do you wish to move deposit to the next curation stage?
Type 'Yes'/'yes'. Anything else will skip :
15:55:28 -     INFO: RESPONSE:
15:55:28 -     INFO: Completed ... 6927930 ...
15:55:28 -     INFO: Completed ... 1 / 1
15:55:28 -     INFO: ****************************
15:55:28 -     INFO: STATUS: Exit 0

There are a number of concerns:

Some of the DepositorName information is missing in the logfile.  This is because the optional log was not specified in PrerequisiteWorkflow. This will be fixed.
The WARNING message at 15:52:55 is due to the fact that this is a new deposit and so the folder does not exists.  It checks to make sure that is the case.  This could perhaps be silenced for certain operations.  There are two warnings, which should not occur as there's only one call to move.get_source_path in PrerequisiteWorkflow.  Oddly, this did not show up in the logfile.
The WARNING message at 15:53:22 is due to a typo in str.lower().  This has now been rectified
There are duplicate entries during the data retrieval step.  This is from calling the retrieve module without providing the logfile.  Note that this will easily be fixed

The above four issues are fixed:
09:50:53 -     INFO: ****************************
09:50:53 -     INFO: Number of Deposits: 1
09:50:53 -     INFO: Retrieving: 6927930 ...
09:50:56 -     INFO: Retrieving depositor_name for 6927930 ...
09:50:57 -     INFO:   Depositor == author
09:50:57 -     INFO: depository_name : Chun_Ly_6927930_v1
09:50:57 -  WARNING: Unable to find source_path for Chun_Ly_6927930_v1
09:50:57 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/ORIGINAL_DATA
09:50:58 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/DATA
09:50:59 -     INFO: DOI already reserved! Skipping...
09:51:00 -     INFO: Total number of files: 1
09:51:00 -     INFO: Retrieving 1 of 1 : pinehead.jpg
09:51:04 -     INFO: Creating folder : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/UAL_RDM
09:51:05 -     INFO: Saving ReDATA Curation Report to: /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/UAL_RDM
09:51:05 -     INFO: Saving as : ReDATA-DepositReview_Chun_Ly_6927930_v1.docx
09:51:10 -     INFO: Attempting to identify using article_id or curation_id ...
09:51:10 -     INFO: Unable to identify based on article_id or curation_id ...
09:51:10 -     INFO: Attempting to identify with name ...
09:51:10 -  WARNING: Multiple entries found
...
09:51:10 -  WARNING: Error with retrieving ResponseId
09:51:10 -     INFO: PROMPT: If you wish, you can manually enter ResponseId to retrieve.
PROMPT: An EMPTY RETURN will generate a custom Qualtrics link to provide ...
09:51:13 -     INFO: RESPONSE:
09:51:13 -     INFO: CUSTOM URL BELOW :
09:51:13 -     INFO: https://uarizona.co1.qualtrics.com/jfe/form/SV_39rs7lHGLUYFK7P?article_id=6927930&curation_id=449838&Q_PopulateResponse={"QID4": {"1": "Chun Ly", "2"<EMAIL_ADDRESS>"QID7": "Logging test"}
09:51:13 -     INFO: No README files found.
09:51:13 -     INFO: Note: default README_template.md will be used
09:51:13 -     INFO: Saving default template in DATA ...
09:51:14 -     INFO: PROMPT: Do you wish to create a README file?
PROMPT: Type 'Yes'/'yes'. Anything else will exit : Yes
09:51:26 -     INFO: RESPONSE: Yes
09:51:26 -     INFO: Constructing README.txt file based on default template ...
09:51:26 -     INFO: Writing file : /mnt/curation1/block1_sfo2/curation/1.ToDo/Chun_Ly_6927930_v1/DATA/README.txt
09:51:26 -     INFO: PROMPT: Do you wish to move deposit to the next curation stage?
Type 'Yes'/'yes'. Anything else will skip :
09:51:42 -     INFO: RESPONSE:
09:51:42 -     INFO: Completed: 6927930 ...
09:51:42 -     INFO: Completed: 1 / 1
09:51:42 -     INFO: ****************************
09:51:42 -     INFO: STATUS: Exit 0


OnValidateField to support more data types

Can we avoid the need to open an extra page for editing non text/code fields such as integer, decimals, dates?
If the OnValidateField  procedure would be able to evaluate the value based on the field's datatype, we could edit data directly via the buffer list page instead. (Similar to have attributes - supporting multiple data types - in BC are designed)

@fvet
This extra page is intentionally added to avoid problems with incorrect input formats. For example, the DateTime field will expect a specific input format depending on the regional settings. So, additional page helps to input data in correct data type format.
But I agree that you may have the choice to use the extra page or direct input.
Support for such formats for direct input has been added:
Integer, Decimal, Boolean, Date, DateFormula, DateTime, Time, Guid, BigInteger


Hook to log errors if status code > 399

I have this:
If my server handles a request and writes the response code as being greater than 399, I want to log an error trace:

    	bm.Use(func(res http.ResponseWriter, req *http.Request, c martini.Context, log *logging.Logger, statter statsd.Statter) {

    		start := time.Now()

    		rw := res.(martini.ResponseWriter)

    		c.Next()  // do all the middleware handler stuff

    		if res.(martini.ResponseWriter).Status() > 399 {
    			log.Warning("%v", "print response here")  // how to read response here
    		}

    })

is there a way to read the response, given the status code? If we send an error back to the client, how can I intercept the error message and log it?
for example, if we use:
func (ctr *TagsController) DeleteTags(c *common.Context, user *common.User, org *common.Organization, req *http.Request, params martini.Params) (int, interface{}) {

	tagName, hasTag := params["tag"]

	if !hasTag {
                 var XXX = errors.New("missing tag: no tag param to update")
		return 422, ctr.ErrorResponse(422, XXX)
	}

}

I would want to log XXX from the final martini middleware, since the status code is greater than 399.  How to do this?
Furthermore, it would be nice to send in private/public logging - the client message and the error message. Using Node.js express we could do this:
app.use((req,res,next) => {
    next(new Error('oh shit'));
});

app.use((err,req,res,next) => {
   log.error(err);   // the stack trace is logged
   res.send(err.message);  // the client only sees the message, not the stack trace
});

is there a way to send the client a different message, but still hook into the error object so we can log it easily instead of having to log it manually everywhere?

The only solution that I know of is to do something like this:

func logAndEcho(...args interface{}) string {
   log.Info(args)
   return args;
}

func (ctr *TagsController) DeleteTags(c *common.Context, user *common.User, org *common.Organization, req *http.Request, params martini.Params) (int, interface{}) {

	tagName, hasTag := params["tag"]

	if !hasTag {
		return 422, ctr.ErrorResponse(422, logAndEcho(errors.New("missing tag: no tag param to update")))
	}

}

I am also wondering if we could use a header:
		c.Next()

		if res.(martini.ResponseWriter).Status() > 399 {
			log.Warning("%v", res.Header().Get("cm_private"))
		}

		res.Header().Del("cm_private")

perhaps the response is already and the headers already sent so might not be a safe idea to store private data in a header.


[AMBARI-24490] [Log Search UI] Time Histogram Chart keep invert grey selection area when no selection happened

What changes were proposed in this pull request?
Moving out the clear action of the invert selection area from the condition of drag&drop check.
+1 fix: add app background to the body to decrease the style change during the application loading.
How was this patch tested?
It was tested manually and by unit tests:
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 268 of 268 SUCCESS (10.524 secs / 10.414 secs)
✨  Done in 44.20s.

Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3636/
Test PASSed.


login bugs/addTrip functionality

Overview

Integrated 'react-toastify' library and developed error handling (pop-up box prompt)
Completed client-side login functionality
General code clean-up
Passed (err) into server userController for invalid user

Screenshots
-login success/failure alert
https://user-images.githubusercontent.com/99763928/177232520-206b79af-a83b-4b2c-ab3d-ea4f9e0a137e.mov

Login page pops error message when wrong info is passed.  TODO: Needs to refactor to take-in session control and cookie control, TODO: fix add trip bug.- Done by Erika, reviewed by joy.


Module not found: ApiClient

I tried to use wazuip-js in reactjs dashboard, but I faced the following error. I followd the instruction on how to use for development in README.
../waziup-js/src/index.js
Module not found: Can't resolve 'ApiClient' in '/home/mehdi/git/waziup-js/src'

@selombanybah I will be waiting for your help.


Update npe1 to depend on npe2 and warn if it finds plugins that are npe2-only and require newer napari

🧰 Task
We had a discussion on Zulip and I've encountered this helping other users too. When a user has an older napari version (e.g. 0.4.12), npe2 plugins are never discovered, even if installed manually. This leads to user confusion as they have followed the plugin creation guide to the letter but their plugins don't appear.
Potentially we can just wait, as fewer and fewer people will be on older napari versions, but, this might be worth fixing anyway, as it's probably not too much effort.
My idea for the fix is as follows: npe1 version doesn't have an upper cap in older napari, so if we update npe1, older napari will still pull the newer version. So we update npe1 to depend on npe2, and then we run the npe2 plugin discovery, and we warn for any plugin we find that is npe2 only if napari is less than (I think) 0.4.14.
We can also decide to let the problem fade away, or just put a big warning in the "my first plugin" docs that you must have napari>some version.

Oh, I missed you opening the npe1 issue @tlambert03, sorry about that! You're right, closing this as duplicate.


Custom Directives: query-input.directive.ts not accessible.

Hello @zebzhao,
Uncaught (in promise): Error: Template parse errors:
Can't bind to 'queryInputType' since it isn't a known property of 'ng-container'.
Sample Code
import { QueryBuilderConfig, QueryBuilderComponent	 } from 'angular2-query-builder';
<query-builder class="margin30" [data]="query" [config]="config">
<ng-container *queryInput="let rule; type: 'textarea'">
<textarea class="text-input text-area" [(ngModel)]="rule.value" placeholder="Custom Textarea">

https://plnkr.co/edit/vdqjG9G4cxzKqOzNCVnY?p=preview
Please share how to use directives from modules

Hi, the plunker you have linked uses version 0.0.2 of the library which did not include the queryInput directive. I will update the plunker when I have time.

Thanks for your response
On Feb 20, 2018 7:45 PM, "zebzhao"<EMAIL_ADDRESS>wrote:

Hi, the plunker you have linked uses version 0.0.2 of the library which
did not include the queryInput directive. I will update the plunker when
I have time.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zebzhao/Angular-QueryBuilder/issues/15#issuecomment-366990107,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AOtlkg0Yngtfv5D3vVjOVvgI0Jo7IUttks5tWtOOgaJpZM4SJOge
.


Add detailed helptext for the nowplaying command

Add an entry into default-config.json under helpTopics. The key should probably be 'nowplaying' or possibly 'now playing', and the description should describe how one can use the command and how it will behave from a user perspective.
Question: Should we add a mechanism to define an alias for help topics? That is, a way to config one helptext to act as if another had been used instead...
"helpTopics": {
    "nowplaying": {
        "internalKey": "nowplaying",
        "subtitle": ...,
        "lines": [...],
    },
    "now playing": {
        "alias": "nowplaying"
    }
}

And then "Cadence help now playing" automatically translates to "Cadence help nowplaying"?
Just a thought. If we agree this is a good idea, we can split that into another issue.

In response to question, I don't think it's necessary. Reasoning is that someone without a cs background could probably understand why "Cadence help now playing" doesn't work because the actual command is "nowplaying". Still, I'm not against the feature (I guess I'm abstaining?).

In response to question, I don't think it's necessary. Reasoning is that someone without a cs background could probably understand why "Cadence help now playing" doesn't work because the actual command is "nowplaying". Still, I'm not against the feature (I guess I'm abstaining?).

The wrinkle is that the command, in default config, is in fact "Cadence now playing":

So there's a good argument to be made for why either is valid, and therefore for why both can be valid - That's my view at least.

The wrinkle is that the command, in default config, is in fact "Cadence now playing":

So there's a good argument to be made for why either is valid, and therefore for why both can be valid - That's my view at least.

Closed by #86

Closed by #86


small stats refresh

add a comma to the stat integers so they look a little better
exclude the stats section if theres nothing to show
move SDK based badge to the maintenance section vs the stats section. Thoughts?
update the wording in the docs.md for metrics. They're variant specific now.
I also delete the old singer/docs.md since its a duplicate and doenst look to be used. There are a few other files in there like maintainers.html and spec.md that look stale. Maybe someone else knows
the metrics file had some changes, although the new attributes arent used yet, so I updated the static file in the repo

@pnadolny13 do you have a link you can share that best shows the changes? and/or screenshot?

This is an example of the stats section disappearing. tap-snapchat-ads is brand new with no usage yet.


Add support for liquid files.

Hi, can you please add support for .liquid files?

Could you please provide a link to formal documentation about liquid files?

Would also look forward to Liquid being added to Beautify.

Please, add support for liquid. It will be very helpful!!

Please add Liquid support

I can probably support this.  I just launched a new major version of Pretty Diff yesterday and will be working to integrate it into the Unibeautify project (atom-beautify's successor).  In the mean time please head over to https://prettydiff.com/?mode=beautify and drop in a few samples to see if additional work is needed.  If more work is needed please open an issue with Pretty Diff.
I will close this issue once compatibility with Pretty Diff is achieved and Pretty Diff is integrated into Unibeautify.

Is this still pending? I've tested prettydiff with a liquid file and the output looks good. What else would you need to close this and update Liquid support into atom-beautify?


ZFSBootMenu not booting from EFI shell on Udoo X86

ZFSBootMenu build source
Release EFI
ZFSBootMenu version
2.3.0
Boot environment distribution
Unsure I get to a boot environment
Problem description
Trying to run the EFI executables I get "Unable to locate embedded . linux section: Invalid Parameter"
Steps to reproduce

I copied ZFSBootMenu next to Grub on the EFI partition
Restarted and manually went into the internal EFI shell of the Udoo X86. Unfortunately, Udoo is not releasing newer InsydeH2O BIOS (2020-08-17 from here).
cd EFI\BOOT
VM_LINUZ.EFI
Even tried very old version (i.e. 1.9 and 1.10) in case it was a regression over time

All of them report: "Unable to locate embedded . linux section: Invalid Parameter"

you may need to use rEFInd. have you tried that?

No I haven't. What would rEFInd do different here? Is it to load it first such that "limited" systems can boot and then I chainload ZFSBootMenu?

in some cases, UEFI implementations can do weird things, and rEFInd is good at smoothing over those wrinkles. It would load either the ZBM EFI or the ZBM components build

Thanks! I'll give it a spin and report back.

Yeah no luck with rEFInd. I added refind_linux.conf next to VM_LINUZ.EFI, zfsbootmenu-x86_64-v1.9.0.EFI and zfsbootmenu-x86_64-v1.10.0.EFI.
"Boot default"  "zbm.prefer=rpool ro loglevel=4 zbm.skip nosplash"
"Boot to menu"  "zbm.prefer=rpool ro loglevel=4 zbm.show nosplash"

rEFInd did find all three efi loader by itself even giving the penguin logo for VM_LINUZ.EFI.
Loading VM_LINUZ.EFI yielded:

Loading zfsbootmenu-x86_64-v1.9.0.EFI or zfsbootmenu-x86_64-v1.10.0.EFI yielded:

I'm running out of ideas, especially since the computer is not really verbose here.

When using rEFInd, you should prefer the ZBM components rather than an EFI bundle.

That did it! Thank you.


Grafana and metric updates.

Adds a new page for Grafana to overview.
Replaces the list of metrics in the Metrics and Alerts page with an include to pull the list of metrics maintained in GitHub.
Removes use of the :metric: role throughout the docs.
Adds note about the introduction of a new bucket metric endpoint.

Partially addresses #930
Partially addresses #931
Closes #864
Staged:

http://<IP_ADDRESS>:9000/staging/grafana/operations/monitoring/grafana.html
http://<IP_ADDRESS>:9000/staging/grafana/operations/monitoring/grafana.html

One note, the list of metrics pulls from Github with the SDK_DOC=TRUE flag. So if you build locally, make sure to do that.


v1.3.0 beta

Added

Add support for publishing on IPv6 networks (#19) (@adriancable)

Changed

update dependencies
update dependencies, fix typedoc (#44)
update changelog, fix lint

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 73 (0.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.7%) to 34.956%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Responder.ts
0
12
0.0%

src/MDNSServer.ts
0
61
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Responder.ts
1
0.0%

src/MDNSServer.ts
5
6.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.7%

Covered Lines:
1200

Relevant Lines:
3086

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 73 (0.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.7%) to 34.956%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Responder.ts
0
12
0.0%

src/MDNSServer.ts
0
61
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Responder.ts
1
0.0%

src/MDNSServer.ts
5
6.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.7%

Covered Lines:
1200

Relevant Lines:
3086

💛  - Coveralls

looks like this is failing due to the loss of coverage from unit tests

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

30 of 111 (27.03%)  changed or added relevant lines in 6 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.9%) to 34.765%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/util/v4mapped.ts
6
7
85.71%

src/util/domain-formatter.ts
15
22
68.18%

src/Responder.ts
0
12
0.0%

src/MDNSServer.ts
0
61
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Responder.ts
1
0.0%

src/MDNSServer.ts
5
6.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.9%

Covered Lines:
1190

Relevant Lines:
3084

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

30 of 111 (27.03%)  changed or added relevant lines in 6 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.9%) to 34.765%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/util/v4mapped.ts
6
7
85.71%

src/util/domain-formatter.ts
15
22
68.18%

src/Responder.ts
0
12
0.0%

src/MDNSServer.ts
0
61
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Responder.ts
1
0.0%

src/MDNSServer.ts
5
6.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.9%

Covered Lines:
1190

Relevant Lines:
3084

💛  - Coveralls


Sequel adapter can't be used with setup_regexp_function: true

A regexp function (for the REGEXP SQL operator) can't be created because Extralite::Database#create_function is missing:
Sequel::DatabaseConnectionError: NoMethodError: undefined method `create_function' for #<Extralite::Database:0x00007f5d00ae4098 :memory:>

PR #56 also depends on this.

This is definitely a WONTFIX. Due to performance and concurrency concern, Extralite does not support calling back into Ruby code while running SQLite queries. This means that you cannot define functions, aggregations, collations etc in Ruby. If you wish to do so, you'll have to use the sqlite3-ruby gem.
FWIW, the sqlean collection of SQLite extensions includes a regexp extension that works great, is fast, and provides multiple functions for working with regexps.

No problem. But in that case I suggest removing at least these lines: https://github.com/digital-fabric/extralite/blob/main/lib/sequel/adapters/extralite.rb#L127-L131
Personally I don't use this gem yet. Given the recent improvements in Sequel  regarding Regexp caching (shameless plug) I just wanted to ensure drop-in compatibility with this gem.


Bugfix for RandomReal, added a unit test for it

Hi all,
I'm working with the QDK and noticed a bug with RandomReal. It was generating numbers between 0 and 2, but the documentation says that it should be between 0 and 1. I fixed it here and added a unit test for the RandomReal function as well since it didn't have one.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: jclapis sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@cgranade @vadym-kl
Hello folks, just checking back on this. Anything you need me to take care of before reviewing?

Should the random number generator be seeded so the test is deterministic?

@pensono, there is nothing really random about this test, no need to make the it deterministic.

@jclapis, sorry for the delay. it looks good. merging now and should make it in time for our next release.


ICA on specific time segments within raw data

I'd like to run ICA only on specific time segments within my (BrainVision) raw data. I have these segments given in two np.arrays, one with the start samples and one with the stop samples, e.g.
start = np.array([10, 100, 500])
stop = np.array([35, 250, 570])

What is the preferred way to select a slice of the raw data containing all channels but only time samples between start and stop? I've tried to create an index array with np.r_ using
mask = np.concatenate([np.r_[a:b] for a, b in zip(start, stop)])

In this example, the mask selects 245 elements. In a regular np.array, slicing with this index array works as expected, but I get an error when I try to slice my raw object directly:
TypeError: only length-1 arrays can be converted to Python scalars

Maybe I'm doing this the completely wrong way and there's an obvious best practice that I don't see at the moment. Since my goal is to run ICA on just a subset of the original raw data, I thought that I'd call the fit method with the subsetted data - is this possible somehow or is there another way to tackle this use case with MNE?

You could use raw.crop and mne.concatenate_raws to get a raw that consists only of segments you want.
If start and stop are in seconds that would be something like:
selected_raw = mne.concatenate_raws([raw.copy().crop(tmin=t1, tmax=t2)
                                    for t1, t2 in zip(start, stop)])

but bear in mind that you need to have enough timepoints to fit ICA well, citing eeglab folks:

As a general rule, finding N stable components (from N-channel data) typically requires more than kN^2 data sample points (at each channel), where N^2 is the number of weights in the unmixing matrix that ICA is trying to learn and k is a multiplier. In our experience, the value of k increases as the number of channels increases. In our example using 32 channels, we have 30800 data points, giving 30800/32^2 = 30 pts/weight points. However, to find 256 components, it appears that even 30 points per weight is not enough data.

Another way to do that would be to first segment the data into short windows and reject those that you do not need (you can take a look at mne.epochs._segment_raw - it works well for me but it is not public, so it may change in the future without any warning).

Thanks, this almost works - my start and stop times are in samples, but crop wants seconds. I could convert my samples to seconds, but I'd prefer a solution that works directly on samples because of rounding errors.
I guess working directly on raw._data (i.e. cropping the internal array directly and putting that back into the raw object) is not a viable option?

I think you could try cropping _data directly - you would probably have to crop .times to relevant length too.

I guess working directly on raw._data (i.e. cropping the internal array directly and putting that back into the raw object) is not a viable option?

You could do this and the create raw_new = mne.io.RawArray(data_new, raw.info) and it should work okay.
@jaeilepp would Annotations allow skipping of time segments? Like maybe any not-to-be-used segments could be marked as such, and then ICA could be made Annotation-aware?

Thanks @mmagnuski and @Eric89GXL, I will try that.
Annotation-aware ICA would be super awesome (as long as everything remains transparent, i.e. annotated segments should not be removed by default when calling ICA).

i.e. annotated segments should not be removed by default when calling ICA).

My thinking was that any annotation with the text "bad" in it should be removed/ignored by default in Annotation-aware functions, including (eventually) ICA. No?

... in the meantime I'll close this in faver of #3731, since there is a suitable workaround (RawArray) and #3731 covers the cleaner solution

maybe any not-to-be-used segments could be marked as such, and then ICA could be made Annotation-aware

Yes, I can take a look.

I'm not familiar with MNE's annotations, but I guess even if there are annotations with the word "bad" there will be an argument to turn automatic removal off, right? For epochs there's reject_by_annotation=False, and something similar should be available for continuous data. What I meant was that there should be an option to ignore bad annotations in case the user wants to use all data samples.


Prisma Adapter does not accept Session and User models

Package
@lucia-auth/adapter-prisma
Describe the bug
Code:
import { Lucia } from "lucia";
import { PrismaAdapter } from "@lucia-auth/adapter-prisma";
import { db } from "@casecraft/db";
import { User } from "@casecraft/db";

const adapter = new PrismaAdapter(
    db.session,
    db.user,
);

Error:
Argument of type 'SessionDelegate<RejectOnNotFound | RejectPerOperation | undefined, DefaultArgs>' is not assignable to parameter of type 'BasicPrismaModel'.
  Property 'fields' is missing in type 'SessionDelegate<RejectOnNotFound | RejectPerOperation | undefined, DefaultArgs>' but required in type 'BasicPrismaModel'.

Schema:
model User {
  id       String    @id
  sessions Session[]
}

model Session {
  id        String   @id
  userId    String
  expiresAt DateTime

  user User @relation(references: [id], fields: [userId], onDelete: Cascade)
}

What version of Prisma are you using, and is @casecraft/db a private module?

Version:
"@prisma/client": "^4.13.0"
Yes, db is an internal package in a turborepo monorepo, but it just exports the prisma client.
index.ts (db):
import { PrismaClient } from "@prisma/client";
export * from "@prisma/client";

const globalForPrisma = globalThis as { prisma?: PrismaClient };

export const db = globalForPrisma.prisma || new PrismaClient();

export { PrismaClient as PrismaClientSingleton };

if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = db;

It was the prisma client not being updated. Thank you for the library.


How to Writes NLog message in Local When NAS Path or Network Path is slow or Not accessible

Hi,
I am using Nlog 4.0 Version from C# Console and Web Applications, It writes the Text Log in NAS Path and works as Expected.
If there is any issue in connecting the NAS or Network issue, It hangs... either not responding or not updating the Logs
Is there any way to change the Path dynamically if there is any issue in NAS Path access or Network issue.
It should give preference to NAS Path which is configured in Nlog config file.
If there is any issue, it should write the Logs in Local Machine (Secondary Path updated in Config File or Pragmatically change the path in Code to handle this situation) without hanging the Application
Please advise
Thanks
~Ganesh

I think you're looking for https://github.com/NLog/NLog/wiki/FallbackGroup-target

When writing to a network share that is not available, then it is the operating system that gives the blocking behavior. It can block for over 2 minutes.
The blocking behavior will not disappear by using FallbackGroup-target. Instead I suggest making use of <targets async="true"> that activates the https://github.com/nlog/NLog/wiki/AsyncWrapper-target
It will not be easy to add fallback-logic when a file-write-operation has taken longer than 5 seconds. Instead I would probably setup 2 file-targets (both wrapped using AsyncWrapper)

FileTarget1 that writes to the NAS without automatic cleanup
FileTarget2 that writes to local folder but with archiving and MaxArchiveFiles=5

Does it resolve your issue?


Strange error

I'm making an app with Modern forms and drawing a border on a panel with OnPaintBackground.

public class Mypanel : Panel
{

        public Mypanel(int width, int height)
        {
            Width = width;
            Height = height;
        }

        protected override void OnPaintBackground(PaintEventArgs e)
        {
            base.OnPaintBackground(e);

            e.Canvas.Clear(SKColors.Black);

            // Outer wallpaper
            var img = MapImages.PanelOuterWallpaper;
            for (int row = 0; row <= Size.Height / img.Height; row++)
            {
                for (int col = 0; col <= Size.Width / img.Width; col++)
                {
                    e.Canvas.DrawBitmap(img, new SKPoint(col * img.Width, row * img.Height));
                }
            }

            // Paint panel borders
            // Outer border
            var paint1 = new SKPaint { Color = new SKColor(227, 227, 227) };
            var paint2 = new SKPaint { Color = new SKColor(105, 105, 105) };
            var paint3 = new SKPaint { Color = new SKColor(255, 255, 255) };
            var paint4 = new SKPaint { Color = new SKColor(160, 160, 160) };
            var paint5 = new SKPaint { Color = new SKColor(240, 240, 240) };
            var paint6 = new SKPaint { Color = new SKColor(223, 223, 223) };
            var paint7 = new SKPaint { Color = new SKColor(67, 67, 67) };
            e.Canvas.DrawLine(new SKPoint(0, 0), new SKPoint(Size.Width - 2, 0), paint1);
            e.Canvas.DrawLine(new SKPoint(0, 0), new SKPoint(0, Size.Height - 2), paint1);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 1, 0), new SKPoint(Size.Width - 1, Size.Height - 1), paint2);
            e.Canvas.DrawLine(new SKPoint(0, Size.Height - 1), new SKPoint(Size.Width - 1, Size.Height - 1), paint2);
            e.Canvas.DrawLine(new SKPoint(1, 1), new SKPoint(Size.Width - 3, 1), paint3);
            e.Canvas.DrawLine(new SKPoint(1, 1), new SKPoint(1, Size.Height - 3), paint3);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 2, 1), new SKPoint(Size.Width - 2, Size.Height - 2), paint4);
            e.Canvas.DrawLine(new SKPoint(1, Size.Height - 2), new SKPoint(Size.Width - 2, Size.Height - 2), paint4);
            e.Canvas.DrawLine(new SKPoint(2, 2), new SKPoint(Size.Width - 4, 2), paint5);
            e.Canvas.DrawLine(new SKPoint(2, 2), new SKPoint(2, Size.Height - 4), paint5);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 3, 2), new SKPoint(Size.Width - 3, Size.Height - 3), paint5);
            e.Canvas.DrawLine(new SKPoint(2, Size.Height - 3), new SKPoint(Size.Width - 3, Size.Height - 3), paint5);
            e.Canvas.DrawLine(new SKPoint(3, 3), new SKPoint(Size.Width - 5, 3), paint6);
            e.Canvas.DrawLine(new SKPoint(3, 3), new SKPoint(3, Size.Height - 5), paint6);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 4, 3), new SKPoint(Size.Width - 4, Size.Height - 4), paint7);
            e.Canvas.DrawLine(new SKPoint(3, Size.Height - 4), new SKPoint(Size.Width - 4, Size.Height - 4), paint7);
            e.Canvas.DrawLine(new SKPoint(4, 4), new SKPoint(Size.Width - 6, 4), paint6);
            e.Canvas.DrawLine(new SKPoint(4, 4), new SKPoint(4, Size.Height - 6), paint6);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 5, 4), new SKPoint(Size.Width - 5, Size.Height - 5), paint7);

            // Inner border
            e.Canvas.DrawLine(new SKPoint(9, 12 - 1), new SKPoint(9 + (Size.Width - 18 - 1), 12 - 1), paint7);
            e.Canvas.DrawLine(new SKPoint(10, 12 - 1), new SKPoint(10, Size.Height - 12 - 1), paint7);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 11, 12 - 1), new SKPoint(Size.Width - 11, Size.Height - 12 - 1), paint6);
            e.Canvas.DrawLine(new SKPoint(9, Size.Height - 12), new SKPoint(Size.Width - 9 - 1, Size.Height - 12), paint6);
            e.Canvas.DrawLine(new SKPoint(10, 12 - 2), new SKPoint(9 + (Size.Width - 18 - 2), 12 - 2), paint7);
            e.Canvas.DrawLine(new SKPoint(9, 12 - 2), new SKPoint(9, Size.Height - 12), paint7);
            e.Canvas.DrawLine(new SKPoint(Size.Width - 10, 12 - 2), new SKPoint(Size.Width - 10, Size.Height - 12), paint6);
            e.Canvas.DrawLine(new SKPoint(9, Size.Height - 12 + 1), new SKPoint(Size.Width - 9 - 1, Size.Height - 12+ 1), paint6);
        }

When I run the program I get the following error in Program.cs:

However when I comment out a part of the e.Canvas.DrawLine statements above, the program runs smoothly. Any clue what could be causing this?

You will likely need to click "View Details" in order to see the entire error message.

Here are the details:
System.InvalidOperationException
HResult=0x80131509
Message=Collection was modified; enumeration operation may not execute.
Source=System.Private.CoreLib
StackTrace:
at System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()
at System.Collections.Generic.List1.Enumerator.MoveNextRare()    at System.Linq.Enumerable.ConcatIterator1.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at Modern.Forms.ControlAdapter.OnPaint(PaintEventArgs e)
at Modern.Forms.Control.RaisePaint(PaintEventArgs e)
at Modern.Forms.WindowBase.DoPaint(Rect r)
at Modern.WindowKit.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Modern.WindowKit.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)

The code in Modern.Forms is:
foreach (var control in Controls.GetAllControls ().Where (c => c.Visible)) {
    if (control.Width <= 0 || control.Height <= 0)
        continue;

    var info = new SKImageInfo (control.Width, control.Height, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
    var buffer = control.GetBackBuffer ();

    if (control.NeedsPaint) {
        using (var canvas = new SKCanvas (buffer)) {
            // start drawing
            var args = new PaintEventArgs(info, canvas, Scaling);

            control.RaisePaintBackground (args);
            control.RaisePaint (args);

            canvas.Flush ();
        }
    }

    e.Canvas.DrawBitmap (buffer, form_x + control.ScaledLeft, form_y + control.ScaledTop);
}

So it's looping through the Controls collection for your panel.  I don't see any issues in the code you posted, but something is either adding or removing Controls to the panel, or changing the Visible property of child controls.
I can also create a fix for this in Modern.Forms itself.


Fix outbound race condition where we don't have the source workload from XDS yet

Fixes: https://github.com/istio/istio/issues/51193
~WIP as I need to add tests (and an inpod mode conditional)~
Q: Why didn't we use demand here?
A: We don't need to send a new XDS request here - this only (potentially) happens very early in the pod lifecycle, when the pod is making a "startup" outbound request, but XDS hasn't gotten around to pushing us the soure workload yet. It always does/will (or we should fail), we just have to wait for it, so sending a demand request for something that's already coming seems chatty - when all we really need to do is stall.
In inpod mode, it is always safe to stall-or-fail, as we by-definition should only be making outbound requests for Ambient workloads (which definitely have to be in the CP)

In response to a cherrypick label: new pull request created: #1111


Ported turf measurement center function

issue#4 fix suggestion
I ported the JS turf center function into Measurement.kt class and added a simple test
Visually I confirmed the output here. Testfile GeoJson is on gist.

@dellisd can you move https://github.com/dellisd/spatial-k/projects/1#card-37013816 in progress please. Thank you.

Hi, I provided the overload function to provide also the center from a plain geometry.
Thank you for the hint and this nice lib!

Hi @dellisd any updates here about the pending merge?

Really sorry for the delay again! This is great, thank you so much


Automation for checking local development environment is properly setup or not.

#51

@ankurnarkhede Sir previous PR was having some problem which can't be solved from GitHub. So I created a New PR. I have made the required changes.
Please review and merge this PR.


Connecting line missing

I recently used this code to display execution plan in ASP.NET project, but for
all the execution plans displayed, the connectivity line is missing, as shown
in attached image. Also I did not see any image for connecting line in images
folder, is it generated at run time???could some one please tell me, what am I
missing? or what to change in the code or xslt?

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 23 Aug 2013 at 10:39
Attachments:

executionplan.jpg

Working on the assumption that the issue here is the same as the attached screenshot - the canvas is absolutely positioned relative to the top left of the page, not the container.

Fixed by adding position: relative to the container when drawLines is called.


Way to remove anchor heading links

Is there a property to render markdown as plain elements with the insertion of github link anchor heading links as shown below

The thing that I'm referring to is the link icon near the text content of the markdown previewer.
I have a working solution already but just want to ask the dev for insight or comment on this.
 <MarkdownRenderer
              allowElement={(el) => {
                const cn = el.properties?.class as string;

                return !(cn && cn.includes('anchor'));
              }}
              source={str}
              mb="4"
            />

Thank you.

Is there a TS version of it? Having a hard time using it with TS.
What I did is just mark those arguments  of rewrite as any.
const rehypePlugins = [
  rehypeRewrite,
  {
    rewrite: (node: any, index: any, parent: any) => {
      if (
        node.tagName === "a" &&
        parent &&
        /^h(1|2|3|4|5|6)/.test(parent.tagName)
      ) {
        parent.children = [parent.children[1]];
      }
    }
  }
];

 <MarkdownRenderer
       rehypePlugins={[rehypePlugins]}
       source={str}
 />

@jeepers3327
import rehypeRewrite, { RehypeRewriteOptions } from "rehype-rewrite";
import { PluggableList } from 'unified'

const rehypePlugins: PluggableList = [
  [rehypeRewrite, {
      rewrite: (node, index, parent) => {
        if (
          node.type === 'element' &&
          node.tagName === "a" &&
          parent &&
          parent.type === 'element' &&
          /^h(1|2|3|4|5|6)/.test(parent.tagName)
        ) {
          parent.children = [parent.children[1]];
        }
      }
  } as RehypeRewriteOptions]
];

<MarkdownRenderer
   rehypePlugins={[rehypePlugins]}
   source={str}
/>

@jeepers3327
https://github.com/uiwjs/react-markdown-preview/blob/f4e337647df8d53c3a78d91f37c59a50e18a3ee2/src/index.tsx#L53-L65

Closing this one. Thank you


Editors demo page broken

First of all, thank you for your awesome work! Compliments!
I noticed that the editors demo page is broken, see: http://<IP_ADDRESS>/admin/editors
FatalThrowableError in ExampleController.php line 671:
Call to a member function default() on null

It's ok now, thank you!


About using native VirtualImageList

Hi guys,
in the last commit (August 18 - 22:44) I made some changes to TSVGIconImageCollection: now it inherits from TCustomImageCollection instead of TComponent and implements all required method (only from D10.3).
With this change it is now possible to use a native VirtualImageList connected to the collection, without breaking the use with SVGIconVirtualImageList.
To implement TSVGIconImageCollection.GetBitmap, I have moved bitmap creation from SVGIconImageListBase to SVGIconItems (maybe not the best place ...).
I have some doubts if this modification can be useful, because the use of a native VirtualImageList does not bring particular advantages compared to the use of the SVGIconVirtualImageList (indeed it is not able to use Grayscale, Opacity, FixedColor ...).
What do you think @pyscripter and @vincentparrett ?
I also deleted SVGToIcon24 too ... do we need it?

Do the component editors work correctly with this? That was the issue I saw when looking into this, as you pointed out, you have no control over the svg unique properties.
I will try to find some time today to have a play with this and see how it works.

This is BRILLIANT!  MASTERSTROKE!
It achieves many things:

Overcomes the main issue with TSVGVirtualImageList which was that all collection images would have to be recreated whenever there was a DPI change.
Provides a nice component editor to select the images to include in the VirtualImageList.  There is also the autofill property which uses all images.
Makes it easy to implement Categories #23 All you need is to provide the image name as category\basename to the virtual list.  See ExtractImageCollectionName and ExtractImageCollectionCategory.  Of course some work is needed on the editor of the SVGImageCollection.

Regarding FixedColor and GrayScale I can see two ways: a) add these properties to the SVGImageCollection or b) create a subclass of VirtualImageList with these properties.  I think the second makes more sense.
There is a question whether SVGVirtualImageList as it stands is needed.  It uses the TChangeScaleMessage to scale the bitmaps which I think is only available from Delphi 10.3 and VCL.VirtualImageList is available since 10.3.
So the SVGIconImageList can be used with versions earlier than 10.3 and the SVGImageCollection/VirtualImageList combo with version 10.3 or later.

There is a question whether SVGVirtualImageList as it stands is needed. It uses the TChangeScaleMessage to scale the bitmaps which I think is only available from Delphi 10.3 and VCL.VirtualImageList is available since 10.3.
So the SVGIconImageList can be used with versions earlier than 10.3 and the SVGImageCollection/VirtualImageList combo with versions 10.3 or later.

Do the component editors work correctly with this? That was the issue I saw when looking into this, as you pointed out, you have no control over the svg unique properties.

I don't understand "have no control over the svg unique properties".

I don't understand "have no control over the svg unique properties".

The Virtual ImageList Editor doesn't allow you to change FixedColor and GrayScale.  I you move them to the Collection, that would then apply to all ImageList's hooked up to it. If you create a descendant TVirtualImageList to add those properties, they still won't appear on the component editor.

The real problem is that TVirtualImageList.UpdateImageList is not "virtual", so I cannot change it to check if the collection was a TSVGIconImageCollection and then call a special TSVGIconImageCollection.GetBitmap with GrayScale and FixedColor params to obtain the correct image. :-( I'm searching a solution...

But if we consider GrayScale and FixedColor additional attributes to the SVG icon (and in fact it is possible to define them in every single icon), we can decide that using the native VirtualImageList, it's not possible to change these attributes to all the icons of the imagelist, but he must do it for every single icon of the collection...

GrayScale and Fixed Color could be properties of item and SvgCollection to the same effect

Wasn't OnAfterMonitorDPIChanged introduced in 10.3.

GrayScale and Fixed Color could be properties of item and SvgCollection to the same effect

Yes but don't resolve all the scenarios...
Using a unique collection, for example with the "svg material design fonts collection" with Black color into SVG....
If you have a multiform, multimonitor application, using "per-style-control" (10.4) you can have this scenario:

form1 uses "Windows10" style and an SVGIconVirtualImageList with FixedColor to Blue to obtain a list Blue icons.
form2 uses "Windows10 SlateGray"  and an SVGIconVirtualImageList with FixedColor to White to obtain a list of White icons.
In this scenario the component made by @vincentparrett is more flexible vs native VirtualImageList because the FixedColor property is controlled on the imagelist.

Wasn't OnAfterMonitorDPIChanged introduced in 10.3.

No, the event-handler it's available also in 10.1 and 10.2 but DPIChangedMessageHandler only from 10.3 ;-)

In this scenario the component made by @vincentparrett is more flexible vs native VirtualImageList because the FixedColor property is controlled on the imagelist.

I agree. Let's keep both.  I don't see myself using two styles on the same app (defeats the purpose of styles), but others might.  But in any case SvgCollection could get FixedColor and GrayScale properties.

I agree. Let's keep both.

I Agree, both have their uses.

I don't see myself using two styles on the same app (defeats the purpose of styles), but others might.

I uses vcl styles but every day I wish I didn't. I can't imagine why anyone would want to use more than one. I think that feature was put in to support styles in the IDE form designer (not yet implemented). Sadly every time they mess with styles they make it worse!

But in any case SvgCollection could get FixedColor and GrayScale properties.

In that case, which one's would be used when rendering the bitmaps, the ones on the collection or those on the imagelist?

I've committed now a new version with FixedColor and GrayScale properties available at collection level.
The rule is:

FixedColor or GrayScale defined at icon level: always used
FixedColor or GrayScale defined at collection level: used for every icons into collection (also in the native VirtualImageList) that don't have specific value.
FixedColor or GrayScale defined at SVGIconImageList: used for every icons into collection (also in the native VirtualImageList) that don't have specific value.
FixedColor or GrayScale defined at SVGIconVirtualImageList: used for every icons into collection (also in the native VirtualImageList) if not defined at collection level.
I've already updated the component editor to manage correct properties of collection.

Sounds good to me.  I will check later tonight.
If only you could add categories :)
I was planning to do some work on #13.  Two SVG engines will be initially supported TSVG and Direct2X.  The changes will be transparent, i.e. the components will work exactly as they do now.
@carloBarazzetta  would you consider accepting such work?

If only you could add categories :)

In the demo now I'm using a native VirtualImageList with some icons defined with "business" category... Do you want to extend this category at collection level?

I was planning to do some work on #13. Two SVG engines will be initially supported TSVG and Direct2X. The changes will be transparent, i.e. the components will work exactly as they do now.
@carloBarazzetta would you consider accepting such work?

Yes! I have not planned any works in the next days, now I am updating the "twin" project IconFontsImageList adding the same features of SVGImageList...
If you think we have reached a good stability of those components we could release the official version 2.0.
Then you can work on replacing the SVG engine (issue #13).

In the demo now I'm using a native VirtualImageList with some icons defined with "business" category... Do you want to extend this category at collection level?

Yes this does demonstrate that it is quite straight forward to implement categories.
However what is needed is:

A new property 'Category' of TSVGIconItem
Enhancement of the TSVGIconImageCollection editor to
set the category of one or more TSVGIconItems  (apply a category label to a selection of icons)
filter the icons according to category.

I'm closing this issue: @vincentparrett did you also test with Delphi XE7? Everything should works...

Sorry I haven't had chance yet, will try and look at it tomorrow.

@vincentparrett: I'm ready to release official 2.0: can you give me a feed-back for backward compatibility with DXE7?
Thanks.

Sorry was just really busy.
So it doesn't compile in XE7, because AlphaColorToColor doesn't exist in System.UIConsts. I'm not sure when it was added?

procedure CreateSVGColorList;
Var
  M: TMethod;
begin
  SVGColorList := TStringList.Create;
  SVGColorList.Options := SVGColorList.Options - [soUseLocale];

This fails in XE7 as Options doesn't exist on TStringList. No idea when that was added to TStringList?

function ToGPRectF(R: TRect): TGPRectF;
begin
  with R do
    Result := WinApi.GDIPAPI.MakeRect(Single(Left), Top, Width, Height);
end;

Fails with an invalid typecast.

There are lots of issues with XE7, I would imagine XE6 would have similar issues?
I also had to update the SVGIconPackage.dproj because the files were listed in the wrong folder (I guess you moved them?)

  function InBounds(Item: TSVGObject): Boolean;
  var
    C: Integer;
    Bounds: TRectF;
  begin
    Result := True;
    if RectCount > 0 then
    begin
      for C := 0 to RectCount - 1 do
      begin
        Bounds := Item.ObjectBounds(True, True);
        if Bounds.IntersectsWith(Rects^[C]) then //<<<<
          Exit;
      end;
      Result := False;
    end;
  end;

Fails with
[dcc32 Error] SVG.pas(2396): E2010 Incompatible types: 'TRectF' and 'TRect'

procedure TSVG.ReadStyles(const Node: IXMLNode);
...
  Classes  := S.Split([SLineBreak]); //<<<

Fails with
[dcc32 Error] SVG.pas(2470): E2250 There is no overloaded version of 'Split' that can be called with these arguments

function ToGPRectF(R: TRect): TGPRectF;
begin
  with R do
    Result := WinApi.GDIPAPI.MakeRect(Single(Left), Top, Width, Height);
end;

Fails with an invalid typecast.

Retry now, because fails also in 10.1 and I've fixed.

There are lots of issues with XE7, I would imagine XE6 would have similar issues?
I also had to update the SVGIconPackage.dproj because the files were listed in the wrong folder (I guess you moved them?)

Probably I've copied manually packages from DXE6 to DXE7 and change manually the differences:
please fix the files for XE7.
I just changed PC and I haven't installed XE6 yet - I'll try later.

I've made some minor code changes for compiling with XE8 and XE6.
@pyscripter: please check that it doesn't break any functionality in the SVG library
@vincentparrett: please try to compile with XE7, probably you must change only some $if compilerversion

PR for XE7 pushed.. hope I haven't messed things up.. got a bit tangled with rebasing.

PR for XE7 pushed.. hope I haven't messed things up.. got a bit tangled with rebasing.

Merged and fixed:

AlphaColorToColor already present but with {$IF CompilerVersion < 28}: changed to {$IF CompilerVersion < 29}
if Bounds.IntersectsWith(TRectF.Create(Rects^[C])) restored to if Bounds.IntersectsWith(Rects^[C]), becauseI've changed the type of TRectarray to packed array of TRectF; (instead of packed array of TRect). I suppose that was incorrect...

I'm just changing the SVGHandler to SVGFactory - but I noticed the D2D SVG engine is now the default? Is that intended?

@pyscripter I would suggest changing the define PreferNativeSvgSupport to UseD2DSVG or something a bit more explicit.
I would also suggest the built in SVG engine be the default, as not everyone is running windows 10 and this will catch out people.
Also, it would be nice to be able to change the engine at runtime based on the OS rather than using defines.

@carloBarazzetta Working late? 🥇

I noticed the D2D SVG engine is now the default? Is that intended?
It is much faster in faster for complex SVGs such as the cowboy.svg and it might be more reliable , but it does not support the text element.  It would take some benchmarking and testing to determine what should be the default on systems that have native svg support.

But currently the TSVG text handling is broken and I looking into it.
@carloBarazzetta Have you checked the FMX side?

It would be nice to have a way to register a SVGFactory and then just specify which SVGFactory to use at runtime.
eg :
procedure RegisterSVGFactoryClass(const factoryClass : TSVGFactoryClass; const factoryID : string);

procedure SetSVGFactory(const factoryID : string) ;

This will make it possible to add new SVGFactory's in the future without modifying the core code, or messing with defines etc.

You can do that now.  If you call SetGlobalSVGHandler at the initialization section of a unit that does the job.

I would also suggest the built in SVG engine be the default, as not everyone is running windows 10 and this will catch out people.

Have a look at the function GlobalSVGHandler.  It only uses the native Windows SVG support if it is available.

Ah, I didn't notice that before.
Still, the default behavior is now use D@D on win 10, otherwise use pas version.. I think the svg engine should be an explicit choice by the developer.

Default means what happens if the user provides no choice. :)
The choice cannot be a component property, since you cannot change the Factory after the component is loaded.   It will be documented that you could use a specific a factory by calling SetGlobalSVGFactory at the initialization section of any unit.

Discussion continues on issue #66


bug: Slide width/height not reset after change direction when slidesPerView != 'auto'

Current behavior
Updating the direction of slides does only set the corresponding width/height but never reset the corresponding height/width. So when I update slides from horizontal to vertical the width of a slide is still on the old value. Same when I update from vertical to horizontal the height is still on the old value.
Expected behavior
When I update the direction both the width and the height should be set to the right value.
Related code
https://github.com/nolimits4web/swiper/blob/8d0dd34f87a48a497389f2cc8ed9503c0ba351b3/src/components/core/update/updateSlides.js#L162-L166

Why is this marked as won't fix?

?

Yes this is still an issue.


Writing offset is not in sequential order

Hi,
When I tries to write some large data, I have noticed that sometimes the writing offset is not in sequential order. I know that libfuse has async reading feature. Is writing also async with FUSE? And is there a similar way for us to disable the async writing and make the writing offset in order each time? I am writing toward cloud storage so out of order writing will cause inconsistency for my case.
Thank you!

You may need to disable writeback caching in the mount config to ensure writes arrive in sequential order.
For example: https://github.com/jacobsa/fuse/blob/c4197873da0d92256fb05610fc65cf1c7b50aa84/samples/mount_memfs/mount.go#L54-L57

Thanks for the advice!


import returns undefined

import { ImageResize } from 'quill-image-resize-module'
returns undefined

Remove Braces
import  ImageResize  from 'quill-image-resize-module'

  TypeError: Cannot read property 'imports' of undefined
same result

Follow steps for Angular 4

Follow steps for Angular 4
#16 (comment)
Do you have the steps for react?
I already removed the braces and still getting cannot read property 'imports' of undefined

@asthanarht  Am using Vue

[Cannot read property 'imports' of undefined],same problem

I fixed this problem using this pull request #38
I already forked this repo and build that pull request, it works. hope that helps.

webpack config:
plugins: [
      new webpack.ProvidePlugin({
        'window.Quill': 'quill/dist/quill.js',
        'Quill': 'quill/dist/quill.js'
      })
    ]

fix the problem, issue227

stuck with this problem as well.
having to deal specifically with a package in webpack with no reason is a no-go for me.

have you solved this problem? i have the same!

@jsanchezsol1991 this fork solved mine

I fixed this problem using this pull request #38
I already forked this repo and build that pull request, it works. hope that helps.

worked for me using vue-cli
add some code in vue.config.js

worked for me using vue-cli
components
import { VueEditor, Quill } from "vue2-editor";
import { ImageDrop } from "quill-image-drop-module";
import ImageResize from "quill-image-resize-module";

Quill.register("modules/imageResize", ImageResize);
Quill.register("modules/imageDrop", ImageDrop);

vue.config.js
const webpack = require("webpack");
module.exports = {
  ...others code,
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        "window.Quill": "quill/dist/quill.js",
        Quill: "quill/dist/quill.js"
      })
    ]
  }
};

thx, it worked for me


luamidi.dll error

upon opening vrmd.exe, the app only returns this message:
`
Error
error loading module 'luamidi' from file '.\luamidi.dll':
The specified module could not be found.
Stack:
[C]: in function 'require'
app.lua:3: in main chunk
[C]: in function 'require'
main.lua:1: in main chunk
[C]: in function 'require'
boot.lua:103: in function boot.lua:4
[C]: in function 'xpcall'
`
luamidi.dll is in the correct location, I have made sure vc redist is installed and windows defender is not interfering.
when deleting luamidi.dll, a different error is returned:
`
Error
app.lua:3: module 'luamidi' not found:
no field package preload['luamidi']
no file '.\luamidi.lua'
no file 'vrmd\lua\luamidi.lua'
no file 'vrmd\lua\luamidi\init.lua'
no file '.\luamidi.dll'
no file 'vrmd\luamidi.lua'
no file 'vrmd\loadall.dll'
Stack:
app.lua:3: in main chunk
[C]: in function 'require'
main.lua:1: in main chunk
[C]: in function 'require'
boot.lua:103: in function boot.lua:4
[C]: in function 'xpcall'
`
So it is finding the file, but something goes wrong with loading its module.

Download
https://www.mediafire.com/file/3hzk77cxvxc9nq2/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Although it works on my end it's probably because of the wrong way I'm handling paths.
I just uploaded a release with a potential fix. Please let me know if it works and thanks for the report.

the error message is only slightly different now. (app.lua:3 became app.lua:6)
`Error
error loading module 'luamidi' from file '.\luamidi.dll':
The specified module could not be found.
Stack:
[C]: in function 'require'
app.lua:6: in main chunk
[C]: in function 'require'
main.lua:1: in main chunk
[C]: in function 'require'
boot.lua:103: in function boot.lua:4
[C]: in function 'xpcall'`
but thanks for responding

Hmm I just tried it in another machine and it works there too. You're extracting the zip, right?

Closing this for now since it seems to work in every other PC I tried.


How to provide response code when using transofrmers?

When using @transformer or @transformerModel tags, how I can specify the returned response code? For example in my API resource endpoint upon creation the response code is 201, but when I am using one of those annotations it sets it to 200 in the generated docs, and I don't see a way to specify this, except not using transformers, but @response tags?
Tbh, when using @resource I think it should automatically set the response code to 201 for the store endpoint.

Hmmm...currently not supported, but a good point. I'll look into this.


Add bunch of iPhone offsets, include some iPad

Thanks to Huy Nguyen for some fixes and improvements

Fixed already


Users losing all their progress

Hi Richard. First of all, thank you so much for making this awesome lib.
I wanted to point out that some users are losing all their progress with this library. Generally it occurs when the game closes unexpectedly.
On PC, some people report this that this happens when their power went off.
However, I'm still unable to reproduce the issue on my end. Do you have any idea why is this happening?
Thank you!

Hey,
This is also happening with my game. Whenever the game crashes the save files are being corrupted and made unusable.
Any fix for this would be greatly appreciated.
Thanks.

Guys what I suggest you do is in FileBasedPrefsQuitListener.cs remove the call to save the fileprefs. In fact, I'd remove all those calls to the save method in focus, etc. Then rather call the save method yourself after you modify any data. That is the better way to do this anyway.

Guys what I suggest you do is in FileBasedPrefsQuitListener.cs remove the call to save the fileprefs. In fact, I'd remove all those calls to the save method in focus, etc. Then rather call the save method yourself after you modify any data. That is the better way to do this anyway.

Hey, I'm using AutoSaveData instead of the quit listener.

Hello
Sorry it took so long, but i just released V2 that includes instructions on how to make backups of your users data and how to restore it if a save file gets corrupted.
Good luck!


Adds the --remove-files flag to the tar commands

Though this does not completely fix #50, it will at least cleanup as it is archiving.

Hey @mike-carey, thanks for the PR.  We have scheduled the above story to look into your PR!

Hello @mike-carey , for not picking this one up sooner! We will merge it. But as you can see there is a pending build in the pipeline. This can be resolved if you rebase your branch with the latest master to pick up some changes that happen in the repo since you open the PR.
Would you like to rebase it and re-push? Or if you give us the access we can do it and then merge it. Up to you, let us know and thanks again for the contribution!

Hey @alamages, thanks for your patience!  This update got buried in my email and I finally stumbled upon it.  😆

Hey thanks for the update! Looks good to merge.


DRAFT: radicle contrib init

Introduction and basic instructions for Radicle peer-to-peer network for code collaboration, and seednode.link

Thank you for the PR.
Our current priority is to release a stable version of our software and we're not currently looking into these sorts of collaborations.


Cleanup package.json

remove unused dependencies
fixes repository link

Stumbled upon this while looking at dependents of babel-plugin-tester in npm and the repository link for this package gave a 404 and babel-plugin-tester wasn't even used unfortunately.

Any updates on this? babel-plugin-tester is forcing to download a deprecated version of core-js (version 2), which affects the building process when used. The core-js@2 needs to build bindings from C libraries when installed.
Would be excellent to remove this dependency and generate a new updated version of it.

What does this package have to do with babel-plugin-tester?

Ah, just noticed this PR removes it. That makes sense. Unfortunately I'm not a maintainer on this package so I'm afraid I probably shouldn't do anything here.
/me backs away slowly


ERR_REQUIRE_ESM when running sst from inside our mono repo

Not sure what the issue is but running sst from a directory in our monorepo errors out with this..

When I run pnpm list sst its shows the intended 2.0.23.
This only happens when I run it from inside our monorepo. When I run it in a silo directory, everything works fine.
package.json
{
  "name": "react-app",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "sst dev",
    "build": "sst build",
    "deploy": "sst deploy",
    "remove": "sst remove",
    "console": "sst console",
    "typecheck": "tsc --noEmit"
  },
  "devDependencies": {
    "@tsconfig/node16": "^1.0.3",
    "aws-cdk-lib": "2.62.2",
    "constructs": "10.1.156",
    "sst": "^2.0.23",
    "typescript": "^4.9.5"
  }
}

Turns out it was that chalk was being used somewhere else in the mono repo. I removed that version and now everything works. 🤷♂


Latest firmware versioning issue on SDK v1.4.1?

Hi Guys,
I'm using 6 Azure Kinects.
I've done a factory reset for all of them (manually pushing the button), and what I've noticed is that the factory firmware is higher than the firmware provided by the latest sdk v1.4.1, is that just a versioning typo issue? Or should I leave the factory firmware and not use the one from the SDK.
You'll notice that the Depth camera firmware is downgrading after the update

Desktop (please complete the following information):

OS with Version:  Windows 10 Pro
SDK Version: v1.4.1v
Firmware version:  AzureKinectDK_Fw_1.6.110079014

Thank you for your help

@arkader the factory has started loading the latest firmware. The v1.5 SDK which carries the new firmware is delayed. You can also find the firmware here https://github.com/microsoft/Azure-Kinect-Sensor-SDK/tree/develop/firmware

Thank you for this information @qm13
I'll upgrade all the sensors to this latest version then:
AzureKinectDK_Fw_1.6.110080014.bin


Scan invert QR code not working?

e.g: white code on black, green or red background

give me a sample

White code on black background
Vào 14:16, Th 4, 16 thg 8, 2023 Alex chow @.***> đã
viết:

give me a sample
—
Reply to this email directly, view it on GitHub
https://github.com/densen2014/ZXingBlazor/issues/31#issuecomment-1680087437,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AR5DSXGS42IKV5JLOCGE5JDXVRXT7ANCNFSM6AAAAAA3R47P2U
.
You are receiving this because you authored the thread.Message ID:
@.***>

can you show me the code that the camera detect the QR code

I did a lot of searching and there is no good solution to this problem

zxing api has this hint, but zxing.js haven't


Create a list of similar frameworks

http://www.kc.tsukuba.ac.jp/~mori/isbuilder/crowdsourcing_survey.html
List aggregated by @suchow and @thomasmorgan
TurkServer
...

This issue was moved to Dallinger/Dallinger#115


Fillers should be hidden to people using screenreaders

The fillers simply have no content and are for simple aesthetic purposes: filling in empty spaces and show as white/transparent rectangles. For this reason, they should automatically have aria-hidden="true" added to these elements so the MasonJS grid system is more accessible. :)

This is the case with the examples but the intended use of fillers would have content in them. Many people use the filler objects as spare objects and they are placed into the grid as actual content pieces. Appreciate the input though - maybe there is something that could be done to detect if there isn't any content, but I worry that may be a bit too heavy handed.

Out of subject, but maybe useful to know and a little bit related to screen-readers’ question:
if you do not want any fillers in your HTML to simply play around with the grid, use an empty filler option :
filler: {}

;)


Special case Grandsire and Stedman

To make Bobs/Singles work we could return the custom PlaceNotationGenerators for these very common methods.

Sounds good!  When integrating with Ringing Room, I think it would be useful to have a switch between near and far calls too, but that's a separate issue for another time.


Add an initial Windows Universal App for OpenThread

Just a very simple app that shows the current state of all Thread interfaces on the system and allows the user to configure channel, network name, and key; and connect/disconnect.

Current coverage is 73.24% (diff: 100%)

Merging #951 into master will increase coverage by 1.81%

@@             master       #951   diff @@
==========================================
  Files           117        118     +1
  Lines         17305      17549   +244
  Methods        2422       2446    +24
  Messages          0          0
  Branches       2092       2120    +28
==========================================
+ Hits          12360      12853   +493
+ Misses         4272       3994   -278
- Partials        673        702    +29

Powered by Codecov. Last update 8d55f4f...d46ca58

Neat! Are you just running it locally? Have you tried on Windows 10 IoT?

I haven't run it on IoT yet, as I am having some other issues getting that set up. I installed it on a test laptop that has my drivers connected to the TI device running NCP OpenThread.


Shouldn't IList.removeLast() returns the removed item?

Hi, first I want to thank you for the amazing work it was done in this package. I've been using it since 2.0.2 and really helped with my projects. I'm currently in 7.0.3 and in the docs, it says  removeLast "Pops and returns the last object in this list...", but instead it returns the new IList.

Thanks, glad you like it!
Also, thanks for finding this dcumentation error. I have fixed it:
  /// Removes the last object from this list.
  /// This method reduces the length of `this` by one.
  /// The list must not be empty.
  /// If you want to recover the removed item, you can pass a mutable [removedItem].
  IList<T> removeLast([Output<T>? removedItem]) => removeAt(length - 1, removedItem);

See version [7.1.0].


Why is there a big malloc in wasm_app_module_on_install_request_byte_arrive on the last section.

We have a wasm bytecode file, which is about 11k. When loading the file, it shows that the last section malloc about 9k bytes.
Below is the codes mallocing the memory.
https://github.com/bytecodealliance/wasm-micro-runtime/blob/2135badc54eb2ea937ffd370b7718ea983e501d6/core/app-mgr/app-manager/module_wasm_app.c#L1207-L1237
But I can't understand them. There are some bits operations, and few comments about it.
Could you help to give some explanation about those codes?

Hi, here it is to decode the section content size (or body size) of each section: the wasm file consists of sections, each section consists of section id (1 byte) + section content size (n bytes, u32) + section content. And the section content size is encoded using LEB128, with byte count no larger than (bitwidth + 6)/7, (e.g. u32, max byte count is (32+6)/7) = 5), and if a byte's highest bit is 1, there is next byte, otherwise it is the last byte.
And after decoding the section content size, app manager allocates memory with the size decoded to receive the section content. The last section with 9K bytes size you mentioned should be the code section.

Thank you @wenyongh. I didn't found those sections created by encoding are be released.  Should they be released after being loaded by wasm_runtime_load_from_sections?

Some sections are released after loading, see Sections to be released after loading, and destroy_part_wasm_sections, and the data section is released after instantiating, see Destroy useless sections from list after instantiate. And after that, normally there is only code section left, which stores wasm bytecodes and is used when function calling. The section type definitions can be found at wasm.h.


Alarm silence init wrong.

Silence should be -1 if don't set from yml.

Coverage increased (+0.003%) to 14.211% when pulling 793401a0f7d3c90205445dfedadb03fa85b97d56 on fix-alarm-silence into 59961b539af0d48f607b244ef12817931910d530 on master.


Connie/everythingelse

Comments on the blog post file name:
To write blog posts successfully, there are some convention to follow. We are going to document all these later after the first launch. But for now, here are some rules to follow:

blog post markdown should be put in /posts/spring2019/title/index.md. The name index.md is preferred. The reason is that index.md generates blog post at URL path /blog/spring2019/title but other file name such as some_title.md generates blog post at URL path /blog/spring2019/title/some_title.
each blog post has to have headers containing a date, title and subtitle.

---
date: "2018-09-07"
title: "Welcome to ACM Hack"
subtitle: ""
---

# content of blog post
blah blah blah

@conniec218 I will prefer to have the markdown files renamed using the above convention. Thanks!


whispers

I'm building a little bot and i want it also to respond to whispers.
i cant seem to find a function to call for sending whispers.
am i missing something?

There's no built-in method yet. You can use client.privmsg("bot_name".to_owned(), format!("/w {} {}", recipient_name, message)) meanwhile.

Has been consolidated into #85

Has been consolidated into #85

A native method to send whispers will be included in the next twitch_irc release. See also #164


Can't connect host using pem file

Version: 1.0.104
Platform: win32 10.0.18363
Plugins: clickable-links
WARNING: UNPROTECTED PRIVATE KEY FILE!
Changing file permissions doesn't make sense, as it creates key file in temp dir/

Please try the latest nightly build.

Please try the latest nightly build.

Works on terminus-1.0.105-nightly.0. Thank you!


EB-67202 Update dev commands and readme, making yarn link possible

@rwholey-eb added some explanation to readme