Toggle the block comment without having to select it

VSCode Version: 1.15.0
OS Version: windows10

There is a problem that bothers me. If I want to remove the block comment, I have to select it, like this:

If I do not select it, and go to toggle block comment, it becomes:

Have you a good idea to solve it?
PS: I use this hot key ctrl+shift+/ to toggle block comments, which was bound to the command  editor.action.blockComment
Reproduces without extensions: Yes

Agree with you. It's quite inconvenient.
In Sublime Text, If the cursor in in commented code, When you press cmd + /(Mac) or ctrl + /(win)，the comment is toggled, no matter it's a line comment or block comment.
It's very useful, hope some change on toggle comment would be made.

Coming from Sublime I too would like this feature. I tried Better Comment ext but to no avail...

What didn't work with the Better Comment? I can try to modify it if you explain what you need it to do...

Hi! I would like to be able to click anywhere within a javascript block comment and then use same key combo I used to create the block, to remove it.
VSCode:
Version 1.24.1
Commit 24f62626b222e9a8313213fb64b10d741a326288
Date 2018-06-13T17:51:32.889Z
Shell 1.7.12
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64
Thanks

Hello! Any plans to implement this? Would be an awesome feature that I really miss from sublime.
To be clear of the issue,  if I have a block comment:

and while my cursor is anywhere in the comment, I try hit the block comment shortcut, it just makes another comment:

It should uncomment the block it's inside of.
Lots of people telling me to use the expand-to-* (scope, brackets....) but that doesn't work since in my example it's both a an if block, but also the else if conditional.
Right now the only way is to manually select it all.
This does work if it's a single line:

Hello! Any plans to implement this? Would be an awesome feature that I really miss from sublime.
To be clear of the issue,  if I have a block comment:

and while my cursor is anywhere in the comment, I try hit the block comment shortcut, it just makes another comment:

It should uncomment the block it's inside of.
Lots of people telling me to use the expand-to-* (scope, brackets....) but that doesn't work since in my example it's both a an if block, but also the else if conditional.
Right now the only way is to manually select it all.
This does work if it's a single line:

The extension above (https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.bettercomment) will do this.

The extension above (https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.bettercomment) will do this.

I tried it, could not get it working. It just adds a regular comment inside the block:

I tried it, could not get it working. It just adds a regular comment inside the block:

What language are you using?

What language are you using?

Typescript

Typescript

Yeh, you're right. It uses a module to determine what the block comments should be (https://github.com/nknapp/comment-patterns), so maybe it doesn't know about javascript/typescript. I'll investigate...

Yeh, you're right. It uses a module to determine what the block comments should be (https://github.com/nknapp/comment-patterns), so maybe it doesn't know about javascript/typescript. I'll investigate...

OK - Just pushed a new version which should work better.

OK - Just pushed a new version which should work better.

Thank you! will give it a shot

Thank you! will give it a shot

Thank you! will give it a shot

Did it work for you @wesbos ?

Thank you! will give it a shot

Did it work for you @wesbos ?

Somebody else has created an extension too - looks like it works slightly differently, but it might work better for you:
https://marketplace.visualstudio.com/items?itemName=AlexMunteanu.toggle-block-comments

Somebody else has created an extension too - looks like it works slightly differently, but it might work better for you:
https://marketplace.visualstudio.com/items?itemName=AlexMunteanu.toggle-block-comments

Somebody else has created an extension too - looks like it works slightly differently, but it might work better for you:
https://marketplace.visualstudio.com/items?itemName=AlexMunteanu.toggle-block-comments

This package works like Sublime Text, except it doesn't support a wide variety or mixed files apparently.
 Do you understand how it works? To untoggle a block comment, you can click any line in the block, hit 'untoggle', and the whole block is untoggled. There is no need to select the block first. It basically scopes the comment block and uncomments all of it (not including nested comments).

@cjaoude I believe my extension already does this? If you toggle the comment when the cursor is inside a comment block, it highlights the block and removes the comment. That way it can be re-commented if required. If it's not working as expected, please can you explain why?


Update abapGit-installation.md

Hopefully I get this right, it's a simple URL change.

thanks, looks good 👍


Add cronWorkflowDefaults

Summary
What change needs making?
There is a workflow default, but not one for crons.
Use Cases
When would you use this?
Setting CronWorkflow history limits mentioned in the Cost Optimization doc cannot be set globally. It would be nice to have this option similar to the Workflow Defaults.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritize the proposals with the most 👍.

Follow-up to this Slack thread, for posterity.
As I noted there, I think this could be useful for other CronWorkflow configurations that one might want to configure globally, such as timezone, concurrencyPolicy, startingDeadlineSeconds etc.
For native k8s CronJobs, I thought there was a flag you could set in k8s to change the default, but I couldn't find that in a quick search.
Also, the workaround for this is to have a policy engine (OPA Gatekeeper, Kyverno, etc) detect new CronWorkflows and set these if they were not explicitly set by the user.


Update Readme for version 1.0.0

There are few things to note on the NPM package readme that i would like to update/change:

[x] update "the response" to be on a sharable link instead of the whole code snippet

[x] add new examples for:

[x] update
[x] create
[x] delete
[ ] #7

[x] updating the version # 0.0.9 --> 1.0.0 and implementing versioning system with major minor and patch versions

[x] also would love to have the connector change merged before release this 1.0.0 version.

Search has been moved to the third pass of updates to this repo


Start Virtuoso server but enable to open http://localhost:3001

Hi.
I downloaded both virtuoso_db.zip and virtuoso-opensource.x86_64-generic_glibc25-linux-gnu.tar.gz and unzip them.
And then I ran python3 virtuoso.py start 3001 -d virtuoso_db.
I faced out below shell output
RUNNING: cat /proc/meminfo | grep MemTotal | awk '{print $2}'
65528716 KB free, using 1228663.425 buffers,<PHONE_NUMBER> dirty buffers
[Database]
DatabaseFile = virtuoso_db/virtuoso.db
ErrorLogFile = virtuoso_db/virtuoso.log
LockFile = virtuoso_db/virtuoso.lck
TransactionFile = virtuoso_db/virtuoso.trx
xa_persistent_file = virtuoso_db/virtuoso.pxa
ErrorLogLevel = 7
FileExtend = 200
MaxCheckpointRemap = 2000
Striping = 0
TempStorage = TempDatabase

[TempDatabase]
DatabaseFile = virtuoso_db/virtuoso-temp.db
TransactionFile = virtuoso_db/virtuoso-temp.trx
MaxCheckpointRemap = 2000
Striping = 0

[Parameters]
ServerPort = 13001
LiteMode = 0
DisableUnixSocket = 1
DisableTcpSocket = 0
ServerThreads = 100 ; increased from 20
CheckpointInterval = 60
O_DIRECT = 1 ; increased from 0
CaseMode = 2
MaxStaticCursorRows = 100000
CheckpointAuditTrail = 0
AllowOSCalls = 0
SchedulerInterval = 10
DirsAllowed = .
ThreadCleanupInterval = 0
ThreadThreshold = 10
ResourcesCleanupInterval = 0
FreeTextBatchSize = 100000
PrefixResultNames = 0
RdfFreeTextRulesSize = 100
IndexTreeMaps = 256
MaxMemPoolSize = 200000000
PrefixResultNames = 0
MacSpotlight = 0
IndexTreeMaps = 64
NumberOfBuffers = 1228663.425
MaxDirtyBuffers =<PHONE_NUMBER>

[SPARQL]
ResultSetMaxRows = 50000
MaxQueryCostEstimationTime = 600 ; in seconds (increased)
MaxQueryExecutionTime = 180; in seconds (increased)

[HTTPServer]
ServerPort = 3001
Charset = UTF-8
ServerThreads = 15 ; increased from unknown

virtuoso_db/virtuoso.ini
==== Starting Virtuoso server for virtuoso_db on port 3001...
RUNNING: {MY_PATH}/Freebase-Setup/virtuoso-opensource/bin/virtuoso-t +configfile virtuoso_db/virtuoso.ini +wait

However, I cannot open http://localhost:3001 even after waiting for 30 minutes.
I also tried to check whether the process is going or not.
$ ps -ef | grep virtuoso
iclserv+ 4047229       1  0 16:42 ?        00:00:08 {MY_PATH}/Freebase-Setup/virtuoso-opensource/bin/virtuoso-t +configfile virtuoso_db/virtuoso.ini +wait

I don't know how to solve it.
I would be grateful if someone help me.

what you did looks correct to me. Are you hosting the service on a remote server or on your local? In other words, is localhost the correct address?

Same problem. How to solve it?


[SPARK-37419][PYTHON][ML] Rewrite _shared_params_code_gen.py  to inline type hints for ml/param/shared.py

What changes were proposed in this pull request?

This PR modifies _shared_params_code_gen.py  to include type hints in generated code.
Additionally, it applies minor cleanup:

Switch from manual replace to string interpolation.
Added magic commas for consistent formatting of the shared list.
Dropped unused arguments from _gen_param_code
Added to type hints to _gen_param_header and _gen_param_code and dropped _shared_params_code_gen.pyi stub.

Why are the changes needed?

Core change is part of the bigger effort to migrate hints from stub files to corresponding Python modules

Currently, we use stub files for type annotations, which don't support type checks within function bodies. So we inline type hints to support that.

Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing tests.
Manual execution of _shared_params_code_gen.py  and  checking for regressions by comparing output with  the current version of shared.py

Test build #145476 has started for PR 34674 at commit 545d57e.

Test build #145476 has finished for PR 34674 at commit 545d57e.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
   template = f'''class

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/145476/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49948/

Test build #145477 has started for PR 34674 at commit 41b33a9.

Test build #145477 has finished for PR 34674 at commit 41b33a9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49948/

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49949/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/145477/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/49948/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49949/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/49949/

Test build #145479 has started for PR 34674 at commit 1de7df8.

Test build #145479 has finished for PR 34674 at commit 1de7df8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49951/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/145479/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/49951/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/49951/

Merged into master.


A11y: Make filter map buttons actual buttons

Describe the task
The filter buttons  (priority level/parcel type/access process etc) are not reachable or operable via keyboard navigation or screenreader. This is because the filters are spans within divs, not actual buttons.
Changing them to buttons will fix this and will also make them visible in Windows High Contrast mode:

Acceptance Criteria

[ ] You should be able to TAB to the filter buttons and press ENTER to turn them on or off

Additional context

Eventually we will want a new design for these filters. Showing that the filters are on/off via color breaks WCAG rules.
https://www.smashingmagazine.com/2022/06/guide-windows-high-contrast-mode/
How to simulate WHCM in Chrome Devtools - https://devtoolstips.org/tips/en/emulate-forced-colors/

Additional context relates to: #300

Additional Requirements:

If we make the filter map buttons actual <button>,  use aria-pressed attribute so it can communicate the state for screen reader users.
Or consider marking up these filters as a checkbox instead.

@marvieqa what do you think of adding a checkmark to the filter to indicate that it's selected?

PR: https://github.com/CodeForPhilly/vacant-lots-proj/pull/352


Socket read error 104 occurred on TCP receiver running in a VM (Sender from a remote VM)

Running Ntttcp (TCP sender) on a linux-based VM to another ntttcp (TCP receiver) on another linux-based VM on a remote host machine.   The cmdlines are default.
After running for ~40mins, TCP receiver started error out with "Socket read error 104" (104 is Connection reset by peer).  Then within 2 hrs, got 25 more socket read errors, and no traffic flowing from the sender.   The sender did not output any error, so not sure why the sender stop transmitting becoz at least I can tell the 4 sockets (23,25,41,49) created on port 6051 are not getting any error, so that port 6051 should still be good at sending packets.
Both VMs continue to be functioning - meaning I can stream web traffic from a browser app running on VM.
This is just a basic default setup TCP un-directional scenario.   I'm not sure if this is VM kernel issue or a Host kernel network issue.  Is this something that has been seen before running on Azure VM?
---------------- Receiver ------------------
ntttcp -r -V --show-tcp-retrans --show-nic-packets wlan0 -p 6051 -t 86400                                                                                <
NTTTCP for Linux 1.4.0
*** receiver role
ports:                           16
cpu affinity:                    *
server address:                  <IP_ADDRESS>
domain:                          IPv4
protocol:                        TCP
server port starting at:         6051
receiver socket buffer (bytes):  65536
test warm-up (sec):              no
test duration (sec):             86400
test cool-down (sec):            no
show system tcp retransmit:      yes
show packets for:                wlan0
quiet mode:                      disabled
verbose mode:                    enabled
17:11:02 DBG : user limits for maximum number of open files: soft: 32768; hard: 32768
17:11:02 INFO: 17 threads created
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6051
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6050
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6066
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6065
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6064
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6063
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6062
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6061
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6060
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6059
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6058
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6057
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6056
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6055
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6054
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6053
17:11:02 DBG : ntttcp server is listening on <IP_ADDRESS>:6052
17:11:05 DBG : Sync connection: <IP_ADDRESS>:60992 --> local:6050 [socket 22]
17:11:05 DBG : New connection: <IP_ADDRESS>:60946 --> local:6051 [socket 23]
17:11:05 DBG : New connection: <IP_ADDRESS>:60908 --> local:6053 [socket 24]
17:11:05 DBG : New connection: <IP_ADDRESS>:60950 --> local:6051 [socket 25]
17:11:05 DBG : New connection: <IP_ADDRESS>:60886 --> local:6052 [socket 26]
17:11:05 DBG : New connection: <IP_ADDRESS>:60888 --> local:6052 [socket 27]
17:11:05 DBG : New connection: <IP_ADDRESS>:60914 --> local:6053 [socket 28]
17:11:05 DBG : New connection: <IP_ADDRESS>:60794 --> local:6054 [socket 29]
17:11:05 DBG : New connection: <IP_ADDRESS>:60798 --> local:6054 [socket 30]
17:11:05 DBG : New connection: <IP_ADDRESS>:60992 --> local:6055 [socket 31]
17:11:05 DBG : New connection: <IP_ADDRESS>:60988 --> local:6055 [socket 32]
17:11:05 DBG : New connection: <IP_ADDRESS>:60858 --> local:6056 [socket 33]
17:11:05 DBG : New connection: <IP_ADDRESS>:60756 --> local:6057 [socket 34]
17:11:05 DBG : New connection: <IP_ADDRESS>:60762 --> local:6057 [socket 35]
17:11:05 DBG : New connection: <IP_ADDRESS>:60862 --> local:6056 [socket 36]
17:11:05 DBG : New connection: <IP_ADDRESS>:60916 --> local:6058 [socket 37]
17:11:05 DBG : New connection: <IP_ADDRESS>:60912 --> local:6058 [socket 38]
17:11:05 DBG : New connection: <IP_ADDRESS>:60938 --> local:6059 [socket 39]
17:11:05 DBG : New connection: <IP_ADDRESS>:60890 --> local:6052 [socket 40]
17:11:05 DBG : New connection: <IP_ADDRESS>:60948 --> local:6051 [socket 41]
17:11:05 DBG : New connection: <IP_ADDRESS>:60710 --> local:6060 [socket 42]
17:11:05 DBG : New connection: <IP_ADDRESS>:60758 --> local:6057 [socket 48]
17:11:05 DBG : New connection: <IP_ADDRESS>:60864 --> local:6056 [socket 51]
17:11:05 DBG : New connection: <IP_ADDRESS>:60944 --> local:6051 [socket 49]
17:11:05 DBG : New connection: <IP_ADDRESS>:60910 --> local:6053 [socket 47]
17:11:05 DBG : New connection: <IP_ADDRESS>:60716 --> local:6060 [socket 50]
17:11:05 DBG : New connection: <IP_ADDRESS>:60994 --> local:6055 [socket 45]
17:11:05 DBG : New connection: <IP_ADDRESS>:60942 --> local:6059 [socket 43]
17:11:05 DBG : New connection: <IP_ADDRESS>:60800 --> local:6054 [socket 44]
17:11:05 DBG : New connection: <IP_ADDRESS>:60910 --> local:6063 [socket 55]
17:11:05 DBG : New connection: <IP_ADDRESS>:60884 --> local:6052 [socket 46]
17:11:05 DBG : New connection: <IP_ADDRESS>:60912 --> local:6063 [socket 59]
17:11:05 DBG : New connection: <IP_ADDRESS>:60918 --> local:6058 [socket 54]
17:11:05 DBG : New connection: <IP_ADDRESS>:60914 --> local:6058 [socket 61]
17:11:05 DBG : New connection: <IP_ADDRESS>:60860 --> local:6056 [socket 52]
17:11:05 DBG : New connection: <IP_ADDRESS>:60728 --> local:6061 [socket 53]
17:11:05 DBG : New connection: <IP_ADDRESS>:60700 --> local:6064 [socket 58]
17:11:05 DBG : New connection: <IP_ADDRESS>:60712 --> local:6060 [socket 57]
17:11:05 DBG : New connection: <IP_ADDRESS>:60908 --> local:6063 [socket 60]
17:11:05 DBG : New connection: <IP_ADDRESS>:60826 --> local:6062 [socket 56]
17:11:05 DBG : New connection: <IP_ADDRESS>:60796 --> local:6054 [socket 72]
17:11:05 DBG : New connection: <IP_ADDRESS>:60990 --> local:6055 [socket 62]
17:11:05 DBG : New connection: <IP_ADDRESS>:60732 --> local:6061 [socket 68]
17:11:05 DBG : New connection: <IP_ADDRESS>:60702 --> local:6064 [socket 70]
17:11:05 DBG : New connection: <IP_ADDRESS>:60730 --> local:6061 [socket 73]
17:11:05 DBG : New connection: <IP_ADDRESS>:60824 --> local:6062 [socket 67]
17:11:05 DBG : New connection: <IP_ADDRESS>:60714 --> local:6060 [socket 65]
17:11:05 DBG : New connection: <IP_ADDRESS>:60822 --> local:6062 [socket 75]
17:11:05 DBG : New connection: <IP_ADDRESS>:60768 --> local:6065 [socket 66]
17:11:05 DBG : New connection: <IP_ADDRESS>:60916 --> local:6063 [socket 69]
17:11:05 DBG : New connection: <IP_ADDRESS>:60944 --> local:6059 [socket 63]
17:11:05 DBG : New connection: <IP_ADDRESS>:60912 --> local:6053 [socket 71]
17:11:05 DBG : New connection: <IP_ADDRESS>:60998 --> local:6064 [socket 74]
17:11:05 DBG : New connection: <IP_ADDRESS>:60760 --> local:6057 [socket 64]
17:11:05 DBG : New connection: <IP_ADDRESS>:60704 --> local:6064 [socket 79]
17:11:05 DBG : New connection: <IP_ADDRESS>:60834 --> local:6062 [socket 76]
17:11:05 DBG : New connection: <IP_ADDRESS>:60734 --> local:6061 [socket 77]
17:11:05 DBG : New connection: <IP_ADDRESS>:60940 --> local:6059 [socket 78]
17:11:05 DBG : New connection: <IP_ADDRESS>:60770 --> local:6065 [socket 80]
17:11:05 DBG : New connection: <IP_ADDRESS>:60766 --> local:6065 [socket 81]
17:11:05 DBG : New connection: <IP_ADDRESS>:60846 --> local:6066 [socket 82]
17:11:05 DBG : New connection: <IP_ADDRESS>:60840 --> local:6066 [socket 83]
17:11:05 DBG : New connection: <IP_ADDRESS>:60792 --> local:6065 [socket 84]
17:11:05 DBG : New connection: <IP_ADDRESS>:60844 --> local:6066 [socket 85]
17:11:05 DBG : New connection: <IP_ADDRESS>:60842 --> local:6066 [socket 86]
17:11:05 INFO: Network activity progressing...
socket read error: 104466.65Kbps
17:53:07 DBG : socket closed: 36
socket read error: 104
17:53:07 DBG : socket closed: 29
Real-time throughput: 0.00bps
socket read error: 1040.00bps
socket read error: 104
socket read error: 104
18:59:39 DBG : socket closed: 86
18:59:39 DBG : socket closed: 70
18:59:39 DBG : socket closed: 59
socket read error: 104
18:59:39 DBG : socket closed: 83
socket read error: 104
socket read error: 104
18:59:39 DBG : socket closed: 58
18:59:39 DBG : socket closed: 62
socket read error: 1040.00bps
19:04:41 DBG : socket closed: 50
socket read error: 104
19:04:41 DBG : socket closed: 79
socket read error: 104
19:04:41 DBG : socket closed: 40
socket read error: 104
socket read error: 104
socket read error: 104
19:04:41 DBG : socket closed: 32
19:04:41 DBG : socket closed: 81
19:04:41 DBG : socket closed: 28
socket read error: 104
19:04:41 DBG : socket closed: 57
socket read error: 1040.00bps
19:04:43 DBG : socket closed: 38
socket read error: 104
19:04:43 DBG : socket closed: 72
socket read error: 104
19:04:43 DBG : socket closed: 61
socket read error: 104
socket read error: 104
19:04:43 DBG : socket closed: 80
19:04:43 DBG : socket closed: 37
socket read error: 104
19:04:43 DBG : socket closed: 77
socket read error: 104
19:04:43 DBG : socket closed: 53
socket read error: 1040.00bps
19:11:51 DBG : socket closed: 47
socket read error: 104
19:11:51 DBG : socket closed: 24
socket read error: 104
socket read error: 104
19:11:51 DBG : socket closed: 85
19:11:51 DBG : socket closed: 69
socket read error: 104
19:11:51 DBG : socket closed: 82
Real-time throughput: 0.00bps
-------------------Sender --------------------
ntttcp -s <IP_ADDRESS> -V --show-tcp-retrans --show-nic-packets wlan0 -p 6051 -t 86400                                                      <
NTTTCP for Linux 1.4.0
*** sender role
connections:                     16 X 4 X 1
cpu affinity:                    *
server address:                  <IP_ADDRESS>
domain:                          IPv4
protocol:                        TCP
server port starting at:         6051
sender socket buffer (bytes):    131072
test warm-up (sec):              no
test duration (sec):             86400
test cool-down (sec):            no
show system tcp retransmit:      yes
show packets for:                wlan0
quiet mode:                      disabled
verbose mode:                    enabled
17:11:07 DBG : user limits for maximum number of open files: soft: 32768; hard: 32768
17:11:07 DBG : Sync connection: local:60992 [socket:3] --> <IP_ADDRESS>:6050
17:11:07 DBG : New connection: local:60946 [socket:5] --> <IP_ADDRESS>:6051
17:11:07 DBG : New connection: local:60950 [socket:7] --> <IP_ADDRESS>:6051
17:11:07 DBG : New connection: local:60908 [socket:13] --> <IP_ADDRESS>:6053
17:11:07 DBG : New connection: local:60886 [socket:9] --> <IP_ADDRESS>:6052
17:11:07 DBG : New connection: local:60888 [socket:10] --> <IP_ADDRESS>:6052
17:11:07 DBG : New connection: local:60914 [socket:16] --> <IP_ADDRESS>:6053
17:11:07 DBG : New connection: local:60794 [socket:17] --> <IP_ADDRESS>:6054
17:11:07 DBG : New connection: local:60798 [socket:19] --> <IP_ADDRESS>:6054
17:11:07 DBG : New connection: local:60992 [socket:22] --> <IP_ADDRESS>:6055
17:11:07 DBG : New connection: local:60988 [socket:21] --> <IP_ADDRESS>:6055
17:11:07 DBG : New connection: local:60858 [socket:25] --> <IP_ADDRESS>:6056
17:11:07 DBG : New connection: local:60756 [socket:29] --> <IP_ADDRESS>:6057
17:11:07 DBG : New connection: local:60762 [socket:32] --> <IP_ADDRESS>:6057
17:11:07 DBG : New connection: local:60862 [socket:27] --> <IP_ADDRESS>:6056
17:11:07 DBG : New connection: local:60912 [socket:33] --> <IP_ADDRESS>:6058
17:11:07 DBG : New connection: local:60916 [socket:35] --> <IP_ADDRESS>:6058
17:11:07 DBG : New connection: local:60938 [socket:37] --> <IP_ADDRESS>:6059
17:11:07 DBG : New connection: local:60942 [socket:39] --> <IP_ADDRESS>:6059
17:11:07 DBG : New connection: local:60948 [socket:6] --> <IP_ADDRESS>:6051
17:11:07 DBG : New connection: local:60944 [socket:4] --> <IP_ADDRESS>:6051
17:11:07 DBG : New connection: local:60890 [socket:12] --> <IP_ADDRESS>:6052
17:11:07 DBG : New connection: local:60910 [socket:14] --> <IP_ADDRESS>:6053
17:11:07 DBG : New connection: local:60884 [socket:8] --> <IP_ADDRESS>:6052
17:11:07 DBG : New connection: local:60944 [socket:40] --> <IP_ADDRESS>:6059
17:11:07 DBG : New connection: local:60800 [socket:20] --> <IP_ADDRESS>:6054
17:11:07 DBG : New connection: local:60710 [socket:41] --> <IP_ADDRESS>:6060
17:11:07 DBG : New connection: local:60712 [socket:42] --> <IP_ADDRESS>:6060
17:11:07 DBG : New connection: local:60994 [socket:24] --> <IP_ADDRESS>:6055
17:11:07 DBG : New connection: local:60912 [socket:15] --> <IP_ADDRESS>:6053
17:11:07 DBG : New connection: local:60990 [socket:23] --> <IP_ADDRESS>:6055
17:11:07 DBG : New connection: local:60864 [socket:28] --> <IP_ADDRESS>:6056
17:11:07 DBG : New connection: local:60716 [socket:44] --> <IP_ADDRESS>:6060
17:11:07 DBG : New connection: local:60758 [socket:30] --> <IP_ADDRESS>:6057
17:11:07 DBG : New connection: local:60796 [socket:18] --> <IP_ADDRESS>:6054
17:11:07 DBG : New connection: local:60730 [socket:46] --> <IP_ADDRESS>:6061
17:11:07 DBG : New connection: local:60860 [socket:26] --> <IP_ADDRESS>:6056
17:11:07 DBG : New connection: local:60940 [socket:38] --> <IP_ADDRESS>:6059
17:11:07 DBG : New connection: local:60826 [socket:52] --> <IP_ADDRESS>:6062
17:11:07 DBG : New connection: local:60714 [socket:43] --> <IP_ADDRESS>:6060
17:11:07 DBG : New connection: local:60728 [socket:45] --> <IP_ADDRESS>:6061
17:11:07 INFO: 64 threads created
17:11:07 DBG : New connection: local:60732 [socket:47] --> <IP_ADDRESS>:6061
17:11:07 DBG : New connection: local:60822 [socket:49] --> <IP_ADDRESS>:6062
17:11:07 DBG : New connection: local:60910 [socket:53] --> <IP_ADDRESS>:6063
17:11:07 DBG : New connection: local:60760 [socket:31] --> <IP_ADDRESS>:6057
17:11:07 DBG : New connection: local:60734 [socket:48] --> <IP_ADDRESS>:6061
17:11:07 DBG : New connection: local:60918 [socket:36] --> <IP_ADDRESS>:6058
17:11:07 DBG : New connection: local:60844 [socket:66] --> <IP_ADDRESS>:6066
17:11:07 DBG : New connection: local:60914 [socket:34] --> <IP_ADDRESS>:6058
17:11:07 DBG : New connection: local:60824 [socket:50] --> <IP_ADDRESS>:6062
17:11:07 DBG : New connection: local:60792 [socket:64] --> <IP_ADDRESS>:6065
17:11:07 DBG : New connection: local:60834 [socket:54] --> <IP_ADDRESS>:6062
17:11:07 DBG : New connection: local:60700 [socket:58] --> <IP_ADDRESS>:6064
17:11:07 DBG : New connection: local:60912 [socket:55] --> <IP_ADDRESS>:6063
17:11:07 DBG : New connection: local:60908 [socket:51] --> <IP_ADDRESS>:6063
17:11:07 DBG : New connection: local:60916 [socket:56] --> <IP_ADDRESS>:6063
17:11:07 DBG : New connection: local:60702 [socket:59] --> <IP_ADDRESS>:6064
17:11:07 DBG : New connection: local:60998 [socket:57] --> <IP_ADDRESS>:6064
17:11:07 DBG : New connection: local:60770 [socket:63] --> <IP_ADDRESS>:6065
17:11:07 DBG : New connection: local:60704 [socket:60] --> <IP_ADDRESS>:6064
17:11:07 DBG : New connection: local:60766 [socket:61] --> <IP_ADDRESS>:6065
17:11:07 DBG : New connection: local:60846 [socket:67] --> <IP_ADDRESS>:6066
17:11:07 DBG : New connection: local:60840 [socket:65] --> <IP_ADDRESS>:6066
17:11:07 DBG : New connection: local:60768 [socket:62] --> <IP_ADDRESS>:6065
17:11:07 DBG : New connection: local:60842 [socket:68] --> <IP_ADDRESS>:6066
17:11:07 INFO: 64 connections created in 103018 microseconds
17:11:07 INFO: Network activity progressing...
Real-time throughput: 0.00bps

I reduced the # of sender threads from 64 to 16 (-n 1).  I still noticed a few socket read errors, and occasionally sender would just stop for a while (can be longer than 5-10 mins or so) not sending any packet out (monitored via /proc/net/dev), or the sender would just transmit at a very low tput ~400Kbps (vs. ~700+Mbps normally), but then resume afterwards.   So it's better than original setup (where the sender & receiver just stopped totally after 2hrs).


Docs: Makes clear that you need to bootstrap your App

@Urigo I'm not sure if I got this right. I want to update the example to this:

Never mind! ng-app it's down below!

Hello! Just take a  look  at  the info I just found,  I'm so  excited, check it out  at  http://favourite.opmcn.com/e4vhhk
<EMAIL_ADDRESS>

Dear,
Just wanted to say hello  and wish you a  good day! By the way, have you seen that   http://hycrucobo.malaspinas.com/e4dnwruf
Pardon my monkey thumbs, jakob


Server_streaming list_features not streaming gradually responses?

Hi,
I have a server that I would like to serve a stream of response where each takes a long time to compute, and I would like a client
that gradually display those responses, as soon as they arrive.
I've modified the routeguide-lwt example in the ocaml-grpc repo with this diff:
diff -u -p -b -B -r -x .semantic.cache -x .depend -x CVS -x .hg -x .svn -x .git -x _darcs /home/pad/work/lang-ocaml/ocaml-grpc/examples/routeguide-lwt/src/ /home/pad/routeguide-lwt/src
diff -u -p -b -B -r -x .semantic.cache -x .depend -x CVS -x .hg -x .svn -x .git -x _darcs /home/pad/work/lang-ocaml/ocaml-grpc/examples/routeguide-lwt/src/server.ml /home/pad/routeguide-lwt/src/server.ml
--- /home/pad/work/lang-ocaml/ocaml-grpc/examples/routeguide-lwt/src/server.ml	2023-08-03 14:04:29.771438529 +0200
+++ /home/pad/routeguide-lwt/src/server.ml	2023-08-03 14:26:29.751509229 +0200
@@ -73,12 +73,21 @@ let calc_distance (p1 : Point.t) (p2 : P
   let c = 2.0 *. atan2 (sqrt a) (sqrt (1.0 -. a)) in
   Float.to_int (r *. c)

+let rec fibonacci n =
+  if n < 3 then
+    1
+  else
+    fibonacci (n-1) + fibonacci (n-2)
+
 let get_feature buffer =
   let decode, encode = Service.make_service_functions RouteGuide.getFeature in
   (* Decode the request. *)
   let point =
     Reader.create buffer |> decode |> function
-    | Ok v -> v
+    | Ok v ->
+       let _ = fibonacci 40 in
+       Unix.sleepf 0.5;
+       v
     | Error e ->
         failwith
           (Printf.sprintf "Could not decode request: %s" (Result.show_error e))
@@ -123,9 +132,13 @@ let list_features (buffer : string) (f :
   let () =
     List.iter
       (fun (feature : Feature.t) ->
-        if in_range (Option.get feature.location) rectangle then
+        if in_range (Option.get feature.location) rectangle then begin
+            let res = fibonacci 40 in
+            Printf.printf "Computed one feature, fib = %d\n" res;
+            Unix.sleepf 0.001;
+            flush stdout;
           encode feature |> Writer.contents |> f
-        else ())
+        end else ())
       !features
   in
   Lwt.return Grpc.Status.(v OK)

Diff finished.  Thu Aug  3 14:36:48 2023

unfortunately when I run in one terminal
$./_build/default/src/server.exe routeguide/data/route_guide_db.json
Listening on port 8080 for grpc requests

and in the other
$ ./_build/default/src/client.exe
*** SIMPLE RPC ***
RESPONSE = {{ name = "Berkshire Valley Management Area Trail, Jefferson, NJ, USA";
  location = (Some { latitude = 409146138; longitude = -746188906 }) }}

*** SERVER STREAMING ***

even though the server seems to gradually compute the response (the server output progress on stdout),
the client seems blocked on SERVER_STREAMING, and need to wait for all responses to be computed to finally
print all of them at once.
Is there a way to fix the server or the client to gradually display the responses?
Is Server_streaming the right way to solve this problem? Or I need to use bidirectional streaming?

cc @quernd

This is not a limitation of neither Lwt nor server_streaming, but the example. The client code reads the entire stream first and turns it into a list before logging anything. If you add logs inside Lwt_stream.map you will see each message when it comes in.
Also, in this specific case, you will want to use a nonblocking sleep instead of Unix.sleep. Otherwise the server will execute the entire loop without allowing a context switch to allow IO to happen.
Both is demonstrated in this commit: https://github.com/dialohq/ocaml-grpc/commit/7719de19ce93e0c2b896c8734ba4177e60a90c13
In general, Grpc_eio is the future and probably just as mature or immature as the other backends at this point, so if you can, try it out!

@aryx Do you think that the example could be clearer about the LWT behaviour? What could we improve to make it better?
I noticed that the async implementation of route guide prints out the responses as they appear at the client, while the other two implementations read the entire stream first and then print it out. That should get fixed so they all work the same.

I think just merge the commit quend linked above so all implem do the same and prints out responses as they appear at the client.


preemptible in config wasn't registered as capacity_type

After https://github.com/stanford-crfm/levanter/pull/647, my attempt to create preemptible instance keeps failing. Somehow, launch.py wasn't able to pick up preemptible: true value from my .config and registered it as preemptible  in capacity_type. As a result, it tries to create reserved TPU instances.

fixed in #665


VoiceRSS API Call Fails with 400 Bad URL

The URL should end with a forward slash.  I just tried this sample today, and ran into this issue.  Not sure if that was a change to the voicerss.org API spec or what.

Hi Anthonly, is it possible if you can share the script. I am not able to open it.

Thanks Anthony. it worked with a forward slash.


CSV example

This looks really useful. I have a project at the moment where I need to pull a few CSV files over http, filter out some crap rows, map the data into my structs, and lump them into the dB.
Basically ETL stuff that your example in the read me dies.
Is the example and the data that drives it anywhere ?
Thanks again for this ....

@joeblew99 first apologies for the late reply. The API has changed considerably since the start of the year. Look for new updated examples that take advantage of the new API design to arrive soon on the website.  Thanks for checking it out.

Thanks.
It looks like pixie dust and unicorns at the moment.
Are there any examples
I have been playing with glow, which I am sure you know about. It takes a
very different approach in that it allows the CFG ( computation flow graph)
to be reconfigured easily.
I have a project right now where I need to stream about 4 pt per month
through a system and so am investing a fair bit of time building up the
archi.
Joe
On Mon, 15 Feb 2016, 16:17 Vladimir Vivien<EMAIL_ADDRESS>wrote:

Closed #5 https://github.com/vladimirvivien/automi/issues/5.
—
Reply to this email directly or view it on GitHub
https://github.com/vladimirvivien/automi/issues/5#event-550804350.

@joeblew99 sorry i missed this.  Since my last reply, I have added an example folder to the project.  No pixxie dust :)  File an issue if you run into problems.  Thanks!


[VK.COM] This video is only available for registered users

Checklist

[X] I'm asking a question and not reporting a bug/feature request
[X] I've looked through the README
[X] I've read the guidelines for opening an issue
[X] I've searched the bugtracker for similar questions including closed ones

Question
ERROR: [vk] This video is only available for registered users. Use --cookies, --cookies-from-browser, --username and --password, or --netrc to provide account credentials
I use file --cookies File.txt however it still gives me an error.
I also tried using --cookies-from-browser Chrome. The result is the same.
If I don't use cookies it gives me another error -
ERROR: [vk] Error
Verbose log
No response

Can't be bothered to read the instructions in the issue template?

If your question contains "isn't working" or "can you add", this is most likely the wrong template.
If you are in doubt if this is the right template, use another template!

Open a "broken site" issue with all necessary details including verbose log


Dynamic grid size

Voxelization grid size is currently determined at compile time.
Support dynamic checking to determine bounds of scene, as well as changing size when the scene becomes larger.

Voxelization resolution may be difficult to do dynamically with VoxelPipe. Detection of bounding box size dynamically based on mesh has been completed and merged into master.

This is done, to the extent that it is possible. VoxelPipe contexts cannot dynamically change resolution, but the bounding box and all other sizes are handled dynamically. I believe this achieves the original goal.


Update to immer v0.7.0.

Scope & Purpose
Update to immer v0.7.0.

We should also add a CHANGELOG entry for the library version upgrade.


Implementing kullback-leilbler divergence as custom Keras objective function

Hi,
I want to train models where the gold standard data are discrete probability distributions, which come from many observations of different discrete outcomes with the same input.  For my model, I want to minimize, kullback-leibler divergence, which measures the information gain from a predicted distribution, q, to a true distribution, p:
KL_div = \sum{i}p_i*log(p_i/q_i)
Where i in the index for all of the categorical possibilities.
I implemented a function that takes in vectors and computes the kullback-leibler divergence:
def kullback_leibler(y_pred, y_true):
    p = T.vector('p')
    q = T.vector('q')
    results, updates = theano.scan(lambda p,q: p*T.log(p/q), sequences = [p,q])
    get_kldiv = T.sum(theano.function(inputs = [p,q], outputs = -T.sum(results)))
    kldiv = get_kldiv(y_true,y_pred)
    return(kldiv)

Here's an example of the function computing kullback-leibler divergence of two discrete distributions with length 2:
kullback_leibler(np.array([0.1,0.2]).astype('float32'),np.array([0.3,0.4]).astype('float32'))
array(-0.606842577457428, dtype=float32)

When I try to compile my model with this objective, I get the following error:
model.compile(loss=kullback_leibler, optimizer='sgd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 66, in compile_model
  File "/usr/local/lib/python2.7/site-packages/keras/models.py", line 332, in compile
    **kwargs)
  File "/usr/local/lib/python2.7/site-packages/keras/engine/training.py", line 578, in compile
    sample_weight, mask)
  File "/usr/local/lib/python2.7/site-packages/keras/engine/training.py", line 305, in weighted
    score_array = fn(y_true, y_pred)
  File "<stdin>", line 6, in kullback_leibler
  File "/usr/local/lib/python2.7/site-packages/theano/compile/function_module.py", line 786, in __call__
    allow_downcast=s.allow_downcast)
  File "/usr/local/lib/python2.7/site-packages/theano/tensor/type.py", line 86, in filter
    'Expected an array-like object, but found a Variable: '
TypeError: ('Bad input argument to theano function with name "<stdin>:5"  at index 0(0-based)', **'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?')**

This suggests that instead of making a function that directly computes the kullback-leibler divergence, I instead need it to output a Theano variable.  I tried to do this and I get no error in compiling my model, but I get nan as the result of my model.
Here's the function:
def kullback_leibler(y_pred,y_true):
    results, updates = theano.scan(lambda y_true,y_pred: y_true*T.log(y_true/y_pred), sequences =   [y_true,y_pred])
    return(T.sum(results, axis= - 1))

The call to fit my model:
model.fit(features_small[:10000], Y[:10000], nb_epoch=20, batch_size=1, verbose=1,
validation_data=(features_small[10000:20000], Y[10000:20000]))

And the output:
Train on 10000 samples, validate on 10000 samples
Epoch 1/20
  905/10000 [=>............................] - ETA: 13s - loss: nan

I'm not quite sure what's going wrong, but would greatly appreciate any help.  I am also unsure: do keras objective functions also need to be able to pass in 2D tensors?  I am not 100% sure how to do this from reading the Theano documentation.
Thanks for your help!

You'll need to add fuzz factors to avoid dividing by zero.

Hi @fchollet what exactly do you mean when you say fuzz factors?
Hi @rsmichael Did you find a workaround for this yet?

Yes, here's my function:
def kullback_leibler2(y_pred,y_true):
    eps = 0.0001
    results, updates = theano.scan(lambda y_true,y_pred: (y_true+eps)*(T.log(y_true+eps)-T.log(y_pred+eps)),
    sequences = [y_true,y_pred])
    return(T.sum(results, axis= - 1))

You have to add fuzz factors (the "eps" variable in my function) to prevent kullback leibler divergence from taking extreme (or infinite values) when the predicted probability is very low.

Thanks @rsmichael .. Thats's exactly what I thought.
Thanks again.

Thanks.


Eleventy 3.0.0 (>=alpha.15) causes tests to fail

Related to #13, can't merge until tests are able to pass. Source of regression has yet to be found, but for now this plugin only works with <= 3.0.0-alpha.14.

Experimenting with moving from Liquid to Vento via this plugin (with Eleventy 3.0.0-beta.1), and it seems that filters (added via eleventyConfig.addFilter(), but also tried using eleventyConfig.addJavaScriptFunction()) are not found.
Furthermore, following the example given for using JavaScript helper functions, I get the following error:

This is something {{ italicize('really') }} important.

> it.italicize is not a function

Does this relate to some of the issues being thrown up by these unit tests?

@paulrobertlloyd Most likely, yes. I was working on an implementation to finalize the integration for filters and custom tags but life has kept me busy with other things the past month. My hope is to get back to this project in the next several weeks to address this issue which will ease the breaking changes that shipped with alpha.15 as well as fix #13.
Thanks for your patience!

@paulrobertlloyd Following up on my comment from yesterday, and because I didn't state it verbatim, the workaround would be to hold eleventy at version >=3.0.0-alpha.14 until I can get a release out that takes advantage of some 3.0.0 features and transitions away from what was removed (which is what's causing this plugin to break).

@paulrobertlloyd Thanks for your patience on this, will ship in v3.0.0 which will bring full-featured support of paired shortcodes and shortcodes implemented as Vento tags. Exciting stuff!


PE-Polar SDC: Unify interface

Currently, two important inputs are passed by argument (bold_meta, and epi_fmaps) and the other three (in_reference, in_reference_brain, in_mask) are passed by Nipype workflow inputs.
All of them should be workflow inputs.

Any thoughts on replacing bold with distorted and undistorted? A number of interfaces have bold_ref as both inputs and outputs. It might make sense to have inputs be distorted_ref and outputs be undistorted_ref. The boilerplate is also specific to bold, which is confusing when it's included in the html for preprocessed dwi data.

@mattcieslak Perhaps open the bold -> (un)distorted issue separately? This got closed, but the closing PR didn't seem to address it.

Sorry for closing it, I thought it wasn't going to happen.
Yes, please open a new issue - I did not fully removed the term "bold" from the workflow because it'll take deeper changes to replace the enhance&skullstrip workflow with an equivalent with low b images.


Added a analysis on how many lifes could have been saved if different R values were adopted in each city.

Also serves as a endpoint into the SEIR model for any city.
The analysis works by setting some of the SEIR model (as used in simulacovid) parameters as floating and others as fixed, and then apply scipy.optimize.curve_fit() to calculate the best fit for the floating parameters. Then, using those floating parameters we can vary the R0  in each simulation to predict how the system would have behaved in the past if only the R0 changed. This allows us to calculate theoretically how many lives could have been saved or could have been lost in each scenario.
The limitations are described in the notebook but are more or less the same as our current SEIR model.
Warning: This is very dependent on the simulation code on our simulacovid page, so if that changes then this model may require some updates.
Here is the compiled version since github won't copile it because its too big (from what I understood)
br_cities_lifes_saved_initial_report.pdf

let's move this to https://github.com/ImpulsoGov/coronacidades-analysis/tree/master/notebooks ? :)


Change css for --text-highlight-bg

The current highlight is a little striking without opacity.
Make use of opacity to make the highlighting from both outline and
link to headings to look a little more subtle while still easy to
read.

Signed-off-by: Marcus Heng<EMAIL_ADDRESS>

Here are some screenshots,
Dark Mode (Before)

Dark Mode (After)

Light Mode (Before)

Light Mode (After)


Update Composer dependencies (2024-08-10-00-13)

Visual regression test passed!
View the visual regression test report


Removed the posts about the theme used.

Thought you could use a hand this Hacktoberfest :100: :ok_hand: :wink:

Screw you Mark.


Check CEventInfo class

https://github.com/rollraw/qo0-base/blob/cb140182ee647dc3fd9ebcf156f29b1d7457ad95/base/sdk/interfaces/iclientmodeshared.h#L149
https://github.com/rollraw/qo0-base/blob/cb140182ee647dc3fd9ebcf156f29b1d7457ad95/base/sdk/interfaces/iclientmodeshared.h#L96-L107
I have just reversed it, and it doesn't seem accurate on this one at offset 0x4E6C.

I mean I think the class CEventInfo is wrong (not sure), I am getting nullptr on pClientClass and pData.

valve uses 4-byte packing everywhere, currently many comments in the base have incorrect offsets and have been fixed in v2 version. probably the class is still correct.

valve uses 4-byte packing everywhere

Ough, thanks for the information, I used 8-byte and 2-byte packing too.


Redactor fields inside cloned matrix block's aren't being initialized

Description
After cloning a matrix block with a Redactor field, the Redactor field is not being initialized properly. Here's a screencast showing the issue:
https://user-images.githubusercontent.com/10146880/171409961-ea674b7e-6ad3-429d-92b3-c3f9c5589f2b.mov
I'm not seeing any errors in the console and no server errors in the network tab. Not sure if this is an issue with this plugin or the Redactor plugin? In any case, the Redactor field works fine inside matrix blocks that are created normally, so it's probably related to the way Smith clones matrix blocks.
Copying and pasting a block results in the same issue. After reloading the page, the cloned block works normally again.
Steps to reproduce

Create a matrix block with a Redactor field inside.
Clone the matrix block.

Additional info

Plugin version: 2.0.0-beta.1
Craft version: 4.0.3
Multi-site: No

Should be fixed in 2.0.0


Interpreter cycle counter

At the request of @shacklettbp I have added a cycle counter. You can now read out total cycles executed by the clock. As part of this change the simulator now automatically detects the main clock and crashes with an error if the circuit has more than clock.
For example, if the circuit has one clock named "self.clk" you can get the number of cycles executed like so:
ClockValue* clk = toClock(state.getValue("self.clk"));
int cycleCount = clk->getCycleCount();

*more than one clock

Instead of checking for the name self.clk, can you check for a signal of type corer.clk ?

A signal with type coreir.clk is what I check for in findMainClock() this is just an example where the name of the main clock happens to be self.clk

@dillonhuff Can you resolve the conflicts?


genrsa key encryption

https://latacora.singles/2018/08/03/the-default-openssh.html seems to apply just as well to openssl genrsa. With "-aes256" I also get:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,B71B76962370C15E32D9B997A066591D

Other ways to create a key like openssl req -newkey generate:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIJnDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIhZTGkLPNdEcCAggA

We really should work on deprecating older commands and encourage people to use newer ones, such as genpkey. That one generates PKCS#8 wrapped keys, which should allow better pass phrase encryption if I'm not mistaken.

Maybe the documentation should at least point to the newer tools. It now only points to gendsa.

Which documentation are you talking about?

genrsa


Fix GcUnsafe warnings

When running the tests it can be seen that some GcUnsafe warnings are raised in DrawedQRCode/* modules.

Removed the last 2 commits since that's not the way to solve the issue.


[BEAM-1347] Provide an abstraction which creates an Iterator view over the Beam Fn State API

Combining this with the DataStreams.DataStreamDecoder converts the Beam Fn State API into a
an input stream backed by multiple logical chunks.
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

R: @vikkyrk

Retest this please

LGTM once tests pass.

Coverage increased (+0.003%) to 69.971% when pulling 701f0a2b23be172c1b385910dd585fd833923a41 on lukecwik:state_api into 95cd37faff1c57dc4184ed001d8d168bc42d174e on apache:master.

retest this please

Coverage increased (+0.01%) to 69.977% when pulling 701f0a2b23be172c1b385910dd585fd833923a41 on lukecwik:state_api into 95cd37faff1c57dc4184ed001d8d168bc42d174e on apache:master.


[Bug]  Unknown system variable 'default_storage_engine'.

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
1.1 version
What's Wrong?
1.1 version Third-party client connection , Unknown system variable 'default_storage_engine'.
What You Expected?
Both default_storage_engine and storage_engine are supported
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

how to produce this error ?

At Master, I have fixed this problem. https://github.com/apache/doris/pull/10143

yes, datagrip can produce


Question: Is there anything I need to know when converting to fcpxml timelines

I can successfully convert a kedenlive timeline to OTIO format. However converting to fcpxml results in errors. I even tried converting the otio file into fcpxml and still get the same errors. The otio file and kdenlive files open up just fine in otioview. Ca anyone help with the issue I'm having. Below is the error.
Traceback (most recent call last):
File "/usr/local/bin/otioconvert", line 11, in
load_entry_point('OpenTimelineIO==0.13.0.dev1', 'console_scripts', 'otioconvert')()
File "/usr/local/lib/python3.7/dist-packages/opentimelineio/console/otioconvert.py", line 266, in main
**write_adapter_arg_map
File "/usr/local/lib/python3.7/dist-packages/opentimelineio/adapters/init.py", line 194, in write_to_file
**adapter_argument_map
File "/usr/local/lib/python3.7/dist-packages/opentimelineio/adapters/adapter.py", line 182, in write_to_file
result = self.write_to_string(input_otio, **adapter_argument_map)
File "/usr/local/lib/python3.7/dist-packages/opentimelineio/adapters/adapter.py", line 246, in write_to_string
**adapter_argument_map
File "/usr/local/lib/python3.7/dist-packages/opentimelineio/plugins/python_plugin.py", line 174, in _execute_function
return (getattr(self.module(), func_name)(**kwargs))
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 1182, in write_to_string
return FcpxOtio(input_otio).to_xml()
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 193, in to_xml
top_sequence = self._stack_to_sequence(project.tracks)
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 265, in _stack_to_sequence
self._track_for_spine(track, idx, spine, compound_clip)
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 290, in _track_for_spine
self._find_or_create_format_from(track).get("id")
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 315, in _find_parent_element
self._frame_rate_from_element(item, format_id)
File "/usr/local/lib/python3.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 368, in _frame_rate_from_element
total, rate = format_element.get("frameDuration").split("/")
ValueError: not enough values to unpack (expected 2, got 1)

Looks like there might be a conflict between how kdenlive and fcpxml store frame rates. The fcpxml adapter is expecting a rational number string it can split on "/". So you have a simple source file we can look at?

I attached a simplified version of my kdenlive project.
test.zip

I forgot to include the otio export that works. I case you also want to look at it. Thank you for your help.
Archive.zip

I'm not in front of my machine so can't test ATM but the values in the otio file's durations look a bit off. A wild guess of the top of my head might be that this is a division rounding issue in python 2 vs 3. Are you able to test the same conversions in a python 2 environment?
Perhaps the authors of the kdenlive and fcpxml adapters have some input?

I just tried with Python2 and recieved the same errors.
Traceback (most recent call last):
File "/usr/local/bin/otioconvert", line 11, in
load_entry_point('OpenTimelineIO==0.13.0.dev1', 'console_scripts', 'otioconvert')()
File "/usr/local/lib/python2.7/dist-packages/opentimelineio/console/otioconvert.py", line 266, in main
**write_adapter_arg_map
File "/usr/local/lib/python2.7/dist-packages/opentimelineio/adapters/init.py", line 194, in write_to_file
**adapter_argument_map
File "/usr/local/lib/python2.7/dist-packages/opentimelineio/adapters/adapter.py", line 182, in write_to_file
result = self.write_to_string(input_otio, **adapter_argument_map)
File "/usr/local/lib/python2.7/dist-packages/opentimelineio/adapters/adapter.py", line 246, in write_to_string
**adapter_argument_map
File "/usr/local/lib/python2.7/dist-packages/opentimelineio/plugins/python_plugin.py", line 174, in _execute_function
return (getattr(self.module(), func_name)(**kwargs))
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 1182, in write_to_string
return FcpxOtio(input_otio).to_xml()
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 193, in to_xml
top_sequence = self._stack_to_sequence(project.tracks)
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 265, in _stack_to_sequence
self._track_for_spine(track, idx, spine, compound_clip)
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 290, in _track_for_spine
self._find_or_create_format_from(track).get("id")
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 315, in _find_parent_element
self._frame_rate_from_element(item, format_id)
File "/usr/local/lib/python2.7/dist-packages/opentimelineio_contrib/adapters/fcpx_xml.py", line 368, in _frame_rate_from_element
total, rate = format_element.get("frameDuration").split("/")
ValueError: need more than 1 value to unpack

Ok, does the otio file contain values with decimals in the duration like the other one?

Yes, looking through the otio file I see decimal values.
I'm not much of a python coder but I put some print statements to get the values stored in format_element before "frameDuration" is split. I added the #'s to the print statement to make sure no extra spaces appeared. Below are the values.
FrameDuration: ##
id: #r1#
name: #FFVideoFormat1080p29.97002997002997#
I saw that the FRAMERATE_FRAMEDURATION array didnt have an entry for 29.97002997002997. So I added it and uses the same value for 29.97. The export worked after I did that.

Looking at the context (https://github.com/PixarAnimationStudios/OpenTimelineIO/blob/1468491b98ae588ad537ee557d27ace022d1d563/contrib/opentimelineio_contrib/adapters/fcpx_xml.py#L368-L370), this looks like it might be a good use case for the fractions module:
>>> from fractions import Fraction
>>> raw_frame_duration = "1001/24000s"
>>> duration_fraction = Fraction("1001/24000s".replace("s", ""))
>>> rate_fraction = 1 / duration_fraction
>>> float(rate_fraction)
23.976023976023978

Also, another note. I'm not super familiar with the format, but on this line (https://github.com/PixarAnimationStudios/OpenTimelineIO/blob/1468491b98ae588ad537ee557d27ace022d1d563/contrib/opentimelineio_contrib/adapters/fcpx_xml.py#L370) frame rates are being forced to integer. Is that correct?

I don't think it's a conversion issue. line 368 in fcpx_xml.py is getting an empty value because the framerate "23.976023976023978" does not exist. I attached a screenshot where I added the framerate to get the export to work.

Also worth noting, matching float frame rates will cause problems. The actual SMPTE definition for NSTC 29.97fps is exactly 30000/1001 fps. For 23.976 (or 23.98 colloquially) is 24000/1001fps. 59.94 is actually 60000/1001.
I have this piece of code I've been copy/pasting around, I just haven't gotten a chance to integrate it back to somewhere in OTIO:
def rate_fraction_from_float(rate: float) -> Fraction:
    """
    Given a frame rate float, creates a frame rate fraction conforming to known
    good rates where possible. This will do fuzzy matching of
    23.98 to 24000/1001, for instance.
    """
    # Whole numbers are easy
    if isinstance(rate, int) or rate.is_integer():
        return Fraction(rate)

    NTSC_RATES = (
        Fraction(24000, 1001),
        Fraction(30000, 1001),
        Fraction(60000, 1001),
    )
    for ntsc_rate in NTSC_RATES:
        # The tolerance of 0.004 comes from 24000/1001 - 23.98
        if abs(rate - ntsc_rate) < 0.004:
            return ntsc_rate

    return Fraction(rate)

ahh, so the more robust way to achieve the FRAMERATE_FRAMEDURATION mapping is probably to use the rate_fraction_from_float function I posted previously to get the rate into a Fraction, then use some code like this to generate the frame duration string:
rate_string = "{}s".format(1 / rate_fraction)


Update docs

Please update the readme.MD at the Design section, I want to learn a lot more about this.

The document will be fully updated when we reach 0.2.0 (pretty close now) as the design is still keep changing dramatically. Thanks!

@lsm Thank you and congratulations for such amazing work, I want to know how to require a local microservice. I tried to import it as a node package, included it in my package.json and then do:
micromono.require('service');
But looks like it doesn't discover my services locally. Will this information be included in the design section?
Thanks in advance

Thanks for the kind words!
We have a full example here. You can clone the code and try it. And you can get an idea about how to require a service in the example.
Let me know if you run into trouble with the example code.


feat: add the cdc actions to out log parsing

Description
This PR...

[x] adds a new struct AddCDCFile as defined in the specification of the CDC action
[ ] adds the CDC actions to out log parsing

Related Issue(s)
#604
Documentation

Delta Lake Change Data Feed
Protocol

Thanks for the contribution @herry13! Looks good so far, but we need to do a few more things to make this work :).
FOr one we need to add the new CDC struct as a variant to the Action enum in the same file. Then - i think, haven't read the specs - we need to add implementation for the cdc struct in the checkpoint parquet parser (ideally 1 & 2) - the logic should be quite similar to e.g. the add action, but hopefully a little less complex.
Last but not least a test would be nice as well :).

I am going to close this pull request, I believe this support already exists in main but we didn't update open issues and pull requests.


Build failure: _7zz

Steps To Reproduce
Steps to reproduce the behavior:

build _7zz

Build log
error: builder for '/nix/store/qqp9cdcplmnxkg1jm8xlvpsnz2kdqxhb-7zz-24.08.drv' failed with exit code 2;
       last 25 log lines:vU%3D' (2024-10-29)
       > patching file C/Util/7zipInstall/resource.rc.rej
       > patching file C/Util/7zipUninstall/resource.rc
       > patching file C/Util/7zipUninstall/resource.rc.rej
       > patching file CPP/7zip/7zip_gcc.mak
       > patching file CPP/7zip/Crypto/RandGen.cpp
       > patching file CPP/7zip/GuiCommon.rc
       > patching file CPP/7zip/UI/FileManager/PanelItemOpen.cpp
       > patching file CPP/7zip/UI/FileManager/SysIconUtils.h
       > patching file CPP/Windows/Control/ComboBox.h
       > patching file CPP/Windows/Control/ImageList.h
       > patching file CPP/Windows/Control/ListView.h
       > patching file CPP/Windows/Control/ProgressBar.h
       > patching file CPP/Windows/SecurityUtils.h
       > Running phase: updateAutotoolsGnuConfigScriptsPhase
       > Running phase: configurePhase
       > no configure script, doing nothing
       > Running phase: buildPhase
       > build flags: -j12 SHELL=/nix/store/mm0pa3z7kk6jh1i9rkxqxjqmd8h1qpxf-bash-5.2p37/bin/bash CC=cc CXX=c++ DISABLE_RAR_COMPRESS=true
       > mkdir -p b/g_x64
       > asmc -nologo -elf64 -DABI_LINUX -Fob/g_x64/ ../../../../Asm/x86/LzmaDecOpt.asm
       > cc      -O2 -c -Werror -Wall -Wextra -Waddress -Waggressive-loop-optimizations -Wattributes -Wcast-align -Wcomment -Wdiv-by-zero -Wformat-contains-nul -Winit-self -Wint-to-pointer-cast -Wunused -Wunused-macros  -Wbool-compare -Wduplicated-cond  -Waddress-of-packed-member -Wbool-operation -Wcast-align=strict -Wconversion -Wdangling-else -Wduplicated-branches -Wimplicit-fallthrough=5 -Wint-in-bool-context -Wmaybe-uninitialized -Wmisleading-indentation -Wmissing-attributes -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o b/g_x64/7zBuf2.o ../../../../C/7zBuf2.c
       > cc      -O2 -c -Werror -Wall -Wextra -Waddress -Waggressive-loop-optimizations -Wattributes -Wcast-align -Wcomment -Wdiv-by-zero -Wformat-contains-nul -Winit-self -Wint-to-pointer-cast -Wunused -Wunused-macros  -Wbool-compare -Wduplicated-cond  -Waddress-of-packed-member -Wbool-operation -Wcast-align=strict -Wconversion -Wdangling-else -Wduplicated-branches -Wimplicit-fallthrough=5 -Wint-in-bool-context -Wmaybe-uninitialized -Wmisleading-indentation -Wmissing-attributes -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC   -o b/g_x64/7zCrc.o ../../../../C/7zCrc.c
       > /nix/store/mm0pa3z7kk6jh1i9rkxqxjqmd8h1qpxf-bash-5.2p37/bin/bash: line 1: asmc: command not found
       > make: *** [../../7zip_gcc.mak:1310: b/g_x64/LzmaDecOpt.o] Error 127
       > make: *** Waiting for unfinished jobs....
       For full logs, run 'nix log /nix/store/qqp9cdcplmnxkg1jm8xlvpsnz2kdqxhb-7zz-24.08.drv'.

Additional context
N/A
Notify maintainers
@anna328p @peterhoeg
Metadata

system: "x86_64-linux"
host os: Linux 6.11.5-zen1, NixOS, 24.11 (Vicuna), 24.11.20241029.807e915
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.25.0pre20240920_ca3fc169
nixpkgs: /nix/store/m68ikm8045fj7ys7qvgr608z9l70hh1k-source

Add a :+1: reaction to issues you find important.

Probably a duplicate of #353119

can you check if its fixed by #353272?

Will be fixed once the channels update, thanks for the report!

Fixed by #353272


Tag design changes

This updates the design of the Tag component.
Design changes:

no longer uppercase
no longer bold
remove 1px extra letter spacing
increase font size to 19px
change colours to use lighter background colours

These changes are to improve the accessibility and readability of the tag text, and to make the tags look less like clickable buttons.
These changes were originally designed as part of the 'status' component of the upcoming Task list component (#2261) – however feedback from the working group suggested these changes should also be applied to the Tag component for consistency.

My quick 2 pence:
I'm not a fan. It looks too... unintentional, for want of a better phrase.
Or, I guess, it doesn't look like it's a component that exists to serve a specific, unique purpose—it just looks like regular body text that's had a background colour added to it.
Some ideas, presented in isolation but could probably be combined if it's useful.

Mockup
Description

Increase contrast. At the moment the text just looks a bit 'lost' in the background colour. Increasing the stroke width might help with that. Alternatively, tweaking the colours to increase the contrast between text and background might work, though we'd then risk the background becoming undiscernable to users with poor vision.

Adding a border. Adding a border (potentially in the same colour as the text) would make it feel a bit more distinct and intentioned. Mainly taking inspiration from the NHS Design System's equivalent here.

Adding border radius. Rounding off the corners to make a 'pill' shape would certainly make it distinct, and create a resemblence to how tags and status indicators in other UIs are often presented (e.g. notification badges).

Something else entirely? The ONS Design System uses coloured dots and plain text to indicate status, rather than changing the colour and background of the text itself.

Admittedly many of these start veering back into the realm of 'could be a button', but I also feel that it's kind of impossible to put a box around some text and not have someone think it's clickable. I think our goal is to distinguish them from the few existing buttons found in the Design System, rather than try and divorce them from the concept of buttons entirely.

Or, I guess, it doesn't look like it's a component that exists to serve a specific, unique purpose—it just looks like regular body text that's had a background colour added to it.

For the task list, that was arguably the intention. HMRC decided to do away with the tag style altogether and just use regular text:

Within the task list working group we reached a position of using regular text for completed tasks, and "highlighted" text for tasks yet to be completed, in order to draw more attention to those.
There was a debate about whether the task list statuses needed to use the same style as the Tag component at all. We initially deviated from the tag component styles, but the Design System working group thought they should be consistent.
I’m open to all ideas – although the Design System team get the final say!
Would be good to come to a resolution fairly soon though, as this is blocking the release of the task list component.

That’s the word @beeps: intention. The current proposal feels too unintentional, almost like a bit of CSS hasn’t loaded.
As to the other ideas:

Increase contrast: I agree, I think the text still feels a bit washed out. Not sure if the text needs to be emboldened, but if there was an additional weight in the font palette between regular and bold, I’d be suggesting that. Given there isn’t, it's a case of having to choose between the 2 weights.
Adding a border: This might be an option. Make the border too dark though, and it adds visual noise, and can affect layouts that already have a lot of borders and boxes, leading to cases of lots of nested boxes. I think I’d be playing around with options that were so faint as not to bother.
Adding a border radius: I wondered about this as well, but GOV.UK isn’t a round corners site. That said, the icons added to the revised accordion component start to go a bot in that direction, and as I mentioned in relation to that, there are circles in the GOV.UK Crown logo.
Something else: I’ve in fact created separate components in the past with dots to the left of text, but that was more to indicate a status, whereas the tag component is used more broadly.

Which brings us on to the Phase banner. Hmmmmm, this is tricky, and starts to pull on a horrible thread of consequences. The font-size mismatch gets tricky. Options:

Create a small variation of the tag component (which I’ve done on a number of occasions in the past anyway) and use that – not unprecedented either as radios/checkboxes have small variation
Try and massage the tag component so that it works in all these different contexts, and not be too concerned that text isn’t aligned to baselines and appears at different sizes
Use a bespoke design for the phase banner… and congratulations you’re now redesigning three different components!

Think I’d be tempted to go for option 1.
I think my changes would be:

adjust padding on tag component to make it feel more intentionally designed, and look less like highlighted text
increase text contrast on tag component a tad more
add a small variation to the tag component, and use that in the phase banner component

Looking back at my earlier suggestion for padding, I think the values lean possibly to far towards much on the large (and possibly button-y) side. Have revised it to use block padding of 3px (2 less than 5), inline padding of 8px (2 less than 10) and top/bottom margin of -3px:

@querkmachine We did go over most - if not all - of those particular ideas, but we had specific constraints at the time and what we ended up with was voted the best option. The constraints may have shifted a little now.
All colours where contrast checked (when I did them anyway!) so that they met AA+ standards.
@paulrobertlloyd I personally prefer your second design - less buttony! Keeping them looking like highlighted text and not like buttons (as current tags do, according to user research) was a deliberate design aesthetic.

I'm not sure where all the extra colour options came from either! 4 pairs of the designs being shared look almost identical. The original idea was to have a limited palette as each task list design we saw had a limited set of tags. If a particular team wanted to extend the palette, they could - with testing to back it up.
Each colour represents a type of tag, not a specific tag name. This should be written up in the guidance.
The green tag on one task list might be "New", on another it might be "Active". Blue might be "In progress" on one task list, "Pending" on another. Most users will not be using all the possible task lists, and where there are multiple task lists that the same people might access, that particular set should follow the same pairings pf colour and words.

@steve-oconnor Thanks for the context! This is the first time I'm seeing this, personally, so I'm not clued up on any prior considerations.
The extra colour options are to reflect the options already present in the Design System, viewable on the Tag documentation page. If we're changing the design of the component, we probably want to keep accommodating all of the existing colour options, as they might've been used by a team somewhere already.

I'm not sure where all the extra colour options came from either!

As @querkmachine corrected guessed, there are already a bunch of different tag colours, so when I copied over the colours you did for the task list @steve-oconnor, I just reused the existing colours, with the exception of "light blue" (which had to be added), and the "text colour" and "secondary text colour" ones.
Both the existing tag guidance, and the draft task list component guidance suggest using as few different statuses and colours as possible, so hopefully that would dissuade teams from using all of them at once...

This PR also adds 2 new ‘tags’, which appear heavily tied to the implementation for the task list component, without any clear indication how they might be used outside of it:

govuk-tag--text-colour
govuk-tag--secondary-text-colour

Perhaps this verges too far into discussion about the task list component, but do these exist because that component expects each status to use a tag? Where might you use these variations outside the confines of the task list component?
(FWIW, a broader application utility class like govuk-!-secondary-text-colour would be massively helpful, and perhaps such an addition would aid in the design/development of the task list component).

Yeah I think Paul's second set looks good @frankieroberto I think those make them look a bit more solid – want to apply those?

@christopherthomasdesign @owenatgov ok I've updated the pull request with the extra padding from @paulrobertlloyd’s design, fixed the conflicts with main and squashed all the commits.
I've also done another pre-release so that this preview for the PR on the design system website repo has been updated: https://deploy-preview-2733--govuk-design-system-preview.netlify.app/components/tag/
Let me know if there’s anything else to do!

Ah, nice! The new tag design will take a bit getting used to, but overall a big win for legibility and accessibility. 🚀
I’d still like to challenge the inclusion of the govuk-tag--text-colour and govuk-tag--secondary-text-colour variants as they are coupled to design of the task list component and I can’t see a use case for these variants outside of that.
I think there could be some better, more broadly scalable options for addressing the styling of ‘non-coloured’ statuses in that component, rather than depending on these 2 specific tag variants (which I described in the discussion thread for that component).

Great work folks! As a prompt, it may we worth checking how this looks against the new typography scale.

I've had a quick check, and I think it should be fine. It may mean more wrapping of text within the Task list on narrower screens, but the design can cope with that anyway (and it's a valid trade-off for the benefit of larger text).

@steve-oconnor:

The only thing I'm still not sold on is the use of the grey "inactive" tag rather than the text with no highlight. The original intention was to have guidance to explain how coloured tags should be used to highlight items that need attention, plain text for items that don't require attention.

This is all the existing guidance for the Tag component, which I’ve not otherwise reviewed. I think those examples are for where the tag is used outside of the task list (eg in in table), and I’m not sure that the text or colours are intended to be prescriptive? However it may still be worth reviewing separately?
For the task list guidance we’re being a bit more prescriptive (or at least suggestive) of how to pair the colours and text - with completed tasks using the regular black text, as you suggest.

@paulrobertlloyd:

I’d still like to challenge the inclusion of the govuk-tag--text-colour and govuk-tag--secondary-text-colour variants however, certainly at this stage. These are coupled to design of the task list component and I can’t see a use case for these variants outside of that.
I think there could be some better, more broadly scalable options for addressing the styling of ‘non-coloured’ statuses in that component, rather than depending on these 2 specific tag variants (which I described in the discussion thread for that component).

I think there could be uses for these outside of the task list. Whilst you could just use regular text for the govuk-tag--text-colour variant, using the Tag component with the class will also add the extra padding (that you suggested) which will mean it'll line up nicely with any coloured variants.
A more generic override class like govuk-!-text-colour could be an option, but it would also need to reset the background colour back to transparent so you'd need something like govuk-!-background-colour-transparent, and at that point you may as well define a tag-specific modifier class?
I've now updated the task list component in https://github.com/alphagov/govuk-frontend/commit/ba1e20e7ebe4adfd6b815d437b0113aac3680bd7 so that it directly uses the Tag component – which means there’s no easy way to avoid using the Tag altogether and define your own html within the tag container (except by using HTML and not the Nunjucks macro).

This verges into discussion about the task list component, but…

Whilst you could just use regular text for the govuk-tag--text-colour variant, using the Tag component with the class will also add the extra padding (that you suggested) which will mean it'll line up nicely with any coloured variants.

I’m not sure you need the extra padding for the text coloured statuses.

A more generic override class like govuk-!-text-colour could be an option, but it would also need to reset the background colour back to transparent so you'd need something like govuk-!-background-colour-transparent, and at that point you may as well define a tag-specific modifier class?

No modifier, no background colour, just use text as is used in other component.

I've now updated the task list component in https://github.com/alphagov/govuk-frontend/commit/ba1e20e7ebe4adfd6b815d437b0113aac3680bd7 so that it directly uses the Tag component – which means there’s no easy way to avoid using the Tag altogether and define your own html within the tag container

Not sure if you’ve seen my suggestion, but my thought was you could either provide text or a tag (status.text or status.tag). That saves having to think of every status requiring an equivalent tag modifier.

I’d recommend keeping this change scoped to the visual design of the existing tag component and colour modifiers. If it’s decided that further tag modifiers are needed after review of the task list component, those could be added as part of that change. Otherwise the changes (and discussion) gets a bit muddled.

One stylistic tweak I should have raised earlier – we usually try to stick to a 5px vertical rhythm for components and typography (hence why all our line heights are in multiples of 5px etc). It's not applied 100% consistently but I do think it helps keeping everything looking broadly proportionate. Do you think we lost anything by shaving a pixel off the padding-top of the tags, so they're 30px heigh rather than 31? Screenshot below:

I think I need a bit more time to work out what I think about the different tag variants and how much they should overlap with the task list, bear with me on that one...

@paulrobertlloyd:

I’m not sure you need the extra padding for the text coloured statuses.

Hmm maybe you’re right. I’m not sure which I prefer. Here’s a quick mock-up showing the "Completed" statuses without the extra 8px padding on the right.

vs with the padding:

@paulrobertlloyd:

Not sure if you’ve seen my suggestion, but my thought was you could either provide text or a tag (status.text or status.tag). That saves having to think of every status requiring an equivalent tag modifier.

Could be an option - but it does make the nunjucks macro slightly more complicated/nested (from items.tag.text to items.status.tag.text)..?  On the other hand it would let you add classes to both the tag and the container element?

Good spot, cheers @36degrees – I personally would just bump up the text in the phase banner but am happy to be challenged on that, it might need a bit of testing first.
On the capital letter thing, I did discuss this with @owenatgov the other day – wonder if you had any thoughts on how to handle this?

@36degrees:

The baseline on the phase banner is a little off with these changes. We might also want to consider making the phase banner text 19px as well – at the minute it just looks off to me.

Alternatively, we might consider keeping the existing design for the phase banner, removing its dependency on the tag component.

@christopherthomasdesign and I discussed this briefly. Bumping up the text in the phase banner feels like it'd be the least disruptive (no breaking changes).
A more radical option might be to break the dependency on Tag and just use some plain bold text, or similar?

Secondly, at the minute the changes require teams to update their markup to uppercase the first letter. For example, from alpha to Alpha. I think we’re at risk of seeing tags (especially in phase banners) in lowercase all over the place if we’re not careful.

Hardly world-ending, but we might want to consider doing something to try and avoid this? Could look at text-transform: capitalize (though that would capitalise every word in a tag, e.g. 'In Progress', 'Cannot Start Yet') or doing something clever with ::first-letter.

I think I'd probably try and avoid doing something clever with CSS? (text-transform: capitalize is a non-starter). Hopefully teams would only have to change the capitalization in a single file – as services only include a single phase banner shared across every page? Would this still count as a breaking change though? 🤔

My vote would be for the second option, with padding. Ease of readability.

The designer in me does prefer it when things line up, the pragmatist less so 🙂
In terms of implementation, not sure you need an additional tag modifier to achieve this. The status containing element could have padding-right: 8px, and a .govuk-tag within that could have margin-right: -8px. Doesn’t have to be that, I guess my broader point is that it seems weird to create a tag to achieve a component-specific spacing.

Is future proofing an argument for a dedicated tag?
As a hypothetical, maybe some users just don't consider the secondary text colour one to be visually distinct enough and we decide to change it. We could update the CSS for a dedicated tag without needing a breaking change, but potentially not if we used code with totally distinct HTML/class names.

@frankieroberto Sorry just being nosey since the big directory changes 🙈
Can you double check you meant for both src and dist stylesheets to be updated? Only because we've seen git get confused by the two files starting off the same—then replaying changes on the wrong one:
packages/govuk-frontend/src/govuk/components/tag/_index.scss
packages/govuk-frontend/dist/govuk/components/tag/_index.scss

https://github.com/frankieroberto/govuk-frontend/commit/3f520ed6b5efc5da6c219ea9293f655c4d8ef784#diff-930b1115bd006cc9993120607535cd35b44dfa89171dfc77d5feee98601ebfbf

@colinrotherham:

Can you double check you meant for both src and dist stylesheets to be updated?

I did not - but rebasing from main since the big directory changes caused a few issues! 😬 Fixed manually now (and forced pushed another rebase).

@36degrees we chatted a bit about this on the Friday community call (in the context of “what makes a breaking change?”)
On reflection maybe we should just accept it as a breaking change - and this might then also free us up to make a breaking change to the tag within the phase banner?
The ::first-letter css selector might still not work where services have words within tags which they’d still want capitalised - like two-word proper nouns, or abbreviations? Probably fairly rare, but I think tags do get used for all sorts of labels within case working services?
@christopherthomasdesign what do you think?

My vote would be for the second option, with padding. Ease of readability.

The designer in me does prefer it when things line up, the pragmatist less so 🙂
In terms of implementation, not sure you need an additional tag modifier to achieve this. The status containing element could have padding-right: 8px, and a .govuk-tag within that could have margin-right: -8px. Doesn’t have to be that, I guess my broader point is that it seems weird to create a tag to achieve component-specific spacing.

It's the accessibility nerd in me 🤓
I don't think it's weird to create a tag to achieve the spacing. It makes it known that this text is still a tag, semantically, and the style can be changed in the future without someone having to go back and check where it's been set as plain text in pages and needs to be manually updated.

I've just been looking at how the tags would affect the phase banner in a bit more detail, it's proving to be a tricky dependency in terms of how the styles carry over.
Here's the new tag applied to the phase banner without changing anything else (except for the capitalisation, which I've changed for all these examples):

As discussed before, I think the mismatch between the text sizes is a bit jarring here.
Here it is with the text bumped up to 19px to match the tags:

I think this looks fine until you factor in things like breadcrumbs and back buttons sitting below. Once you have those, it feels like it messes with the page hierarchy a bit. To me the phase banner should probs be at the same level as those elements, where they're 'in the background' compared to the main page content.
Here's a version where I've reduced the text in the tag down to the 16px size in the font scale:

That makes the tag a total of 25px height – that looks a bit small to me here but it's actually the same height it was before.
I wonder if adding something custom to the phase banner to achieve this might be a way forward, though I I'll admit I've got a bit mixed up on what we're saying in terms of releases and breaking changes (@owenatgov we might need another chat about this!). I'm not sure if you'd need to break the existing phase banner html though.
As ever, thoughts welcome!

@christopherthomasdesign I’d agree that the version with the tag text reduced works best.
In terms of implementation, I guess we either do something where we use CSS to target tags within phase banners, which would be backwards-compatible, or we add a modifier class for the tag, but that'd require some html changes to add the extra class?

@christopherthomasdesign I’d agree that the version with the tag text reduced works best.
In terms of implementation, I guess we either do something where we use CSS to target tags within phase banners, which would be backwards-compatible, or we add a modifier class for the tag, but that'd require some html changes to add the extra class?

What do you reckon @owenatgov?

My personal preference would be to target tags within phase banners via CSS. We do something similar with summary lists within summary cards.

@owenatgov ok, this was an easy fix: e3e67520ea3a1a1ec82f17c8ebd03a5262ff751f

@christopherthomasdesign @owenatgov first letter uppercased in 954a54fe7f1f23c2e6687407304f684850a323a8.
I think this is now good to merge, and no longer a breaking change?

The use of either dashed or double lined boxes looks great to me, however the overall decision for the use case of these needs to be confirmed by the working group.
On a separate point, as someone outside of the work, this definitely feels less like a button and the larger text helps to make it stand out. Excellent work folks!

We're very very close. The code is looking fine by my eye.
@davidc-gds ran a quick test against forced colour mode, specifically windows high contrast, and found a final issue. The tag component now looks indistinguishable from our button in high contrast mode:

Our suggestion is to use a different border style such as dashed in forced colours mode:

You could do this quite easily using a forced colours media query:
@media screen and (forced-colors: active) {
  border-style: dashed;
}

Is a border needed at all for high contrast mode? Given the background colour should not be used alone to convey information, how important is it that tag text is distinguishable from other text on a page?

I think I’d agree with @paulrobertlloyd that it'd be better to have no border in high-contrast mode rather than a dashed one (whose meaning might be hard to interpret), given that the tag text is just informational and not clickable in any way?

If the outline is fully removed, would this mean that for high contrast mode, and people with low-vision there are potentially no signifiers to differentiate the tag component from plain text?

If the outline is fully removed, would this mean that for high contrast mode, and people with low-vision there are potentially no signifiers to differentiate the tag component from plain text?

Yes, other than placement (eg being aligned-right within the task list).
I guess the question is whether there's any need to distinguish it from plain text? (Which might be context-dependent?)

As a go-between, could you make the text bold in forced colours mode? Similar to how we use strong to visually differentiate the tag from text in the absence of CSS.
That's if there's a need. My take is that there usually isn't an explicit need but it can't hurt to have a failsafe in place.

@frankieroberto In that case I think the capitalisation alone would be enough but I also think the bold doesn't create any issues and even more clearly communicates the separation. I'm open to being disagreed with but that's my preference so far.

This extra spacing is happening in the width of the tag element itself, not in the padding or margin according to firefox. Also according to firefox's accessibility tree, this is coming from the text, with the contents saying "Beta ".

Would adding whitespace control in the variable tag help?
  <strong class="govuk-tag{% if params.classes %} {{ params.classes }}{% endif %}"{% for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
-   {{ params.html | safe if params.html else params.text }}
+   {{- params.html | safe if params.html else params.text -}}
  </strong>

Or alternatively:
<strong class="govuk-tag{% if params.classes %} {{ params.classes }}{% endif %}"{% for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>{{
  params.html | safe if params.html else params.text
}}</strong>

@paulrobertlloyd It's a good guess but sadly didn't make a difference for me.
From playing around, it looks like the issue is specifically text-transform: uppercase inside the ::first-letter selector. I'm not really sure why firefox doesn't like this (could be a vendor bug?), but the fix I found was to replace it with text-transform: capitalization. I know this has been thrown out already, however localising it to ::first-letter seems to solve the worries we had with it.

It's a good guess but sadly didn't make a difference for me.

@paulrobertlloyd It's a good guess but sadly didn't make a difference for me.
From playing around, it looks like the issue is specifically text-transform: uppercase inside the ::first-letter selector. I'm not really sure why firefox doesn't like this (could be a vendor bug?), but the fix I found was to replace it with text-transform: capitalize. I know this has been thrown out already, however localising it to ::first-letter seems to solve the worries we had with it.

Wait, so ::first-letter { text-transform: uppercase; } is rendering differently from ::first-letter { text-transform: capitalise; }? That really does sound like a vendor bug?! 🤯

@frankieroberto Yeah it's pretty whacky. I'll be raising a vendor bug and seeing what they say. We have a workaround, weird as it may be 😎

Fixed in b49afa3 – thanks!

@owenatgov so I think the border in high contrast mode was being added by the transparent outline previously added to make the Tag perceivable (see blog post).
I’ve removed this in 903f575 (as it makes them indistinguishable from buttons) and have instead made the Tag text bold in high contrast mode.
Would you mind letting me know if this works, and if the comment to explain it is clear enough?

We're mere steps from the finish line. 2 lingering things to do from me:

When I test in windows high contrast, the bold isn't coming through. This is coming from the default font weight rule from govuk-font in .govuk-phase-banner__content__tag which has higher specificity. There are a couple of ways we could solve this:

Add $weight: false to the govuk-font declaration in .govuk-phase-banner__content__tag. This will override the default weight declaration when govuk-font is called. I've tested this and it works but it's a bit icky. If we go with this I'd like it explained with a comment.
Replicate the same forced colours media query in the phase banner content tag. This is nice and neat with the only downside being repeated code. If we need to do that we need to do that.

I was thinking about how to segment the commit history and my personal take is either squash it all again or separate the tag redesign and the associated changes to the phase banner. Open to alternative perspectives.

@owenatgov

When I test in windows high contrast, the bold isn't coming through. This is coming from the default font weight rule from govuk-font in .govuk-phase-banner__content__tag which has higher specificity. There are a couple of ways we could solve this...

I’ve gone with your second option (replacing the high-contrast mode css within the phase banner css). Whilst I personally like the idea of relying on cascading styles more, the conventions of BEM, and govuk-frontend more generally, has been to apply styles at the lowest level and avoid cascading? (I think this was to allow govuk-frontend to be adopted more incrementally alongside any existing css?)

I was thinking about how to segment the commit history and my personal take is either squash it all again or separate
the tag redesign and the associated changes to the phase banner. Open to alternative perspectives.

I've squashed them all into a single commit again. 👍

Re-squashed the commits and force-pushed. I think we’re there?? Anything needed for release notes etc, or do those only get written when preparing a release?

@frankieroberto Good shout! Completely slipped my mind 🙃 I reckon let's do something in the changelog now for reference and we can refine this when we get into the release notes phase of 5.0. A heading saying that the design's been updated, noting that folk's spacing may move around and then link to the PR will do.

@owenatgov:

let's do something in the changelog now for reference and we can refine this when we get into the release notes phase of 5.0. A heading saying that the design's been updated, noting that folk's spacing may move around and then link to the PR will do.

Done in 625532f 👍

🏷 🏷 🏷 🏷  Big thanks to @36degrees @christopherthomasdesign @colinrotherham @owenatgov @paulrobertlloyd @querkmachine @steve-oconnor! 🏷 🏷 🏷 🏷


webmail: internal error when user's language is not English

When a user changes his lang to non-english (Czech - cs in my case), webmail gives a small "Internal error" (in Czech) bubble on top of the page without any further explanation even with Debug enabled. Server logs (uwsgi logs) only give the request URL and a mention about a 500 error, nothing specific. I was unable to produce any logs or messages beyond this and I only came up with the relation to Language settings via trial-and-error.
So two issues here really: 1) a hard 500 server error on language change and 2) inconclusive error message
Debian Jessie, ngnix 1.10.1 (http2), uwsgi (2.0.7), mysql (Percona 5.7.11), Python 2.7.9, modoboa installed in virtualenv via pip install method.
Modoboa v. 1.5.3, webmail v. 1.0.4
As usual, I'm happy to cooperate in any way I can, being it debugging (if I'm told what to do) or giving any additional information.

@cptMikky Since the webmail mostly use async requests to update the page, errors are not showed unless you open a javascript console.

Now I see this in js console:
jquery.min.js:5 GET https://<mydomain>/webmail/?action=listmailbox&mbox=Sent&reset_page=true&_=1234567890123 500 (Internal Server Error)
send	@	jquery.min.js:5
ajax	@	jquery.min.js:5
check	@	history.js:272
i	@	jquery.min.js:3

Same for all folders. I was able to create a new folder, it even appears in the folder list but I still can't switch to it - same error.

Are you sure you're looking at the right tab ? What tool do you use ? With DEBUG = True, you should see a complete python stacktrace.

What tab are you referring to? I do have DEBUG = True. I use Chromium's integrated JS console. The screen looks like this: https://oc.ghoul.cz/index.php/s/Lzf8FcaBzyra3jO

Is it the console launched when you hit the F12 key ?
Could you try to display server response instead of the javascript error please ?

Of course, my mistake, I thought you wanted the javascript errors.
Server response is http://pastebin.com/AtwXYfJ1

Ok, so it corresponds to the issue I fixed yesterday.
https://github.com/modoboa/modoboa-webmail/issues/37


⚠ Bofrost.lu has degraded performance

In c9186cb, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1403 ms

Resolved: Bofrost.lu performance has improved in 4196a35 after 19 minutes.


frame: reject NEW_CONNECTION_ID frames with invalid CIDs

Fixes #1710.

Ugh, yes you are right. Fixed now, thanks.