Many squiggles in Notebook

Testing https://github.com/microsoft/vscode/issues/127362

set up jupyter in a dev container:

create a new folder
(install remote dev container extension)
run Remote Containers: Add Development Container Configuration Files...
pick Show All Definitions... at the bottom
pick Jupyter Data Science Notebooks
reopen the folder in container

find a sample notebook e.g. https://raw.githubusercontent.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb
open it and observe many squiggles even though the cells execute without errors (which indicates that there should be no errors):

The first squiggle is this error here:
https://github.com/microsoft/pylance-release/issues/894
The second squiggle is likely this problem here:
https://github.com/microsoft/vscode-jupyter/issues/6333

I'm not sure why this is being closed in favor of the pylance issue if we are going to fix this by hiding diagnostics during the LS <-> Notebook translation (which would be here or vscode-python, I think). Should that issue be transferred, or has the plan changed?

Yeah I think the other issue should be transfered.


SPC o R does not work

Observed behavior
Using SPC o R (+open->REPL (same window)) results in an error. SPC o r (+open->REPL) works fine.
Expected behavior
Should open a menu to select a REPL.
Steps to reproduce

Use SPC o R
Instead of opening a repl, get the following error

+eval/open-repl-same-window: Wrong number of arguments: ((t) (prompt-p other-window-p) (let ((command (cdr (assq major-mode +eval-repls)))) (if (or (not command) prompt-p) (progn (let* ((choices (or (let* (... ...) (mapatoms ... nil) (nreverse --cl-var--)) (user-error "There are no known available REPLs"))) (choice (or (completing-read "Open a REPL for: " choices) (user-error "Aborting"))) (choice-split (split-string choice " " t)) (module (car choice-split)) (repl (substring (car (cdr choice-split)) 1 -1))) (setq command (intern-soft (format "+%s/open-%srepl" module (if (string= repl "default") "" repl))))))) (if (commandp command) nil (error "Couldn't find a valid REPL for %s" major-mode)) (if (+eval--ensure-in-repl-buffer command other-window-p) (progn (if (and (boundp (quote evil-mode)) evil-mode) (progn (call-interactively (function evil-append-line)))) t)))), 1

System information

Click to expand

OS: gnu/linux (x86_64-pc-linux-gnu)
Emacs: 26.1 (mar 17, 2019)
Doom: 2.0.9 (develop 99aefd6e022fc092c3c8e22a3c42b78cec0823d2)
Graphic display: t (daemon: nil)
System features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2
Details:env bootstrapper: nil
elc count: 0
uname -a:  Linux mirai-linux 5.0.3-arch1-1-ARCH #1 SMP PREEMPT Tue Mar 19 13:09:13 UTC 2019 x86_64 GNU/Linux
modules:   (:feature eval (evil +everywhere) file-templates (lookup +docsets) snippets workspaces :completion company (ivy +fuzzy) :ui doom doom-dashboard evil-goggles hl-todo modeline nav-flash neotree (popup +all +defaults) vc-gutter vi-tilde-fringe window-select :editor fold (format +onsave) multiple-cursors rotate-text :emacs dired electric imenu vc :tools ansible docker editorconfig flycheck magit make terraform :lang cc clojure data elixir emacs-lisp hy javascript markdown nix (org +attach +babel +capture +export +present) python ruby (sh +zsh) web :config default)
packages:  (ag lispyville ripgrep sort-words uuidgen (frame-fns :recipe (frame-fns :fetcher github :repo emacsmirror/frame-fns)) (frame-cmds :recipe (frame-cmds :fetcher github :repo emacsmirror/frame-cmds)) (zoom-frm :recipe (zoom-frm :fetcher github :repo emacsmirror/zoom-frm)))
exec-path: (~/.emacs.d/bin ~/.zit.d/asdf/shims ~/.zit.d/asdf/bin ~/.local/bin /usr/local/sbin /usr/local/bin /usr/bin /var/lib/flatpak/exports/bin /usr/lib/jvm/default/bin /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl /usr/lib/emacs/26.1/x86_64-pc-linux-gnu)

As of be6efd8 this should be fixed! Thanks for letting me know!


Get remote objects by commit hash

Related to #3040 Revert to any single commit
Get remote objects by commit hash not only by branch name and updated method calls accordingly if neccessary,

input parameter iv_commit_hash has been added to the method, but it already has branch_name which as far as I remember refers to the same thing?

input parameter iv_commit_hash has been added to the method, but it already has branch_name which as far as I remember refers to the same thing?
Kind of: In the first option we use branch_name to determine the branch hash and in the second option we use the imported commit hash to get what we want. I suggest we should split the functions into separate methods - it's sort of confusing what to supply and the method already does too much in my optinion. I think in the long run we should change the methods which are using just branch hashes to get development objects (like upload_pack) to import hashes directly (instead of additionally calling find_branch or any other determination logic).

sounds good, please create a new method for the new functionality, new method name upload_pack_by_hash
we can rename the old method to upload_pack_by_branch in a follow up PR later

Don't try it out yet - I need to fix some errors related to the changes I made.

@larshp Ok, now it's ready - please see the commit description. I hope the changes are ok - don't like redundant source code so I reused the method upload_pack (see description of the latest commit).

we can rename the old method to upload_pack_by_branch in a follow up PR later

and ^

@larshp Changed related to your review.

A: Can we please keep the deepen logic to the old behavior for now? It can be changed later after the new method is added, this makes it a lot easier to review this PR
B: Please try to leave out whitespace changes, it makes it a lot easier to review. Right now file zcl_abapgit_git_porcelain is changed only with whitespace changes
C: Getting the client object, that is internal logic to the class. No need to require fields externally that are not really needed. First step is to find the right signature for the method.
D: right now METHOD upload_pack_by_hash is largely a copy of the old method, this needs refactoring to avoid duplication

A) Ok.
B) I'll try.
C) I'll take a look into it - maybe I can avoid the call or find a better object.. don't know yet.
D) Yes, that's why I renamed update_pack to update_pack_by_branch and then reused upload_pack in the previous review. But you wrote that we should rename upload_pack to upload_pack_by_branch in a later PR so I just didn't try to move duplicate source code to an extra method (maybe also in a later PR?).

I suggest the following:

I'll create a new PR just for renaming upload_pack to upload_pack_by_branch and updating the calls respectivly.
After that I'll create a PR for adding a new method upload_pack_by_commit and readding the upload_pack method with the duplicate source code upload:_pack_by_branch and upload_pack_by_commit share.
Then I'll create a PR for changing the deepen_level.
The 4th PR would be for renaming pull to pull_by_branch
The 5th PR would add a new method pull_by_commit

What do you think?

I did some additional research related to the method upload_pack: Unfortunately I have to call find_branch also in the upload_pack_by_commit because I need the branches hash also for the following logic. So in the end the only differences between upload_pack_by_branch and upload_pack_by_commit are the following:

upload_pack_by_commit requires only an additional exporting parameter ev_commit which holds the current parent hash the git action was taken for. We still need ev_branch and thus have to determine it with the method find_branch (related to question/comment C)
upload_pack logic is being called either for branch_hash or commit_hash and related to that lt_wanteds is being filled

It's really difficult to separate the commit and branch related methods because the methods were created with the intention to work primarily with the branch. It would have been better if they would have been designed to work with hashes.

first step is designing the right parameters against the callers, how the class works internally is next step

Yes, ok, but unfortunately I don't understand yet what you would do to solve this issue. Would you create 3 methods (upload_pack_by_branch, upload_pack_by_commit + 1 for shared source code) or just 1 with an additional import like the first solution or do you favor another solution?

two public methods upload_pack_by_branch + upload_pack_by_commit, with inputs and outputs corresponding to the use case
the implementation is inside the class, no internal implementation restrictions or current design should make it into the 2 public method parameters

And how do we avoid the redundant source code? Only the filling of lt_hashes is different in each of those methods:
IF it_branches IS INITIAL.
    APPEND ev_branch TO lt_hashes.
ELSE.
    LOOP AT it_branches ASSIGNING <ls_branch>.
      APPEND <ls_branch>-sha1 TO lt_hashes.
    ENDLOOP.
ENDIF.

vs.
APPEND iv_hash TO lt_hashes.

thats internal functinoality, lets first agree on the methods, can you help listing the code for the method importing and exporting parameters, so we got that closed?

Ok, thanks for the patience :)
    CLASS-METHODS upload_pack_by_commit
      IMPORTING
        !iv_url          TYPE string
        !iv_commit_hash  TYPE zif_abapgit_definitions=>ty_sha1
        !iv_branch_name  TYPE string
        !iv_deepen_level TYPE numc2 DEFAULT 0
      EXPORTING
        !et_objects      TYPE zif_abapgit_definitions=>ty_objects_tt
        !ev_branch       TYPE zif_abapgit_definitions=>ty_sha1
      RAISING
        zcx_abapgit_exception .

    CLASS-METHODS upload_pack_by_branch
      IMPORTING
        !iv_url          TYPE string
        !iv_branch_name  TYPE string
        !iv_deepen_level TYPE numc2 DEFAULT 0
        !it_branches     TYPE zif_abapgit_definitions=>ty_git_branch_list_tt OPTIONAL
      EXPORTING
        !et_objects      TYPE zif_abapgit_definitions=>ty_objects_tt
        !ev_branch       TYPE zif_abapgit_definitions=>ty_sha1
        !eo_branch_list  TYPE REF TO zcl_abapgit_git_branch_list
      RAISING
        zcx_abapgit_exception .

Pedantic suggestion, change order of import parameters in by_commit so they're similar to by_branch
 CLASS-METHODS upload_pack_by_commit
      IMPORTING
        !iv_url          TYPE string
        !iv_branch_name  TYPE string
        !iv_deepen_level TYPE numc2 DEFAULT 0
        !iv_commit_hash  TYPE zif_abapgit_definitions=>ty_sha1 "<--
       ...

branch names points to commits, so no need for branch name as input in upload_pack_by_commit

IMHO I would say the branch name states to which branch the commit belongs to. If we would omit the branch name we wouldn't be able to get the objects (commits are only objects, too) by the branch, because we don't know it anymore. Also I think this is a method that belongs to a branch object, but we don't treat is as this kind of method which requires this method to have an import parameter which points to the branch.

@larshp Honestyl I don't want to improve this method in this PR - I just want to use it with one different parameter (iv_commit_hash). We should come to a solution - any other PR I can image for this feature depends on this as far as I can see.

closing, no progress
suggest opening a PR for renaming
zcl_abapgit_git_transport=>upload_pack(
to
zcl_abapgit_git_transport=>upload_pack_by_branch(


Dataarray

mikeio.DataArray can be used as a ModelResult. So far only for PointObservations.

Is this ready for review/merge, @ecomodeller?
I noticed:
def _extract_track(self, observation: TrackObservation, item=None) -> pd.DataFrame:
    raise NotImplementedError("Only PointObservations are supported")

I guess it could be implemented with the changes you made to MIKE IO right?

Is this ready for review/merge, @ecomodeller?
I noticed:
def _extract_track(self, observation: TrackObservation, item=None) -> pd.DataFrame:
    raise NotImplementedError("Only PointObservations are supported")

I guess it could be implemented with the changes you made to MIKE IO right?

I guess this PR is why I implemented the ability to extract tracks from a mikeio DataArray and then somehow forgot why...
But If you have mikeio>1.2 it can be done now!


bug Ver 4.21, Build 9613 (windows)

linked the vpn,and then exit vpn client manager program ,sometiem make all Browsers on my pc can not internet ,but other software can

I'm not sure I really understood.
You connected using SoftEther client to some server. Then stopped the client. Now browsers are not working anymore. Is this what you mean?
If yes then please confirm that this issue still happens with the newest SoftEther client and Server. Also please provide more details, like which windows are you using. Your settings, etc..

browsers are known to use SSL/TLS, windows add DF (don't fragment) bit on such traffic.
very common case of "my browser is not working" is some fragmentation issue
but it is only a guess. actually, I'd say that more information would be really helpful
if there is no update, I'd close this issue

feel free to reopen when detailed debug is available


Link submission with text, does not show the text

If you submit a link to HN it is discouraged to also write a text. But it is still possible and gets used relatively often.
For exampe this "Show HN" which is currently on the front page: https://news.ycombinator.com/item?id=37125118
In the Harmonic App, only the link and title are visible and not the submission text.

I had totally missed this, thanks for pointing it out. I will try to take a look later today, this should be an easy fix.

Fixed now, and you're welcome :)


How do stop yt-dlp from redownloading a video from a playlist that the name has been changed but video id remains the same?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.10.04 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
This is the method I used to embed yt-dlp in my script.
def playlist_downloader(self, playlist_download_location):
    start = time.perf_counter()
    logger.info("..........Downloading videos from playlist..........")

    def my_hook(d):
        if d['status'] == 'error':
            logger.exception('An error has occurred ...')
        if d['status'] == 'finished':
            logger.info('Done downloading file, now post-processing ...')

    ydl_opts = {
        'logger': logger.getChild('ydl'),
        'progress_hooks': [my_hook],
        'noprogress': 'True',
        'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]',
        'ffmpeg_location': 'ffmpeg/bin',
        'outtmpl': str(playlist_download_location) + '/%(title)s.%(ext)s'
    }
    with YoutubeDL(ydl_opts) as ydl:
        logger.debug(ydl.download(self.playlist_id))
    end = time.perf_counter()
    total_time = end - start
    logger.info(f"Total time downloading playlist took: {total_time}")

Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

Provide the YoutubeDL object with a set of already downloaded ids as its download_archive parameter. How you generate that set depends on how you can get back those ids from the already downloaded files.
The format is <extractor_key> <video_id>. Look at the output of yt-dlp ---download-archive <file> <URL> (or YoutubeDL._make_archive_id+utils.make_archive_id) to get more info on the used format.

Thanks for your reply.

If it is more convenient, you can also give a filename instead of a set to use that file as the archive


Unsupported AT message: CMD: command:+BLDN

I have tried to run 'arecord capture.wav'  to record  voice that from headset,  the logs like these:
bluealsa: ../../src/ctl.c:594: Received new connection: 17
bluealsa: ../../src/ctl.c:607: New client accepted: 17
bluealsa: ../../src/ctl.c:632: +-+-
bluealsa: ../../src/ctl.c:632: +-+-
bluealsa: ../../src/ctl.c:327: PCM requested for 1C:52:16:17:A8:F4 type 0x82
bluealsa: ../../src/ctl.c:632: +-+-
bluealsa: ../../src/ba-transport.c:565: State transition: 2 -> 2
bluealsa: ../../src/ctl.c:632: +-+-
bluealsa: ../../src/ba-transport.c:809: New SCO link: 18 (MTU: R:48 W:48)
and then click headset to start speaking,  the logs like these:
bluealsa: ../../src/at.c:161: AT message: CMD: command:+BLDN, value:(null)
bluealsa: Unsupported AT message: CMD: command:+BLDN, value:(null)
bluealsa: ../../src/rfcomm.c:102: Sending AT message: RESP: command:(null), value:ERROR
No voices were capture in capture.wav.

Internal HFP support might not work correctly. If possible, please use '-p
hfp-ofono'.

Hi,
@Arkq  Run bluealsa use '-p hfp-ofono' and then use bluetoothctl to connect headset, it shows 'Failed to connect: org.bluez.Error.Failed'

+BLDN is for redialing last number, and is not ment to be supported by bluealsa. Use bluealsa-rfcomm if you want to catch it. As for SCO recording please use current master with hsp-ag or hfp-ag. If it does not work, it is most likely to be a problem with your BT chip setup (e.g. known broadcom chip issue).


overrides.channels.email.action_url does not work

The Channel Overrides documentation states that email.action_url should work. But, when I pass overrides.channels.email.action_url, the email notification uses the non-overridden action_url passed to POST /notifications.
Tested with both the default email provider (Ping) and Sendgrid.
Support ticket.
Repro steps:

add below email template
send below notification

email template
action_url: {{ notification.action_url }}

notification
curl https://api.magicbell.com/notifications \
  --request POST \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'X-MAGICBELL-API-SECRET: MY_API_SECRET' \
  --header 'X-MAGICBELL-API-KEY: MY_API_KEY' \
  --data '{
    "notification": {
        "title": "test overrides.channels.email.action_url",
        "content": "testcontent",
        "category": "announcement",
        "action_url": "https://magicbell.com/docs",
        "recipients": [{ "email": MY_EMAIL }],
        "overrides": {
          "channels": {
            "email": {
              "action_url": "https://example.com"
            }
          }
        }
    }
  }'

test

test

Sorry about that. We've confirmed the bug, and will get this fixed. As it's already mid December, we hope to push a fix early next year.

Please see #64 for some workarounds.


Add next version to ts-versions in type check

Waiting for https://github.com/DefinitelyTyped/DefinitelyTyped/pull/61199 before merging


Patch GitHub Actions

Overview/Summary
This PR updates our GitHub Actions to address the issues listed below.
This PR fixes/adds/changes/removes

Update github/super-linter to the latest release (currently v4.9.7)
Fix new linting issues detected by latest version of github/super-linter
Fix set-output deprecation as documented in GitHub Actions: Deprecating save-state and set-output commands

Breaking Changes
none
Testing Evidence
GitHub Actions need to be verified in the pipeline.
As part of this Pull Request I have

[x] Checked for duplicate Pull Requests
[x] Associated it with relevant issues, for tracking and closure.
[x] Ensured my code/branch is up-to-date with the latest changes in the main branch
[x] Performed testing and provided evidence.
[x] Updated relevant and associated documentation.
[ ] Updated the "What's New?" wiki page (located in the Enterprise-Scale repo in the directory: /docs/wiki/whats-new.md)

/azp run unit


Update composer.json version

README says this module requires zf2 >2.3.3.  The current requirement in composer is 2.3.* (which could cause invalid versions like 2.3.0 to be loaded).  The module also works fine in 2.4.0.  I don't know whether >= is discouraged, but I'm submitting >=2.3.3 and am open to anything that gets 2.4 into the scope.

Please accept this one.

Any chance on having a new tag @pdobrigkeit ?
Composer install for GoalioForgotPassword and latest ZF2 is conflicting, because there is no tag for GoalioMailService, that supports ZF 2.5. Older version of GoalioMailService supports it, but - it is older version.
If there is anything to help with, let me know.
PS. Thanks for modules, they do a good job.

Hi,
I am currently not in the office, but I will try to release a new tag once I am back, but that won't be for another week. In the meantime you could create your own fork and just change the composer.json and force your main project to use your fork via the repositories array, but I am currently not in the position to give you the correct syntax since the internet connection at my location is very unreliable... I hope that works for you.

Thanks, no hurry.


can you help me?

i am all time get this error https://ctrlv.cz/Ywxb

Unhandled SQL error in the leaked spaghetti code. Nothing to do with this library or Steam.


Bot can't see messages that are marked as replies

I have tried the bot on multiple servers, It neves sees messages that are replies, whether it is a reply to bot's message or not.
I also mentioned that on some servers it cannot see any messages at all, mostly on big ones such as Homework Help

To receive events that are message replies you have to use the client.on.reply event listener. All event listeners are documented in the README.


fix(plugin-rax-web): not filter routes by target in document plugin

@ChrisCindy lint 改一下先

@ChrisCindy lint 改一下先

Done

Codecov Report

Merging #942 (e323e05) into master (ae246ec) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #942   +/-   ##
=======================================
  Coverage   41.90%   41.90%
=======================================
  Files          46       46
  Lines        1174     1174
  Branches      280      280
=======================================
  Hits          492      492
  Misses        682      682


bug: fails parsing pseudo class selectors when using single quotes

Did you check existing issues?

[X] I have read all the tree-sitter docs if it relates to using the parser
[X] I have searched the existing issues of tree-sitter-css

Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)
tree-sitter 0.24.3 (bdfe32402e85673bbc693216f0a6ef72c98bb665)

Describe the bug
It doesn't recognize single quotes for pseudo selectors. It only works with double quotes. Single quotes is valid syntax.
Steps To Reproduce/Bad Parse Tree
(stylesheet [0, 0] - [1, 1]
  (ERROR [0, 0] - [0, 1])
  (rule_set [0, 1] - [1, 1]
    (selectors [0, 1] - [0, 13]
      (attribute_selector [0, 1] - [0, 13]
        (tag_name [0, 1] - [0, 5])
        (ERROR [0, 5] - [0, 6])
        (attribute_name [0, 7] - [0, 8])
        (string_value [0, 9] - [0, 12])))
    (ERROR [0, 13] - [0, 14])
    (block [0, 15] - [1, 1])))

Expected Behavior/Parse Tree
(stylesheet [0, 0] - [1, 1]
  (rule_set [0, 0] - [1, 1]
    (selectors [0, 0] - [0, 14]
      (pseudo_class_selector [0, 0] - [0, 14]
        (class_name [0, 1] - [0, 5])
        (arguments [0, 5] - [0, 14]
          (grid_value [0, 6] - [0, 13]
            (plain_value [0, 7] - [0, 12])))))
    (block [0, 15] - [1, 1])))

Repro
:host([a='b']) {
}

@amaanq  I was verifying it with:

tree-sitter:  0.22.1,
tree-sitter-css:  0.23.1,

And it is still producing this error:
(stylesheet [0, 0] - [0, 23])
  (ERROR [0, 0] - [0, 6])
    (class_name [0, 1] - [0, 5])
  (rule_set [0, 6] - [0, 23])
    (selectors [0, 6] - [0, 19])
      (pseudo_class_selector [0, 6] - [0, 19])
        (attribute_selector [0, 6] - [0, 13])
          (attribute_name [0, 7] - [0, 8])
          (string_value [0, 9] - [0, 12])
            (string_content [0, 10] - [0, 11])
        (class_name [0, 14] - [0, 19])
          (identifier [0, 14] - [0, 19])
    (ERROR [0, 19] - [0, 20])
    (block [0, 21] - [0, 23])

for this example:
:host([a='b']:hover) {}

But when I change it to:
:host([a="b"]:hover) {}

Then it has no error:
(stylesheet [0, 0] - [0, 23])
  (rule_set [0, 0] - [0, 23])
    (selectors [0, 0] - [0, 20])
      (pseudo_class_selector [0, 0] - [0, 20])
        (class_name [0, 1] - [0, 5])
        (arguments [0, 5] - [0, 20])
          (pseudo_class_selector [0, 6] - [0, 19])
            (attribute_selector [0, 6] - [0, 13])
              (attribute_name [0, 7] - [0, 8])
              (string_value [0, 9] - [0, 12])
                (string_content [0, 10] - [0, 11])
            (class_name [0, 14] - [0, 19])
              (identifier [0, 14] - [0, 19])
    (block [0, 21] - [0, 23])


Nitpick: module name & directory structure don't match

Yoga/AppM/AppM.purs vs module Yoga.App.AppM where

Good catch. I want this as a Language Server warning!

@LiamGoodacre what do you think of hte new structure and name?


Position the bar above the horizontal center of the object

Resolves #24
This is what it looks like after the change:

Nope, that actually seems wrong if the object is rotated. Looking into it further.

I thought it would act more like a billboard.

yeah it's supposed to, good find

We may have to rethink the offset. With the changes in this PR, dual bars would overlay each other when viewed top down. In the multi-bar scenario, the bars' positions shouldn't change relative to each other even when the camera is rotated/tilted

Yes, I've noticed that too. If viewed directly top down, they will overlap. But if there is a small angle (which is typical even in something like an RTS), and the bars have different offsets (heights), then they are both seen fairly clearly:

what do you think about having the offset supplied as a vec3 instead of f32, where the components are applied as follows:
if the camera view vector is parallel to an axis (such as top-down for the y-axis), the corresponding component in the offset vector is applied 0% (not at all). If it's orthogonal, it is applied a 100% (i.e. front view for the y-axis). You could then specify 0 for the z component of the offset vector and in your case and in the top down view the bar would be centered.

It's hard for me to say without playing around with it :)


HermesInterplanetarySpacecraftDevFilesWithWIPMaVCredittoxxhansonmaxxO…

Closes #4612

That identifier is way to long and unreadable. Can you trim it down?

ping @linuxgurugamer

Sorry, thought I had done it

Is there a maximum length to the mod name?  If so, what is it?

No hard maximum, it was just an aesthetic call based on the problems of columnar data representation. That looks fine, now. Thanks!


Create serving structure and add skeletal read case data methods to the data service.

Handful of set up items, and kicking off the case data API.

Separate the app and server -- mostly for testability.
Add controllers dir where route handling logic is kept.
Add a /cases route and initial (skeletal) read handlers.
Set up testing framework, add tests, and add an npm script for testing.
Add nodemon (hot refresh) and a dev convenience script.

(Don't mind the delta -- it's reasonable aside from auto-gen'd changes to package-lock.json).

 Define API to CRUD MongoDB case data collection


GasTileOverlaySystem updates

Data should be stored in a component rather than on the system
Needs to support deleting chunks on the server
Could potentially be parallelised (though this also ties back onto the splitting fire and gas overlays which is a separate issue https://github.com/space-wizards/space-station-14/issues/3836) and update frequency increased as 3/s is pretty low.

I haven't looked too hard but point 2 might be why overlays sometimes get "stuck" on.


Fulltext search tag + text

Is your feature request related to a problem? Please describe.
The problem with searching by tag + text
Describe the solution you'd like
It would be great if the full-text search would understand this syntax for example #sdk aws.
In this way, the search will filter all content that has the tag #sdk  and content aws

Also add a support for regex searches like obsidian does (by parsing if the search have a valid regex format like /something/ ), and some filter that we can enable
I also recommend making the search by tag it the way obsidian does with tag:aws rather than with a #
Here's why

a tag: is as easier to implement as a #
That would prevent searches that don't want to search a tag but the actual character (the tag: format helps separate the intentions of the search more explicitly)
It is the way obsidian do it in its own search, so it will be easy to understand for new users
Obsidian separates the tags in meta-data in the files headers and the tags that we put in the note content with a #. Therefore, those both tags should be searched separately also on Quartz since this project in mainly made to be used with Obsidian.

Hi there, current search behaviour separate out tag and full-text search.
I'm not opposed having a more advanced search, but prefer not to mix the two.

Well i poorly explained, but the #something tag search would actually be a normal text search, nothing more since its searching into the text

no, because #tag is for tag search only.

@RuslanGlaznyov I think you might be interested in this #978 )))
Can you please test it and give feedback if everything works as it should?


Text in assets/ gets translated to the default language rather than client's preferred

@rafaelgg and I noticed this while hunting for non-translating strings in the activities front. This should have been obvious: assets may be precompiled when deploying to production, but even in development they are somehow cached, so rails I18n code should definitely not be used in assets. Culprits follow:
[arch@myhost ~]$ grep I18n `find . -name *erb | grep  assets`
./documents/app/assets/javascripts/documents.js.erb:                       $(this).attr('id') +"\"); return false;'><%= I18n.t('comment.view_all') %> (" +
./base/app/assets/javascripts/activities.js.erb:    $("#masterSubmitButton").val("<%= I18n.t('activity.sending') %>...").attr("disabled", true);
./base/app/assets/javascripts/activities.js.erb:      $(this).val("<%= I18n.t('activity.sending') %>...").attr("disabled", true);
./base/app/assets/javascripts/activities.js.erb:  $(".submitActivity").val("<%= I18n.t('share') %>").removeAttr("disabled");
./base/app/assets/javascripts/activities.js.erb:  $("#masterSubmitButton").val("<%= I18n.t('share') %>").removeAttr("disabled");
./base/app/assets/javascripts/activities.js.erb:                   $(this).attr('id') +"\"); return false;'><%= I18n.t('comment.view_all') %> (" +
./presence/app/assets/javascripts/chat_interface_manager.js.erb:$("#chat_header_title").html('<%=I18n.t('chat.disconnected')%>')
./presence/app/assets/javascripts/chat_interface_manager.js.erb:$("#chat_header_title").html('<%=I18n.t('chat.connecting')%>')
./presence/app/assets/javascripts/chat_interface_manager.js.erb:    var defaultTitle = '<%=I18n.t('chat.status.choose')%>'
./presence/app/assets/javascripts/chat_interface_manager.js.erb:var msg = '<%=I18n.t('chat.notify.offline')%>';
./presence/app/assets/javascripts/xmpp_client_management.js.erb:$("#chat_header_title").html('<%=I18n.t('chat.reconnecting')%>')
./presence/app/assets/javascripts/xmpp_client_management.js.erb:$("#chat_header_title").html('<%=I18n.t('chat.unableconnect')%>')
./linkser/app/assets/javascripts/linkser.js.erb:              $("#link_preview").html($('<div>').addClass('loading').html("<%= I18n.t('link.errors.loading') %> " + url));

These text will appear in whatever your I18n.default_locale is; keep in mind that you should rake assets:clean and restart your app if changing the locale default.
There are really a few alternatives to work this out, at least in the activities front:

Using I18n-js may be the simplest one, but it pulls yet another dependency to social_stream.
Separating the text to translate to a view is probably the right thing to do, but they are such small strings it seems a bit overfetched.
Hiding the translated info inside the page, then have the JS display it or copy their content over; it does not scale nice and, but then again there are not too many cases.

What do you guys think?

Nice catch guys! This is a bug that we were seeking after in the Piluka's deploy
I think i18n-js in the most convenient solution. YAD :-(
Including the translation in the views makes the javascript dependent on that views, which is very messy...

This was trickier than expected: I18n-js works great, but there is a glitch if you don't have a config file at you app's config/i18n-js.yml. The file can actually be empty, it just needs to be there; e.g. create it with:
$ touch config/i18n-js.yml

This is not worth including in the documentation, because it is already fixed in the upcoming  version of i18n-js... we just have to wait for them to re-pack, maybe raise the dependency by one patch level.
Kudos to @raquelgb for the excellent research, and heads up to @Roendal and @agordillo because I messed with code from social_stream-linkser and social_stream-presence.


Feature: Add support for encryption and decryption of data at chunk/sample level

Before submitting

[x] Was this discussed/agreed via a GitHub issue? (no need for typos and docs improvements)
[x] Did you read the contributor guidelines, specifically the Pull Request section?
[x] Did you update the documentation?
[x] Did you write any necessary tests?

What does this PR do?
fixes: #197
Key Features

Encryption/Decryption: Adds support for encryption and decryption of data at chunk/sample level

Example Usage
Here’s a brief example of how to use the new feature:
import numpy as np
from PIL import Image
from litdata import optimize, StreamingDataset
from litdata.utilities.encryption import FernetEncryption

# Initialize the encryption with a secure password
fernet = FernetEncryption(password="your_secure_password", level="sample") # also supports "chunk" as level
data_dir = "s3://my-bucket/optimized_data"

def random_image(index):
    # Generate a random image
    fake_img = Image.fromarray(np.random.randint(0, 255, (32, 32, 3), dtype=np.uint8))
    return {"image": fake_img, "class": index}

# Optimize data while applying encryption
optimize(
    fn=random_image,
    inputs=list(range(5)),
    num_workers=1,
    output_dir=data_dir,
    chunk_bytes="64MB",
    encryption=fernet,
)

# Load the encrypted data using StreamingDataset
ds = StreamingDataset(input_dir=data_dir, encryption=fernet)

PR Review
Anyone in the community is encouraged to review this PR once the tests have passed. If this PR was not discussed in GitHub issues, it is unlikely to be merged.
Did you have fun?
Make sure you had fun coding! 🙃

Hi @tchaton,
The PR is ready for another round of review.
I have a question regarding the api_key for StreamingDataset.
I might need a bit more context around it. If this is outside the scope of encryption and decryption then I think I will create a separate PR for it.
Here are the remaining items I believe still need to be completed, and I may need some guidance on them:

Ensure resume functionality working by implementing saving and loading of the state_dict for encryptors.
identify and handle additional test cases.
Address saving and loading of encryptors

Thank you for taking the time to review and provide your guidance!

Awesome job @bhimrazy, thanks for the contribution!


HTTP Task running multiple times

Hi,
My HTTP task is experiencing unwanted behavior. When the service takes too long to respond, the task is being called again. I would like to set up the task and workflow to run the task only once regardless of how long the service took to respond to the request.
I configured the task like this:
[
    {
    "name": "t",
    "retryCount": 0,
    "timeoutSeconds": 0,
    "timeoutPolicy": "TIME_OUT_WF",
    "retryLogic": "FIXED",
    "retryDelaySeconds": 0,
    "responseTimeoutSeconds": 0
    }
]

The workflow is configured like this:
{
    "name": "w",
    "version": 1,
    "schemaVersion": 2,
    "inputParameters": [],
    "tasks": [{
            "name": "t",
            "taskReferenceName": "t",
            "type": "HTTP",
            "inputParameters": {
                "http_request": {
                    "uri": "http://localhost:8084/test",
                    "method": "GET"
                }
            }
        }
    ]
}

When it is delayed to respond the task is not marked as TIMED_OUT, but the GET method is called several times, and the Poll Count is incremented.
I noticed that at some point the task is queued again (SystemTaskWorkerCoordinator) and then executed, and a new worker is created to execute this task. But I couldn't find a way to set a timeout parameter for it or configure to poll the task only once.
Is there a way to do this?
Thanks!

This is the log when de http_request takes time to respond
25409 [system-task-worker-0] INFO  com.netflix.conductor.core.execution.WorkflowExecutor  - Executing HTTP/09770016-9cbd-4b2a-af8f-52fa45b58091-SCHEDULED
129569 [system-task-worker-1] INFO  com.netflix.conductor.core.execution.WorkflowExecutor  - Executing HTTP/09770016-9cbd-4b2a-af8f-52fa45b58091-SCHEDULED
249736 [system-task-worker-2] INFO  com.netflix.conductor.core.execution.WorkflowExecutor  - Executing HTTP/09770016-9cbd-4b2a-af8f-52fa45b58091-SCHEDULED


TIM-233 feat(navigation): add desktop navigation

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4  👈
#3
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @xdjeremy and the rest of your teammates on  Graphite

Merge activity

Jun 4, 11:11 PM EDT: @xdjeremy merged this pull request with Graphite.


Templates in the title aren't updating the UI after template expansion

I think this is related to changes in how model objects signal state changes - when a template tag appears in the title of a dashboard, it's getting expanded, but the DOM isn't updated.

Fixed


stellarterm-win32-x64.zip - doesn't work on Windows 7 32bit

This latest version not working. Like it is compiled for x64 OS only.

stellarterm-win32-x64.zip

stellarterm-win32-x64.zip
ZIP file indicates that this is 64-bit version...

win32-x64.zip is the Windows version.

win32-x64.zip is the Windows version.
And Windows 7 is not Windows, right?

There is only 1 exe. How was it previously?


fix(bspwm): Handle monitor names with illegal characters

Adding monitor index field into bspwm_monitor
command to focus: bspc desktop -f <mon_name>:^<workspace_n> -> bspc desktop -f ^<mon_index>:^<workspace_n>

What type of PR is this? (check all applicable)

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update
[ ] Other: Replace this with a description of the type of this PR

Description

Related Issues & Documents
Fixes #2420
Documentation (check all applicable)

[ ] This PR requires changes to the Wiki documentation (describe the changes)
[ ] This PR requires changes to the documentation inside the git repo (please add them to the PR).
[x] Does not require documentation changes

Closing due to inactivity


[Required] on GUID in [MuationArguments] gives an empty GUID without error

Writing a mutation with a GUID argument marked as [Required] does not throw an error and will return am empty GUID 00000000-0000-0000-0000-000000000000

FYI this is fixed in upcoming v1.1


Search in multi-select

Hi, I was wondering if ngx-formly supported a client-side search of all items in in a multi-select, filtering the results down as you type.

Not supported, you need to create a custom type with of the following solution:

https://github.com/bithost-gmbh/ngx-mat-select-search
https://github.com/ngx-formly/ngx-formly/issues/708#issuecomment-364903803


Move TowerEnemyType to configuration file

This move TowerEnemyType to a new configuration file called enemies.yml

This also make the game more balanced and playable without 800k of money

The config looks like that:
---
towers:
- name: "Chicken"
  modelName: "minecraft:chicken"
  iconMaterial: "minecraft:chicken_spawn_egg"
  baseEffect: "none"
  maxShift: 1.0
  maxHealth: 3.0
  speed: 0.1
  cost: 5.0
  killReward: 2.0
  minWave: 0
  guipos: 10
  wsee: false
- name: "Wolf"
  modelName: "minecraft:wolf"
  iconMaterial: "minecraft:wolf_spawn_egg"
  baseEffect: "none"
  maxShift: 1.0
  maxHealth: 10.0
  speed: 0.2
  cost: 20.0
  killReward: 6.0
  minWave: 3
  guipos: 11
  wsee: false
- name: "Cow"
  modelName: "minecraft:cow"
  iconMaterial: "minecraft:cow_spawn_egg"
  baseEffect: "none"
  maxShift: 1.0
  maxHealth: 20.0
  speed: 0.3
  cost: 100.0
  killReward: 0.5
  minWave: 5
  guipos: 12
  wsee: false
- name: "Horse"
  modelName: "minecraft:horse"
  iconMaterial: "minecraft:horse_spawn_egg"
  baseEffect: "none"
  maxShift: 0.5
  maxHealth: 50.0
  speed: 1.0
  cost: 50.0
  killReward: 25.0
  minWave: 20
  guipos: 13
  wsee: false
- name: "Zombie"
  modelName: "minecraft:zombie"
  iconMaterial: "minecraft:zombie_spawn_egg"
  baseEffect: "none"
  maxShift: 0.8
  maxHealth: 400.0
  speed: 0.2
  cost: 200.0
  killReward: 100.0
  minWave: 30
  guipos: 14
  wsee: false
- name: "Mad cow"
  modelName: "minecraft:mooshroom"
  iconMaterial: "minecraft:mooshroom_spawn_egg"
  baseEffect: "none"
  maxShift: 1.0
  maxHealth: 5.0
  speed: 0.2
  cost: 1000.0
  killReward: 500.0
  minWave: 60
  guipos: 15
  wsee: false


freerotation behaviour

hi pavel,
I have used your lib a few time, works great. in the past I used the gesture seperated, panning rotation, zoom. Now I have to freerotate elements.
when the user rotates an sprite and chages the distance between the fingers the scaling works while rotating. when the user rotates a bigger angle the sprite moves away from the touchpoints.
is there a simple trick to prevent this? or should I only scale when the rotation is smaller then a defined value?
regards.
const gesture:TransformGesture = event.target as TransformGesture;

			// trace (gesture.location);
			// trace (gesture.touchesCount);

			var matrix:Matrix = event.target.target.transform.matrix;

			var _x:Number = event.target.target.x;
			var _y:Number = event.target.target.y;

			// Panning
			if (doPanning != false){
				matrix.translate(gesture.offsetX, gesture.offsetY);
				event.target.target.transform.matrix = matrix;
			}

			if (gesture.scale != 1 || gesture.rotation != 0) {

				// Scale and rotation.
				var transformPoint:Point = matrix.transformPoint(event.target.target.globalToLocal(gesture.location));
				matrix.translate(-transformPoint.x, -transformPoint.y);
				matrix.rotate(gesture.rotation);

				// lastGestureRotate = gesture.rotation
				// lastGestureScale = gesture.scale;
				if ( doScaling == true ) matrix.scale(gesture.scale, gesture.scale);

				matrix.translate(transformPoint.x, transformPoint.y);
				event.target.target.transform.matrix = matrix;

				// nicht zu klein machen
				if (event.target.target.scaleX < 0.7) {
					event.target.target.scaleX = 0.7;
					event.target.target.scaleY = 0.7;
					event.target.target.x = _x;
					event.target.target.y = _y;
				} else if (event.target.target.scaleX > 1.1) {
					event.target.target.scaleX = 1.1;
					event.target.target.scaleY = 1.1;
					event.target.target.x = _x;
					event.target.target.y = _y;
				}

@bluelemonade I don't understand your problem :/ if you still need help, I could try to assist in voice via Telegram or Skype or Google Hangouts.

hello,
you can find a capture of the issue: http://intern.bluelemon.de:8080/share.cgi?ssid=0lYDjOt
( NAS active between 8.00 and 21.00 MET)
you can see the comibation of scaling an rotating. when I change the rotation an change at the same time the scaling smaller then my minimal scaling, the sprite wanders out of the touch points. how can I avoid this.
regards

@bluelemonade well do not transform your object via those scaleX scaleY x and y convenience setters! If you do it this it transforms object relative to it's origin.
I think you should drop all code after // nicht zu klein machen and instead limit the scaling at matrix.scale() call. You don't want to apply too much up/down scale here.


The theme doesn't work with Atom 1.12.9

My OS is Ubuntu 16.10 yakkety and the Atom version is 1.12.9

Upgrade your editor to 1.13, see atom/atom#12903.


Feature/edit wombat

@oconn @dehli

builds off of wombat card #61
adds edit functionality
prepopulates modal with wombat info for editing
adds edit button on wombat card hover

See #63


h2 Directory and jar are Missing from Project

h2 Directory and jar are Missing from Project

.gitignore was blocking the addition of h2 jar. Fix by excluding from .gitignore.


loading error

I have installed all correctly(I believe) but it doesn't load.  Just keeps saying "loading"  Not sure what else to do.
},
	{
        module: 'MMM-Wallpaper',
        position: 'fullscreen_below',
        config: {
            updateInterval: 0,
            unsplashAPIKey: "My API key was inserted here", // REQUIRED
            query: false,
            collectionIDs: false,
            userName: false,
            photoID: false,
            autoDim: true,
            brightImageOpacity: 0.85,
            imageOrientation: "landscape",
            imageWidth: "auto",
            imageHeight: "auto",
            imageOptions: "fit=fill&fill=blur",
        }
	}

Hi,
the configuration seems ok.
Is there any output in the magic mirror console ?
Have you double checked your API key ?


add offices for Clay Higgins H001077

from his official website

Thank you!

@tcarobruce no problem, thanks for creating this resource!
We're ingesting it for an open API that takes coordinate-based location queries to find reps and also serves downloadable VCards with all the local contact info. Check out implementation of the API at phoneyourrep.com


The instance manager's log is flooded by the error message when it fails to start a process

[instance-manager-r-ed1b4b33] [longhorn-instance-manager] time="2019-10-03T22:44:15Z" level=info msg="wait for gRPC service of process test1-r-4660f6e2 to start"
[instance-manager-r-ed1b4b33] [longhorn-instance-manager] time="2019-10-03T22:44:16Z" level=info msg="wait for gRPC service of process test1-r-4660f6e2 to start"
[instance-manager-r-ed1b4b33] [longhorn-instance-manager] time="2019-10-03T22:44:17Z" level=info msg="wait for gRPC service of process test1-r-4660f6e2 to start"
[instance-manager-r-ed1b4b33] [longhorn-instance-manager] time="2019-10-03T22:44:18Z" level=info msg="wait for gRPC service of process test1-r-4660f6e2 to start"
[instance-manager-r-ed1b4b33] [longhorn-instance-manager] time="2019-10-03T22:44:19Z" level=info msg="wait for gRPC service of process test1-r-4660f6e2 to start"

May need to adjust the wait interval: https://github.com/longhorn/longhorn-instance-manager/blob/f83d29eee6b9451fe5aae1843fa0c2907fd31ffa/process/healthchecker.go#L28

Weird, it shouldn't take more than a couple of seconds to start the replica. 5 seconds is long.

In this case, instance manager cannot launch replica processes due to some issues. e.g.: https://github.com/longhorn/longhorn/issues/776. Then the log is flooded by this message.

In fact, the log is useful since it indicates there is a problem. We can move it to the debug level. Increase the wait interval won't solve the problem: there is little difference between 1 second or 10 seconds if you run it for days but the later can cause 10 seconds delay in starting the process.

The solution, for now, would be moving the log to the debug level.

If the process is already stopped, waiting for GRPC should be stopped as well.

Should be fixed by https://github.com/longhorn/longhorn-engine/commit/06d8188ebbf054de39a727bb89ad53fdf2678223 .
Feel free to reopen if it happens again.


feat: reuse CLI APIs for the board and port

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release
1.1.0

Your semantic-release bot :package::rocket:


listen and listenSelf equivalents

Hi, once again thanks for this great package 👍
Is there listen and listenSelf methods equivalents in Creator?

Hi!
foo_creator.change is a replacement for riverpod listen. It is better in my mind because it is just a normal creator that returns a wrapper class with previous and current value. You can use the value however you want, for example, has a Creator that watch the change and do stuff. See https://github.com/liangxianzhe/creator#listen-to-change
I'm not too sure about listenSelf, why would someone listen to self? Creator has an API called readSelf though.

I don't want to create a second creator for just listen another creator. Maybe I can figure it out with change. Thanks mate 😊.
I close this.

How can I listen emitter change without a Watcher?

That depends on where you want to watch and what you want to do.
Option 1 - Using watcher like in your code. Is there a reason you don't like it? Adding a watcher is cheap.
Option 2 - Put the listen logic in a Creator inside a State, watch it in didChangeDependencies and dispose it dispose. If you really hate repeating these two steps, then maybe use a mixin like this:
/// Add a creator to stateful widget that got disposed automatically when the
/// state is disposed.
mixin CreatorMixin<T extends StatefulWidget> on State<T> {
  // A creator that is typically set in initState and updated in didChangeWidget
  // as needed.
  Creator? _creator;
  set creator(Creator value) {
    if (_creator == null) {
      _creator = value;
    } else {
      ref.dispose(_creator!);
      _creator = value;
      ref.watch(_creator!);
    }
  }

  late Ref ref;

  @override
  void didChangeDependencies() {
    ref = context.ref;
    if (_creator != null) {
      ref.watch(_creator!);
    }
    super.didChangeDependencies();
  }

  @override
  void dispose() {
    if (_creator != null) {
      ref.dispose(_creator!);
    }
    super.dispose();
  }
}

Option 3 - If the logic is global, you can watch the creator in main(). Something like:
  final app = CreatorGraph(child: const MyApp());
  await app.ref.watch(someEmitter);

Thanks for options. How about that?
extension RefX on Ref {
  void listen<T>(Creator<T> creator, void Function(Change<T> change) change) {
    watch(Creator((ref) {
      change(ref.watch(creator.change));
    }, name: creator.name ?? 'listener'));
  }
}

Thanks for options. How about this?
extension RefX on Ref {
  void listen<T>(Creator<T> creator, void Function(Change<T> change) change) {
    watch(Creator((ref) {
      change(ref.watch(creator.change));
    }, name: creator.name ?? 'listener'));
  }
}

Hi, your options are fine. Just remember to make the temporary creator stable (with args) if the ref in your last line could rebuild by others. For example:
final someCreator = Creator((ref) {
  ref.watch(fooCreator);
  ref.listen(barCreator, (change) { print(change); }, args: ["some args to keep it stable"]);
  return "something";
});

Though personally I would prefer:
final barLogger = Creator((ref) => print(ref.watch(barCreator.change)));

final someCreator = Creator((ref) {
  ref.watch(fooCreator);
  ref.watch(barLogger);
  return "something";
});

Thanks mate, I'm gonna use listen out of context like this.
extension RefX on Ref {
  void listen<T>(CreatorBase<FutureOr<T>> creator, void Function(Change<T> change) change, {String? name, bool keepAlive = false, List<Object?>? args}) {
    if (creator is Creator<T>) {
      watch(Creator((ref) {
        change(ref.watch(creator.change));
      }, name: name, keepAlive: keepAlive, args: args));
    } else if (creator is Emitter<T>) {
      watch(Emitter((ref, emit) async {
        change(await ref.watch(creator.change));
      }, name: name, keepAlive: keepAlive, args: args));
    } else {
      throw Exception('creator must be Creator or Emitter');
    }
  }
}

main() {
  await globalRef.read(langLocalValueEmitter);
        globalRef.listen(langLocalValueEmitter, (change) {
          if (change.before != null && change.after != change.before) {
            _langLocalValue.write(change.after);
          }
        });
}

runApp(...)


Run CameraTest and LaserTest as normal tests

After https://github.com/robotology/gz-sim-yarp-plugins/issues/196, let's check if there still remain problems in CameraTest or LaserTest.

Ok, CameraTest still segfaults sometimes on apt, this is tracked in https://github.com/robotology/gz-sim-yarp-plugins/issues/200 .


How to specify @lang in setSetJson() object?

Hello! I cannot find this in the README.md but how do we go about passing the language for a predicate in the json object we want to mutate?
{
<0f27fd12> <label@en> "Dog" .
<0f27fd12> <label@fr> "Chien" .
}

How do basically do this with the Mutation.setSetJson(obj)'s object?
p.s. and also how to delete label@en using the setDeleteJson()?

The JSON below should work for setting and deleting.
{
  "uid" : "0f27fd12",
  "label@en": "Dog",
  "label@fr": "Chien"
}


FO : Bugfix for "before price" as combinations can also have negative price effects

Thanks.
Now the module is public, can you remake your PR on the dev branch, please? We need to follow our release process 😉
Regards

@maximebiloe  sure no problem, find it here: https://github.com/PrestaShop/ps_legalcompliance/pull/13


youtube\-dl\ \-o\ \-\ "https://www.youtube.com/watch?v=BaW_jenozKcj"\ |\ vlc\ \-
\f[]
.fi
.SS How do I download only new videos from a playlist?
.PP
Use download\-archive feature.
With this feature you should initially download the complete playlist
with \f[C]\-\-download\-archive\ /path/to/download/archive/file.txt\f[]
that will record identifiers of all the videos in a special file.
Each subsequent run with the same \f[C]\-\-download\-archive\f[] will
download only new videos and skip all videos that have been downloaded
before.
Note that only successful downloads are recorded in the file.
.PP
For example, at first,
.IP
.nf
\f[C]
youtube\-dl\ \-\-download\-archive\ archive.txt\ "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re"
\f[]
.fi
.PP
will download the complete \f[C]PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re\f[]
playlist and create a file \f[C]archive.txt\f[].
Each subsequent run will only download new videos if any:
.IP
.nf
\f[C]
youtube\-dl\ \-\-download\-archive\ archive.txt\ "https://www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re"
\f[]
.fi
.SS Should I add \f[C]\-\-hls\-prefer\-native\f[] into my config?
.PP
When youtube\-dl detects an HLS video, it can download it either with
the built\-in downloader or ffmpeg.
Since many HLS streams are slightly invalid and ffmpeg/youtube\-dl each
handle some invalid cases better than the other, there is an option to
switch the downloader if needed.
.PP
When youtube\-dl knows that one particular downloader works better for a
given website, that downloader will be picked.
Otherwise, youtube\-dl will pick the best downloader for general
compatibility, which at the moment happens to be ffmpeg.
This choice may change in future versions of youtube\-dl, with
improvements of the built\-in downloader and/or ffmpeg.
.PP
In particular, the generic extractor (used when your website is not in
the list of supported sites by
youtube\-dl (https://rg3.github.io/youtube-dl/supportedsites.html)
cannot mandate one specific downloader.
.PP
If you put either \f[C]\-\-hls\-prefer\-native\f[] or
\f[C]\-\-hls\-prefer\-ffmpeg\f[] into your configuration, a different
subset of videos will fail to download correctly.
Instead, it is much better to file an issue (https://yt-dl.org/bug) or a
pull request which details why the native or the ffmpeg HLS downloader
is a better choice for your use case.
.SS Can you add support for this anime video site, or site which shows
current movies for free?
.PP
As a matter of policy (as well as legality), youtube\-dl does not
include support for services that specialize in infringing copyright.
As a rule of thumb, if you cannot easily find a video that the service
is quite obviously allowed to distribute (i.e.\ that has been uploaded
by the creator, the creator's distributor, or is published under a free
license), the service is probably unfit for inclusion to youtube\-dl.
.PP
A note on the service that they don't host the infringing content, but
just link to those who do, is evidence that the service should
\f[B]not\f[] be included into youtube\-dl.
The same goes for any DMCA note when the whole front page of the service
is filled with videos they are not allowed to distribute.
A \[lq]fair use\[rq] note is equally unconvincing if the service shows
copyright\-protected videos in full without authorization.
.PP
Support requests for services that \f[B]do\f[] purchase the rights to
distribute their content are perfectly fine though.
If in doubt, you can simply include a source that mentions the
legitimate purchase of content.
.SS How can I speed up work on my issue?
.PP
(Also known as: Help, my important issue not being solved!) The
youtube\-dl core developer team is quite small.
While we do our best to solve as many issues as possible, sometimes that
can take quite a while.
To speed up your issue, here's what you can do:
.PP
First of all, please do report the issue at our issue
tracker (https://yt-dl.org/bugs).
That allows us to coordinate all efforts by users and developers, and
serves as a unified point.
Unfortunately, the youtube\-dl project has grown too large to use
personal email as an effective communication channel.
.PP
Please read the bug reporting instructions below.
A lot of bugs lack all the necessary information.
If you can, offer proxy, VPN, or shell access to the youtube\-dl
developers.
If you are able to, test the issue from multiple computers in multiple
countries to exclude local censorship or misconfiguration issues.
.PP
If nobody is interested in solving your issue, you are welcome to take
matters into your own hands and submit a pull request (or coerce/pay
somebody else to do so).
.PP
Feel free to bump the issue from time to time by writing a small comment
(\[lq]Issue is still present in youtube\-dl version \&...from France,
but fixed from Belgium\[rq]), but please not more than once a month.
Please do not declare your issue as \f[C]important\f[] or
\f[C]urgent\f[].
.SS How can I detect whether a given URL is supported by youtube\-dl?
.PP
For one, have a look at the list of supported
sites (docs/supportedsites.md).
Note that it can sometimes happen that the site changes its URL scheme
(say, from https://example.com/video/1234567 to
https://example.com/v/1234567 ) and youtube\-dl reports an URL of a
service in that list as unsupported.
In that case, simply report a bug.
.PP
It is \f[I]not\f[] possible to detect whether a URL is supported or not.
That's because youtube\-dl contains a generic extractor which matches
\f[B]all\f[] URLs.
You may be tempted to disable, exclude, or remove the generic extractor,
but the generic extractor not only allows users to extract videos from
lots of websites that embed a video from another service, but may also
be used to extract video from a service that it's hosting itself.
Therefore, we neither recommend nor support disabling, excluding, or
removing the generic extractor.
.PP
If you want to find out whether a given URL is supported, simply call
youtube\-dl with it.
If you get no videos back, chances are the URL is either not referring
to a video or unsupported.
You can find out which by examining the output (if you run youtube\-dl
on the console) or catching an \f[C]UnsupportedError\f[] exception if
you run it from a Python program.
.SH Why do I need to go through that much red tape when filing bugs?
.PP
Before we had the issue template, despite our extensive bug reporting
instructions, about 80% of the issue reports we got were useless, for
instance because people used ancient versions hundreds of releases old,
because of simple syntactic errors (not in youtube\-dl but in general
shell usage), because the problem was already reported multiple times
before, because people did not actually read an error message, even if
it said \[lq]please install ffmpeg\[rq], because people did not mention
the URL they were trying to download and many more simple,
easy\-to\-avoid problems, many of whom were totally unrelated to
youtube\-dl.
.PP
youtube\-dl is an open\-source project manned by too few volunteers, so
we'd rather spend time fixing bugs where we are certain none of those
simple problems apply, and where we can be reasonably confident to be
able to reproduce the issue without asking the reporter repeatedly.
As such, the output of \f[C]youtube\-dl\ \-v\ YOUR_URL_HERE\f[] is
really all that's required to file an issue.
The issue template also guides you through some basic steps you can do,
such as checking that your version of youtube\-dl is current.
.SH DEVELOPER INSTRUCTIONS
.PP
Most users do not need to build youtube\-dl and can download the
builds (https://rg3.github.io/youtube-dl/download.html) or get them from
their distribution.
.PP
To run youtube\-dl as a developer, you don't need to build anything
either.
Simply execute
.IP
.nf
\f[C]
python\ \-m\ youtube_dl
\f[]
.fi
.PP
To run the test, simply invoke your favorite test runner, or execute a
test file directly; any of the following work:
.IP
.nf
\f[C]
python\ \-m\ unittest\ discover
python\ test/test_download.py
nosetests
\f[]
.fi
.PP
See item 6 of new extractor tutorial for how to run extractor specific
test cases.
.PP
If you want to create a build of youtube\-dl yourself, you'll need
.IP \[bu] 2
python
.IP \[bu] 2
make (only GNU make is supported)
.IP \[bu] 2
pandoc
.IP \[bu] 2
zip
.IP \[bu] 2
nosetests
.SS Adding support for a new site
.PP
If you want to add support for a new site, first of all \f[B]make
sure\f[] this site is \f[B]not dedicated to copyright
infringement (README.md#can-you-add-support-for-this-anime-video-site-or-site-which-shows-current-movies-for-free)\f[].
youtube\-dl does \f[B]not support\f[] such sites thus pull requests
adding support for them \f[B]will be rejected\f[].
.PP
After you have ensured this site is distributing its content legally,
you can follow this quick list (assuming your service is called
\f[C]yourextractor\f[]):
.IP " 1." 4
Fork this repository (https://github.com/rg3/youtube-dl/fork)
.IP " 2." 4
Check out the source code with:
.RS 4
.IP
.nf
\f[C]
\ git\ clone\ git\@github.com:YOUR_GITHUB_USERNAME/youtube\-dl.git
\f[]
.fi
.RE
.IP " 3." 4
Start a new git branch with
.RS 4
.IP
.nf
\f[C]
\ cd\ youtube\-dl
\ git\ checkout\ \-b\ yourextractor
\f[]
.fi
.RE
.IP " 4."  4
Add an import in
\f[C]youtube_dl/extractor/extractors.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/extractors.py).
.IP " 6." 4
Run
\f[C]python\ test/test_download.py\ TestDownload.test_YourExtractor\f[].
This \f[I]should fail\f[] at first, but you can continually re\-run it
until you're done.
If you decide to add more than one test, then rename \f[C]_TEST\f[] to
\f[C]_TESTS\f[] and make it into a list of dictionaries.
The tests will then be named \f[C]TestDownload.test_YourExtractor\f[],
\f[C]TestDownload.test_YourExtractor_1\f[],
\f[C]TestDownload.test_YourExtractor_2\f[], etc.
Note that tests with \f[C]only_matching\f[] key in test's dict are not
counted in.
.IP " 7." 4
Have a look at
\f[C]youtube_dl/extractor/common.py\f[] (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py)
for possible helper methods and a detailed description of what your
extractor should and may
return (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L74-L252).
Add tests and code for as many as you want.
.IP " 8." 4
Make sure your code follows youtube\-dl coding conventions and check the
code with flake8 (https://pypi.python.org/pypi/flake8).
Also make sure your code works under all
Python (https://www.python.org/) versions claimed supported by
youtube\-dl, namely 2.6, 2.7, and 3.2+.
.IP " 9." 4
When the tests pass, add (https://git-scm.com/docs/git-add) the new
files and commit (https://git-scm.com/docs/git-commit) them and
push (https://git-scm.com/docs/git-push) the result, like this:
.RS 4
.IP
.nf
\f[C]
\ $\ git\ add\ youtube_dl/extractor/extractors.py
\ $\ git\ add\ youtube_dl/extractor/yourextractor.py
\ $\ git\ commit\ \-m\ \[aq][yourextractor]\ Add\ new\ extractor\[aq]
\ $\ git\ push\ origin\ yourextractor
\f[]
.fi
.RE
.IP "10." 4
Finally, create a pull
request (https://help.github.com/articles/creating-a-pull-request).
We'll then review and merge it.
.PP
In any case, thank you very much for your contributions!
.SS youtube\-dl coding conventions
.PP
This section introduces a guide lines for writing idiomatic, robust and
future\-proof extractor code.
.PP
Extractors are very fragile by nature since they depend on the layout of
the source data provided by 3rd party media hosters out of your control
and this layout tends to change.
As an extractor implementer your task is not only to write code that
will extract media links and metadata correctly but also to minimize
dependency on the source's layout and even to make the code foresee
potential future changes and be ready for that.
This is important because it will allow the extractor not to break on
minor layout changes thus keeping old youtube\-dl versions working.
Even though this breakage issue is easily fixed by emitting a new
version of youtube\-dl with a fix incorporated, all the previous
versions become broken in all repositories and distros' packages that
may not be so prompt in fetching the update from us.
Needless to say, some non rolling release distros may never receive an
update at all.
.SS Mandatory and optional metafields
.PP
For extraction to work youtube\-dl relies on metadata your extractor
extracts and provides to youtube\-dl expressed by an information
dictionary (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L75-L257)
or simply \f[I]info dict\f[].
Only the following meta fields in the \f[I]info dict\f[] are considered
mandatory for a successful extraction process by youtube\-dl:
.IP \[bu] 2
\f[C]id\f[] (media identifier)
.IP \[bu] 2
\f[C]title\f[] (media title)
.IP \[bu] 2
\f[C]url\f[] (media download URL) or \f[C]formats\f[]
.PP
In fact only the last option is technically mandatory (i.e.\ if you
can't figure out the download location of the media the extraction does
not make any sense).
But by convention youtube\-dl also treats \f[C]id\f[] and \f[C]title\f[]
as mandatory.
Thus the aforementioned metafields are the critical data that the
extraction does not make any sense without and if any of them fail to be
extracted then the extractor is considered completely broken.
.PP
Any
field (https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/common.py#L149-L257)
apart from the aforementioned ones are considered \f[B]optional\f[].
That means that extraction should be \f[B]tolerant\f[] to situations
when sources for these fields can potentially be unavailable (even if
they are always available at the moment) and \f[B]future\-proof\f[] in
order not to break the extraction of general purpose mandatory fields.
.SS Example
.PP
Say you have some source dictionary \f[C]meta\f[] that you've fetched as
JSON with HTTP request and it has a key \f[C]summary\f[]:
.IP
.nf
\f[C]
meta\ =\ self._download_json(url,\ video_id)
\f[]
.fi
.PP
Assume at this point \f[C]meta\f[]'s layout is:
.IP
.nf
\f[C]
{
\ \ \ \ ...
\ \ \ \ "summary":\ "some\ fancy\ summary\ text",
\ \ \ \ ...
}
\f[]
.fi
.PP
Assume you want to extract \f[C]summary\f[] and put it into the
resulting info dict as \f[C]description\f[].
Since \f[C]description\f[] is an optional meta field you should be ready
that this key may be missing from the \f[C]meta\f[] dict, so that you
should extract it like:
.IP
.nf
\f[C]
description\ =\ meta.get(\[aq]summary\[aq])\ \ #\ correct
\f[]
.fi
.PP
and not like:
.IP
.nf
\f[C]
description\ =\ meta[\[aq]summary\[aq]]\ \ #\ incorrect
\f[]
.fi
.PP
The latter will break extraction process with \f[C]KeyError\f[] if
\f[C]summary\f[] disappears from \f[C]meta\f[] at some later time but
with the former approach extraction will just go ahead with
\f[C]description\f[] set to \f[C]None\f[] which is perfectly fine
(remember \f[C]None\f[] is equivalent to the absence of data).
.PP
Similarly, you should pass \f[C]fatal=False\f[] when extracting optional
data from a webpage with \f[C]_search_regex\f[],
\f[C]_html_search_regex\f[] or similar methods, for instance:
.IP
.nf
\f[C]
description\ =\ self._search_regex(
\ \ \ \ r\[aq]<span[^>]+id="title"[^>]*>([^<]+)<\[aq],
\ \ \ \ webpage,\ \[aq]description\[aq],\ fatal=False)
\f[]
.fi
.PP
With \f[C]fatal\f[] set to \f[C]False\f[] if \f[C]_search_regex\f[]
fails to extract \f[C]description\f[] it will emit a warning and
continue extraction.
.PP
You can also pass \f[C]default=<some\ fallback\ value>\f[], for example:
.IP
.nf
\f[C]
description\ =\ self._search_regex(
\ \ \ \ r\[aq]<span[^>]+id="title"[^>]*>([^<]+)<\[aq],
\ \ \ \ webpage,\ \[aq]description\[aq],\ default=None)
\f[]
.fi
.PP
On failure this code will silently continue the extraction with
\f[C]description\f[] set to \f[C]None\f[].
That is useful for metafields that may or may not be present.
.SS Provide fallbacks
.PP
When extracting metadata try to do so from multiple sources.
For example if \f[C]title\f[] is present in several places, try
extracting from at least some of them.
This makes it more future\-proof in case some of the sources become
unavailable.
.SS Example
.PP
Say \f[C]meta\f[] from the previous example has a \f[C]title\f[] and you
are about to extract it.
Since \f[C]title\f[] is a mandatory meta field you should end up with
something like:
.IP
.nf
\f[C]
title\ =\ meta[\[aq]title\[aq]]
\f[]
.fi
.PP
If \f[C]title\f[] disappears from \f[C]meta\f[] in future due to some
changes on the hoster's side the extraction would fail since
\f[C]title\f[] is mandatory.
That's expected.
.PP
Assume that you have some another source you can extract \f[C]title\f[]
from, for example \f[C]og:title\f[] HTML meta of a \f[C]webpage\f[].
In this case you can provide a fallback scenario:
.IP
.nf
\f[C]
title\ =\ meta.get(\[aq]title\[aq])\ or\ self._og_search_title(webpage)
\f[]
.fi
.PP
This code will try to extract from \f[C]meta\f[] first and if it fails
it will try extracting \f[C]og:title\f[] from a \f[C]webpage\f[].
.SS Make regular expressions flexible
.PP
When using regular expressions try to write them fuzzy and flexible.
.
Use them for string to number conversions as well.
.SH EMBEDDING YOUTUBE\-DL
.PP
youtube\-dl makes the best effort to be a good command\-line program,
and thus should be callable from any programming language.
If you encounter any problems parsing its output, feel free to create a
report (https://github.com/rg3/youtube-dl/issues/new).
.PP
From a Python program, you can embed youtube\-dl in a more powerful
fashion, like this:
.IP
.nf
\f[C]
from\ __future__\ import\ unicode_literals
import\ youtube_dl

ydl_opts\ =\ {}
with\ youtube_dl.YoutubeDL(ydl_opts)\ as\ ydl:
\ \ \ \ ydl.download([\[aq]https://www.youtube.com/watch?v=BaW_jenozKc\[aq]])
\f[]
.fi
.PP
Most likely, you'll want to use various options.
For a list of options available, have a look at
\f[C]youtube_dl/YoutubeDL.py\f[] (https://github.com/rg3/youtube-dl/blob/3e4cedf9e8cd3157df2457df7274d0c842421945/youtube_dl/YoutubeDL.py#L137-L312).
For a start, if you want to intercept youtube\-dl's output, set a
\f[C]logger\f[] object.
.
Unless you were prompted to or there is another pertinent reason
(e.g.\ GitHub fails to accept the bug report), please do not send bug
reports via personal email.
For discussions, join us in the IRC channel
#youtube\-dl (irc://chat.freenode.net/#youtube-dl) on freenode
(webchat (https://webchat.freenode.net/?randomnick=1&channels=youtube-dl)).
.PP
\f[B]Please include the full output of youtube\-dl when run with
\f[BC]\-v\f[B]\f[], i.e.
\f[B]add\f[] \f[C]\-v\f[] flag to \f[B]your command line\f[], copy the
\f[B]whole\f[] output and post it in the issue body wrapped in ``` for
better formatting.
It should look similar to this:
.IP
.nf
\f[C]
$\ youtube\-dl\ \-v\ <your\ command\ line>
[debug]\ System\ config:\ []
[debug]\ User\ config:\ []
[debug]\ Command\-line\ args:\ [u\[aq]\-v\[aq],\ u\[aq]https://www.youtube.com/watch?v=BaW_jenozKcj\[aq]]
[debug]\ Encodings:\ locale\ cp1251,\ fs\ mbcs,\ out\ cp866,\ pref\ cp1251
[debug]\ youtube\-dl\ version\ 2015.12.06
[debug]\ Git\ HEAD:\ 135392e
[debug]\ Python\ version\ 2.6.6\ \-\ Windows\-2003Server\-5.2.3790\-SP2
[debug]\ exe\ versions:\ ffmpeg\ N\-75573\-g1d0487f,\ ffprobe\ N\-75573\-g1d0487f,\ rtmpdump\ 2.4
[debug]\ Proxy\ map:\ {}
\&...
\f[]
.fi
.PP
\f[B]Do not post screenshots of verbose logs; only plain text is
acceptable.\f[]
.PP
The output (including the first lines) contains important debugging
information.
Issues without the full output are often not reproducible and therefore
do not get solved in short order, if ever.
.PP
Please re\-read your issue once again to avoid a couple of common
mistakes (you can and should use this as a checklist):
.SS Is the description of the issue itself sufficient?
.PP
We often get issue reports that we cannot really decipher.
While in most cases we eventually get the required information after
asking back multiple times, this poses an unnecessary drain on our
resources.
Many contributors, including myself, are also not native speakers, so we
may misread some parts.
.PP
So please elaborate on what feature you are requesting, or what bug you
want to be fixed.
Make sure that it's obvious
.IP \[bu] 2
What the problem is
.IP \[bu] 2
How it could be fixed
.IP \[bu] 2
How your proposed solution would look like
.PP
If your report is shorter than two lines, it is almost certainly missing
some of these, which makes it hard for us to respond to it.
We're often too polite to close the issue outright, but the missing info
makes misinterpretation likely.
As a committer myself, I often get frustrated by these issues, since the
only possible way for me to move forward on them is to ask for
clarification over and over.
.PP
For bug reports, this means that your report should contain the
\f[I]complete\f[] output of youtube\-dl when called with the
\f[C]\-v\f[] flag.
The error message you get for (most) bugs even says so, but you would
not believe how many of our bug reports do not contain this information.
.PP
If your server has multiple IPs or you suspect censorship, adding
\f[C]\-\-call\-home\f[] may be a good idea to get more diagnostics.
If the error is \f[C]ERROR:\ Unable\ to\ extract\ ...\f[] and you cannot
reproduce it from multiple countries, add \f[C]\-\-dump\-pages\f[]
(warning: this will yield a rather large output, redirect it to the file
\f[C]log.txt\f[] by adding \f[C]>log.txt\ 2>&1\f[] to your
command\-line) or upload the \f[C]\&.dump\f[] files you get when you add
\f[C]\-\-write\-pages\f[] somewhere (https://gist.github.com/).
.PP
\f[B]Site support requests must contain an example URL\f[].
An example URL is a URL you might want to download, like
\f[C]https://www.youtube.com/watch?v=BaW_jenozKc\f[].
There should be an obvious video present.
Except under very special circumstances, the main page of a video
service (e.g.
\f[C]https://www.youtube.com/\f[]) is \f[I]not\f[] an example URL.
.SS Are you using the latest version?
.PP
Before reporting any issue, type \f[C]youtube\-dl\ \-U\f[].
This should report that you're up\-to\-date.
About 20% of the reports we receive are already fixed, but people are
using outdated versions.
This goes for feature requests as well.
.SS Is the issue already documented?
.PP
Make sure that someone has not already opened the issue you're trying to
open.
Search at the top of the window or browse the GitHub
Issues (https://github.com/rg3/youtube-dl/search?type=Issues) of this
repository.
If there is an issue, feel free to write something along the lines of
\[lq]This affects me as well, with version 2015.01.01. Here is some more
information on the issue: \&...\[rq].
While some issues may be old, a new post into them often spurs rapid
activity.
.SS Why are existing options not enough?
.PP
Before requesting a new feature, please have a quick peek at the list of
supported
options (https://github.com/rg3/youtube-dl/blob/master/README.md#options).
Many feature requests are for features that actually exist already!
Please, absolutely do show off your work in the issue report and detail
how the existing similar options do \f[I]not\f[] solve your problem.
.SS Is there enough context in your bug report?
.PP
People want to solve problems, and often think they do us a favor by
breaking down their larger problems (e.g.\ wanting to skip already
downloaded files) to a specific request (e.g.\ requesting us to look
whether the file exists before downloading the info page).
However, what often happens is that they break down the problem into two
steps: One simple, and one impossible (or extremely complicated one).
.PP
We are then presented with a very complicated request when the original
problem could be solved far easier, e.g.\ by recording the downloaded
video IDs in a separate file.
To avoid this, you must include the greater context where it is
non\-obvious.
In particular, every feature request that does not consist of adding
support for a new site should contain a use case scenario that explains
in what situation the missing feature would be useful.
.SS Does the issue involve one problem, and one problem only?
.PP
Some of our users seem to think there is a limit of issues they can or
should open.
There is no limit of issues they can or should open.
While it may seem appealing to be able to dump all your issues into one
ticket, that means that someone who solves one of your issues cannot
mark the issue as closed.
Typically, reporting a bunch of issues leads to the ticket lingering
since nobody wants to attack that behemoth, until someone mercifully
splits the issue into multiple ones.
.PP
In particular, every site support request issue should only pertain to
services at one site (generally under a common domain, but always using
the same backend technology).
Do not request support for vimeo user videos, White house podcasts, and
Google Plus pages in the same issue.
Also, make sure that you don't post bug reports alongside feature
requests.
As a rule of thumb, a feature request does not include outputs of
youtube\-dl that are not immediately related to the feature at hand.
Do not post reports of a network error alongside the request for a new
video service.
.SS Is anyone going to need the feature?
.PP
Only post features that you (or an incapacitated friend you can
personally talk to) require.
Do not post features because they seem like a good idea.
If they are really useful, they will be requested by someone who
requires them.
.SS Is your question about youtube\-dl?
.PP
It may sound strange, but some bug reports we receive are completely
unrelated to youtube\-dl and relate to a different, or even the
reporter's own, application.
Please make sure that you are actually using youtube\-dl.
If you are using a UI for youtube\-dl, report the bug to the maintainer
of the actual application providing the UI.
On the other hand, if your UI for youtube\-dl fails in some way you
believe is related to youtube\-dl, by all means, go ahead and report the
bug.
.SH COPYRIGHT
.PP
youtube\-dl is released into the public domain by the copyright holders.
.PP
This README file was originally written by Daniel
Bolton (https://github.com/dbbolton) and is likewise released into the
public domain.


hardcoded library/includepath can be converted to variable via right click action 'Configure as variable'

wording can be improved

Assign to Variable action makes sense on IFS/QSYS Browser but only if shown in the same view container


all: Refactoring code to separate resource policy from rest

Refactoring code so that resource policy specific files are placed to pkg/resmgr/ directory. All the generic files are left to pkg/ directory.

The only one I'm wondering about is pkg/apis/resmgr

I just missed that, so this PR was more or less wip. I will move it.


How to set timezone like Puppeteer

How to set chorme default timezone  like puppeteer
puppeteer.launch({
  env: {
    TZ: 'Australia/Melbourne',
    ...process.env
  }
});

chromedp how to coding.

See https://github.com/chromedp/chromedp/pull/429.


Projected position is wrong

Describe the Bug
After making use of react-dnd and adding simple drag and drop support, i found that the projected position I am getting is completely off. What makes it even more irregular is that it doesnt always happen. So when not moving the camera/view at all, sometimes it would project correctly sometimes not. But as soon as  you move around and the transform changes form [0,0,1], the projected position starts to jump around.
I've included a sandbox, just open it up and try dropping. If it doesnt happen, try refreshing once or twice and try again. Its very irregular and doesnt always happen.
Your Example Website or App
https://codesandbox.io/s/sandpack-project-forked-2pwdnu?file=/App.js
Steps to Reproduce the Bug or Issue

Open sandbox
Try dropping once
If it doesnt project wrong, refresh
Try again
Repeat from steps 2-4 with diferent usecases, such as first panning or zooming then dropping.

Expected behavior
It should calculate the correct position
Screenshots or Videos
https://user-images.githubusercontent.com/45233935/184307094-06069039-1a75-4b60-ab43-cb83bf5509ff.mov
Platform

OS: [e.g. macOS, Windows, Linux]
Browser: [e.g. Chrome, Safari, Firefox]
Version: [e.g. 91.1]

Additional context
No response

Seems like your position calculation is not correct.
This works completely fine for me in the sandbox you linked:
const offset = monitor.getClientOffset();

const position = {
        x: offset.x,
        y: offset.y
	};

Seems like your position calculation is not correct.
This works completely fine for me in the sandbox you linked:
const offset = monitor.getClientOffset();

const position = {
        x: offset.x,
        y: offset.y
	};

Are you sure? Try refreshing after removing the bounding box subtraction. It only works for a moment

https://user-images.githubusercontent.com/45233935/184310793-f866f8e2-3826-493b-a81a-6a853b8648a2.mov
Here is a video

Seems like your position calculation is not correct.
This works completely fine for me in the sandbox you linked:
const offset = monitor.getClientOffset();

const position = {
        x: offset.x,
        y: offset.y
	};

Are you sure? Try refreshing after removing the bounding box subtraction. It only works for a moment

I'll try again later - currently on the road 😅

The issue here is that reactflow.project gets updated after the first render but not the reactflow object itself.
Easiest way to fix this:
const { project } = useReactFlow();

pass that project function to the onDrop deps array => everything works as expected.

The issue here is that reactflow.project gets updated after the first render but not the reactflow object itself.
Easiest way to fix this:
const { project } = useReactFlow();

pass that project function to the onDrop deps array => everything works as expected.

Yeah, was about to update the issue with this.
Did not notice the react-dnd hook was memoized. Works as expected.


Replace assert in closures with GPR_ASSERT

Code health change and saving a few nanos :D

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[microbenchmarks] No significant performance differences

I came here to be pedantic and bug you about "saving a few nanos" but then I did the hand wavey math.
Assuming the GPR_ASSERT is the "rightly" predicted branch, which it surely will be, then this pic says upper bound of 20 cycles.
lscpu | grep MHz on my desktop shows ~1500MHz (though it's max is double this).
So 20 cycles / (1.5e9 cycles per sec) = 1.33e-8 sec = 13 nanoseconds.
Nice

Oh wait, I misread that chart. It's ~2 cycles, not 20. That makes more sense... So ~1.3 nanos. You still win.
That being said, I will believe that asserts and untaken tracing paths affect macro performance when I see the data.

Hahaha this would still save 20 cycles when a closure is scheduled/run. It was assert earlier.


opening an apex class auto opens the .git of that file in readonly

when you open a file in explorer view or you switch between files ending up in a cls file it opens the .git file of that file

hi @danmarpar , for some reason the old autofocus changed the behaviour with the latest vscode version. The patch is already available. Thanks!


android: Update targetSdkVersion to 34, i.e., Android 14

With a prep commit that came from @gnprice's investigation into some code in react-native that needed to change; thanks Greg for that!
Fixes: #5877

Greg, when you have some time to do so, could you test this on your device running Android 14?

Oh, do you have these changes as a branch in a react-native Git repo? It'd be good to (a) push that branch to our fork zulip/react-native, and (b) mention the branch name and commit ID here, in the commit that updates the patch.

Oh, do you have these changes as a branch in a react-native Git repo? It'd be good to (a) push that branch to our fork zulip/react-native, and (b) mention the branch name and commit ID here, in the commit that updates the patch.

I don't, but I could create such a branch and do those things.

Done; revision pushed.

Thanks!
I just tried this version with tools/run-android on my Android 14 device (a Pixel 8). It still crashes on startup, with the same stack trace as at https://github.com/zulip/zulip-mobile/issues/5877#issuecomment-2364347383 .
I looked at the Java source file that's supposed to be patched, and it has the patch:
$ grep -C2 compatRegister node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java
        IntentFilter filter = new IntentFilter();
        filter.addAction(getReloadAppAction(mApplicationContext));
        compatRegisterReceiver(mApplicationContext, mReloadAppBroadcastReceiver, filter, true);
        mIsReceiverRegistered = true;
      }
--
   * <p>https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported
   */
  private void compatRegisterReceiver(
      Context context, BroadcastReceiver receiver, IntentFilter filter, boolean exported) {
    if (Build.VERSION.SDK_INT >= 34 && context.getApplicationInfo().targetSdkVersion >= 34) {

I suspect what's happening is that the build of the Android side is using a published binary artifact for the 0.68.7 release, not the source code in node_modules/. That's the reason for the Gradle-related steps described here:
https://github.com/zulip/zulip-mobile/blob/main/docs/howto/rn-from-git.md#per-project-setup
So I think those steps will still be necessary.
The other two changes we currently have in this file are in JS code (for tests only, in fact) and in a build-time script for the iOS build. That's why they didn't need those changes.
When I read this PR on Friday, I looked in the history and saw our previous use of patch-package for react-native, at b546b0785771363a3fe28037bf4c22d88608dbb0, which is in native code that I expect is part of that same build. So that caused me to think that maybe things had changed since I last studied how this aspect of the build worked, and those setup changes weren't needed.
But looking again now, I see from the commit message that the problem it was meant to solve was only in a build with Xcode, for iOS. Those have always built from source, rather than using a published build artifact like the Android build. So I think the story must be that that patch never did have an effect on Android — and that just was fine, because the problem it was solving didn't exist there.

I see. So, more work to do here.
In step 4 of that doc:

Follow the various steps in this
doc
that involve tweaking several Gradle files located under android/ in
the app.  Commit the result.

I followed that link and added the includeBuild lines it says to add:
  // ...
  include ':app'
  includeBuild('../node_modules/@react-native/gradle-plugin')

+ includeBuild('../node_modules/react-native') {
+     dependencySubstitution {
+         substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
+         substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
+         substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+         substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+     }
+ }

But that caused a build failure:
$ tools/gradle :app:assembleDebug

FAILURE: Build failed with an exception.

* Where:
Settings file '/Users/chrisbobbe/dev/zulip-mobile/android/settings.gradle' line: 13

* What went wrong:
Project with path ':packages:react-native:ReactAndroid' not found in build 'react-native'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

That docs website has been updated a few times, and I think we'll need to follow an older version of these instructions.
I tried the next-to-latest version, before facebook/react-native@22da0cc63 "Update how-to-build-from-source for 0.72+". That failed with Project with path ':ReactAndroid' not found in build 'react-native'..
So I think the next thing for me to try is the version just before facebook/react-native@50a01ac0d 'Update the "Build from source" page'. Those instructions are much more complicated, though, so I'd like to check in before I get started. Does that seem like the right next step? Thanks in advance :)

So I think the next thing for me to try […] Does that seem like the right next step?

Let's move to a chat thread for that discussion:
https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/RN.20from.20Git/near/1948101

Thanks for all your help on this, @gnprice! Revision pushed.

OK, added a commit to let Gradle use more memory; that should help with the CI failure (which was showing out-of-memory errors).

Great, glad to see this working!
The changes all look good. And I just tested making a debug build on my laptop and running it on my Android 14 device, and it seems to run fine. Merging now.


MSBuild.exe ENOENT

Node Version: v12.16.2
Platform: Microsoft Windows 7 Ultimate x64-based PC
Module: npm install brain.js

gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
gyp ERR! stack     at onErrorNT (internal/child_process.js:469:16)
gyp ERR! stack     at processTicksAndRejections (internal/process/task_queues.js:84:21)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\nazar\\AppData\\Roaming\\nvm\\v12.16.2\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\nazar\Desktop\Sigma\node_modules\gl
gyp ERR! node -v v12.16.2
gyp ERR! node-gyp -v v5.1.0
gyp ERR! This is a bug in `node-gyp`.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 7
npm ERR<EMAIL_ADDRESS>install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 7
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\nazar\AppData\Roaming\npm-cache\_logs\2020-04-16T13_58_43_089Z-debug.log

gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe ENOENT

I try to install brain.js and it throws this error.
I installed full VS2019 and visual 2019 C++ Build tools, also tried to apply all the tips of other articles, but all in vain. I hope for your help

https://github.com/nodejs/node-gyp/issues/1753#issuecomment-501827267

@cclauss thx) But I have a new error:
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
gyp ERR! stack     at onErrorNT (internal/child_process.js:469:16)
gyp ERR! stack     at processTicksAndRejections (internal/process/task_queues.js:84:21)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\nazar\node_modules\gl
gyp ERR! node -v v12.16.2
gyp ERR! node-gyp -v v6.1.0
gyp ERR! This is a bug in `node-gyp`.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     <https://github.com/nodejs/node-gyp/issues>
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\nazar\package.json'
npm WARN nazar No description
npm WARN nazar No repository field.
npm WARN nazar No README data
npm WARN nazar No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 7
npm ERR<EMAIL_ADDRESS>install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 7
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Does anyone have a fix for this?

gyp ERR! System Windows_NT 6.1.7601
npm ERR! code ELIFECYCLE

https://support.microsoft.com/en-us/help/4057281/windows-7-support-ended-on-january-14-2020

@banksdev  I changed the version Node.js 10.20.0 using NVM. But still got an error again:
Error: Cannot find module
C:\Program Files\nodejs\node_modules\node-gyp\bin\node-gyp.js'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
   at Function.Module._load (internal/modules/cjs/loader.js:562:25)
   at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
   at startup (internal/bootstrap/node.js:283:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\nazar\AppData\Roaming\npm-cache\_logs\2020-04-18T20_43_05_877Z-debug.log

Your OS is no longer supported.  Given npm ERR! Failed at the<EMAIL_ADDRESS>install script., you might open an issue at https://github.com/stackgl/headless-gl and see if they are willing to support an operating system that is end of life.


Does Ipsec work with HostPort enabled

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Ipsec encryption  does not work with cni chaining, and also a strict kube proxy replacement. Does Ipsec work with partial kube proxy replacement? I only want to enable HostPort feature.
Its hard for me to test that because of bug - https://github.com/cilium/cilium/issues/31168
Cilium Version
1.14.6
Kernel Version
Aks Node
OS-image - Ubuntu 20.04.6 LTS
Kernel Version - 5.4.0-1121-azure-fips
Kubernetes Version
1.28.3
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

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

AIUI ipsec does not work with any forms of kube-proxy replacement. However, this should be easy enough for you to test :-).


Update sampler API in preparation for adaptive sampling logic

Coverage decreased (-0.1%) to 76.92% when pulling 5ba6a4b374952ebb8e9a1951d6cfc8bae1ee1c34 on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.

Coverage decreased (-0.1%) to 76.92% when pulling 5ba6a4b374952ebb8e9a1951d6cfc8bae1ee1c34 on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.

Coverage decreased (-0.2%) to 76.909% when pulling 5ab7a64cd2b0f9eae7fc0b2ddda1e3088a84964f on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.

Coverage decreased (-0.2%) to 76.909% when pulling 5ab7a64cd2b0f9eae7fc0b2ddda1e3088a84964f on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.

Coverage decreased (-0.02%) to 77.043% when pulling b9452a780ecc119d2d12cca6f78b38bdcd2d71bd on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.

Coverage decreased (-0.02%) to 77.043% when pulling b9452a780ecc119d2d12cca6f78b38bdcd2d71bd on sampler_interface_change into 453a518fb60cc8ccf36bdeb47ccd44ee74147f2b on master.


Can't change docker network status

docker 1.9 version has multi-host networking.I can't use it.
What should I do
There will be a new version of it

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-4521. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.