Questions around @translate

Three questions received from @xephon2

Does it take the @translate attribute into account?
Are there any limitation on complex file structures?
What about profiling attributes? I could not find any info about this in the docs.

The Plug-in takes the following block level elements:

note
shortdesc
abstract
title
p
li
entry
mainbooktitle
navtitle
glossterm
glossdef

The id is calculated using https://en.wikipedia.org/wiki/Fletcher's_checksum based on the text within the block elements defined above.
The block element itself will probably contain inline elements like span or codeph, these are processed in turn into xliff compliant <mrk> elements. Some inline elements are annotated as no-translate - see https://github.com/jason-fox/fox.jason.translate.xliff/blob/master/Customization/xsl/no-translate-elements.xsl
None of the autotranslate tools I've seen take XLIFF directly - they are usually JSON based, so when running the autotranslate dita command there is an effort to amend the texts fragments to be compliant to the tool - I think Bing does best here.
Profiling is not used - this transform is just a transform to XLIFF everything under this directory. If you need something more complex, I'd just run the dita -f dita command to get normalized DITA first.
Given the implicit restrictions, only the DITA elements listed above are currently candidates for translation - I'm not running preprocess, so I'm looking directly for elements with those names so  if you've implemented specialization the transform won't find your new elements - you could just add something to a list here: https://github.com/jason-fox/fox.jason.translate.xliff/blob/master/xsl/add-md5-src.xsl#L77

From @xephon2

So, if I understand you and the code correctly, translate="no" is not taken into account.
I'm not sure if DITA normalize would work for us, because we assume that the entire topic structure is mirrored
in all languages. We usually translate to 15 languages in average and in up to 39 in peak.

There is some residual @translate support existing in the plugin, since @translate is copied over from the DITA to the XLIFF 2.1 <mrk> and XLIFF 1.2. <x>elements:
As an example:
DITA source

   The following lines are the origin of
   <term translate="no" xml:lang="la">Lorem Ipsum</term> :

      Loves or pursues or desires to obtain
      <codeph>pain of itself</codeph>, because it
      is pain, but occasionally circumstances occur in which toil and
      pain can procure him some great pleasure.

XLIFF 1.2 output
The <term> in the first <trans-unit> is annotated as translate="no", the <codeph>in the second <trans-unit>  is annotated as translate="no" by default.
<trans-unit xmlns:dita="dita-ot.org" approved="no" id="10044" xml:space="preserve">
    <source xml:lang="en">The following lines are the origin of
         <x id="d3e11" ctype="x-dita-term" translate="no" xml:lang="la">Lorem Ipsum </x>:
    </source>
    <target xml:lang="de" />
</trans-unit>

<trans-unit xmlns:dita="dita-ot.org" approved="no" id="54947" xml:space="preserve">
   <source xml:lang="en">Loves or pursues or desires to obtain
       <x id="d3e20" ctype="x-dita-codeph" translate="no">pain of itself </x>, because it is pain,
        but occasionally circumstances occur in which toil and pain can procure him some great pleasure.
   </source>
   <target xml:lang="de" />
</trans-unit>

XLIFF 2.1 output
The <term> in the first <unit> is annotated as translate="no", the <codeph> in the second <unit> is annotated as translate="no" by default.
<unit  id="10044" fs:fs="p">
   <originalData>
      <data id="sd4e11"><term translate="no" xml:lang="la"></data>
      <data id="ed4e11"></term></data>
   </originalData>
   <segment state="initial">
      <source xml:space="preserve" xml:lang="en">
          The following lines are the origin of
          <pc id="d4e11" dataRefStart="sd4e11" dataRefEnd="ed4e11" fs:fs="code">
             <mrk translate="no" type="term" id="md4e11">Lorem Ipsum</mrk>
          </pc>:
      </source>
      <target xml:lang="de" />
   </segment>
</unit>

<unit  id="54947" fs:fs="li">
   <originalData>
      <data id="sd4e20"><codeph></data>
      <data id="ed4e20"></codeph></data>
   </originalData>
   <segment state="initial">
      <source xml:space="preserve" xml:lang="en">
            Loves or pursues or desires to obtain
           <pc id="d4e20" dataRefStart="sd4e20" dataRefEnd="ed4e20" fs:fs="code">
                <mrk translate="no" type="term" id="md4e20">pain of itself</mrk>
          </pc>, because it is pain, but occasionally circumstances occur in which toil and pain can
          procure him some great pleasure.
      </source>
      <target xml:lang="de" />
   </segment>
</unit>

The following DITA  elements gain a translate="no" by default - I don't think this can be overridden though.

draft-comment
required-cleanup
codeph
synph
term
option
fn
numcharref
parameterentity
textentity
xmlatt
xmlelement
xmlnsname
`xmlpi"
filepath
msgph
userinput
systemoutput
cmdname
msgnum
varname
uicontrol
menucascade
wintitle
parmname
apiname

In addition to that list, the block elements are currently always translated, so unless changes are made it makes no sense to annotate any of the following DITA elements with translate="no"

note
shortdesc
abstract
title
p
li
entry
mainbooktitle
navtitle
glossterm
glossdef

This would be easy to fix, since the plugin already ignores elements with no text within them (where the Fletcher's checksum is zero) so the XSL could be amended to look for translate="no" as well.

I've tweaked the code and  added two new test cases. Please reinstall from master:
dita uninstall fox.jason.translate.xliff
dita install https://github.com/jason-fox/fox.jason.translate.xliff/archive/master.zip

No Translate
Support added for translate="no" at topic - sub -topic  and block level elements - if one of these XML element is annotated with translate="no"  the text is no longer added to the XLIFF file. Also if no translatable texts are found within a DITA file the DITA is added directly to the skeletons without a .skl suffix.
dita -f xliff-create \
   -i ../plugins/fox.jason.translate.xliff/test/create-xliff2-translate-no/document.ditamap \
   --xliff.version=2

Yes Translate
Support added for translate="yes" - span level elements  are added to the XLIFF file annotated with <mrk translate="yes">
dita -f xliff-create \
   -i ../plugins/fox.jason.translate.xliff/test/create-xliff2-translate-yes/document.ditamap \
   --xliff.version=2

The equivalent tests have also been added for XLIFF 1.2.
Could you check to see if this is working as expected?

I will do, but this will take a few weeks.

What about profiling attributes? I could not find any info about this in the docs.

To implement profiling, the current mechanism I see working for this is to run the normalized dita -f dita process (with flags) and then run the dita -f create-xliff2 on the normalized result. Is that viable? It would also be possible to add another transform to do the normalization as a pre-process step and integrate it into one step.

I've always been skeptical that XLIFF can work successfully with DITA <keyword> mapping to a noun like a brand name - particularly where languages have cases an genders, so I'd be interested to understand how you manage thsi.

Hi @jason-fox,
We would need the translate="no" support to slurp through content which should not be translated. So, in a Chinese file, the English content flagged with translate="no" should be kept. To give you an example: We are following the principle the oXygen team is suggesting in the shipped sample DITA project. For reusable content, we use tables. The reusable chunk is stored in the left column. The right column contains a description for explaining what the chunk is used for. This must be blocked for the translator but kept in English for the technical writer. Translating this meta-information would cost us an incredible amount of money.
The given example below shows a warehouse topic containing a single phrase which is defined in the technical standard EN 60335-2-24. This means, all content of the file should be remain English, only the text WARNING: fill with potable water only. should be translated.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="urn:dometic:names:tc:dita:rng:dometicWarehouse.rng" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="urn:dometic:names:tc:dita:rng:dometicWarehouse.rng" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<dometic-warehouse id="WHS_EN60335-2-24" xml:lang="en-US">
  <title translate="no">EN 60335-2-24</title>
  <conbody>

      <tgroup cols="2">
        <colspec colname="c1" colnum="1" colwidth="1.0*"/>
        <colspec colname="c2" colnum="2" colwidth="1.0*"/>

          <row>
            <entry translate="no">Component</entry>
            <entry translate="no">Description</entry>
          </row>

          <row>
            <entry>
              <ph id="use-potable-water">WARNING: fill with potable water only.</ph>
            </entry>
            <entry translate="no">

7.12 The instructions for ice-makers not intended to be connected to the
                water supply shall state the substance of this warning.

            </entry>
          </row>

      </tgroup>

  </conbody>
</dometic-warehouse>

I don't think that normalizing content before translation is a viable solution for us. Fluenta (https://github.com/rmraya/Fluenta) is able to mirror the entire topic and directory structure. IMHO I cannot re-create the entire directory, map and topic structure from normalized DITA. But maybe I'm wrong. For us it is a must that all directories are correctly mirrored. Whenever something happens in the en-US directory, the change should be mirrored in the, for example, de-DE directory, when the English topic is used in a map which I slurp through the translation process. We are dealing with a huge amount of maps, topics, languages and publications. Each leaf of my directory tree has (or will have) a structure like this:
root/
├── product A
│   └── topics/
│       ├── ar-EG/
│       ├── bg-BG/
│       ├── cs-CZ/
│       ├── da-DK/
│       ├── de-DE/
│       ├── el-GR/
│       ├── es-ES/
│       ├── et-EE/
│       ├── fi-FI/
│       ├── fr-FR/
│       ├── he-IL/
│       ├── hr-HR/
│       ├── hu-HU/
│       ├── id-ID/
│       ├── is-IS/
│       ├── it-IT/
│       ├── ja-JP/
│       ├── ka-GE/
│       ├── ko-KR/
│       ├── lt-LT/
│       ├── lv-LV/
│       ├── mk-MK/
│       ├── ms-MY/
│       ├── nl-NL/
│       ├── no-NO/
│       ├── pl-PL/
│       ├── pt-PT/
│       ├── ro-RO/
│       ├── ru-RU/
│       ├── sk-SK/
│       ├── sl-SI/
│       ├── sr-RS/
│       ├── sv-SE/
│       ├── th-TH/
│       ├── tr-TR/
│       ├── uk-UA/
│       ├── vi-VN/
│       ├── zh-CN/
│       └── zh-TW/
└── Product B
    └── topics/
        ├── ar-EG/
        ├── bg-BG/
        ├── cs-CZ/
        ├── da-DK/
        ├── de-DE/
        ├── el-GR/
        ├── es-ES/
        ├── et-EE/
        ├── fi-FI/
        ├── fr-FR/
        ├── he-IL/
        ├── hr-HR/
        ├── hu-HU/
        ├── id-ID/
        ├── is-IS/
        ├── it-IT/
        ├── ja-JP/
        ├── ka-GE/
        ├── ko-KR/
        ├── lt-LT/
        ├── lv-LV/
        ├── mk-MK/
        ├── ms-MY/
        ├── nl-NL/
        ├── no-NO/
        ├── pl-PL/
        ├── pt-PT/
        ├── ro-RO/
        ├── ru-RU/
        ├── sk-SK/
        ├── sl-SI/
        ├── sr-RS/
        ├── sv-SE/
        ├── th-TH/
        ├── tr-TR/
        ├── uk-UA/
        ├── vi-VN/
        ├── zh-CN/
        └── zh-TW/


Add files via upload

denizyildizlarismm.k12.tr

@erkinaka I have to close this request without merging, because you requested to add a non-existent domain to this repository: `` Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


Links - GEORGIAVOLUNTEER.com

From: Beverly Shepard<EMAIL_ADDRESS>Date: Tue, Sep 5, 2023 at 9:01 PM
Subject: Fwd: Links
To: Helpdesk G6<EMAIL_ADDRESS>Cc: Kerry Hatcher<EMAIL_ADDRESS>George Taylor<EMAIL_ADDRESS>Good evening, HelpDesk,
Please make this change in links:
Please make sure GEORGIAVOLUNTEER.com forwards directly to gsdf.georgia.gov
(Currently, GEORGIAVOLUNTEER.com is re-directed to PAONews.net, which then is re-directed to gsdf.georgia.gov)
As always, thank you.
V/r, R,
Beverly Shepard, JD, APR
CPT, GSDF
Branch Chief, Public Affairs Office (PAO)
<EMAIL_ADDRESS>1-883-715-GSDF (4733), Ext. 3 (PAO)
(757) 406-4659 (Personal Mobile)

Headers still show double forwarding.  Any update on this?
>>> http://GEORGIAVOLUNTEER.com> --------------------------------------------> 301 Moved Permanently> --------------------------------------------

Status:
301 Moved Permanently

Code:
301

Date:
Sat, 04 Nov 2023 14:56:34 GMT

Content-Type:
text/html; charset=utf-8

Content-Length:
58

Connection:
close

Location:
https://www.paonews.net

Server:
ip-100-74-2-149.eu-west-2.compute.internal

X-Request-Id:
3f4b427a-b6a4-40a7-8a3c-fe8b3de05f07

>>> https://www.paonews.net> --------------------------------------------> 301 Moved Permanently> --------------------------------------------

Status:
301 Moved Permanently

Code:
301

Date:
Sat, 04 Nov 2023 14:56:34 GMT

Connection:
close

Cache-Control:
max-age=3600

Expires:
Sat, 04 Nov 2023 15:56:34 GMT

Location:
https://gsdf.georgia.gov/

Report-To:
{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=Ad3f1bpLqNXDSDUvGA%2BkRKyUtSFbKUFbut53FiQVUzlXO9Hju6JdZki2ZjTLHAPQAd73kGzuB7ljJUgBRFHaZduBNsKE%2B2DV0rD6YHYPd6iA5ixnshKtyqylMJR6hAueDhs%3D"}],"group":"cf-nel","max_age":604800}

NEL:
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}

Strict-Transport-Security:
max-age=2592000; includeSubDomains; preload

X-Content-Type-Options:
nosniff

Server:
cloudflare

CF-RAY:
820db456ec1c88bf-LHR

alt-svc:
h3=":443"; ma=86400


Fixes #2219 TypeError: Cannot set property buttons of [object Object] which has only a getter when initializing OpenSeaDragon

Removes adding buttons as null to the Viewer object, to avoid overriding a getter without a setter for the buttons deprecation warning.
I've created an Issue here

Done! I tested this locally and this also works :)


feat(Assign To): route to new newmatik endpoint with assign to

re https://github.com/newmatik/newmatik/issues/3441
re https://github.com/newmatik/newmatik/pull/3456

Will be making additional changes to make all necessary changes in core.

@KanchanChauhan @creamdory change is ready for review


A lot of improvments, see commit messages !

I have merged this branch with master and pushed it to the velruse/pull.37 branch to make this manageable to think about.

I'd be interested in making velruse depend on pyramid 1.3a1 in order to utilize its new introspectable api. I'm not really a fan of how this is being handled via settings['velruse.providers_infos'].

Remember that explicit is better than implicit !

This pull request has been splitted in lot of later other pull requests


modal close

What problem does this feature solve?
I hope that the Modal's closing event is on the upper right corner fork, and the Cancel button's clicks can be separated.
What does the proposed API look like?
Add another click Close event

u can custom your modal footer (see Customized Footer demo)!


16 dockerfile with nvidia drivers

Tested with jupyter/base-notebook:python-3.10  and jupyter/scipy-notebook:python-3.10
In this base image, apt-get install -y --no-install-recommends cuda-cudart-12-2 cuda-compat-12-2 , I get error : E: Unable to locate package cuda-cudart-12-2 E: Unable to locate package cuda-compat-12-2

Pushed to hub.ncsa.illinois.edu/minum/cyber2a:0.0.3 .

Tested in cyber2a.software. Works fine.

Tested with jupyter/base-notebook:python-3.10  and jupyter/scipy-notebook:python-3.10  In this base image, apt-get install -y --no-install-recommends cuda-cudart-12-2 cuda-compat-12-2 , I get error : E: Unable to locate package cuda-cudart-12-2 E: Unable to locate package cuda-compat-12-2

MAde some changes. Now cuda drivers works.


inline-block-block-block-block...

if i Shift CSS display value, when set to inline-block, next value is inline-block-block, e.t.c with -block additions.
I think it's right, to find whole(maximum greater) predefined value, before change.

While editing CSS (or SCSS) files this issue should be fixed with commit https://github.com/kstenschke/shifter-plugin/commit/77fe8ba40ffb9a5369a98f4e505f74a9f42770d9, note: for HTML or other files hyphenated words will still be treated as two separate words.


DbContext.SaveChangesAsync() Method Doesn't Adhere to CommandTimeout

When using the DbContext.SaveChangesAsync() method, the resulting task does not adhere to the DbContext.Database.CommandTimeout value.
Steps to reproduce
I have a very simple DbContext isntance which is created by Dependency Injection:
Startup.cs:
            services.AddDbContext<apsdbContext>(options =>
            {
                options.UseNpgsql(_config["APSDB_CONNECTION"]);
            });

And a repository that uses the context, also in Startup.cs:
            services.AddScoped<IAPSDBRepository, APSDBRepository>();

The repository receives the context via the constructor and adds results to it like this:
        private apsdbContext _context;

        public APSDBRepository(apsdbContext context)
        {
            _context = context;
        }

        public async Task<int> AddResult(Result result)
        {
            _context.Database.SetCommandTimeout(5);
            _context.Add(result);
            return await _context.SaveChangesAsync();
        }

After manually locking the Result table, this command never times out and deadlocks until the table lock is release.
If I change the AddResult method to the following, it times out after five seconds as expected:
        public int AddResult(Result result)
        {
            _context.Database.SetCommandTimeout(5);
            _context.Add(result);
            return _context.SaveChanges();
        }

Further technical details
EF Core version: 1.1.2
Database Provider: Npgsql.EntityFrameworkCore.PostgreSQL 1.1.0
Operating system: Windows 10 (Development), Windows Server 2012 R2 (Production)
IDE: VS2017 Pro

@Padagi Async operations need to be waited upon. Try the flowing
public int AddResult(Result result)
{
    _context.Database.SetCommandTimeout(5);
    _context.Add(result);
    return _context.SaveChangesAsync().Result;
}

Note that in production code AddResult should return Task<int> that would be awaited on in turn.

@AndriySvyryd My apologies, I didn't think someone would look at this that quickly... I've updated the original issue with the EXACT code that we have in production today. It includes await and returns a Task. I think I updated it while you were responding.
I just ran a quick test with SaveChangesAsync().Result, which runs the command synchronously anyway, but it still does not work. I tried the following and it also does not time out as it does if you run the SaveChanges() method:
        public int AddResult(Result result)
        {
            _context.Database.SetCommandTimeout(5);
            _context.Add(result);
            return _context.SaveChangesAsync().Result;
        }

This code still hangs indefinitely until the underlying provider connection (in this case Npgsql) times out based on its own global settings.

Well I do have to note that the timeout is not 5 seconds in production, but it is the same exept for the timeout value just for debugging.

Closing because I decided to test with the SqlServer provider and this only happens with NpgSql provider and so it seems that it is provider specific. npgsql/Npgsql.EntityFrameworkCore.PostgreSQL#198


Exclude -ticket created channels from public server statistics

You can currently explicitly filter channels from the public statistics for a server, but auto-generated channels for support -ticket's are always displayed as they are dynamically generated and deleted on-demand and there is no way to filter them out.

Server Stats have been removed, join the Discord Server or check the Bot's Control Panel for more info. :)

Server Stats have been removed, join the Discord Server or check the Bot's Control Panel for more info. :)


S3: unused code warning from generated code

We've got a few warnings about unused code when compiling S3:
warning: struct is never used: `BodyDeserializer`
   --> rusoto/services/s3/src/generated.rs:784:1
    |
784 | struct BodyDeserializer;
    | ^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: #[warn(dead_code)] on by default

warning: method is never used: `deserialize`
   --> rusoto/services/s3/src/generated.rs:787:17
    |
787 |                   fn deserialize<'a, T: Peek + Next>(tag_name: &str, stack: &mut T)
    |  _________________^ starting here...
788 | |                 -> Result<Body, XmlParseError> {
789 | |                     try!(start_element(tag_name, stack));
790 | |         let obj = try!(characters(stack)).into_bytes();
791 | |         try!(end_element(tag_name, stack));
792 | |
793 | |         Ok(obj)
794 | |
795 | |                 }
    | |_________________^ ...ending here
    |
    = note: #[warn(dead_code)] on by default

warning: struct is never used: `GetObjectOutputDeserializer`
    --> rusoto/services/s3/src/generated.rs:3983:1
     |
3983 | struct GetObjectOutputDeserializer;
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: #[warn(dead_code)] on by default

warning: method is never used: `deserialize`
    --> rusoto/services/s3/src/generated.rs:3986:17
     |
3986 |                 fn deserialize<'a, T: Peek + Next>(tag_name: &str, stack: &mut T)
     |                 ^
     |
     = note: #[warn(dead_code)] on by default

warning: struct is never used: `GetObjectTorrentOutputDeserializer`
    --> rusoto/services/s3/src/generated.rs:4113:1
     |
4113 | struct GetObjectTorrentOutputDeserializer;
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: #[warn(dead_code)] on by default

warning: method is never used: `deserialize`
    --> rusoto/services/s3/src/generated.rs:4116:17
     |
4116 |                 fn deserialize<'a, T: Peek + Next>(tag_name: &str, stack: &mut T)
     |                 ^
     |
     = note: #[warn(dead_code)] on by default

Ideally we'd eliminate those warnings.  We need to figure out why those code sections are not used and possibly implement clients for them.

Fixed in PR 719.


Release process

I think when all basic styling is done, we should move to 1.0.0. Noteably, I'd like to see the dropdown menus fixed before that happens.
@Mottie would you mind doing a somewhat regular release to userstyles.org once I push 1.0.0? I think every 1-2 weeks would suffice.

Sure, it won't be a problem.  Took me like 10 minutes to realize the URI was there twice :laughing:

Pushed 1.0.0, I think I can handle releases :)


sftp: add option to enable the use of aes128-cbc cipher

This PR adds the option to use the insecure aes128-cbc cipher. This is disabled by default in the Go crypto/ssh library due to security concerns.
Unfortunately, there are still a number of devices and implementations that still mandate the use of this cipher.

That looks great now  - thank you :-)


Cleaned up metadata tag area of Tutorial & Webinar MD files

I edited the MD files for Tutorials and Webinar to make the metadata tag area all consistently formatted.

@mukhtyar I removed the quotes around title tags except for the webinar title with a ":" in it.


[Breadcrumbs] Migrate to emotion

This PR migrates the Breadcrumbs component to the new emotion format as a part of #24405.

[X] I have followed (at least) the PR section of the contributing guide.

Looks like the failing test was probably a fluke?  It's only failing on a specific Edgium version for an unrelated component.

Looks like the failing test was probably a fluke?  It's only failing on a specific Edgium version for an unrelated component.

Just did a conversion of the BreadcrumbCollapsed component.  Since it's a private, internal component, I noticed that the codebase was a bit different than normal -- hope I did it right!

Just did a conversion of the BreadcrumbCollapsed component.  Since it's a private, internal component, I noticed that the codebase was a bit different than normal -- hope I did it right!

(Note: I haven’t checked to see if the collapsed element’s dark theme styles look alright yet, as I ran out of time.  Will check when I am back from my meeting, or if you guys want changes, feel free to suggest/commit them!)

(Note: I haven’t checked to see if the collapsed element’s dark theme styles look alright yet, as I ran out of time.  Will check when I am back from my meeting, or if you guys want changes, feel free to suggest/commit them!)

Not certain how to trace down where the Argos CI screenshots come from, but it seems like there's a slight, potential regression to track down.

Not certain how to trace down where the Argos CI screenshots come from, but it seems like there's a slight, potential regression to track down.

Looks like Argos is seeing the different colors for the dark theme, which is to be expected.

Looks like Argos is seeing the different colors for the dark theme, which is to be expected.

Looks like Argos is seeing the different colors for the dark theme, which is to be expected.

@oliviertassinari are we fine with this change?

Looks like Argos is seeing the different colors for the dark theme, which is to be expected.

@oliviertassinari are we fine with this change?


Formatting a local reference

In HTML a link to an anchor in the current page looks like this: #number2.
But, in DITA, the url should include the top-level topic id.  So, in a topic with ID of VanesandCranes it's like: #VanesandCranes/number2`
This pattern of error is (obviously) present in Vanes&Cranes.html

Ah, this was the issue that came up before in #426. According to the DITA standard, we should be using the #ID/reference link, but DITA-OT doesn't seem to process these correctly, and leaves them as they are in the final HTML, when we need them to actually be changed to the mangled HTML version which is #ID__reference - eg. #VanesandCranes__number2.
I suspect we may have a problem here as we're going against the DITA official standard, but it seems to be necessary to make the HTML export work.

Yes, I was just thinking the same thing.
Let me double-check Oxygen XML.


[UWP] Could not load file or assembly System.IO.FileSystem

[UWP] Could not load file or assembly 'System.IO.FileSystem
General
I'm creating a UWPjs app with a C# UWP runtime and it fails to create files because it fails to find System.IO.FileSystem. I get no errors at build time, only at runtime. Any info helps, thanks.

Target Version - Windows 10 Creators Update (10.0, Build 15063)
OS - Win 10 Pro, Version 10.0.15063 Build 15063

Code

Exception
Unhandled exception at line 35, column 17 in ms-appx://fbca3db9-8274-4457-97e8-a4b241b376c1/dist/atom.js
0x80070002 - JavaScript runtime error: The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.FileSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
at uwpAppJs.Example1.CreateFile()
WinRT information: System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.FileSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
at uwpAppJs.Example1.CreateFile() occurred

I've come to the conclusion that I've misunderstood how I should have approached this problem. I assume the exception I get is by design. You get limited ability to do IO operations for a reason. (may not be a good enough reason for me but it's a reason nonetheless).
See https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions for doing limited IO operations with UWPjs projects, be it someone else having this issue.
In short you can actually do IO based things via winjs which is actually nicer than what I was doing.


get value / object of dropped item

In the stop event, I need to be able to get the angular array item that was dropped so that I can change some attributes
Is there any mechanism (index of new object, or the actual object, or array change) that I could use in ui-sortable ?

Take a look at the API.md and the canceling examples. You probably need ui.item.sortable.model.

can't believe I missed that. thanks, and sorry ;)

np gl gf


GPU variant has issues recognizing the GPU.

🐛 Bug Report

[ ] 📁 I've Included a ZIP file containing my librephotos log files
[X] ❌ I have looked for similar issues (including closed ones)
[ ] 🎬 (If applicable) I've provided pictures or links to videos that clearly demonstrate the issue

📝 Description of issue:
When scanning in the new GPU docker variant, I get the following errors:
/usr/local/lib/python3.10/dist-packages/rest_framework/pagination.py:200: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'api.models.person.Person'> QuerySet.
  paginator = self.django_paginator_class(queryset, page_size)
  return torch._C._cuda_getDeviceCount() > 0

  File "/usr/local/lib/python3.10/dist-packages/django_q/worker.py", line 88, in worker
    res = f(task["args"], **task["kwargs"])
  File "/code/api/directory_watcher.py", line 411, in face_scan_job
    photo._extract_faces()
  File "/code/api/models/photo.py", line 729, in _extract_faces
    import face_recognition
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/init.py", line 7, in <module>
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/api.py", line 26, in <module>
    cnn_face_detector = dlib.cnn_face_detection_model_v1(cnn_face_detection_model)

Also attached.
message.txt
🔁 How can we reproduce it:
Have a docker with nvidia gpu, in my case 1050, it does not get recognized in server stats.
Please provide additional information:

💻 Operating system:
⚙ Architecture (x86 or ARM): x86
🔢 Librephotos version: latest
📸 Librephotos installation method (Docker, Kubernetes, .deb, etc.): Docker

🐋 If Docker or Kubernets, provide docker-compose image tag: Latest

📁 How is you picture library mounted (Local file system (Type), NFS, SMB, etc.): Direct
☁ If you are virtualizing librephotos, Virtualization platform (Proxmox, Xen, HyperV, etc.):

@derneuere
I found the issue.
CUDA was not seen correctly due to this part:
deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [all]

Once I removed that, and ran nvidia-smi CUDA showed the version that's installed.
However, now I face another issue, where the CUDA installed in the docker is older that what I have on the host.
So I get this:
05:13:14 [Q] ERROR Failed 'api.directory_watcher.face_scan_job' (illinois-asparagus-stream-tennis) - Error while calling cudaGetDevice(&the_device_id) in file /tmp/builds/dlib/dlib/cuda/gpu_data.cpp:204. code: 804, reason: forward compatibility was attempted on non supported HW : Traceback (most recent call last):   File "/usr/local/lib/python3.10/dist-packages/django_q/worker.py", line 88, in worker     res = f(*task["args"], **task["kwargs"])   File "/code/api/directory_watcher.py", line 411, in face_scan_job     photo._extract_faces()   File "/code/api/models/photo.py", line 729, in _extract_faces     import face_recognition   File "/usr/local/lib/python3.10/dist-packages/face_recognition/__init__.py", line 7, in <module>     from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance   File "/usr/local/lib/python3.10/dist-packages/face_recognition/api.py", line 26, in <module>     cnn_face_detector = dlib.cnn_face_detection_model_v1(cnn_face_detection_model) RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file /tmp/builds/dlib/dlib/cuda/gpu_data.cpp:204. code: 804, reason: forward compatibility was attemp
You might want to update the guide and remove those deploy things if that's the case for everyone.
Will try to update the CUDA in the container and see what happens.

UPDATE:
Just found out this needs to be done in the docker file. So we'll need to figure this out for everyone. Maybe a check to see which CUDA is installed, then populate the version that's being pulled?

@derneuere Any chance to get this fixed? I do not want to go back to cpu if this will be fixed soon, but right now this thing is totally broken.

dlib is compiled against a specific version of cuda, which is in this case Cuda 11.7.1 with cudnn8
It complains that "forward compatibility" was attempted and failed. This means that the host system has likely old drivers. That could either be an issue, that the graphic card is old or the drivers are old.
Graphics card cannot be the reason as I develop on a system with a 1050ti max q, which works fine.
Please update the driver or change the deploy part. On my system I use
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

I can't make dlib compatible against multiple versions, compiling it during runtime will lead to half an hour start up time and replacing it with something more flexible is not doable for me atm due to time constraints.

As you can see in my previous comment, if I add that part to the compose, cuda is not detected inside the container.
The error you see that I attached was when the host machine has cude 12, while the container has cuda 11. It still calls it forward compatibility.

Hmm, I will try to bump everything to CUDA 12. According to the docs, it should be backwards compatible. Let's see if that actually works.

Cool, let me know if I can help.

Alright I pushed a fix. Should be available in half an hour. Let me know if that fixes the issue for you :)

Is this on dev or stable?

Only on dev for now :)

Ah, can I pull just gpu-dev by adding -dev to it in the docker compose file?

Yes, works the same way as the other image :)

Sadly, I've been trying to download that image for 2 days now, it just hangs and times out. I need to restart and hope it fully downloads.

INFO:ownphotos:HTTPConnectionPool(host='localhost', port=8005): Max retries exceeded with url: /face-locations (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f51db061ed0>: Failed to establish a new connection: [Errno 111] Connection refused'))
with the latest dev gpu.

@derneuere any idea how we move past this?

I can't reproduce this and I am pretty sure, that this issue is not on my side. Do other GPU accelerated images work for you?
Currently the only bug I can reproduce is #1056

Last time I tested the cuda test container it worked, let me verify that now.

`
== CUDA ==
CUDA Version 12.2.2
Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
Thu Nov  9 04:57:47 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1050        Off | 00000000:08:00.0 Off |                  N/A |
|  0%   47C    P0              N/A /  70W |      0MiB /  2048MiB |      2%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+
`
Here's the output, looks like it is working inside the docker.

I added the parts in the docker compose file back like it says in the guide, and this is what I get now:
thumbnail: service starting
Traceback (most recent call last):
  File "/code/service/face_recognition/main.py", line 4, in <module>
    import face_recognition
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/__init__.py", line 7, in <module>
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/api.py", line 26, in <module>
    cnn_face_detector = dlib.cnn_face_detection_model_v1(cnn_face_detection_model)
RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file /tmp/builds/dlib/dlib/cuda/gpu_data.cpp:204. code: 999, reason: unknown error
/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py:138: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)

@derneuere after the update last night to the backend, things changed.
When I did a scan for new photos, it managed to extract stuff from them, but I get this error:
INFO:ownphotos:Can't extract face information on photo: /location/photo.png INFO:ownphotos:HTTPConnectionPool(host='localhost', port=8005): Max retries exceeded with url: /face-locations (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fc88e1979d0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Also, a few things like these:
[2023-12-01 06:24:35 +0000] [3773] [INFO] Autorestarting worker after current request.
[2023-12-01 06:24:36 +0000] [3773] [INFO] Worker exiting (pid: 3773)
[2023-12-01 08:24:36 +0200] [3785] [INFO] Booting worker with pid: 3785
use SECRET_KEY from file

You'll notice the top 2 are in GMT, and the last one is GMT+2. That might cause issues if you're comparing both, and setting a timeout based on the difference.
These messages repeat a few times.
I hope this helps you narrow down the issues.

JXL is handled by thumbnail-service / imagemagick and not by vips. Can you look into the log files for face-service and thumbnail-service and post possible errors here?

Here's what I get when loading the latest backend:
`
/usr/local/lib/python3.10/dist-packages/picklefield/fields.py:78: RuntimeWarning: Pickled model instance's Django version 4.2.7 does not match the current version 4.2.8.
return loads(value)
/usr/local/lib/python3.10/dist-packages/rest_framework/pagination.py:200: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'api.models.person.Person'> QuerySet.
paginator = self.django_paginator_class(queryset, page_size)
Unauthorized: /api/albums/date/list/
/usr/local/lib/python3.10/dist-packages/torch/cuda/init.py:138: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
return torch._C._cuda_getDeviceCount() > 0
`

Still the same error, that the backend can't find the gpu. I think this has something to do with docker or pytorch and not with librephotos. Can you look for similar issues and check if other containers which support gpu acceleration work?

If I see CUDA correctly in the test docker from nvidia, is that enough to rule out the infrastructure? Or is there another test that will definitely prove this?

Forget what I said, I just ran:
nvidia-smi
inside the backend, and it works, so the container can reach the GPU. It must be an issue in the software.

Traceback (most recent call last):
  File "/code/service/face_recognition/main.py", line 1, in <module>
    import face_recognition
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/__init__.py", line 7, in <module>
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/api.py", line 26, in <module>
    cnn_face_detector = dlib.cnn_face_detection_model_v1(cnn_face_detection_model)
RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file /tmp/builds/dlib/dlib/cuda/gpu_data.cpp:204. code: 999, reason: unknown error
/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py:138: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
  return torch._C._cuda_getDeviceCount() > 0

here's my env:
backend:
image: reallibrephotos/librephotos-gpu:dev
container_name: backend
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
yet as mentioned CUDA is seen.

==========
== CUDA ==
==========
CUDA Version 12.1.0
Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.
*************************
** DEPRECATION NOTICE! **
*************************
THIS IMAGE IS DEPRECATED and is scheduled for DELETION.
    https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/support-policy.md
Wed Dec 20 07:19:30 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |

I added nvidia-smi to the start of entrypoint, because bing co-pilot suggested I run smi before any command. Here's the output.
I have created this pull request:
https://github.com/LibrePhotos/librephotos-docker/pull/113
so we can update that going forward.
Also, see the deprecation notice, I think we need to keep on the latest image for CUDA for it to function properly.

I think this here is the correct issue from pytorch. https://github.com/pytorch/pytorch/issues/49081 I added nvidia modprobe to the container. Lets see if that works.

Traceback (most recent call last):
  File "/code/service/face_recognition/main.py", line 1, in <module>
    import face_recognition
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/__init__.py", line 7, in <module>
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
  File "/usr/local/lib/python3.10/dist-packages/face_recognition/api.py", line 26, in <module>
    cnn_face_detector = dlib.cnn_face_detection_model_v1(cnn_face_detection_model)
RuntimeError: Error while calling cudaGetDevice(&the_device_id) in file /tmp/builds/dlib/dlib/cuda/gpu_data.cpp:204. code: 999, reason: unknown error
/usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py:138: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
  return torch._C._cuda_getDeviceCount() > 0

Still this. Are you initiating the CUDA drivers and visible devices before the code? It does not look like my pull request was merged, so I could see the result of nvidia-smi in these logs.

After the modprobe and the pull request merge, still the same issue.
I get the CUDA info at the start, but the error still shows up.
Don't we need CUDA drivers as well? And I really think we need the latest CUDA image, because the info of my CUDA is 12.2 and the one in the container is 12.1 and is deprecated.

Should be backwards compatible and we need this version as pytorch has the same version. I also have a 1050ti with CUDA 12.2, drivers with the version 535.129.03 and it works.
CUDA drivers should be installed on the host system. The docker image needs the image from nvidia, which we already use. Can you check if there are different drivers available for your system?
My system:
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1050 ...    Off | 00000000:01:00.0 Off |                  N/A |
| N/A   41C    P8              N/A / ERR! |     96MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

My env looks like this:
  backend:
    image: reallibrephotos/librephotos-gpu:${tag}
    container_name: backend
    restart: unless-stopped
    volumes:
      - ${scanDirectory}:/data
      - ${data}/protected_media:/protected_media
      - ${data}/logs:/logs
      - ${data}/cache:/root/.cache
    environment:
      - SECRET_KEY=${shhhhKey:-}
      - BACKEND_HOST=backend
      - ADMIN_EMAIL=${adminEmail:-}
      - ADMIN_USERNAME=${userName:-}
      - ADMIN_PASSWORD=${userPass:-}
      - DB_BACKEND=postgresql
      - DB_NAME=${dbName}
      - DB_USER=${dbUser}
      - DB_PASS=${dbPass}
      - DB_HOST=${dbHost}
      - DB_PORT=5432
      - MAPBOX_API_KEY=${mapApiKey:-}
      - WEB_CONCURRENCY=${gunniWorkers:-1}
      - SKIP_PATTERNS=${skipPatterns:-}
      - ALLOW_UPLOAD=${allowUpload:-false}
      - CSRF_TRUSTED_ORIGINS=${csrfTrustedOrigins:-}
      - DEBUG=0
      - HEAVYWEIGHT_PROCESS=${HEAVYWEIGHT_PROCESS:-}
    depends_on:
      db:
        condition: service_healthy
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

I added export CUDA_VISIBLE_DEVICES=0 to the entrypoint.sh, maybe that will make a difference.

Here's my output inside the container:
*************************
** DEPRECATION NOTICE! **
*************************
THIS IMAGE IS DEPRECATED and is scheduled for DELETION.
    https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/support-policy.md
Fri Dec 22 00:31:46 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1050        Off | 00000000:08:00.0 Off |                  N/A |
|  0%   41C    P0              N/A /  70W |      0MiB /  2048MiB |      1%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

I added export CUDA_VISIBLE_DEVICES=0

That would just mean no devices would be registered.

Yours even has an error in detecting the Watt limit. Is that from inside the container or from the host system?

export CUDA_VISIBLE_DEVICES=0 means, that the 0th devices will be visible, which is in your list your only GPU.
Yeah, probably has something to do with it being a laptop, but it still works :)

that the 0th devices will be visible
The naming is a bit confusing then.

but it still works :)
Question is, maybe it's such a unique case that it works when you test, but with a desktop one it requires something different?

Added it manually on my entrypoint, did not help.
I made a quick script to check the host:
https://github.com/LibrePhotos/librephotos-docker/pull/115
My host passes all the checks.

I used your configuration for the GPU.  This also works on my machine.
runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities:
                - gpu

I also executed your HostCuda script and it passed:
CUDA-capable GPU detected.
x86_64
Linux version is supported.
GCC is installed.
Kernel headers and development packages are installed.
NVIDIA binary GPU driver is installed.
Docker is installed.

Can you try this suggested fix on your host machine? https://github.com/pytorch/pytorch/issues/49081#issuecomment-1385958634

Do you mean this:
sudo modprobe -r nvidia_uvm && sudo modprobe nvidia_uvm

Because that returns:
modprobe: FATAL: Module nvidia_uvm not found.
So my host is set up like yours (at least from the prerequisites tests) and the compose file is the same. What else could be different?
nvidia_uvm is not one of the prerequisites from the nvidia documentation.

Alright, just execute the second part, sudo modprobe nvidia_uvm, the first part is just for removing an already existing nvidia_uvm module.
I am not basing the debug commands from the documentation as it is usually not complete, but from the issue on github in pytorch, which usually provides better pointers on how to fix the error.
I just use kubuntu 22.04, do you use something unique like arch?

sudo modprobe nvidia_uvm
modprobe: FATAL: Module nvidia_uvm not found in directory /lib/modules/6.1.55-production+truenas

I just use kubuntu 22.04, do you use something unique like arch?
Nope, Debian bookworm.

This sounds like the gpu drivers are not actually correctly installed according to stackoverflow: https://askubuntu.com/questions/1413512/syslog-error-modprobe-fatal-module-nvidia-not-found-in-directory-lib-module


read nfc card more than one time in one session!!

when using NfcManager.instance.startsession it read the card many times
I am using NfcManager.instance.stopsessionafter reading the card to finish reading
await NfcManager.instance.startSession(
onDiscovered: (NfcTag tag) async {
// stop Session
NfcManager.instance.stopSession();
if (kDebugMode) {
print('Tag data record: ${tag.data}');
}
emit(ReadNFCSuccessState(subWallet));
}

I think that's the expected behavior.

but when I use the onDiscover to navigate to another screen it also navigates to the same screen many times
how to take only the first successful reading and deal with it one time? no many times

Just like you did, using NfcManager.instance.stopSession().
You can have a look at the example where the author of this plugin did the same thing.


Potion effects

Implements the serialization and deserialization of PotionEffects.
Currently the test is failing and I'm not sure why. As far as I can tell, there's nothing static to mock. The whole 'system' for PotionEffectTypes seems really odd to me.
@ljacqu If you have some free time, could I ask you to review this one?

Hi @Gnat008, somehow when it gets the name from the potion type it actually makes a lookup of the type happens via the id, cf. PotionEffectTypeWrapper#getType, which queries the static field PotionEffectType#byId. Only this byId array only has null elements on startup, so I believe you'd have to do something like:
        PotionEffectType.registerPotionEffectType(PotionEffectType.ABSORPTION);
        PotionEffectType.registerPotionEffectType(PotionEffectType.GLOWING);

I'd send a commit in the usual fashion fixing this but somehow it seems my changes have no effect in the code and aren't being run at all.
This brings me to the next point—are you really sure you want to rewrite PWI in Kotlin? Right now it seems to me that it's more of a limitation than an augmentation. While it brings some cool features absent from Java, it and especially its ecosystem still needs to mature a little.


Azure Container Apps Console Logs for Replicas / Revisions

Please provide us with the following information:

This issue is a: (mark with an x)

[x] bug report -> please search issues before submitting
[ ] documentation issue or request
[ ] regression (a behavior that used to work and stopped in a new release)

Issue description
If a revision fails to activate the console logs aren't searchable or can't be found.  When you click the revision and click the view console logs, it only shows a partial of the stacktrace for what happened making it impossible to know what the issues is.  When you click the logs and search through there, the revision and replica don't exist or show up in the logs
Steps to reproduce

Create a new revision that fails to activate
Search for the logs based on that revision or replica

Expected behavior [What you expected to happen.]
I would expect to be able to see the logs for each revision/replica and be able to query them even if they don't activate
Actual behavior
Somewhere the logs (or a partail of them) are being stored because you can see then when you click on the revision and click the View console logs stream.  When you click the logs and run a KQL query passing in the revision, nothing returns when it doesn't activate
Screenshots

Console Log Stream for the failed activated revision.  Log is only partial and doesn't have the full stack trace

Go into the log analytics workspace and do a general search for that container and there are no logs for that revision
Additional context
Portal

Thank you for bringing this up to us. We will continue to investigate this potential bug, but in the meantime, we recommend temporarily turning off the ingress port as failing apps get killed by the platform quickly so turning off the ingress can slow this and allow for better debugging. You can turn it back on when the application is running. Also, have you tried using CLI to get a better logging view?


refactor: Converts Messages controller to API only

Closes #740

Looks good so far but fix the merge conflict


Remove packagemanifests

These are for old releases and we haven’t had a working bundle upstream in quite a while.
The K8s yaml files cause a lot of Sonar violations.

There is using=bundle deployment automation in Shipyard to test this, but I think we're not actually running it. I can remove it if you want?


Incoming Callkit notification not triggering when app is terminated

this is the error log when app is terminated and a call notification arrived from FCM. It didn't trigger the callkit incoming call notification rather logging this
I/flutter (21552): FlutterFire Messaging: An error occurred in your background messaging handler:
I/flutter (21552): PlatformException(java.lang.Exception: Failed to load FirebaseOptions from resource. Check that you have defined values.xml correctly., Exception, Cause: null, Stacktrace: java.lang.Exception: Failed to load FirebaseOptions from resource. Check that you have defined values.xml correctly.
I/flutter (21552):      at io.flutter.plugins.firebase.core.i.v(Unknown Source:12)
I/flutter (21552):      at io.flutter.plugins.firebase.core.i.l(Unknown Source:0)
I/flutter (21552):      at io.flutter.plugins.firebase.core.b.run(Unknown Source:4)
I/flutter (21552):      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
I/flutter (21552):      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
I/flutter (21552):      at java.lang.Thread.run(Thread.java:1012)
I/flutter (21552): , null)

This is my FCM background handler
This works absolutely fine when the app is in the background but not terminated, but it can't trigger the CallKit when the app is terminated.
@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
   await Firebase.initializeApp();

  String docName = '';
  String docImage = '';
  String uuid = '';

  if (message.data['type'] == 'call') {
  docName = message.data['doc_name'];
  docImage = message.data['doc_image'];
  uuid = message.data['uuid'];

  var callerId = Random().nextInt(999999);
  var opponentsIds = {Random().nextInt(999999)};
    CallEvent callEvent = CallEvent(
      sessionId: uuid,
      callType: 0,
      callerId: callerId,
      callerName: docName,
      opponentsIds: {opponentsIds},
      callPhoto: docImage,
    );
    ConnectycubeFlutterCallKit.showCallNotification(callEvent);
  }
  dev.log("Handling a background message: ${message.messageId}");
}

Unfortunately, I can't localize the issue because I can't see any plugin's code in the provided stacktrtace.

solution is
add this
await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );

instead of
await Firebase.initializeApp();

closing as complete


Correct sign in mat4x4_rotate_Y

Signs were incorrect in mat4x4_rotate_Y.

Good spot! I agree; the Y rotation is inconsistent with X and Z, and the signs should be swapped. (see https://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations).
I believe this code is taken from the repository here: https://github.com/datenwolf/linmath.h/blob/master/linmath.h#L248 so it would be great if you could submit a PR there too.

I just submitted a PR in the source repository also.

NB: This change was accepted over at the source repository (https://github.com/datenwolf/linmath.h/pull/39)


Get employees in contract

HR must be able to get employees which belongs to contract.
In order to do that WS must be implemented

[ ] confluence / apiary
[ ] implement
[ ] test

duplicates #2594


Rename F4PGA_ENV_* to F4PGA_*_DIR

Cosmetic change to unfiy the naming convention with F4PGA_INSTALL_DIR

Cross-dependent with https://github.com/SymbiFlow/f4pga-arch-defs/pull/2798, https://github.com/SymbiFlow/f4pga-arch-defs/pull/2798


Add support for additional character in JacksonEvent get by key methods

Is your feature request related to a problem? Please describe.
Today JacksonEvent.get() checks if the key matches the pattern ^[A-Za-z0-9]+([A-Za-z0-9.-_][A-Za-z0-9])*$. If the key does not match an IllegalArgumentException is thrown by JacksonEvent.checkKey(. Internally JacksonEvent.get() uses a Jackson JsonPointer for key lookups.
Describe the solution you'd like
Update JacksonEvent.checkKey( to support the full set of characters supported by JsonPointer
Describe alternatives you've considered (Optional)
Supporting a subset of JsonPointer supported characters.
Additional context
Creating JacksonEvents using a wider set of key characters will need additional testing, not all character may work with the existing model.

I see two things to consider:

Data Prepper should allow all the JsonPointer characters which support traversal (e.g. /).
Presently Data Prepper's primary sink is OpenSearch. While I expect this to change in the near future, it may be reasonable to keep the characters allowed in the individual key names to only include what OpenSearch supports for document keys. We could then consider adding new characters as needed by specific community feedback.


Possible to add additional datafield per column?

I have a table where each row only has one column - the Item Name. I'd like to add (in a smaller font size) the item description directly under each item name and in the same row. The way I'm seeing it, it would need to be an additional dataField in the column. Is this possible?

The best solution is using the column group(rowspan), but currently, we only support column group on header. But actually, you can use dataField to split a td as two division.
For example:
const data = [{
  name: '...', description: '...'
},{
  name: '...', description: '...'
}];

class Table extends React.Component {

  formatName(cell, row) {
      // get name by row.name
      // get description by row.description
      return (

{ row.name }

{ row.description }

      );
  }

  render() {
    return (
      <BootstrapTable data={ data }>
          <TableHeaderColumn dataField='name' isKey={ true } dataFormat={ this.formatName }>Item Name</TableHeaderColumn>
      </BootstrapTable>
    );
  }
}

Let me know if you have any concern, thanks

Perfect, thank you!

I have the same scenario but I want both the field to be editable. Is there any way right now?

I guess I can use "customEditorParameters" to display two inputs in the same field. I will try it and get back.
Thanks

@PrashanthSuriyanarayanan sorry for lately reply, if your data field is nest or an object, it's impossible to edit I guess, if it's available please let me know :p


Patch avrora to not call methods in java.lang.Compiler

The java.lang.Compiler class is removed in Java 21. This never had any implementation in Hotspot.
This PR patches the avrora sources to remove calls to methods in this class.
See https://bugs.openjdk.org/browse/JDK-8205129 for the OpenJDK issue which removed java.lang.Compiler

LGTM!  Thanks for this.  Appreciated.  Interesting (not surprising) that removing that call does not regress performance.


Add ability to send emails that have image attachments

Description:
This is a simple update to app_utils that allows users to optionally send an email with an image attachment.
When calling app_utils.emailUser() you just add an optional file path to the image you wish to send.
Use Case:
I created a module that takes a picture using a webcam. I want to optionally send the player an email with the photo attached. I want to utilize the mailgun/gmail stuff from emailUser()

Seems like travis is getting held up on other files and not the one I edited.


No images for the all chapters section

How to solve this?  If anyone can provide guidelines, I can work on this.

I'am currently working on adding All chapters to the french translation (see #303) and I have the same issue.
We must search and replace all? {{site.baseurl}} from all? files.

This solution work but if we change baseurl in _config.yml it will fail :wink:
In beginner-all-chapters.html files replace
{{ post.content | markdownify }}

by
    {% assign pattern = "{{site.baseurl}}" %}
    {{ post.content | replace: pattern,baseurl | markdownify }}

Note: we must use 2 lines because the pattern {{xxx}} don't enter in conflict with liquid pattern {%yyyy%}


esmangle is iterating custom circular references inside the AST

I've got my AST instrumented with extra nodes for meta information (such as scopes), and those objects have circular references. What happens is that esmangle iterates over those structures and throws a "Maximum call stack size exceeded" error.
Shouldn't the visit to the tree only crawl known keys?

I'd be surprised if this was happening, since esmangle uses estraverse for traversal, and estraverse explicitly visits the appropriate fields for each type of node. Please provide a minimal reproduction case.

A simple scenario is the following one:
var ast = {
  "type": "Program",
  "body": [
      {
          "type": "ExpressionStatement",
          "expression": {
              "type": "Identifier",
              "name": "a"
          }
      }
  ]
};
// Just a simple circular reference to replicate the issue
ast.body[0].scope = ast;
require('esmangle').optimize(ast);

This is related to the deep copy that estraverse does to the tree. Is it possible to transform the tree without deep copying it? I mean, doing it by reference, that would be awesome and avoid this problem (though this is still a bug I guess).

You can pass the {destructive: true} option to avoid the deep copy. That should fix your problem. I guess you could still consider the deep copy function buggy because it doesn't handle circular refs. Can you open a new issue for that with a minimal example?

Even with {destructive: true} the clone happens, it's being forced in here

Well that's not good.


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220719154044132 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20220719154044132 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
28176

Relevant Lines:
62343

💛  - Coveralls


Should help with the random build issues.

The purpose of package-lock.json is to ensure that the same dependencies are installed consistently across different environments, such as development and production environments. It also helps to prevent issues with installing different package versions, which can lead to conflicts and errors.

@bitkarrot @saucy-tech

Right on! Anyone want to make a PR for this?

Yes I'd like to do this, submitted PR #71

Great. Waiting for @bliotti on the upgrade PR https://github.com/plebnet-dev/website/pull/72
he suggested that one be merged in first before your update, which means once the other one is in merged, you'll need to pull from main and redo, sorry about that.
the other #72  is worth taking a look at to see what he did for the astro3 upgrade

I closed my previous PR to reconcile all the updates. Did a git reset, used node 18.6.1 with nvm, and reinstalled astro and dependencies. Looks like astro 3.4.1 just released this morning as well. I can still do a gitignore PR if needed.

Actually reading the initial message, its the opposite - https://github.com/plebnet-dev/website/issues/70#issue-1957232379
@bliotti  is saying that the package-lock.json should be committed, not the reverse. I agree with him on this.
What To Do: Run and build your updated branch on vercel, check that everything builds correctly,  then open a PR and commit the package-lock.json file.
If you can open back the PR, appreciate it!

closing as merged per #71


Rocky 8: Python "lxml" library is required

On Rocky 8, tdp deploy failes in few tasks with the error message "Failed to import the required Python library (lxml)".
There are 4 packages for Python lxml library provided from the appstream repository:
[root]# dnf search *lxml*
[...]
python2-lxml.x86_64 : XML processing library combining libxml2/libxslt with the ElementTree API
python3-lxml.x86_64 : XML processing library combining libxml2/libxslt with the ElementTree API
python38-lxml.x86_64 : XML processing library combining libxml2/libxslt with the ElementTree API
python39-lxml.x86_64 : XML processing library combining libxml2/libxslt with the ElementTree API
[...]

I have tested with the installation of python3-lxml package, it seems this works and is compatible with Python v3.6 installed on my system:
[root]# repoquery --list python3-lxml
[...]
/usr/lib64/python3.6/site-packages/lxml
/usr/lib64/python3.6/site-packages/lxml-4.2.3-py3.6.egg-info
[...]
[root]# python3 --version
Python 3.6.8

So this is not a tdp deploy bug, this is an Ansible tasks bug.

With CentOS 7 using Python2 by default, the package python-lxml is already installed by default.
Now with Rocky 8 using Python3, this package is not installed by default.
Perharps it is needed to add it explicitly in tdp-collection-prerequisites, but this package exists for different versions of Python3.

Yes we should install the python3-lxml. Ansible use the default python 3 on Rocky 8.


Support for ex and other units

What Is the issue?
It seems currently we can not use ex and other units to set the desired height.
Provide issue context below using code examples, images, or links

Read about references issues here. Provide paragraph text responses to each header.

@DanielRuf to keep the shave utility minimal, using the default javascript unit measure (pixels) is used.

Sure, I'm totally aware of the fact that we want to keep it as minimal as possible. But why not provide a description or option to support ex (calc() and others support it)?
Also see https://2012.heygrady.com/blog/2011/12/21/length-and-angle-unit-conversion-in-javascript/
https://stackoverflow.com/questions/20462388/measure-ex-in-px-in-javascript

The sentence referenced below (which is located at the top of the README) could be more clear max-height in pixels.

Shave is a zero dependency javascript plugin that truncates multi-line text to fit within an html element based on a set max-height.

Thanks for the update.

This utility

Do you mean shave?

@DanielRuf yup! 😀


device code has been expired, but the error was "authorization_pending"

curl --location --request POST 'http://identity.nuzar.com/oauth2/token'
--header 'User-Agent: Apifox/1.0.0 (https://www.apifox.cn)'
--header 'Authorization: Basic NzhhZWQwZmQzNGQxNDJlNjg5YjQwOTYzOWNmNDYyMjA6TnV6YXIxMjM0NTZf'
--header 'Accept: /'
--header 'Host: identity.nuzar.com'
--header 'Connection: keep-alive'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Cookie: SESSION=MThhMWQ2ZmYtYjIxYS00YmFiLTlmMDEtNjQzY2VjZGU0Mjhh'
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:device_code'
--data-urlencode 'device_code=sRN6Nk_1uuuHpitZJP63pf6NgADAviPG8nS1FbAsl6bknfNnj6F2HrDRprS5lU-PMF7FR-6ECLBOn5oO_SMaDpa3FbK45OW_3VXfX8mSRb_ptVDUWUjh1dS7PlGgjnKo'
response:
{
"error": "authorization_pending",
"error_uri": "https://datatracker.ietf.org/doc/html/rfc8628#section-3.5"
}
the device code has been expired , but the response present " authorization_pending" always.
it should be  "expired_token"
if (!userCode.isInvalidated()) {
	OAuth2Error error = new OAuth2Error(AUTHORIZATION_PENDING, null, DEVICE_ERROR_URI);
	throw new OAuth2AuthenticationException(error);
}

//   slow_down
//      A variant of "authorization_pending", the authorization request is
//      still pending and polling should continue, but the interval MUST
//      be increased by 5 seconds for this and all subsequent requests.
//	NOTE: This error is not handled in the framework.

//   access_denied
//      The authorization request was denied.
if (deviceCode.isInvalidated()) {
	OAuth2Error error = new OAuth2Error(OAuth2ErrorCodes.ACCESS_DENIED, null, DEVICE_ERROR_URI);
	throw new OAuth2AuthenticationException(error);
}

//   expired_token
//      The "device_code" has expired, and the device authorization
//      session has concluded.  The client MAY commence a new device
//      authorization request but SHOULD wait for user interaction before
//      restarting to avoid unnecessary polling.
if (deviceCode.isExpired()) {
	// Invalidate the device code
	authorization = OAuth2AuthenticationProviderUtils.invalidate(authorization, deviceCode.getToken());
	this.authorizationService.save(authorization);
	if (this.logger.isWarnEnabled()) {
		this.logger.warn(LogMessage.format(
				"Invalidated device code used by registered client '%s'", authorization.getRegisteredClientId()));
	}
	OAuth2Error error = new OAuth2Error(EXPIRED_TOKEN, null, DEVICE_ERROR_URI);
	throw new OAuth2AuthenticationException(error);
}

@limng06 Please see the test authenticateWhenDeviceCodeIsExpiredThenThrowOAuth2AuthenticationException() as it demonstrates that expired_token is returned when the device code is expired.
Please provide a similar test that reproduces the issue you are having where authorization_pending is returned when the device code is expired. You can copy authenticateWhenDeviceCodeIsExpiredThenThrowOAuth2AuthenticationException() as an initial template and adjust based on your use case.


Jitsi doesn't start, message "NimbuzzAvatars"

I installed JITSI jitsi-2.9.5477-x86.msi on fresh legal Windows XP Pro SP3 french version and jitsi-2.9.5477-x64.msi on Windows 7 Pro french version, in VirtualBox. After the installation, JITSI doesn't start, there's a message "NimbuzzAvatars" and nothing else.

Delete the directory %userprofile%\.sip-communicator. Not sure how that got there, unless you ran the unit-tests from either Jitsi or libjitsi.

Deleting the directory %userprofile%.sip-communicator doesn't solve it. I restart with initial snapshot of Windows and had again the same problem.

Same problem with 2.9.5478 version but jitsi-2.8.5426 stable version works fine.

same problem on 2.10.5550

same problem here on Kubuntu 19.10, how do I get the console output?

Same issue as @soratobukuroneko, same console output, Pop!_OS 20.04.

org.osgi.framework.BundleException: Unable to resolve net.java.sip.communicator.shutdowntimeout [76](R 76.0): missing requirement [net.java.sip.communicator.shutdowntimeout [76](R 76.0)] osgi.wiring.package; (osgi.wiring.package=org.jitsi.service.configuration) [caused by: Unable to resolve org.jitsi.libjitsi [125](R 125.0): missing requirement [org.jitsi.libjitsi [125](R 125.0)] osgi.wiring.package; (osgi.wiring.package=com.sun.jna.ptr) [caused by: Unable to resolve com.sun.jna [88](R 88.0): missing requirement [com.sun.jna [88](R 88.0)] osgi.ee; (&(osgi.ee=JavaSE)(version=1.4.0))]] Unresolved requirements: [[net.java.sip.communicator.shutdowntimeout [76](R 76.0)] osgi.wiring.package; (osgi.wiring.package=org.jitsi.service.configuration)]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:834)

Has this been fixed or is it still ongoing?
I just install Jitsi Desktop 2.10.5550 on Debian 10 with the same issue.

This was quite a surprise. Is Jitsi desktop really broken on Debian/Ubuntu?
I'm not demanding a fix, but since the reports above indicate that Jitsi desktop Debian/Ubuntu has been broken for a few months, couldn't someone put a note on the Jitsi desktop download page and save us some time?
I know that I can access Jitsi through the browser, and I suppose I will. But I thought the Jitsi desktop version conferred some benefits compared to the web client. I suppose now I will not know :-(
Ubuntu 18.04, Jitsi 2.10. Exactly the same error as for @cast-away, and the splash screen freezes after showing "NimbuzzAvatars".

Same issue also using Kubuntu 19.10 :(

As mentioned in #675 (https://github.com/jitsi/jitsi/issues/675), jitsi only works with java 8.

Another workaround (though probably not too safe) for Debian(-based) systems is changing default java version:
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Or use nightly which seems to be working the latest OpenJDK.

Another workaround (though probably not too safe) for Debian(-based) systems is changing default java version:
update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Or use nightly which seems to be working the latest OpenJDK.

Jitsi doesnt start with NimbuzzAvatars with OpenJdk 11. We need to install Openjdk 8 and set as default..
sudo apt-get install openjdk-8-jdk .
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java


Some Ads Requests Return Empty VAST Tags

Hello!
Thank you for your plugin - it has been extremely useful to us across a variety of projects and use cases.
Our newest project integrating Google ads uses React and only one instance of a VideoJS player, playing HLS streams. We request ads after the first 10 seconds that the user sits on the page, and then every 10 minutes. Our issue is that some ads requests return empty VAST tags, so ads are not played at our desired intervals.
Our implementation involves dynamically appending the 3 necessary scripts (Google IMA SDK, videojs-contrib-ads, and videojs-ima), then instantiating the IMA plugin on the player instance if it hasn't been instantiated already, and finally requesting ads. For subsequent ads requests, we use setContentWithAdTag and then request ads. While the requests are made, the majority of our VAST tags seem to return empty. The IMA plugin then logs the message:

AdsLoader error: AdError 1009: The VAST response document is empty.

Here's the implementation:
handlePlayAd = () => {
    const {
      adTagUrl,
      adChannels,
      incrementAdsPlayed,
      player,
      toggleIsPlayingAd,
    } = this.props;

    const currentWindowLocation = encodeURIComponent(window.location.href);
    let updatedAdTagUrl;

    utils.appendAdsScripts();

    if (adTagUrl.match('#####')) {
      updatedAdTagUrl =
        adTagUrl.replace('#####', String(adChannels.default)) +
        currentWindowLocation;
    } else {
      updatedAdTagUrl = adTagUrl + currentWindowLocation;
    }

    const imaOptions = {
      id: player.id_,
      adTagUrl: updatedAdTagUrl,
    };

    this.handlePlayAdTimer = setTimeout(() => {
      try {
        if (typeof player.ima === 'function') {
          player.ima(imaOptions);
          player.ima.requestAds();
        } else {
          player.ima.setContentWithAdTag(null, updatedAdTagUrl, true);
          player.ima.initializeAdDisplayContainer();
          player.ima.requestAds();
        }
      } catch (err) {
        console.log(err); // eslint-disable-line
      }
    }, 3000);

    player.on('adsready', () => {
      player.pause();
    });

    player.one('adstart', () => {
      incrementAdsPlayed();
      toggleIsPlayingAd(true);
    });

    player.one(['adend', 'adserror', 'adskip', 'adscanceled'], e => {
      toggleIsPlayingAd(false);
      player.play();
      player.trigger('play');
      this.setAdTimer();
      // console.log(e);
    });
  };

We've set up a test page if you'd like to see what's going on: https://public.earthcam.net/tJ90CoLmq7TzrY396Yd88IyNkZovC7VvK3MKrO-H1OY!/National%20Aquarium%20Cam/Shark%20Cam/Live
We are using:
VideoJS 7.1.0
videojs-contrib-ads 4.2.8
videojs-ima 0.8.0
Do you have any insights on this issue? Thanks in advance for your help!
In case this is useful, here's the debug log for 3 requests - the first 2 came back with empty tags, but the third succeeded:

[  0.019s] [ima.loader.AdsLoaderWrapper] Requesting ads using new ads loader.
bridge3.272.0_debug_en.html:897  [  0.021s] [ima.loader.AdsLoaderWrapper] requestAds, processing external request.
bridge3.272.0_debug_en.html:897  [  0.022s] [ima.loader.SequentialAdsLoader] Enqueued new request.
bridge3.272.0_debug_en.html:897  [  0.022s] [ima.loader.SequentialAdsLoader] Starting request from queue.
bridge3.272.0_debug_en.html:897  [  0.363s] [ima.loader.SequentialAdsLoader] Starting request from queue.
videojs.ima.js:9 AdsLoader error: AdError 1009: The VAST response document is empty.
bridge3.272.0_debug_en.html:897  [ 13.385s] [ima.loader.AdsLoaderWrapper] Requesting ads using new ads loader.
bridge3.272.0_debug_en.html:897  [ 13.385s] [ima.loader.AdsLoaderWrapper] requestAds, processing external request.
bridge3.272.0_debug_en.html:897  [ 13.385s] [ima.loader.SequentialAdsLoader] Enqueued new request.
bridge3.272.0_debug_en.html:897  [ 13.386s] [ima.loader.SequentialAdsLoader] Starting request from queue.
bridge3.272.0_debug_en.html:897  [ 13.708s] [ima.loader.SequentialAdsLoader] Starting request from queue.
videojs.ima.js:9 AdsLoader error: AdError 1009: The VAST response document is empty.
bridge3.272.0_debug_en.html:897  [ 26.720s] [ima.loader.AdsLoaderWrapper] Requesting ads using new ads loader.
bridge3.272.0_debug_en.html:897  [ 26.721s] [ima.loader.AdsLoaderWrapper] requestAds, processing external request.
bridge3.272.0_debug_en.html:897  [ 26.722s] [ima.loader.SequentialAdsLoader] Enqueued new request.
bridge3.272.0_debug_en.html:897  [ 26.723s] [ima.loader.SequentialAdsLoader] Starting request from queue.
bridge3.272.0_debug_en.html:897  [ 27.030s] [ima.loader.AdSourceFactory] Creating VastAdSource.
bridge3.272.0_debug_en.html:897  [ 27.335s] [ima.loader.AdSourceFactory] Creating VastAdSource.
bridge3.272.0_debug_en.html:897  [ 27.338s] [VastAdSource] processInlineAd, successCallback with 1 ads
bridge3.272.0_debug_en.html:897  [ 27.338s] [VastAdSource] processInlineAd, successCallback with 1 ads
bridge3.272.0_debug_en.html:897  [ 27.341s] [ima.loader.SequentialAdsLoader] Starting request from queue.
bridge3.272.0_debug_en.html:897  [ 27.355s] [ima.managers.AdsManagerFactory] createAdsManagerFromAds_, adType: video
bridge3.272.0_debug_en.html:897  [ 28.400s] [ima.vast.VastAdServerReporter] Reporting urls for event : show_ad

You are using dfp vast right?
"https://googleads.g.doubleclick.net/pagead/ads?...."
So it is all about DFP ad delivery!
Let try with one of the vast uri from Google example page and see how is going?
https://developers.google.com/interactive-media-ads/docs/sdks/html5/tags

Hi,
I’m closing this issue because it has been inactive for a few months.
Please reopen if you still encounter this issue with the latest stable version.
Thank you!


Spatial Detection Example Problem

I am trying to adapt the mobile_publisher example from the depthai-ros-examples to work with the yolov4 network publishing the spatial coordinates (X, Y, Z) of each detection. I have come up with the following codes: https://drive.google.com/drive/folders/1DqpVrxvffyWEZXiJ9GvtiCxAthoPASu6?usp=sharing
If you want to replicate my results please place the following files in the respective folders:

yolov4_spatial_publisher.cpp -> ~/ros_ws/ros_depthai_ws/src/depthai-ros-examples/depthai_examples/src
yolov4_spatial_pipeline.cpp -> ~/ros_ws/ros_depthai_ws/src/depthai-ros-examples/depthai_examples/lib
yolov4_spatial_publisher.launch -> ~/ros_ws/ros_depthai_ws/src/depthai-ros-examples/depthai_examples/launch
yolov4_spatial_pipeline.hpp -> ~/ros_ws/ros_depthai_ws/src/depthai-ros-examples/depthai_examples/include/depthai_examples
Copy "tiny-yolo-v4_openvino_2021.2_6shave.blob" to somewhere, Update the path to this file in line 29 of code yolov4_spatial_publisher.cpp

To compile I did catkin_make_isolated --cmake-args -Ddepthai_DIR=~/depthai-core/build/install/lib/cmake/depthai since I am using ROS Melodic
I am able to compile and run the code. But when I inspect the rbg images from the camera, using rqt_img_viewer plugin, it outputs 1 or 2 frames then stops completely. And there is nothing being published on the topic of the NN detection.
I have tried the same model without using the spatial info and it worked fine. So, I guess the main problem should be on yolov4_spatial_pipeline.cpp where I define the pipeline or in yolov4_spatial_publisher.cpp where I create the topics and publishers.
Any suggestions are more than welcome!

Thanks for sharing the code. I will try the code at the earliest and check whats the issue and get back to you.

Thank you for you time!
Forgot to tell that you need to add this line to the CMakeLists.txt:

dai_add_node(yolov4_spatial_node src/yolov4_spatial_publisher.cpp)

Sorry for the late reply.
Thank you very much for your time and the great news!
If you could add that to the examples would be perfect, thanks!


MSID: 93855 Version: 2 DOI: 10.1101/2<IP_ADDRESS>8877

MSID: 93855
Version: 2
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>8877
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=93855
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>8877

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/93855v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>8877
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/93855/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

warn: [mixed-citation-other-publication-flag] mixed-citation in reference (id=c4) has a publication-type='other'. Is that correct?
warn: [mixed-citation-other-publication-flag] mixed-citation in reference (id=c7) has a publication-type='other'. Is that correct?

Hi @FionaBryant, in @acollings's absence please could you assist with editing the author response in hypothesis to fix formatting errors?
We have lots of superscripts missing, e.g.:

And in the screenshot above at the end of the paragraph, the wrong quote mark has been used (“ instead of ”)

Thanks @fred-atherden: I think this is now better than it was!

Thanks!


in cpplint a compound literal in return statement gives readability/brace warning

Actions:
Check with cpplint a source code with 2 fragments:
1:
return (SomeType){.some_field = some_value};

2:
SomeType x = (SomeType){.some_field = some_value};
return x;

Expected result:
Cpplint will not emit the message "You don't need a ; after a }  [readability/braces]" in both cases
Actual result:
Cpplint emits the warning in the 1st case.
Suggestion:
Add "return" statement to the line prefixes blocking this warning for compound literals.

https://github.com/google/styleguide/pull/312


updates pipeline definition to align with openapi.odata lib changes

This PR pushes multiple improvements to the pipeline definition:

Swaps ms build and vstest tasks by dotnet cli, to prepare an eventual transition to an ubuntu agent (performance) and for clarity
Adds policheck, credscan, binskim, and antimalware scan tasks (compliance)
Adds a deploy stage to avoid relying on the older release management, and use the same approbation rules defined in the environment across projects.

One thing I haven't included is the "has the version been bumped test" because I think further changes should be done to this pipeline:

The deploy job should be splat into 3 jobs (deploy open API, deploy readers, deploy hidi) so each module can be deployed indenpendently from one another.
Before each of those jobs, should be a reflective "check-openapi/reader/hidi version has been bumped" job that'd fail in case this was forgotten.

https://microsoftgraph.visualstudio.com/Graph Developer Experiences/_build/results?buildId=68725&view=results

@MaggieKimani1 policheck and the later binskim issues have been fixed (inexistant or wrong paths)
I've rebased my PR after #750 was merged.
I've also taken the code from your test azure pipeline (github release for hidi) as well as splat the deploy stage in 3 deploy jobs so we can release things independently.

https://microsoftgraph.visualstudio.com/Graph Developer Experiences/_build/results?buildId=68830&view=results

@MaggieKimani1 policheck and the later binskim issues have been fixed (inexistant or wrong paths)
I've rebased my PR after #750 was merged. I've also taken the code from your test azure pipeline (github release for hidi) as well as splat the deploy stage in 3 deploy jobs so we can release things independently.

Thanks for taking my changes and adding them to this PR.

https://microsoftgraph.visualstudio.com/Graph Developer Experiences/_build/results?buildId=68857&view=results


Toaster/Notification size

when I was delegating tokens on deskop, i saw a toast giving me some indication of what was happening. This was too small for a large deskop environment. If this should be a blocking modal, let's make it totally clear and large, if not let's put it in a more obvious and visible place. It would be great if it followed me around the app while it was in process.
Browser metadata
Path:      /proposals?dao=sep:0x3008B8D3e78bf0443683AbC52e35C11f4d785B27
Browser:   Chrome <IP_ADDRESS> on Mac OS 10.15.7
Viewport:  1861 x 1395 @2x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved
Originally posted by @azadikoff in https://github.com/decentdao/fractal-interface/issues/1578#issuecomment-2118026733

Delegating tokens is not a blocking action.
The toast does follow you around the app.
Modifying toast behavior or size/location is out of scope for this redesign.
@tomstuart123 recommend we remove the re-skin label from this issue.

happy with this. removed and we can look at toaster size later

Closing in favor of https://github.com/decentdao/decent-interface/issues/1689


Tests

Like most OSS projects, this would benefit from automated tests...

Absolutely, now that the project is stabilizing, we need that.
From your perspective, which area should we prioritize in the coverage?

I'd say that the priority is simply the setup so it's easy to add unit tests, as well as system tests.


Remove zedbox's dependency on github.com/google/gopacket/pcap, replacing it with github.com/packetcap/go-pcap . This eliminates any CGO dependency
Remove libpcap and libpcap-dev from the Dockerfiles
Change CGO_ENABLED=0

When this is done, we will be able to get cross-compilation of pillar with just changing the GOOS or GOARCH. This means building locally on Mac or Linux, etc., support for lots of different devices, and more things.
@adarsh-zededa is running initial tests. If @kalyan-nidumolu or @rvs or @eriknordmark knows how to test the DNS filtering - which is the main affected area - please do so.

FYI, the filters in use - especially the ones for status.Type == types.NetworkInstanceTypeSwitch - have not been fully tested. I will get it into go-pcap if needed.

Already seeing an issue with the filter. Please hold on testing.

Note: Change in size of zedbox:

old size  : 55877584
new size: 52413962

@adarsh-zededa is running initial tests. If @kalyan-nidumolu or @rvs or @eriknordmark knows how to test the DNS filtering - which is the main affected area - please do so.

@naiming-zededa Do you have some instruction for how to test the DHCP/DNS snooping feature?

@eriknordmark no automated testing. was inside App, doing nslookup to various places and monitor the log message from the DNS snooping; and for dhcp, the app with switch-net, see if we get IP address in UI in both NetworkInstance page, and also the App page itself (there is a bug i need to fix in this area, Vijay reported that)

I had no idea how to test that. I know there is an issue with the specific filters we use (see here), but once that is in place, I didn't know how to test.

@deitch let me import your patch, and try to play with some apps to see.

@naiming-zededa hold on for a few days until I can fix those filters

@deitch sure

This is really awesome @deitch -- very much looking forward for this to merge soon! Big deal for us to be able to have native go builds

@rvs wrote:

very much looking forward for this to merge soon! Big deal for us to be able to have native go builds

It has been on my todo list for a long time. I have been gathering up the pieces slowly. Your breaking out of lisp into a separate container helped.
I got the last pieces in @naiming-zededa @adarsh-zededa . Once CI clears, this should be good for testing. Also rebased on latest master.

CI all clear!

@deitch I have tested your pcap branch on my device, both DNS snooping and DHCP snooping works as before.

This is awesome @naiming-zededa
Hey @eriknordmark if you don't have any further objections -- I'll be merging it ASAP


ServiceWorker inherits from Worker

Why does ServiceWorker have to inherit from Worker? Looks like SW just needs to expose a postMessage method and be able to receive message events.
So why not just inherit from EventTarget and declare postMessage in the ServiceWorker idl?
This will also fix the issue of hiding terminate().

It's been sorted out and spec'ed (6dfce0aacceeef41c813c4680c7f67b96f80c4b6) as suggested in the original comment ( https://github.com/slightlyoff/ServiceWorker/issues/410#issue-40100202) along with the Run Service Worker algorithm and the text for messaging between ServiceWorker and Client.


文档首页一个小问题

大佬您好，
文档首页有个小错误，
Ce (策) means policy in Chinse.
应该修改成
Ce (策) means policy in Chinese.
谢谢

Many thanks for your correction.


Check click 8

Click released the version 8 package (which was breaking some imports on our side which we are fixing on https://github.com/open-metadata/OpenMetadata/pull/3724). Let's take a look at the new features and see if we can update our code to make it compatible.

cc @ayush-shah, let's tackle this when we have some more time in future releases

@pmbrull @ayush-shah can we close this?

@harshach will be taking a look in 0.13 to check if we can support click 8

R&D on argparse, use argparse instead of click.
ref: https://docs.python.org/3/library/argparse.html


fix: don't crash if given a weird threshold

If threshold is a very low value, like -100, then the find call will return undefined and the destructuring assignment will fail, rather than using the default values as expected. To ensure this works, default to an empty object so all the defaults will be used, and fill in a default for threshold.

I changed this PR to only address the undefined level attributes issue, so it won't conflict with #10.


Is it possible to set Gradient background for several cells

For example we have vertical feed like next:
[header 1]
[cell 1.0]
[cell 1.1]
[cell 1.2]
[header 2]
[cell 2.0]
[cell 2.1]
[cell 2.2]
..............
Is it possible to set gradient background only for cell 1.0, cell 1.1, cell 1.2?

@chapayGhub You might have to use a custom decoration view as a "background" for each section. Check out this guide for some tips.
Another trick might be to use a CAGradientLayer between all of your cells, and dynamically set the stops in each cell so it looks like a gradient spreads between all of the cells.

Thank you


Make DraggableScrollableController a listenable again

Use case
Use DraggableScrollableController as a listenable in AnimatedBuilder.
Proposal
It already has been a listenable on channel master, but after the merge to stable it is not anymore.

Hi @kamami, Thanks for filing the issue. I can see that DraggableScrollableController is listenable on master and beta channel but not on stable. I would recommend to please wait until it lands on stable in the future release, Since this is available on beta which will be the future stable channel.
master
https://github.com/flutter/flutter/blob/525c62071821738356e54ecae6ef06afa7e3c403/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart#L54
beta
https://github.com/flutter/flutter/blob/b101bfe32f634566e7cb2791a9efe19cf8828b15/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart#L54
stable
https://github.com/flutter/flutter/blob/db747aa1331bd95bc9b3874c842261ca2d302cd5/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart#L47
Closing as we wouldn't need an issue to keep track when a feature lands on stable unless something is very critical.