OplogThread: Cursor is still alive and thread is going infinite times..

Please find the below log captured from mongo.connector.log,
I am a very newbie to Solr/Mongo. Someone can let me know where is it going wrong. I tried multiple times and still stuck here.
2016-09-29 22:15:23,357 [INFO] mongo_connector.connector:1062 - Beginning Mongo Connector
2016-09-29 22:15:23,363 [INFO] mongo_connector.oplog_manager:92 - OplogThread: Initializing oplog thread {'collection_dump': True, 'gridfs_set': [], 'exclude_fields': [], 'continue_on_error': False, 'dest_mapping': {}, 'tz_aware': False, 'fields': [], 'batch_size': 10, 'ns_set': ['test.fruit']} MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs0') [<mongo_connector.doc_managers.solr_doc_manager.DocManager object at 0x02C55B10>]
2016-09-29 22:15:23,381 [INFO] mongo_connector.connector:296 - MongoConnector: Starting connection thread MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs0')
2016-09-29 22:15:23,381 [DEBUG] mongo_connector.oplog_manager:196 - OplogThread: Run thread started
2016-09-29 22:15:23,382 [DEBUG] mongo_connector.oplog_manager:198 - OplogThread: Getting cursor
2016-09-29 22:15:23,382 [DEBUG] mongo_connector.oplog_manager:796 - OplogThread: reading last checkpoint as Timestamp(1475152910, 1)
2016-09-29 22:15:23,382 [DEBUG] mongo_connector.oplog_manager:769 - OplogThread: oplog checkpoint updated to Timestamp(1475152910, 1)
2016-09-29 22:15:23,384 [DEBUG] mongo_connector.oplog_manager:659 - OplogThread: Oldest oplog entry has timestamp<PHONE_NUMBER>.
2016-09-29 22:15:23,384 [DEBUG] mongo_connector.oplog_manager:220 - OplogThread: about to process new oplog entries
2016-09-29 22:15:23,384 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:24,384 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:25,405 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:26,408 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:27,410 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:28,412 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:28,620 [INFO] mongo_connector.connector:1073 - Caught keyboard interrupt, exiting!
2016-09-29 22:15:29,413 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:15:29,432 [INFO] mongo_connector.connector:362 - MongoConnector: Stopping all OplogThreads
2016-09-29 22:15:29,432 [DEBUG] mongo_connector.oplog_manager:377 - OplogThread: exiting due to join call.
2016-09-29 22:15:30,415 [DEBUG] mongo_connector.oplog_manager:371 - OplogThread: Sleeping. Documents removed: 0, upserted: 0, updated: 0
2016-09-29 22:23:21,303 [INFO] mongo_connector.connector:1062 - Beginning Mongo Connector
2016-09-29 22:23:21,312 [INFO] mongo_connector.oplog_manager:92 - OplogThread: Initializing oplog thread {'gridfs_set': [], 'continue_on_error': False, 'batch_size': 10, 'fields': [], 'collection_dump': True, 'exclude_fields': [], 'ns_set': ['test.fruit'], 'tz_aware': False, 'dest_mapping': {}} MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs0') [<mongo_connector.doc_managers.solr_doc_manager.DocManager object at 0x02C55B10>]
2016-09-29 22:23:21,324 [INFO] mongo_connector.connector:296 - MongoConnector: Starting connection thread MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs0')
2016-09-29 22:23:21,324 [DEBUG] mongo_connector.oplog_manager:196 - OplogThread: Run thread started
2016-09-29 22:23:21,325 [DEBUG] mongo_connector.oplog_manager:198 - OplogThread: Getting cursor
2016-09-29 22:23:21,325 [DEBUG] mongo_connector.oplog_manager:796 - OplogThread: reading last checkpoint as Timestamp(1475152910, 1)
2016-09-29 22:23:21,325 [DEBUG] mongo_connector.oplog_manager:769 - OplogThread: oplog checkpoint updated to Timestamp(1475152910, 1)
2016-09-29 22:23:21,326 [DEBUG] mongo_connector.oplog_manager:659 - OplogThread: Oldest oplog entry has timestamp<PHONE_NUMBER>.
2016-09-29 22:23:21,327 [DEBUG] mongo_connector.oplog_manager:220 - OplogThread: about to process new oplog entries
2016-09-29 22:23:21,327 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:22,327 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:23,329 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:24,330 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:25,332 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:26,333 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:27,333 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:28,334 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:29,335 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:30,336 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:31,337 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:32,339 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:33,341 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:34,343 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:35,344 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:36,346 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:36,668 [INFO] mongo_connector.connector:1073 - Caught keyboard interrupt, exiting!
2016-09-29 22:23:37,347 [DEBUG] mongo_connector.oplog_manager:223 - OplogThread: Cursor is still alive and thread is still running.
2016-09-29 22:23:37,458 [INFO] mongo_connector.connector:362 - MongoConnector: Stopping all OplogThreads
2016-09-29 22:23:37,458 [DEBUG] mongo_connector.oplog_manager:377 - OplogThread: exiting due to join call.
2016-09-29 22:23:38,347 [DEBUG] mongo_connector.oplog_manager:371 - OplogThread: Sleeping. Documents removed: 0, upserted: 0, updated: 0
Please do the needfu.

OplogThread: Cursor is still alive and thread is still running  is a debug message that is intended to print as long as mongo-connector is running. If you don't want to see it, decrease the logging verbosity.

Which means do you think the data is pushing to solr after readign from Mongo? I see that cursor is seems from oplog_manager.py

Are you saying that mongo-connector is not pushing data to Solr? If that's the case please post more information about your setup, command line, config file, etc.. Also please look at the Getting Started and Usage with Solr wiki.


The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.

Steps to reproduce
It happens everytime when I try to start WSA.
✔ Expected Behavior
WSA start normaly, no error message.
❌ Actual Behavior

The error is The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
Other Software
No response
Please specify the version of Windows Subsystem for Android
2305.40000.6.0

Please file a feedback hub report (Windows Key + F) under category Apps > Windows Subsystem for Android. Without this we cannot diagnose why WSA is running into an issue.

you can type on CMD Administrator
sfc /scannow

After finish scan, you can look the information on CMD, yeah this windows corrupt, and reboot for fixed.


iox-#743 Rework icediscovery example

Pre-Review Checklist for the PR Author

[x] Code follows the coding style of CONTRIBUTING.md
[x] Tests follow the best practice for testing
[x] Changelog updated in the unreleased section including API breaking changes
[x] Branch follows the naming format (iox-#123-this-is-a-branch)
[x] Commits messages are according to this guideline

[x] Commit messages have the issue ID (iox-#123 commit text)
[x] Commit messages are signed (git commit -s)
[x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)

[x] Update the PR title

Follow the same conventions as for commit messages
Link to the relevant issue

[x] Relevant issues are linked
[x] Add sensible notes for the reviewer
[ ] All checks have passed (except task-list-completed)
[x] Assign PR to reviewer

Notes for Reviewer

Please only review if there is time before v2.0

Fix typos
Fix line length
Rename event id of 'Radar' service to 'Objects'

Checklist for the PR Reviewer

[ ] Commits are properly organized and messages are according to the guideline
[ ] Code according to our coding style and naming conventions
[ ] Unit tests have been written for new behavior

[ ] Each unit test case has a unique UUID

[ ] Public API changes are documented via doxygen
[ ] Copyright owner are updated in the changed files
[ ] PR title describes the changes

Post-review Checklist for the PR Author

[ ] All open points are addressed and tracked via issues

References

Closes #743 (partly)

Please change the target branch to master

Please change the target branch to master

@elBoberido I don't think that's a good idea. I propse to bring the certain small bug/doc fixes onto release_2.0 first, and then backport them to master.

As discussed, we won't do any major changes on the release_2.0. Hence, I changed the target branch to master.

I'll re-work this as part of #1295 and close this PR once there is a new one.

I'll re-work this as part of #1295 and close this PR once there is a new one. Please do not review.

@mossmaurice
Wouldn't it be much better for the reviewers when you would use this PR to make the changes. Otherwise comments are lost and we may loose some hints and suggestions from this PR since they are not transferred.

@elfenpiff

Wouldn't it be much better for the reviewers when you would use this PR to make the changes. Otherwise comments are lost and we may loose some hints and suggestions from this PR since they are not transferred.

I'm torn between here. Of course you are right, closing a PR and opening a new one is unhandy because developers have to keep track of findings in both PRs. On the other hand my intention for closing this PR here was to ensure proper traceability. The branch name still contains a issue #743 which was closed after the Blueberry release and should not be used for v3.0. I adapted all commit messages to the new release validation issue #1295 so it's fine IMHO traceability-wise.
Please go ahead with the review if you agree, otherwise I can also close and re-open with the correct branch name.


net: netns mount/namespaces 'hang around' after containers stopped/deleted

Description of problem
After running some test cases it can be seen with mount that a number of nsfs mounts are still present on `/run/docker/netns/XXXXX' where XXX are podIDs
This can be reproduced with the test case here:
https://github.com/clearcontainers/tests/pull/491
or with the simpler case provided by @sboeuf:
$ for i in `seq 1 50`; do docker run -tid nginx; done; for cid in $(docker ps -a -q); do time docker rm -f cid; done

Expected result
I'd not expect any namespace or net mounts to be left.
Note, additionally, I think you may also be able to see the matching docker elements with a docker network inspect bridge ?
Actual result
As above, netfs on /run/docker/netns/XXXXX type nsfs (rw)' still shown with mount`

(difficult for me to get cc info in here as it is on a different machine - will attach after)
Produced with Release 3.0.2 on Ubuntu 16.04 using overlay2 as the graph backend.

@grahamwhaley I see this happen even without any soak tests. I am running tip of the tree code for all elements. Let me see what is different on my system that causes this.

This only seems to happen to me when I delete many containers.
For instance, using the 'simple' script above with 5, 10 or 20 containers, doing docker rm either linearly or all at once (single command to delete all containers), I don't see the problem.
If I up the count to 70 and use a single docker rm, then I get 46 namespaces left.
Also, in the soak test it always seems to fail on 'container-61', which I think is the 62nd container launched.  odd! (but in my head 62 is pretty near 64, which is one a nice binary-ish number).
I'll try to do some more 'binary chop' analysis to see if I identify a sweet spot tomorrow if we have no more evidence.

@grahamwhaley I am on FC24 running rawhide.

I'm slightly confused by your info @mcastelino - I too am running at the HEAD of the code base, but I am on Ubuntu 16.04. I suspect this problem is not related to a set distro or code point - I thing we've had the issue around for some time (just never logged it as repeatable).
I binary chopped with the simple test above - if I use 43 containers then it works and no netns are left around. If I use 44 then 18 netns mounts left over. My gut feeling is that this may be more likely a timeout issue (and more containers make our runtime take longer as it iterates the list doing some searches, and hence increases the time it takes to do things like shutdown and remove).
I won't get back to this until early next week now - but, if there are any clues what to look for (for example, who tears down the net namespace and where - is that the runtime or docker or CNI post hooks etc.), then put them here and I can dig/gather more info.


Update version of GitHub Actions

This PR updates the version of the following actions:

hecrj/setup-rust-action from v1 to v2
actions/checkout from v2 to v4

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

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.235%

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
27472

Relevant Lines:
30786

💛  - Coveralls


Add type providers category

The links go to github repositories instead of github.io sites. This is currently inconsistent in the list. If the github.io links are preferred, I can do the edits.

Thank you!


improved grid styling demo

improved grid styling demo

Like it, but would recommend to do this changes
function style_toggle(recid) {
    const ind = w2ui.grid.get(recid, true)
    const record = w2ui.grid.records[ind]
    ...
    w2ui.grid.refreshRow(recid, ind)
}


Clarify stage to stage dependency syntax

Currently, output variables from stage-to-stage dependencies appear to be accessible in two distinct ways, only one of which is properly documented.
When used for a condition, the proper syntax is dependencies.<stage>.outputs['<job>.<task>.<variable>']. This is well documented.
However, to map such a variable to all jobs at the stage scope, one must instead use stageDependencies.<stage>.<job>.outputs['<task>.<variable>']. The Dependencies section has the following text (emphasis added):

The context is called dependencies for jobs and stages and works much like variables. Inside a job, if you refer to an output variable from a job in another stage, the context is called stageDependencies.

The highlighted part appears to be false considering you need to use the stageDependencies syntax even at the stage scope when setting a variable. This language should be corrected. Further, on this page, there is a brief mention of the stageDependencies format being relevant at the stage level. However, the examples use it only in the context of a job, not a stage. In my opinion, an example (such as the one below) should be added to show that it is possible/required to use both syntaxes at the stage scope.
- stage: ExampleStage
  dependsOn: OtherStage
  condition: eq(dependencies.OtherStage.outputs['OtherJob.Task.BooleanVariable'], 'true')
  variables:
    otherString: $[stageDependencies.OtherStage.OtherJob.outputs['Task.StringVariable']]

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

ID: 77c58a78-a567-e99a-9eb7-62dddd1b90b6
Version Independent ID: 680a79bc-11de-39fc-43e3-e07dc762db18
Content: Expressions - Azure Pipelines
Content Source: docs/pipelines/process/expressions.md
Service: azure-devops-pipelines
Sub-service: azure-devops-pipelines-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

@prayaas-a We added a chart to try and make distinguishing between the syntaxes a little easier.


openapi link vs  hypermedia link to represent relationships in APIs

Hi All,
Suppose i have a resourse Dog and a Resource Owner. i can design Dog in openapi in the following way:

Dog:
      type: object
      required:
        - id
        - name
        - owner
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        ownerId:
          type: string

in this way the client can use ownerId to get the owner data calling the api /owners/x

    Dog:
      type: object
      required:
        - id
        - name
        - owner
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        owner:
          ref: $ref: "#/components/schemas/Error"

in this way when the client get a Dog get also all the info of the owner. The disvantages is the verbosity of response.. for each Dog the client obtain also all the info of the owner.

following the design best practices i can represent owner field as hypermedialink for ie /owners/1

    Dog:
      type: object
      required:
        - id
        - name
        - owner
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        owner:
          type: string
          format: uri

What is the best way to design this typical situation in openapi ? in general i think the third solution is better as reported in rest best practices.
But reading the new openapi feature link
Links are one of the new features of OpenAPI 3.0. Using links, you can describe how various values returned by one operation can be used as input for other operations. This way, links provide a known relationship and traversal mechanism between the operations. The concept of links is somewhat similar to hypermedia, but OpenAPI links do not require the link information present in the actual responses.
i have some doubts... reading above i understood that the better solution in openapi is to use the first solution extended using Link
    Dog:
      type: object
      required:
        - id
        - name
        - owner
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
        ownerId:
          type: string
          links:
            GetOwnerByIid:   # <---- arbitrary name for the link
              operationId: getOwner
              parameters:
                ownerId: '$response.body#/ownerId'
              description: >
                The `ownerId` value returned in the response can be used as
                the `ownerId` parameter in `GET /owners/{ownerId}`.

My idea is correct ? why openapi not suggest to use hypermedia link for relationship?

Note that links is a property of the Responses Object, not part of the Schema Object as you have it in your example. This may help you explore / visualise the links feature better.

why openapi not suggest to use hypermedia link for relationship?

The OAS does not suggest using design-time links information over hypermedia links, but in the latter case there is little OAS can do to annotate a hypermedia response which already has links in it.

Note that links is a property of the Responses Object, not part of the Schema Object as you have it in your example. This may help you explore / visualise the links feature better.

thanks for the correction.

The OAS does not suggest using design-time links information over hypermedia links, but in the latter case there is little OAS can do to annotate a hypermedia response which already has links in it.

i dont understand .. there is a way with OAS in order to associate link to string field that represent hypermedia link ? if yes could you please do an example ?
If i understood OAS links are client computed, in order to link different operations.. typically a field of the response is used as parameter of other operations. Hypermedia link is typically URI of other resourse.
Suppose i have a field
owner:
type: string
format: uri
example: /owners/1
It would be useful if OAS allow to use this field in link definition in order to describe that the content of owner field is the link to operationId getOwner.
Is it possible actually ?
if not @MikeRalphson , what do you suggest  for my example Dog -> Owner ? how would you design  in OAS the entity Dog and  the relationship with Owner ?
Thanks a lot,
Dario


Release 0.5.1

Coverage increased (+0.005%) to 83.901% when pulling fdd6833043b09d3eab03219d719ae521036d1db2 on mziccard:release-0.5.1 into 09ad52ad44126be31a1c57e31823d77c36dc78f6 on GoogleCloudPlatform:master.


feat: add fileviewer component

What was done
Added new fileviewer components which is going to be used to display files (images and pdfs) added by a user in the form.
How was it done
Took inspiration from the other Xviewer components and created new files for the fileviewer.
Why was it done in this way
This is how its done for the other Xviewer components
How was it tested

Task linked: CU-2r0p5uz Skapa FileViewer komponenten i formbuildern


Disalow to set arbitrary environments for plugins

also split the different step types in our json schema to lint accordingly

ok I did go throug all the documentation and using environment in combination with settings was never showcased once and never mentioned either.
The plugin documentation is a bit lacking and can be improved.
but based on our consensus to count changes of features we never have documented as non breaking, this is non breaking! :tada:

FWIW, this broke my pipeline, do you have suggestions on how to migrate this to a working configuration?
I need to set both environment and settings to workaround a drone compatibility issue:
merge-docker-image-arm:
  depends_on: [build-docker-image-arm]
  when:
    - evaluate: 'platform == "linux/aarch64" && UBUNTU_IMAGE == "ubuntu:22.04" && CI_PIPELINE_EVENT == "tag"'
  image: plugins/manifest
  failure: ignore
  environment: &docker_manifest_env
    # Legacy env var to prevent the plugin from throwing an error
    # when converting an empty string to a number
    PULLREQUEST_DRONE_PULL_REQUEST: 0
  settings: &docker_manifest_settings_tag
    <<: *docker_credentials
    target: "something"
    template: "something:${CI_COMMIT_TAG}-ARCH"
    tags:
      - latest
      - ${CI_COMMIT_TAG}
    platforms:
      - linux/amd64
      - linux/arm64

uh that should land in our compatibitity layer instead!
I'll send a pull and you can use that and drop your workaround

If you encounter an similar issue please open a new issue and only link this pull :)
locking now


Make it easier to add a custom emission

the add_component allows the user to define a new emission.
This emission only needs to provide a signal(nu, **kwargs) method that returns the emission in uK_RJ, the input component is not a class but a already initialized object, already with the correct nside, pixel_indices and so on.

See for example https://github.com/zonca/pysm_interpolating_component


Database Couruption over NFS

⚠ Please verify that this question has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I run over 64 containers and 30 stacks that use ether mariadb or postgress both of which are accessed through a nfs share. Out of all these databases Uptime is the only one that gets corrupt. The last time i set it up it did fine for 6 months then all of a sudden it could no longer load.
📝 Error Message(s) or Log
I deleted stack once database was courrupt out of frustration since i have over 100 devices it monitors.
🐻 Uptime-Kuma Version
1.23.11
💻 Operating System and Arch
Docker on Debian amd64
🌐 Browser
Firefox
🖥 Deployment Environment

Runtime:
Database:
Filesystem used to store the database on:
number of monitors:

I know nfs isnt a good idea for database but any help or tips to keep my config would be awesome. The only reason i depend on nfs is because i use docker swarm and with my HA environment it makes it so much easier for swarm to relocate container if a host goes down.

Please refer to the wiki.
This is a fundamental limitation of nfs not implementing proper locking which sqlite cannot handle. We cannot get around this limitation of the file system.
Depending on your nfs variant or deployment strategy, there might also be other factors at play.

[!WARNING]
Filesystem support for POSIX file locks is required to avoid SQLite database corruption. Be aware of possible file locking problems such as those commonly encountered with NFS. Please map the /app/data-folder to a local directory or volume.

Please see https://github.com/louislam/uptime-kuma/issues/2668 for a more detailed discussion

We also caught the same issue on the Fargate + EFS. It's a production one, and the issue is, you cannot quickly jump in into the fargate container or EFS and manipulate the stuff, like at the OpenShift.
Is there a way how to give it a RDS? I don't want to switch to the EC2 host for the ECS, because it's way too much for this thing.

Please see #4500
Mariadb/mysql support has writing a data-migration from the v1 to the v2 datamodel left.
If you want to chip in...


Doesn't work with zero w

Does this code work for you? It sends data but pixels don't work.

No it is still in development I am working with the board creator to debug, I guess I will make note of that. should be soon

Can you describe the problem you've faced? Maybe I can help to find a solution.

We're talking about the same board, right? https://www.tindie.com/products/electromage/electromage-serial-to-8x-ws2812apa102-driver/ I have formatted the data being sent in specification to the creator's documentation, and have cross checked the CRC code with other applications. Bit for bit, it should be in order. Maybe the Serial call requires more configuration? I have no way to debug currently.

Yes, the same board. I've investigated the firmware code for this product https://github.com/simap/pixelblaze_output_expander/blob/master/firmware/Core/Src/uart.c and  it seems that the different crc table is used. Could it be the reason?

I don't think so, the CRC table I used was copied from https://github.com/simap/PBDriverAdapter/blob/master/src/PBDriverAdapter.cpp
Both tables yield the same 4 bytes, the difference I believe is in 4 bit vs 8 bit hashing (guessing that the 8bit uses more memory, but less cpu cycles...)

I have one question: does this board come with preinstalled firmware or should I butn a binary inside?

I'm pretty sure it is preinstalled. This board is primarily a solution for pixelblaze owners. Let me know if you make any progress

I kind of solved this issue however I'm not sure if the problem is with raspberry or with python. I changed baud rate to 2304000 and it helped. Can you try it on your end and let me know?

I am still not seeing pixels, but an orange LED on the expander board seems to be lighting up at the very least (not sure what this means, it was not lighting up before). Is that the only modification that you made? I will try on different strips and my pi4 later tonight

Yes, I've changed only baud rate - the rest of your code is unchanged. Maybe this thread will help https://raspberrypi.stackexchange.com/questions/47461/how-to-set-non-standard-serial-port-speed

Confirmed! Thank you so much! I will be finishing up this bit of code so that it resembles neopixel_write in the next couple of days.

I uploaded a working and slightly optimized version. Would you be able to confirm it's working state? There is test code at the bottom, and it took me a minute to decide on the structure of strip configuration but I decided on a list of dictionaries (a list item that is a dictionary for each strip that is connected) This board technically supports 64 channels so this might be the easiest way to deal with setups that have odd configurations....
Anyways I did not deal with timings which I should probably figure out (or maybe this should be the user's responsibility?) , but I was getting 200 FPS on ws281x strips on a pi zero w.

I can confirm the code is working now, the issue can be closed.
A side note: I've noticed that you use a 240 LEDs limit for a channel. I've made some calculations and it seems that it should handle 620 LEDs per channel with 48 FPS.

I noticed this, I put in the wrong values. Thank you, I will be changing this...
PS I am cythonizing this driver, pure python has WAY TOO MUCH overhead to be viable as a driver. It should be completed in the coming days.

I myself am using JS as I have a web server that controls LED strips as well as remote controller connected to USB. Also, some of the strips are connected to ESP32s which I control from the same code via wifi. You can check my code here.

That's really cool, you control the ESP32s via wifi with a server? Very clever and minimalistic approach for multiple spaced out light projects. What kind of bandwidth can you pass through the network?  I see you have a compression fork too, can the ESP32 handle higher framerate setups while also decompressing data? I do not know much about ESP32s

As I use a super simple compression (sequences of (length, color) pairs) decompression doesn't ask a lot of resources - actually no overhead at all, because with no compression I loop through data but with compression I loop using length parameter as a counter. I've made this to solve the memory problem as the memory on ESP is very limited and micropython runtime uses a lot. For my animations I prepare and cache all colors and then display them from memory instead of recalculating colors on each step (you can see that I try to use sinusoidal formula for fade in/out because it looks better). But if I have a lot of different frames then I need a lot of RAM to prepare all values. This compression solves RAM problem.
As for FPS - my code is optimized enough and the bottleneck for FPS are LED strips themselves. You can't get like 48 FPS with more than 600 LEDs. And I could get only one output pin working at a time.
The other limitation of ESP32 is it's storage. My config file grew with time and used a lot of space. At some point it became so big that I couldn't load it because I didn't have enough RAM.
Also, working with ESP32 often means code, upload, test, debug cycle which is quite slow.
ESP32 solution works only for simple cases where you don't have a lot of different animations and you don't care about WiFi latency.

As for bandwidth - I store config files on ESP32s and I send only a sequence name to them, so I don't really care about bandwidth. ESP32 finds the sequence in a config file and enables it. I wanted to make a wifi update of config files but then I decided to get rid of ESP32s in favor of raspberry + expander.

That's interesting, thank you for sharing. Does not sound simple to work with, I might steer clear of the esp32 outside of finished projects. The potential for high FPS of the the expander board is what drew me to it, I aim for 200+ fps. What I am finding is that the 2million baudrate is really only conceivable for light setups with less than 300 pixels, as that quickly becomes the bottleneck (every pixel refresh is essentially 24 baud). My setup is very high level, and I essentially do multiple math and ifs on every pixel for every refresh, I am quickly finding that python should not be the language of choice (due to overhead) for this type of thing, if you ever do venture into the such

You can avoid 2m bottleneck by implementing some compression on expander, like I did on ESP32.


fix: better handling of boot order when running v.CloudInit() method

Fixes running the v.CloudInit() method in the case that the boot devices parameter is unset. (Of course I wouldn't expect such a VM to boot, but I intended to set that option after feeding it a cloud-init ISO anyway, so I was surprised that it failed...)
Also adds some functions for messing with boot devices in general. Mostly because I'm extremely undecided with how we should alter the boot order when doing the CloudInit() method, or if we should even alter it in the first place.
I'm guessing the reason this method changes the boot order is to make sure that the added cloud-init ISO is not the first boot device? So I'm not sure if we should just remove it from the boot order entirely, or if we should set it to the last boot device.
I'm not marking this as a draft because it's working code that's certainly not going to cause issues merging in, but there's an unused function in here and in general I can be pretty verbose in my function naming...

@b- i can see you're trying to make some things more useful for people by exporting some common funcs to do bootstrings. If you want to give people something like this perhaps it's time to do a BootString type with all of these things as receiver funcs? i like where youre going with this overall but i think it could be better and if we're going to add this either as is i'd say pull everything internal so there is no new api or let's just go for it and make an official type with these ideas available to people implementing this package in their code

@b- i can see you're trying to make some things more useful for people by exporting some common funcs to do bootstrings. If you want to give people something like this perhaps it's time to do a BootString type with all of these things as receiver funcs? i like where youre going with this overall but i think it could be better and if we're going to add this either as is i'd say pull everything internal so there is no new api or let's just go for it and make an official type with these ideas available to people implementing this package in their code

That all sounds good — I agree. I just don't really know how to do it better or else I would have! 😅


Duration of 0ms is not shown

It seems toHumanReadableDuration will return an empty string.

 It actually returns an empty string.
As the function does not take unit as input, return '0' or 'just now' could be reasonable result. Sounds good? Meanwhile you can change your code to toHumanReadableDuration(0, true) || 'just now'. This also works in angular template.
BTW: I don't prefer add any default unit, e.g ms or us.

Fixed by showing 1<ms, if the input is less than 1ms. (No round operation will be done internally, because it involves extra operations. See this https://stackoverflow.com/questions/11832914/round-to-at-most-2-decimal-places-only-if-necessary/35715420#35715420)


Implementation of defaultTimePickerLayoutType

Proposed Changes
Implementation of defaultTimePickerLayoutType with the new WindowInfo api.
Copy of the Android implementation.
Testing
Test: display timepicker with different window aspect ratio

Composable getters still doesn't compile for JS?
java.lang.IllegalStateException: IdSignature clash: androidx.compose.material3/$get-defaultTimePickerLayoutType$$composable|-5926282884669978367[0]; Existed declaration FUN name:$get-defaultTimePickerLayoutType$$composable visibility:internal modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:androidx.compose.material3.TimePickerLayoutType clashed with new FUN DEFAULT_PROPERTY_ACCESSOR name:$get-defaultTimePickerLayoutType$$composable visibility:internal modality:FINAL <> ($composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:androidx.compose.material3.TimePickerLayoutType

BTW, this can be commonized too. There is already a getScreenHeight function.
If there'd be the same function for width or just one for size
@Composable
@ReadOnlyComposable
internal expect fun getScreenSize() : DpSize

then aspect ratio condition can be written in common


DRILL-7979: Self-Closing XML Tags Cause Schema Change Exceptions

DRILL-7979: Self-Closing XML Tags Cause Schema Change Exceptions
Description
Self closing XML tags are dealt with strangely by java's streaming parser.  If you have data where you have one row containing a self closing XML tag foo () but then in the next row foo contains a map or other nested field, Drill will throw a schema change exception.
This proposed fix causes Drill to ignore self-closing tags unless they have attributes, which allows data like this to be successfully queried.
For instance, prior to this PR, the data below would not work, but now can be successfully queried.
<row>
  <foo/>
  <bar/>
</row>
<row>
  <foo>
     <f1>v1</f1>
     <f2>v2</f2>
   </foo>
   <bar/>
</row>

Documentation
No user facing changes.
Testing
Added additional unit test and tested manually.

Perhaps we should be trying for consistency with what Drill does for analogous JSON data.  Querying this document
[
	{
		"foo": null
	},
	{
		"foo": { "bar": 0 }
	}
]

gives you
foo      |
---------|
{}       |
{"bar":0}|

.  The null value becomes an empty map, but things are different to my earlier comment.  Adding an object with an int property {"foo": 2} returns an error, not a map with a special key {'__value__' : 2 }.  Somehow Drill is able to delay its decision on the column type until the ocurrence of the first non-null value.  Is this something that's possible with Easy format plugins?

I started out adding specific, implementation-level comments but I've paused that to back off and ask: is this really a self-closing tag thing, or is the situation the same for any empty element that also occurs as a parent element? In my tests on master. the problem is the same for either of the following, which I believe are also equivalent in the XML spec.
<!-- self-closing -->
<foo/>

<!-- just empty -->
<foo></foo>

If I've got right end of the stick here then I suggest that we adjust all the naming to refer to the "empty element" case, rather than the "self-closing" case.
Next, following on from our comments on Jira and the idea of using maps for this case, what do you think of the following approach?

When our first encounter with an element foo is empty, and therefore ambiguous in terms of type, we default to the non-leaf case and make it a map.
For subsequent parent foo elements we return populated maps.  For subsequent empty foo elements we return empty maps.
For subsequent leaf elements <foo>bar</foo>, which we would normally map to varchar but where we find that we've already got a map from step 1, we put the element value into the map under a hardcoded special key, e.g. { '__value__': 'bar' }.

The above will also work in the case when the first element encountered is empty but has attributes <foo a='b' /> while the element discarding logic in the present patch does not discard such elements. If you're not crazy about this it's no problem and I've probably got a couple more specific remarks to add on the implementation.

@dzamo Thanks for the response.  The real issue is that we don't know the schema as we're scanning the file, so we have to do the best we can.  The issue is that with the empty fields (self-closing or otherwise) we don't really know what they are until we see real data.  For instance, if we decide to make them an empty map, we'll get an error if the next record shows up as a scalar.  The current approach was to treat empty fields as scalars which then causes issues if we encounter a map in the next row.
You asked in an other comment about perhaps treating all empty elements in the same manner.  There was a specific challenge as to how the self closing tags which is why I made this PR.  I'm actually working on another project to get the XML reader to download a provided schema (the XSD link) which would actually solve a lot of issues reading XML.

Yes, I think I did grok the unknown schema problem.  The thought above, which somehow escaped all the striking out I did to it after thinking a bit more, was to take advantage of the fact that scalar string can be embedded into a single element map.  The tuple generating code would need to become aware when it should do this.
My second comment's comparison of the situation with a JSON property that is first null, then an object, is also a bit dubious because empty XML elements do not represent nulls (from I what read) so much as zero length strings.
If there is an effort to make querying XML behave in a more similar way to querying equivalent JSON, for some definition of equivalent, it should probably wait for another PR.

Yes, I think I did grok the unknown schema problem. The thought above, which somehow escaped all the striking out I did to it after thinking a bit more, was to take advantage of the fact that scalar string can be embedded into a single element map. The tuple generating code would need to become aware when it should do this.
My second comment's comparison of the situation with a JSON property that is first null, then an object, is also a bit dubious because empty XML elements do not represent nulls (from I what read) so much as zero length strings.
If there is an effort to make querying XML behave in a more similar way to querying equivalent JSON, for some definition of equivalent, it should probably wait for another PR.

I think you're right about that.  From what I remember, there is an option for Drill's JSON parser to treat NaN and something else as null.   For XML I don't know how you'd distinguish between an empty string and null.
This was also an issue with some data I was working on.  The JSON version used empty strings to denote null then subsequent rows would contain maps which would cause SchemaChange exceptions.  The only way to fix that was to use the UNION data type.

@dzamo Are we good to go on this PR?

Now that I test master again after this merge, both the self-closing and long form empty XML element cases work perfectly.  As with the JSON example above, an empty <foo></foo> followed by a parent <foo><bar>1</bar></foo> results in a empty map for the <foo></foo>, while before the merge I got an error.  I have to confess that I couldn't see all of this getting sorted about by this PR, which seemed focussed on self-closing tags only, but perhaps I was testing an old build in the first place.  Nice one!


Pact Mock Service version number CLI

I'm trying to get every developer on the same page, and that's not exactly easy when you don't know what version of pact that they're running locally.
This is why I'd like to create a quick plugin that checks to see if they're using the correct pact version when building/developing, but there doesn't seem to be a way to get the version number from the command line.
This, I imagine, would be a very simple feature that can add a lot of benefit for us and others.  If I have time, I might implement it myself (first foray into ruby!).

Luckily, this is a solved problem! The way to get every developer using the same version of the mock service is to create a Gemfile for your project, specify the version of the mock server you want to use, and run the mock service using bundle exec pact-mock-service. Both the Gemfile and Gemfile.lock should be checked into the project. There will be no need to ask the service what version it is - you will know already.


Questions for consultation

X,Y,folds,= DataPreparation(data_input_file)
avg_acc, avg_recall,avg_f1= Train(X,Y,folds=args.folds,batch_size=args.batch_size,epochs=args.epochs,learning_rate=args.learning_rate)
ReportAccuracies(avg_acc, avg_recall,avg_f1 )
Should the value of the parameter folds=args. folds be changed to folds??
When I finish modifying and execute the code again
File "G:\yanjiu\lunwen1\erqu\基于 Transformer 的深度反向注意力网络，用于多感官人类活动识别\RevTransformerAttentionHAR-main\main.py", line 21, in
run(data_input_file)
File "G:\yanjiu\lunwen1\erqu\基于 Transformer 的深度反向注意力网络，用于多感官人类活动识别\RevTransformerAttentionHAR-main\main.py", line 16, in run
avg_acc, avg_recall,avg_f1= Train(X,Y,folds=folds,batch_size=args.batch_size,epochs=args.epochs,learning_rate=args.learning_rate)
File "G:\yanjiu\lunwen1\erqu\基于 Transformer 的深度反向注意力网络，用于多感官人类活动识别\RevTransformerAttentionHAR-main\train.py", line 27, in Train
model=model_design(img_rows,img_cols,n_class)
File "G:\yanjiu\lunwen1\erqu\基于 Transformer 的深度反向注意力网络，用于多感官人类活动识别\RevTransformerAttentionHAR-main\utils\model.py", line 37, in model_design
lay2 = tf.keras.layers.LSTM(32, return_sequences=True)(layer2)
NotImplementedError: Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported

The folds depends how many folds you want to have for cross validation

for i in range(0, len(folds)):
Folds is of type int and has no length
def Train(X,y,folds,batch_size,epochs,learning_rate):
# Define the number of folds
avg_acc = []
avg_recall = []
avg_f1 = []
avg_prec=[]
n_class = y.shape[1]
_,img_rows, img_cols = X.shape
for i in range(0, len(folds)):
train_idx = folds[i][0]
test_idx = folds[i][1]
X_train = X[train_idx]
X_test = X[test_idx]

折叠次数取决于交叉验证所需的折叠次数
for i in range(0, len(folds)):
Folds 类型为 int，没有长度
def Train(X,y,folds,batch_size,epochs,learning_rate):

定义折叠次数
avg_acc = []
avg_recall = []
avg_f1 = []
avg_prec=[]
n_class = y.shape[1]
_,img_rows, img_cols = X.shape
for i in range(0, len(folds)):
train_idx = folds[i][0]
test_idx = folds[i][1]
X_train = X[train_idx]
X_test = X[test_idx]

args. folds indicate how many folds you need. Whereas the function you did indicate here indices for the train and test split

Thanks for the issue I'm gonna amed the repository for a minor flaw


set a priority parameters depending on the player type ?

It would be nice to have a "priority" parameter for the different players.
EG. I would always prefer having Youtube playing before Soundcloud.
Would that be possible ?
It could be something like this
<ReactPlayer
  url={url}
  config={{
    youtube: {
      priority:1
    },
    soundcloud: {
      priority:2
    }
  }}
/>

Understood, but in my case, it could : I use an API to get audio (streamable) links based on a track.  But, for instance, I could prefer playing Soundcloud links before Youtube links.
Anyway, I made it within my React Playlister component.


MoveNet performance is not as expected on android

We tried running MoveNet lightning on android (https://tfhub.dev/google/lite-model/movenet/singlepose/lightning/3) and results are not as we expected. We achieved a latency inference of 70 ms on average for Sony Xperia10 plus phone on gpu. The MLKIT lite model gave us around 35ms performance average while running on cpu. Is this performance expected by MoveNet for android?

@ameygrytfit , please check with the newer version-4 which might provide a faster inference.

+1 to @arghyaganguly . There was a bug of TfLite version 3 model which prevents the model to be run on GPU. Could you please try version 4 (https://tfhub.dev/google/lite-model/movenet/singlepose/lightning/tflite/float16/4)? FYI, based on our own benchmark result, the lightning model runs at 25 ms latency on Pixel 5 with GPU.

@yuhuichen1015 @akhorlin @arghyaganguly I tried running the (https://tfhub.dev/google/lite-model/movenet/singlepose/lightning/tflite/float16/4) model on android as suggested by you guys with this pose estimation example https://github.com/tensorflow/examples/tree/master/lite/examples/pose_estimation and got the following error :java.lang.IllegalArgumentException: ByteBuffer is not a valid flatbuffer model . Can you kindly let me know what I must be missing here?

@ameygrytfit I cannot access your example "pose_estimation" code and so it is difficult for me to understand what's going on with the error. Could you take a look at the tutorial https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/movenet.ipynb and see if you run the model in similar way?
I'd first look at the input tensor type as from v3 to v4, we changed the input tensor type from float32 to uint8. Other than that, the two versions should share pretty similar usage.

@yuhuichen1015 Sorry for the typo in the links. The solution you provided worked fine on android! Thank you!

Closing this based on the above comments.Thanks.


Add dev-tools list of useful packages

Leaving as draft for now for people to submit suggestions

Closing. Low interest


add checking GOROOT environment variable

If there is no GOROOT environment variable, 'operator-sdk add api'
fails.
see https://github.com/operator-framework/operator-sdk/issues/1854#issuecomment-525132306

Description of the change:
Motivation for the change:

Technically, GOROOT only has to be explicitly set if the user's GOROOT is different than the GOROOT used to build the binary.
However, given that different maintainers create the release artifacts and that they have different environments themselves, there's no guarantee that the build GOROOT would be consistent release to release. There's also no way to determine what the build GOROOT was at runtime. So it seems to me that setting GOROOT is something most users who are not building from source are probably having to do.
There may be a way to solve this in the SDK binary itself, so that users do not need to worry about this at all. Something like the following is what I've been thinking of adding in the code generation code where this problem arises:
out, err := exec.Command("go", "env", "GOROOT").CombinedOutput()
if err != nil {
    // handle err
}
if err := os.SetEnv("GOROOT", string(out)); err != nil {
    // handle err
}

I think solving it in the SDK binary itself is better than checking GORROOT too, so I will close this PR.
Thanks.

@t-matsuo Would you be interested in working on a PR to solve it in the SDK binary?

@joelanford  I'm interested in it, but I am beginner at operator-sdk. I want someone to create a patch.


Make selinux_enabled bool, instead of string

Adapt init and testsuite

In hindsight this is definitely correct, however as it stands this would be backwards incompatible (ie. it would break for anyone using it at the moment) which I'm loath to do for something this small.
However, I think if you change it to the following everything will be happy.
validate_bool(str2bool($selinux_enabled))

This should fail for any old random string, but pass happily for a real boolean or for the strings "false" or "true". I've just tried that out briefly but adding a few additional tests would be useful to confirm that.
Thanks again, improvements like this to the interface are much appreciated. And apologies for taking a while to get back to the issue.

We could possibly change the default for this parameter false, but now that support for priveleges and such are much more stable, especially on RHEL systems, it's a poor choice for a default.
Setting it to default true would cause problems for compatibility on RHEL/CentOS majversion 6 OS's, since the latest docker packages available there are 1.7 (which don't have selinux support).
Overall, this one probably needs some additional logic in manifests/params.pp to keep from having to enter this param as a string.

aaaand I just saw @garethr 's comments.  I canceled the review my comments triggered. I landed on the diff page when searching the repo for selinux_enabled issues/MR's.
Is there a backwards compatible way to do something like the puppet 4 Variant type validator?:
class docker (
  Variant[Boolean,Undef],
)

Hi!
@garethr , could you implement this without me? I'm no longer working on that particular "project" here and therefore I'd have a hard time in testing it :-/
KR,
Oliver

Closing this PR due to inactivity, @ofalk if this is still needed please re-open the PR


[DOCS] Inconsistent monorepo const name

Describe the issue
When vending a new project for typescript via:
pdk new --package-manager=pnpm monorepo-ts

You are vended the project as:
import { javascript } from "projen";
import { monorepo } from "@aws/pdk";
const project = new monorepo.MonorepoTsProject({
  devDeps: ["@aws/pdk"],
  name: "nib",
  packageManager: javascript.NodePackageManager.PNPM,
  projenrcTs: true,
});
project.synth();

With const project as the monorepo name. And monorepo being an import from the @aws/pdk project.
Discrepancy
In the documentation for many pages, the const monorepo is used as the name (or expected to be used)
i.e
const website = new CloudscapeReactTsWebsiteProject({
    parent: monorepo,
    outdir: "packages/website",
    name: "website",
    typeSafeApi: api,
});

Which may lead to some confusion. Particularly since monorepo is already imported by the generation.
This is also apparent on the Your first AWS PDK Project page where there is an example of the code generated in an IDE and then the code example further down swaps from project to monorepo :

Links
https://aws.github.io/aws-pdk/getting_started/your_first_aws_pdk_project.html
https://aws.github.io/aws-pdk/developer_guides/cloudscape-react-ts-website/index.html
https://aws.github.io/aws-pdk/developer_guides/infrastructure/index.html
Pretty much wherever there is code snippets it's different to the generated code.

Hi Josh,
Thanks for your feedback.
Unfortunately projen's codegen is a little primitive and doesn't allow renaming variables so it defaults to project. We rename the variable from project -> monorepo for better readability as project is a little vague. This is actually noted as an inline comment within the Type-Safe API snippet you posted above. Do you have a suggestion on how this could be made clearer?

Ah, shame about the limitation, no particular suggestions if that can't be changed.


Scripts are now available as casks

I’m submitting this as an issue instead of a PR because I don’t know where, if, and how much of this information you’d like to include. If you want to give me some pointers in that regard, I can work on a first draft.
The scripts in this repo are now available as casks. What this means is if you have homebrew-cask installed, you can brew cask install convert-video detect-crop query-handbrake-log transcode-video to install them all at once (or pick just some, naturally), with their respective dependencies.
All the dependencies are satisfied via homebrew and homebrew-cask, according to the table in the README. The only difference is handbrakecli as these casks, when depending on it, will install handbrakecli-nightly instead, since you seem to favour it. If you believe the non-nightly version should be installed by default instead, please let me know so the correction can be made.
I’ve set them all as version 5.3 since they all download the same package (the complete source from github) and this gives some consistency to track them. Their sha256 will, naturally, need to be updated with your changes (even changes to the README, now that I think about it).
When installing these with homebrew-cask they’ll be slightly renamed (will lose the trailing .sh), and be linked by default to /url/local/bin (can be easily changed at install time with the --binarydir flag).
We haven’t yet implemented an upgrade verb, though, which means that to install an update, you need to know it exists and tell homebrew-cask to download and install the new version.

Vítor,
Thank you for making a cask of my scripts. I was just asked about something this on Twitter today. :)
Why are you renaming the scripts on installation? I don't want my scripts to be renamed in this fashion as it will make it very fragile for me to ever have one call the other, something I was considering for the future. So, I can't endorse the project with that behavior.
Also, please don't install handbrake-nightly since the nightly build currently breaks the scripts. I am no longer recommending nightly builds.
Thanks.

Even though we don’t yet have rules for when it’s acceptable or not to rename cli tools (we do have them for GUI apps), users and contributors generally seem to care about and like this type of “normalisation” for CLI tools, so it was done with that in mind.
Having the scripts break on interoperability due to such a preventable change on our side would, naturally, be unacceptable, so those modifications were already corrected and merged, including using the stable version of handbrake-cli.

Cool! Thanks for the quick response and update. That's awesome. :)
I'll write a draft of the update to the README here so you can comment before I submit it. But it'll have to wait until I'm back home to do a test install. Probably later tonight.
If you want to write any draft yourself, feel free to do so. You're the expert on how it works.
Thanks again!

Oh, obviously I'll leave this issue open while we work on this.

Vítor,
Sorry, I got sick yesterday evening so I didn't work on this last night. I'm still sick but I'm trying to look at this now.
I just noticed a problem with the ffmpeg dependency. A few weeks ago, the maintainers of the ffmpeg formula for Homebrew decided to change the default options to avoid some licensing issues when building it as a bottle. That meant they disabled both AAC encoders. And this broke convert-video.sh.
A few days ago, I updated my README file to explain that when installing ffmpeg you now have to do this:
brew install --with-faac --with-fdk-aac ffmpeg

Is it possible to add this to your formula?

Please Don, screw software, health first1; look at this at your convenience. Unfortunately we don’t have the option to provide install flags to homebrew dependencies, no, but I’ve already opened an issue so we can work on it.
If you want to close the issue in the meantime (since I can’t give a time frame for implementation), please feel free to do so (lingering issues can be annoying), as I’m confident I won’t forget to report back when we have a resolution (or an impossibility).

1 Unless said software improves health, I guess.

Love that footnote. :)
And thanks for opening that issue! I didn't realize that wasn't possible yet.
The good news is that convert-video.sh still works correctly in the common case without those AAC encoders in ffmpeg. The bad news is that I found out about it from multiple users who are obviously applying that script in uncommon ways. Oh well.
I'll leave this open for now as I plan to get back to this in a few days, depending upon recovery time and how long it takes me to complete version 5.4 of transcode-video.sh which I stupidly promised to people by this weekend.
BTW, to document this correctly, I think I may need to reverse the order of the "Requirements" and "Installation" sections of the README. Or maybe even combine them. Not sure yet.

As one of the folks on Twitter asking about this, thank you!!

BTW, I'm still working on this. I just don't like anything I've written so far. I'm now trying to merge the "Requirements" and "Installation" sections and then create sub-sections for manual and then assisted installation via Homebrew.

any news on this and availability via homebrew?

@daDnaK To be clear, it is already available, only the documentation is missing.
You can get them all via homebrew-cask with brew cask install convert-video detect-crop query-handbrake-log transcode-video.

ah cool, thx. Worked as expected!

Closing this, since the new version is encouraged. Will also be removing these from homebrew-cask, so users don’t install them by mistake (and then open bug reports for unrelated versions).
Thank you for the continued work on these, Don.

Why not add the new version to cask?

Vitor,
You are very welcome, sir!
Erin,
Since the new version is a Gem, I don't think a Cask is necessary for the tools themselves. But it might be handy to create a Cask of the dependencies.

So what is now the recommended way to keep these tools updated? Would it be possible to install this via homebrew and keep it updated that way?

Am 06.05.2015 um 20:50 schrieb Don Melton<EMAIL_ADDRESS>Vitor,
You are very welcome, sir!
Erin,
Since the new version is a Gem, I don't think a Cask is necessary for the tools themselves. But it might be handy to create a Cask of the dependencies.
—
Reply to this email directly or view it on GitHub https://github.com/donmelton/video-transcoding-scripts/issues/8#issuecomment-99571580.

The recommended way to keep the tools updated is simply to update your installed Ruby Gems:
gem update

ah cool! Perfect, thx!

sigh, Yet Another Package Manager. But I hear you Don, thanks for the great work you've done.

@edalzell As Don said, homebrew-cask would not add much by adding the new version there. In fact, it could even be harmful, were it to become outdated.

sigh, Yet Another Package Manager.

Yes, but that one is already installed by default.
As for

But it might be handy to create a Cask of the dependencies.

We actually started discussing that idea a while back, the concept of metacasks, but nothing as come of it yet. There is, however, a solution officially supported by homebrew, homebrew-bundle, that could be used for this. If it supported Brewfiles (files that describe what to install) loaded via a url (it does not) then one could be officially supported and a single command given to take care of all dependencies.

@vitorgalvao That home-brew-bundle idea is promising. Dang. Wish it had all those features. Especially since I simplified the dependencies for the Ruby version, e.g. FFmpeg doesn't require a special build anymore.

FFmpeg doesn't require a special build anymore.

I noticed that, it was pleasant to see. Always great when there’s one less thing to worry about.

That home-brew-bundle idea is promising. Dang. Wish it had all those features.

It does have a --file flag to use a specific file (instead of the one in the current directory, which is what it does by default), so in theory there could be a “curl this file and then brew bundle it” command, but that’s really ugly: two long commands with command flags, urls, and file locations. The commands currently in the requirements section are definitely more elegant: even if being six, they’re short, easy to understand, and outright look good in the flow of the document.


Disable control bar if native controls are visible

Keeping the right click menu seems to be desired behaviour for this library

https://github.com/muxinc/media-chrome/commit/a498bb15a5b9eebacc177e21e8206ffcbc717940
https://github.com/muxinc/media-chrome/issues/299

So if a user enables the native controls it would be beneficial to turn off the control bar component.
I've tried using css to do this but the video/audio tag being in the shadow dom makes it impossible (as far as I know)
media-controller [slot="media"]:has([controls]) ~ media-control-bar {
  display: none;
}

So I've created this PR on custom-media-element which enables this css to work
media-controller [slot="media"][controls] ~ media-control-bar {
  display: none;
}

I'm creating this issue to see if this css should be added to the default css of <media-controller>?

Did that work for you? I'm testing the idea in Chrome (Canary) and it doesn't look like it works. When I right-click and select "show all controls" neither the controls attribute or property are updated.
If Chrome isn't actually publicizing that change in any way then I think we'd have to disable the native right-click menu and create a custom one.

Hmm, that's unexpected. It works in firefox and safari.
It doesn't look like chrome is updating the controls property of the video tag at all. No attribute and even querying the controls state through JS returns false. The spec says controls must reflect the state. So I think this is a chrome bug.

I found this https://bugs.chromium.org/p/chromium/issues/detail?id=632434&can=1&q=attribute component%3ABlink>Media>Controls in which google disable this behaviour on purpose to ensure the user choice can't be overridden. Kind of annoying because that's exactly what my PR was intending to do.

Seems kind of moot too since you can block most users from using the native menu.
Is there a main reason why you want the right click menu controls to be useable in addition to the media chrome controls? Or what's the use case where this would be a common problem?

I personally wouldn't want the right click menu to be available, especially if it means two ui's can be visible. But I found those past issues where it was explicitily turned back on so wanted to find a solution that respected those past choices, but never allowed a situation where two sets of controls are visible. This seemed to be the best way to do that.
I think I'm still going to file a bug on chromium for this, it's not only moot because right click can be disabled, I think it actively encourages less user choice, going completely against the spirit of the original issue. No ui library is going to allow the native right click menu if it can cause two ui's to be visible.

Starred!

Going to close this for now since it doesn't sound like there's a clear and immediate next step for media chrome. Feel free to reopen.

That's fine, I've closed the PR on custom-media-element too, no point pursuing if chrome doesn't support it. It would be nice to use native UI to give the users a choice but they've made it so we can't 🙃
I do think media-chrome will need to offer a way to disable native right-click now though.


Solaris support.

There are official Solaris downloads available which I know work fine, so seems reasonable to support downloading and using them.

Thanks. Will add this as soon as possible.

Thanks!


Hangs with integer matrix

The following code runs correctly:
let m = matrix [[1.0; 2.0]
                [3.0; 4.0]]

printfn "%A" m

However, upon changing m to integer values, the program hangs:
let m = matrix [[1; 2]
                [3; 4]]

printfn "%A" m

Matrix<float> works correctly, but there seems to be an issue with Matrix<int>.

That looks like a bug to me. It is correct that it doesn't work with integers, but it should throw an exception. Thanks for reporting this!

I tried to reproduce the hang but failed. Instead a got an exception as expected:
System.TypeInitializationException: ---> System.NotSupportedException:
Matrices and vectors of type 'Int32' are not supported.
Only Double, Single, Complex or Complex32 are supported at this point.

Can you try to provide a repro where this causes a hang?


⚠ Samsung has degraded performance

In 915f9e8, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2637 ms

Resolved: Samsung performance has improved in 4871210.


nesting for loops bug - continues to return null

Challenge Nesting For Loops has an issue.
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
function multiplyAll(arr) {
  var product = 1;
  // Only change code below this line
  for (i=0; i < arr.length; i++) {
    for (j=0; j < arr.length; j++) {
      product *= arr[i][j];
    }
  }
  // Only change code above this line
  return product;
}

// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);

Please take all coding questions to the Help Room. Hint: I would check your for loops again and see if they are doing what you think they are doing. Happy coding!

@Arcrunner819  you should add like this  and it will work.
`function multiplyAll(arr) {
var product = 1;
// Only change code below this line
for ( var i=0; i < arr.length; i++) {
for (var j=0; j < arr[i].length; j++) {
product *= arr[i][j];
}
}
// Only change code above this line
return product;
}
// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);
`

@Arcrunner819 you should add code like this and it will work.
function multiplyAll(arr) {
  var product = 1;
  // Only change code below this line
   for ( var i=0; i < arr.length; i++) {
    for (var j=0; j < arr[i].length; j++) {
      product *= arr[i][j];
    }
  }
  // Only change code above this line
  return product;
}

// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);

great you are the genius ! @jjivezic


Correct the return value of BIO_get_ktls_*().

BIO_get_ktls_send() and BIO_get_ktls_recv() are documented as
returning either 0 or 1.  However, they were actually returning the
internal value of the associated BIO flag for the true case instead of
1.

This pull request is ready to merge

Merged to master. Thank you for the contribution.


LLMs 3 way solution including ollama

Added solution where 3 llms are talking to each other with different perspective.

@codenigma1 love it! Thank you once again!
"I think cats are better than dogs" 😂😂


Deploy an Azure Kubernetes Service (AKS) cluster using Terraform. Minor mistakes in the code.

Type of issue
Code doesn't work
Feedback
Please fix the following mistakes in the code examples:
Fix/Update the code:

jsondecode should be removed from jsondecode(azapi_resource_action.ssh_public_key_gen.output).publicKey in main.tf and ssh.tf at Implement the Terraform code section (see Problem 1 below),
so that the resulting code would be:
azapi_resource_action.ssh_public_key_gen.output.publicKey
add -raw parameter at Verify the results section
to generate proper kubeconfig without end of stream "EOF" characters,
so that the resulting code would be:
echo "$(terraform output -raw kube_config)" > ./azurek8s (see Problem 2 below)

Problem 1
The description and the solution:
https://stackoverflow.com/questions/78457405/azapi-resource-action-invalid-value-for-str-parameter-string-required
╷
│ Error: Invalid function argument
│
│   on main.tf line 41, in resource "azurerm_kubernetes_cluster" "k8s":
│   41:       key_data = jsondecode(azapi_resource_action.ssh_public_key_gen.output).publicKey
│     ├────────────────
│     │ while calling jsondecode(str)
│     │ azapi_resource_action.ssh_public_key_gen.output is object with 2 attributes
│
│ Invalid value for "str" parameter: string required.
╵
╷
│ Error: Invalid function argument
│
│   on ssh.tf line 24, in output "key_data":
│   24:   value = jsondecode(azapi_resource_action.ssh_public_key_gen.output).publicKey
│     ├────────────────
│     │ while calling jsondecode(str)
│     │ azapi_resource_action.ssh_public_key_gen.output is object with 2 attributes
│
│ Invalid value for "str" parameter: string required.
Problem 2
(there is a workaround in the main instruction; but it should not be done manually in fact; adding -raw parameter solves the problem)

If you see << EOT at the beginning and EOT at the end, remove these characters from the file. Otherwise, you may receive the following error message: error: error loading config file "./azurek8s": yaml: line 2: mapping values are not allowed in this context

Page URL
https://learn.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-terraform?tabs=bash
Content source URL
https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/aks/learn/quick-kubernetes-deploy-terraform.md
Author
@schaffererin
Document Id
93009f1b-a279-2a19-5c87-6352d8af10c8

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

ID: aec38183-fa51-15e3-d3d0-c84724be95f3
Version Independent ID: 93009f1b-a279-2a19-5c87-6352d8af10c8
Content: Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using Terraform - Azure Kubernetes Service
Content Source: articles/aks/learn/quick-kubernetes-deploy-terraform.md
Service: azure-kubernetes-service
GitHub Login: @schaffererin
Microsoft Alias: schaffererin

@Dan-Zi
Thanks for your feedback! We will investigate and update as appropriate.

@Dan-Zi
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly.

Thank you for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner, and we sincerely apologize for the delayed response. The requested updates have not been made since the creation of this issue, and the timeline for resolution may vary based on resourcing, so we've created an internal work item to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary.
#please-close


Fixes path to minified code within Readme.

Hey @philipwalton.
Just a small fix to update the link url within the Usage section.

@sirbrad, sorry, I had to force push to the repo because we discovered some commits were missing from the history. Can you submit this again?

@philipwalton I guess the force push happens again so the readme now is reverted on master


e2e: retry on kubectl  known error failures

By using retryKubectl helper function, a retry will be done, and the known error messages will be skipped till timeout is reached.
Signed-off-by: Madhu Rajanna<EMAIL_ADDRESS>covering other cases than https://github.com/ceph/ceph-csi/pull/2325

This should be fixed now lets see :crossed_fingers:

Aug  4 12:02:33.312: INFO: waiting for kubectl ([delete delete sc clone-storageclass --ignore-not-found=true] args) to finish
Aug  4 12:02:33.313: INFO: Running '/usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-45573ae22a88 delete delete sc clone-storageclass --ignore-not-found=true'
Aug  4 12:02:33.569: INFO: rc: 1
Aug  4 12:02:33.569: INFO: will run kubectl ([delete delete sc clone-storageclass --ignore-not-found=true]) again (0 seconds elapsed)
Aug  4 12:02:33.569: FAIL: failed to delete storageclass clone-storageclass with error failed to run kubectl: error running /usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-45573ae22a88 delete delete sc clone-storageclass --ignore-not-found=true:
Command stdout:

stderr:
error: the server doesn't have a resource type "delete"

error:
exit status 1

small error fixed now.

/retest ci/centos/mini-e2e/k8s-1.20

/retest ci/centos/mini-e2e/k8s-1.20

Aug  5 12:26:41.167: INFO: rbd-nbd process is not running yet: command terminated with exit code 1
Aug  5 12:26:41.174: INFO: ExecWithOptions {Command:[/bin/sh -c ps -eo 'cmd' | grep [r]bd-nbd] Namespace:cephcsi-e2e-d20867fd PodName:csi-rbdplugin-9g2hp ContainerName:csi-rbdplugin Stdin:<nil> CaptureStdout:true CaptureStderr:true PreserveWhitespace:true Quiet:false}
Aug  5 12:26:41.174: INFO: >>> kubeConfig: /root/.kube/config
Aug  5 12:26:41.393: INFO: rbd-nbd process is not running yet: command terminated with exit code 1
Aug  5 12:26:41.393: FAIL: timed out waiting for the rbd-nbd process: rbd-nbd process is not running yet: command terminated with exit code 1

logs suggest issue #2362

/retest ci/centos/mini-e2e-helm/k8s-1.20

/retest ci/centos/mini-e2e-helm/k8s-1.20

Aug  5 21:19:55.431: INFO: rbd-nbd process is not running yet: command terminated with exit code 1
Aug  5 21:19:55.431: FAIL: timed out waiting for the rbd-nbd process: rbd-nbd process is not running yet: command terminated with exit code 1

logs indicate #2362

/retest ci/centos/upgrade-tests-cephfs

/retest ci/centos/upgrade-tests-cephfs

Aug  5 21:05:17.633: INFO: Running '/usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-982532bc --ignore-not-found=true --namespace=cephcsi-e2e-982532bc delete -f -'
Aug  5 21:05:34.614: INFO: rc: 1
Aug  5 21:05:34.614: FAIL: failed to delete provisioner rbac ../deploy/cephfs/kubernetes/csi-provisioner-rbac.yaml with error error running /usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-982532bc --ignore-not-found=true --namespace=cephcsi-e2e-982532bc delete -f -:
Command stdout:
clusterrolebinding.rbac.authorization.k8s.io "cephfs-csi-provisioner-role" deleted

stderr:
warning: deleting cluster-scoped resources, not scoped to the provided namespace
Error from server: error when deleting "STDIN": etcdserver: request timed out

error:
exit status 1

should be fixed with #2329 (logs)

/retest ci/centos/upgrade-tests-cephfs

Aug  5 21:05:17.633: INFO: Running '/usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-982532bc --ignore-not-found=true --namespace=cephcsi-e2e-982532bc delete -f -'
Aug  5 21:05:34.614: INFO: rc: 1
Aug  5 21:05:34.614: FAIL: failed to delete provisioner rbac ../deploy/cephfs/kubernetes/csi-provisioner-rbac.yaml with error error running /usr/bin/kubectl --server=https://<IP_ADDRESS>:8443 --kubeconfig=/root/.kube/config --namespace=cephcsi-e2e-982532bc --ignore-not-found=true --namespace=cephcsi-e2e-982532bc delete -f -:
Command stdout:
clusterrolebinding.rbac.authorization.k8s.io "cephfs-csi-provisioner-role" deleted

stderr:
warning: deleting cluster-scoped resources, not scoped to the provided namespace
Error from server: error when deleting "STDIN": etcdserver: request timed out

error:
exit status 1

should be fixed with #2329 (logs)

Actually no, this PR is #2329. The above logs are a little different and do not match to trigger the retry.

@mergifyio backport release-v3.4

@Mergifyio backport release-v3.4


added support for registry maps, processed from the container registry mappings defined in the CloudBees platform

LGTM but the registry-config issue has to be resolved first and the corresponding dependency within this kaniko Action repo adjusted afterwards.

go get says there is nothing to update probably because the last change was just a workflow update? Anyways, the PR is ready for review in that case.


@type options are included in docs

use Tesla, docs: false don't exclude everything (types and the request! method).
I just started docs and it seems some things are still included:
https://hexdocs.pm/duo_client/DuoClient.html#types
Is there a way I'm not aware of that will exclude this from my docs?
Do you want a PR to correct this somehow? (Not sure of a solution)

@amatalai, this works for functions...not for options. @typedoc false seems to have no impact.
I'm not sure what effect @typep will have on the rest of the project. 😖

@teamon @typep works for me...and tests pass.
I wasn't sure of the impact.
I'll add that to this PR if you're ok with that change.

More for me, but FYI for anyone wondering: https://elixirforum.com/t/typedoc-false-is-not-an-acceptable-value/14653

Probably an issue with ExDoc.


[BUG] TitleTeama.java remove utf-8 characters and replace with escape codes

https://dencode.com/en/string/unicode-escape

This bug has been fixed and the patch will be included in the next update. Thank you for reporting.


Skip http path if ingress backend service is nil

Issue:
#38782
Problem
If an ingress with resource backends is used, the cattle-agent panics with invalid memory address or nil pointer dereference
Solution
If the service in the path backend is nil, it is skipped
Testing

Engineering Testing
Manual Testing

Automated Testing

QA Testing Considerations

Regressions Considerations

cc @snasovich

Still valid

cc @cbron


Fix ForEach work with TCA not work as expected bug

As issue said, and from Brandon's advice, I made this PR to fix the issue.
I test it and guarantee be fixed in my branch. Please take a look and if have any impact, feel free to discuss. 🙏

@marcuswu0814 thank you so much!


Gatsby v5 has changed alot in only these 2 years, Outdated Dependencies

No beginner will manage to follow this book, It needs to be updated would you please??

Gatsby v5 is a totally new API and not one covered by this book. This book, and the code contained in this accompanying repository, is intended for v4 and will not be updated.


Add ncverilog support for verilog and systemverilog

Modify from iverilog.vim to support ncverilog.
Add systemverilog syntax check.

This won't fly, mainly because there can be at most one checker that uses syntastic#c#GetLocList() for each filetype.  This is a design limitation.

If I change the syntastic#c#GetLocLis() name and all other function may conflict.
Would this be OK?

If I change the syntastic#c#GetLocLis() name and all other function may conflict.

I'm afraid I can't parse this sentence.  What you can do to address the problem is to rewrite the checker to use makeprgBuild() instead of syntastic#c#GetLocLis().  It won't have as many features though.  Or you could adapt the existing verilator checker to support both verilator and ncverilog.
Alternatively, you could maintain this as an external checker.  Since you care about this checker, this would be the preferred approach.

Forgive my poor English.
I think I should use external checker instead.


code-server terminal sets LD_LIBRARY_PATH variable. which breaks other tools

Web Browser: Firefox
Local OS: Windows
Remote OS: Arch
Remote Architecture: X86_64
code-server --version: 3.4 (latest AUR)

the problem is that code-server sets this variable in the terminal LD_LIBRARY_PATH=/usr/lib/code-server/bin/../lib which causes programs such as ffmpeg to fail
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /usr/lib/libvmaf.so)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/libvmaf.so)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/libmfx.so.1)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/lib/libmodplug.so.1)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/lib/libsrt.so.1)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/libsrt.so.1)
ffmpeg: /usr/lib/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/libx265.so.188)

when i ssh and run the conversion tool i wrote (converting some mp4s to run on my DSi using homebrew)
it runs with out issue and LD_LIBRARY_PATH var is not set

the rest of the terminal is normal ffmpeg output

This is causing a lot of issues, even apt fails to run.
$ apt
apt: /usr/local/bin/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0)
apt: /usr/local/bin/code-server/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0)

Will be fixed in https://github.com/cdr/code-server/pull/1761
Marking this as a duplicate of https://github.com/cdr/code-server/issues/1738


Row dragging capabilities

This PR introduces row dragging capabilities to the Mantine Datatable component. This feature was developed to meet a requirement in our organization and can benefit the wider Mantine community by providing an intuitive way to reorder rows within the datatable.
closes #513
Key Features:

Row Dragging: Users can now drag and drop rows to reorder them or swap them within the datatable.
Customizable Drag Handles: Optional drag handles can be added for better user control.
Event Callbacks: New event callback for onDragEnd to handle custom logic after the drag-and-drop process.
Enhanced User Experience: Improved visual feedback during dragging for a more intuitive interaction.

Implementation Details:

Utilized the @hello-pangea/dnd to handle drag-and-drop functionality.
Ensured compatibility with existing datatable features and customization options.
Added comprehensive documentation and examples to demonstrate the new feature.

Documentation:

Updated the Mantine Datatable documentation to include usage instructions and examples for the row dragging feature.

We believe this enhancement will significantly improve the flexibility and usability of the Mantine Datatable component. We welcome any feedback and suggestions for further improvements. Thank you for considering this PR.

i need this feature, can anyone please merge?

This definitely implements a really useful piece of functionality that has been requested by user before.
The only thing that really bothers me is that we'd need to add @hello-pangea/dnd as a mandatory dependency, regardless of whether developers are using the DnD feature or not... which also contradicts the current package "dependency-free" philosophy.
I'm thinking perhaps we should reserve this for a new major release... Otherwise we'd make lot of applications break if users will update their deps without realizing that we have introduced a new dependency.
Or maybe we could find a way to make the dependency optional, so that only users who need DnD are forced to install it?...
I'm really curious to hear other people's feedback on this before making a decision.

Wouldn't it be possible to make the drag and drop functionality an extra module that a user can install alongside the mantine-datatable package? Essentially making it an opt-in package that then would use the @hello-pangea/dnd dependency but then the user is explicitly installing this for the reason of using the functionality.
Another idea I have, but would have to be tested pretty well, is to install the @hello-pangea/dnd (or any other dnd package) using the --save-optional flag. I'm not totally sure if this would result in a direct always installed dependency or only if the feature-set being used requires the dependency.
I'll take some time to research optional dependencies and modules for packages.

Also, I would like to point out that installing @pangea-hello/dnd would result in pulling in 18 extra dependencies, as can be seen here: https://npmgraph.js.org/?q=%40hello-pangea%2Fdnd
In case you value keeping dependency count manageable

i fixed dependency on this commit
https://github.com/icflorescu/mantine-datatable/pull/621/commits/ee6b61bfb3ac8221b190078ebf4eee808e48312f

i fixed dependency on this commit ee6b61b

I like the idea of rowFactory, I have a suggestion to improve this

we can take children (array of cells) and tr props (provided by mantine datatable) in row factory function arguments to keep it DRY

in this way its usage will be something similar to
<DataTable
  //other props
  rowFactory={({ record, index, trProps, children }) => (
    <Draggable key={record.id} draggableId={record.id} index={index}>
      {(provided) => (
        <Table.Tr
          ref={provided.innerRef}
          {...provided.draggableProps}
          {...provided.dragHandleProps}
          {...trProps}
        >
          {/** add a td for drag handle (optional) */}
          {children}
        </Table.Tr>
      )}
    </Draggable>
  )}
/>;

i fixed dependency on this commit ee6b61b

I like the idea of rowFactory, I have a suggestion to improve this

we can take children (array of cells) and tr props (provided by mantine datatable) in row factory function arguments to keep it DRY

in this way its usage will be something similar to
<DataTable
  //other props
  rowFactory={({ record, index, trProps, children }) => (
    <Draggable key={record.id} draggableId={record.id} index={index}>
      {(provided) => (
        <Table.Tr
          ref={provided.innerRef}
          {...provided.draggableProps}
          {...provided.dragHandleProps}
          {...trProps}
        >
          {/** add a td for drag handle (optional) */}
          {children}
        </Table.Tr>
      )}
    </Draggable>
  )}
/>;

any comments?

yes its ok
can you add rowFactory to document and merge PR and make new version for test production ?

@mikkurogue I did some change in your code, and update example as well, any comments on it?

@mehdiraized I did some change in your code, and update example as well, any comments on it?

no i haven't any comment
i close my PR and this PR is good update
@icflorescu can you check this PR ?

@icflorescu cab we add this feather?

Looks fantastic, thanks, @MohdAhmad1!
Will publish a release today.

Not sure if #625 is a direct result of this merge but wanted to see your thoughts on that @icflorescu since the behavior wasn't broken before

<EMAIL_ADDRESS>will increase the size in double for this finest library. and It'll unnecessary add redux in the code base. All this cost is just for the row reorder.
Isn't there any other solution to implement the row reorder?

<EMAIL_ADDRESS>will increase the size in double for this finest library. and It'll unnecessary add redux in the code base. All this cost is just for the row reorder.
Isn't there any other solution to implement the row reorder?

we just added rowFactory props
you can use other packages for this feature

we just added rowFactory props you can use other packages for this feature

I think the thing here is that even if you only use 1 feature of the package, it still pulls in all peer dependencies.
I think row re-ordering is easily achieved without having to implement an entire library. Especially when people like me would not use the row re-ordering functionality and yet I now have to pull in the extra dependency if I were to udate to the latest version

And to just mention this, I did say in a previous comment that this will pull in a lot of extra deps: https://github.com/icflorescu/mantine-datatable/pull/616#issuecomment-2221064357

I agree with you @mikkurogue
@mehdiraized you're right but if we plan to make this reorder feature the lib agnostic then we should at least build this feature with two differed dnd library to prove that it works perfectly without any unforeseen issue.

i can't understanding what is problem
this package is large ok use other packages in your project
mantine-datatable is not peerdependency of @hello-pangea/dnd package
you can replace @hello-pangea/dnd package with other drag and drop package
we make example row drag and drop with this package becuase this package is popular
but you can use rowFactory props and use other light package

you say if you update to last version mantine-datatable we automatically added @hello-pangea/dnd package to your project
i think its not true
because this package is not peerDependency like @formkit/auto-animate

you say if you update to last version mantine-datatable we automatically added @hello-pangea/dnd package to your project
i think its not true

yeah after checking you are right, it should not include the @hello-pangea/dnd package by itself.
I do still think a native solution is still probably better, as this feature then doesn't introduce dnd functionality, just introduces the ability to implement it yourself (so to speak)

you say if you update to last version mantine-datatable we automatically added @hello-pangea/dnd package to your project
i think its not true

yeah after checking you are right, it should not include the @hello-pangea/dnd package by itself.
I do still think a native solution is still probably better, as this feature then doesn't introduce dnd functionality, just introduces the ability to implement it yourself (so to speak)

if we can add this feature by other packages
Absolutely you can added drag and drop feature by native js code
but is not relate with this PR this is new feature request
i think you can get native drag and drop feature with gpt or claude with rowFactory feature they can create native js code for drag and drop

Agreed, but then I think its a different discussion to use gpt/claude/copilot to generate the implementation (Im a certified copilot refuser so I'm biased).
I think, personally the value of a feature request shouldn't lie in an abstract "we allow you to implement it yourself" when the functionality people want is usually the same.
End of the day its icflorescu's call, but I still do doubt the value of this introduction when it just exposes an API to implement it yourself (unless I'm misunderstanding this)

Agreed, but then I think its a different discussion to use gpt/claude/copilot to generate the implementation (Im a certified copilot refuser so I'm biased).
I think, personally the value of a feature request shouldn't lie in an abstract "we allow you to implement it yourself" when the functionality people want is usually the same.
End of the day its icflorescu's call, but I still do doubt the value of this introduction when it just exposes an API to implement it yourself (unless I'm misunderstanding this)

This feature is not about me
I just contributed with this PR
We just took one step for this feature
And I think this is the right step
Because the complex features should work very simply

Agreed, but then I think its a different discussion to use gpt/claude/copilot to generate the implementation (Im a certified copilot refuser so I'm biased).
I think, personally the value of a feature request shouldn't lie in an abstract "we allow you to implement it yourself" when the functionality people want is usually the same.
End of the day its icflorescu's call, but I still do doubt the value of this introduction when it just exposes an API to implement it yourself (unless I'm misunderstanding this)

This feature is not about me I just contributed with this PR We just took one step for this feature And I think this is the right step Because the complex features should work very simply

I think you're misunderstanding what I'm saying.
The contribution is fine, but I feel its disingenous to call it a feature when it doesnt introduce any new functionality outside of allowing a user to hook their own library into the factory. As much as it is cool, it certainly doesn't feel like it's the way forward for the library to introduce new features if it still boils down to me having to still implement it myself at the end of the day.
I agree complex features should work very simply, but the question then is; what do you classify as a complex feature? Any drag and drop I don't consider complex (a pain sometimes).
Personally I don't think a library that delivers functionality shouldn't expose an API to the user to introduce external functionality, at that point it's just forking the repo with extra steps


Use HTML5 Clipboard API in supporting browsers

Chromium-based browsers and IE for now:
http://jsbin.com/yanamebope/1/edit?html,css,output
Why is this blocked?
Let's wait to see if ZeroClipboard integrates this before doing this ourselves.

The ZeroClipboard team is looking to integrate this: zeroclipboard/zeroclipboard#171

How GitHub does it: https://gist.github.com/karlhorky/0bdecc772d4909eeedf3

Alternative library https://github.com/zenorocha/clipboard.js


Validations to put on /0x/v0/order POST

Hey,
I am not sure what radarrelay standard API is using to validate POST order/ endpoint.
can you assist me with that, I understood every other endpoints using json-schemas.
But radarrelay is giving you perfect output of what the error is, how to do that ?
Please suggest me.
Thanks

They just wrote a bunch of custom logic

Ok, thanks 👍

Ok thanks


A Jedis object Closing from Consumer

Hello,
I am using a Consumer to close the Jedis instance from a pool.
Method with consumer
    public void jedisAction(Consumer<Jedis> consumer) {
        Jedis j = null;
        try {
            j = jedis.getResource();
            consumer.accept(j);
        } finally {
            if(j != null) {
                j.close();
            }
        }
    }

Example of it being executed
jedisAction(jedis -> types.set(jedis.lrange("servers.types", 0, 99)));

Expected behavior
No Error to occur and the method to execute properly.
Actual behavior
An error occurs with this message:
ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context
Redis / Jedis Configuration: Default
Jedis version 4.0.9
Redis version 3.1.0
Java version 1.8.0_201

Sorry, I have realized that the original line it is being executed from is this,
serverRedis.jedisAction(jedis -> new Thread(() -> jedis.subscribe(this, "servers.request.create")).start());
and the original example of it being executed is being executed in the onMessage event.


fix(ref-pattern): better regex matching if path contains OpenAPI field name

PR summary
This commit fixes a regex pattern in the ref-pattern rule.
When an operation path contained a specific OpenAPI field name
(e.g. properties) the old regex pattern could match and it resulted
in a false positive warning.
The cause of the issue was missing parentheses around the "main"
pattern which made the first comma "optional" due to the OR operators.
(Actually it was only required for the schema.)
/tekton_pipelines/{pipeline_id}/properties:
  parameters:
    - $ref: '#/components/parameters/pipelineId'

Before:

After:

Closes: #489
Signed-off-by: Norbert Biczo<EMAIL_ADDRESS>PR Checklist
General checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] Dependencies have been updated as needed
[ ] .secrets.baseline updated as needed?

Checklist for adding a new validation rule:

[ ] Added new validation rule definition (packages/ruleset/src/rules/*.js, index.js)
[ ] If necessary, added new validation rule implementation (packages/ruleset/src/functions/*.js, updated index.js)
[ ] Added new rule to default configuration (packages/ruleset/src/ibm-oas.js)
[ ] Added tests for new rule (packages/ruleset/test/*.test.js)
[ ] Added docs for new rule (docs/ibm-cloud-rules.md)

:tada: This PR is included in version 0.45.3 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 0.97.3 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 0.0.2-rc.1 :tada:
The release is available on npm package (@v1-rc dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


fix: typo in 'disable_indentaion' option

I started using 'neo-minimap' heavily since yesterday !
It's now part of the very few plugins I use to improve my workflow.
You made an awesome job ! Thanks !

I forgot to create a new branch for the new feature... I'm so sorry for the mess !