ADBDEV-6113: Incorrect row access for AOCO tables during ANALYZE

Incorrect row access for AOCO tables during ANALYZE
After adding a column with ALTER TABLE ADD COLUMN, AOCO tables had an incorrect
row number calculation during gp_acquire_sample_rows, which would return
incorrect results and sometimes crash. This happened because the sampling
function did not fully support missing values optimization for AOCO tables
(added by commit 3986f9261643bd8c96449d80135231756a8ca9fd). Specifically, the
target row was located using its sequential number (targrow) for both anchor
column and all the other columns, including ones with missing values, which
resulted in incorrect output or crashes.
This patch changes the algorithm to use physical row numbers (phyrow) for all
the columns except the anchor column. The anchor column is scanned the same way
as before, the physical row number is located, and then entries with the same
phyrow are located in all the other columns (regardless of their positions in
the segment files). This should handle AOCO tables with missing values
optimization correctly.
This error was hard to locate because originally pg_unreachable() was used
when the segment file ended unexpectedly, so no error messages or stack traces
were reported. This patch replaces this pg_unreachable() (and similar one in
the code for row-oriented tables) with ereports that would produce proper
error messages in case of similar crashes in the future.

Incorrect row access for AOCO tables during ANALYZE

The summary should be reworked a bit to be in imperative mood.
For ex. "Fix incorrect row access for AOCO tables during ANALYZE".

Did you launch pgindent on your code?

Did you launch pgindent on your code?

Yes. It does format ternary operators like that.

I reorganized the logic, it was possible to remove one of the variables completely and remove those += statements.


feat(logging): improve error message & add link to Node errors page.

This will add error description when logging errors.

The error descriptions are "standard" descriptions supported by Node module errno, see Node Common System Errors and POSIX errno

The error message format is also slightly modified, hopefully to be more beginner friendly. See an error example in the console of a create-react-app test application.

HPM is used by create-react-app for Proxying API Requests.   create-react-app expects more beginner friendly error messages. See pull request.

Coverage decreased (-0.3%) to 96.904% when pulling 9614dd0d34861ae3d70aac584e6d127b4eb0dae4 on cloudmu:master into 28030c5099eb860de3e0291847c3d2c9fabbbec1 on chimurai:master.

Hi @cloudmu,
Thanks for the PR.
I do like the improved error messaging.
You already pointed out; Not sure about the extra errno dependency, as it only provides a simple description for the error code.
Below I added two more variants of the error message.
Original error message:
[HPM] PROXY ERROR: ECONNREFUSED. localhost -> http://localhost:3001/api/login

PR error message:
[HPM] Error 'connection refused' (ErrorCode=ECONNREFUSED) occurred while trying to proxy request /api/login from localhost:3000 to http://localhost:3001

Variant without errno dependency
[HPM] An error occurred while trying to proxy request /api/login from localhost:3000 to http://localhost:3001 (ECONNREFUSED)

Variant without errno dependency. With link for more information on the error code.
[HPM] An error occurred while trying to proxy request /api/login from localhost:3000 to http://localhost:3001 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

My preference would go to variant 3; If the goal is to make the error message less aggressive and more beginner friendly. For the following reasons:

Uninterrupted plain English sentence explaining the error.
Print out original error code for troubleshooting.
Providing link for more info on the error code. (Common System Errors)
No extra errno dependency

What do you think? /cc @gaearon @geowarin

@chimurai I like variant 3 too.  Very clean.
As I suggested in my original create-react-app PR, I was also thinking about a direct link to Nodejs common system error page, but wasn't sure how stable that link would stay.  Was waiting on some feedback on preferences from other people, but want to get the ball rolling.
For variant 3, I would probably still point out ECONNREFUSED to be errorcode, and put it on the same line with the link.
So variant 4:
[HPM] An error occurred while trying to proxy request /api/login from localhost:3000 to http://localhost:3001
(ErrorCode=ECONNREFUSED. See https://nodejs.org/api/errors.html#errors_common_system_errors)
What do you think?  /cc @gaearon @geowarin

Option 3 looks good to me.

Coverage increased (+0.009%) to 97.188% when pulling 8be5919e5b6c9cd3d846a591c7530315e023632d on cloudmu:master into 28030c5099eb860de3e0291847c3d2c9fabbbec1 on chimurai:master.

Coverage increased (+0.009%) to 97.188% when pulling 8be5919e5b6c9cd3d846a591c7530315e023632d on cloudmu:master into 28030c5099eb860de3e0291847c3d2c9fabbbec1 on chimurai:master.

Do we really need HPM here? If this is a transitive dependency people will be confused what it means.

HPM is used consistently as the source of logging for other logging levels, so it's a tough call.  Some ideas:

option 1:  leave HPM out in the error log.
Good for create-react-app use case, but maybe not ideal for other use cases.

option 2:  change HPM to http-proxy-middleware.
This makes source of logging less mysterious, and the developers can easily look it up.  (It should be done for all log levels for consistency).   Btw, http-proxy-middleware does show up as the first search result.

option 3:  pass in logSource as argument to the module. This feels an over-kill, and complicates most uses cases.

I like option 2. but @chimurai it's your module, and your opinion counts most :-)

Option 2 sounds good to me.

@chimurai are you good with option 2 (changing HPM to http-proxy-middleware)?

Option 2 looks good and it's definitely an improvement in HPM.
But I still get the feeling this won't satisfy your original reason for creating this PR.
I think, even with this change, it is still a bit too generic and vague for the create-react-app users.
Another option you might want to explore is to configure a custom error handler.
var proxy = require("http-proxy-middleware");

var onErrorHandler = function (err, req, res) {
    console.log('Something went wrong.');
    console.log('And we are reporting a custom error message.');
};

var options = {target:'http://localhost:3000', onError: onErrorHandler};

https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/proxy-events.md#onerror
With a custom onError handler you can really dive into the specifics, as explained by @gaearon in:
https://github.com/facebookincubator/create-react-app/pull/282#issue-168387372
This custom onError is not affected by the logLevels. So it's up to you to set it to 'silent' or 'error'...

I like the onError idea. 👍

I totally missed the onError in the api.  Should use that in the create-react-app use case!

Coverage increased (+0.009%) to 97.188% when pulling a465761be37c976edf9b30ae0269b68fb31e655d on cloudmu:master into 28030c5099eb860de3e0291847c3d2c9fabbbec1 on chimurai:master.

Thanks for the PR.
Don't think you'll need a new version asap if you are using the onError.
Let me know in case you do, than I'll push a new release.

@chimurai Yes, I am good. No release needed for now.
Thanks for all the discussions and tips.


Clean up footer.js

Clean up some of the unneeded querySelectors and try/catch blocks.
Perhaps the entire file can be refactored to add the classes to every element on the page instead of one by one.

Currently the foot.js file will be in the feature/handlebars branch

Closing in favor of v2


ico.res missing

Hi,
Make is failing with "[Makefile:24: ico/ico.res] Error 127" when using the given makefile.
ico.res appears to be missing from the ico directory.

Oh that probably means you don't have windres available. If that's the case you can edit bin/bongo.exe: $(OBJ) $(ICO) into bin/bongo.exe: $(OBJ). Apart from not having the icon for the exe, the compiled program should run normally.

Fixed this issue, thanks!


replace getTopDomain with enableVarnishCookie domain option

remove getTopDomain that didn't get called on login, only on logout
add domain option to enableVarnishCookie

resolves https://github.com/schibsted/account-sdk-browser/issues/98

I'm on it. Sorry for late response, have been on 🌴


Add Norwegian translation

I added a Norwegian translation.
Thanks for this awesome mod!

Thanks!
Will check it out and probably merge it :D

Doesn't seem like there's anything offensive there, so I'll merge it


Support for publishing to IPNS

Is your feature request related to a problem? Please describe.
It's annoying to have to use the terminal to publish content to an IPNS key, and it alienates non-powerusers.
Describe the solution you'd like
It would be nice if the webui let you generate, organize, and name IPNS keys that files and folders could then be published to via the dropdown menu.

Thanks for calling this out, @swedneck! Adding to our queue for further prioritization -- it's a large task, but a high-value one. You may also want to see related discussion here: https://github.com/ipfs/ipfs-gui/issues/52

I totally agree with this proposal. If users can use WebUI to publish their CID, that's will be nice.

I totally agree with this proposal. If users can use WebUI to publish their CID, that's will be nice.

Given that Brave is adding UI for managing IPNS keys and publishing to them, we should implement bare minimum publishing  in ipfs-webui for consistent UX.
All necessary APIs are present, and we have some similar components which we could reuse.
@hacdias  thoughts? This is not super urgent, so we can take time and do this at any pace we want, if you have bandwidth.
(1) Add IPNS key management UI to Settings page

Add "IPNS Publishing Keys" after "Pinning Services"

This would be very similar to "Pinning Services" section

reuse visual language where possible
"Learn more" should link to https://docs.ipfs.io/concepts/glossary#ipns

List of available IPNS keys could be fetched via ipfs.key.list() and presented in a table with  name and is columns

Each table entry has three dot menu button on the right, just like Pinning services  with operations for managing the key:
self key is special and has no actions
additional keys have two actions available

"Rename" - ipfs.key.rename
"Remove" - ipfs.key.rm

"Add IPNS key" button below the table

opens modal in which user enters name and clicks Generate or Cancel
Generate creates a new key via ipfs key gen with implicit defaults
(right now only ed25519 makes sense, and it is the default, so no need to complicate UI)

Optional, but nice to have is to show which ID has something published on already:

test if id resolves in offline mode (pfs name resolve /ipns/{id} --offline (means we published to IPNS before and have record cached in the local record store)
if so, make value in id column clickable

onclick should open /ipns/{id} in a new tab on the "available gateway"

(2) Publishing to IPNS id via context action on Files page

Add "Publish with IPNS" operation at the end of the context menu on the Files page

It should open a modal similar to "Set pinning" with slight differences

Show the CID about to be published (read-only)
List of available keys fetched via ipfs.key.list
Radio buttons instead of checkboxes – publishing flow should have only one destination
Publish and Cancel buttons on the bottom
Publish executes ipfs.name.publish({cid}, {key})

I think both workflows are great and I will work on them. I don't have any other assignments and this seems to be a great improvement to the current Web UI state.


in model.py line 76:   context = attn_weights.bmm(encoder_outputs.transpose(0, 1))  # (B,1,N)

Is this correct? I look up the explanation about bmm in official document,it syas that
batch1 and batch2 must be 3-D tensors each containing the same number of matrices.
but as you defined before,  the attn_weights is a  2-D shape ,I think here may be some mistakes

return F.softmax(attn_energies, dim=1).unsqueeze(1)
This line of code makes attn_weights 3-D shape


Math show on Title

Now Use command show math on title post. It would be great if mathematical results could be displayed on the topic.

@Permpol could you provide more details or an example of what you're looking for?

@Permpol could you provide more details or an example of what you're looking for?

I mean this
https://meta.discourse.org/t/discourse-math-plugin/65770/101?u=bank_live

I see.  A change would need to be made in the discourse math plugin not in KaTeX.


Add tests for postgres scenarios where external secret is involude

I get scared when I see postgres auth secret values getting changed 😆, mainly because of past stress of trying to satisfy all of the scenarios that tend to cause regression to other values if not done right. Do we have good tests to ensure that when certain values are set, the correct Deployment yaml is generated? As theres a few conditional branches in that backstage.postgresql.databaseSecretKey function. If not, would be good to get these in another time if possible. Will allow us to change any code in this area with increased confidence in future.

I will add though, changes lgtm 👍

Originally posted by @ChrisJBurns in https://github.com/backstage/charts/issues/154#issuecomment-1836192229

Remove stale


Add before after image slider + tests

Implements an image comparison block with an interactive slider.
This PR also adds unit test for the block code.
Original HelpX Internal page: https://helpx-internal.corp.adobe.com/content/help/en/internal/alp/digital-imaging/20203.html
Sharepoint doc: /import-tests/content/help/en/internal/alp/digital-imaging/20203.docx
URL for testing:

https://add-block-before-after-slider--helpx-internal--adobecom.hlx.page/import-tests/content/help/en/internal/alp/digital-imaging/20203

On the new page if I mouse over the slider image without clicking on it, the slider starts following my cursor and only stops once I click

It might end up being easier to use an ` or something like that, and stylizing the slider to look the way we want it to.

This is solved by #9


Create an ABAP Database Table and Relevant ABAP Dictionary Objects

Tutorials: https://developers.sap.com/tutorials/abap-dev-create-table.html
Write here how you think we can improve the tutorial ...
In STEP 11 we see this<EMAIL_ADDRESS>: #NOT_ALLOWED"

If we create the table with this code, when we try to complete STEP 16 we get an error message.

In order to fix this issue we need to change Line 5 of the code to this:

Hi Fransisco,
Apologies - you are right of course. I have updated the tutorial - this should be visible soon.
Best wishes
Julie Plummer.


Gulp tasks don't exit when gulp-libsquoosh is included

Hi,
I've spent a few hours trying to figure out why my Gulp tasks don't exit after they've been finished and finally I pin-pointed the issue to the gulp-libsquoosh library.
So, the issue is that none of Gulp tasks exit after being finished if gulp-libsquoosh is included in the gulpfile.js. You don't have to use it in the task, just include, and that's enough to break all other tasks. It's easy to reproduce the issue with this minimal gulpfile.js:
const { src } = require('gulp');
const squoosh = require('gulp-libsquoosh');

function defaultTask() {
    return src('.')
}

exports.default = defaultTask;

Then just run the default task in a console: gulp.
After running the task you'll see that it never exits:
pavlo@DESKTOP-O2A9C8P:~$ gulp
[14:59:25] Using gulpfile ~/gulpfile.js
[14:59:25] Starting 'default'...
[14:59:25] Finished 'default' after 30 ms
|

The expected outcome is that the task finishes and exits back to the console.
As soon as I comment out the gulp-libsquoosh include, the task exits fine. The same will happen with all other tasks in the gulpfile.js.
Versions I'm using:
gulp: 4.0.2
gulp-libsquoosh: 1.0.10

@pavlo-tk Thank you for your report.
I reproduced this problem.
This problem seems to occur when not calling imagePool.close() after calling new ImagePool().
const libSquoosh = require('@squoosh/lib');
const imagePool = new libSquoosh.ImagePool();

$ node case.js
(never exit)
^C

gulp-libsquoosh doesn't close imagePool since repeating new/close ImagePool will cause memory leak.
I'll investigate more detail.

No problem @pekeq.
I had a suspicion that the pool is not closed, while it's advised to (https://github.com/GoogleChromeLabs/squoosh/tree/dev/libsquoosh#closing-the-imagepool), but didn't know about a memory leak.
Please investigate — you know this stuff much better than me.
Thank you for a quick reply.

Okay, forgive me, I was too fast with the conclusion.
While all tasks that don't use gulp-libsquoosh are exiting fine now, the ones that do aren't exiting for, I suspect, the same reason.
So, basically, this one will not exit:
function images() {
    return src('.')
        .pipe(squoosh({
            webp: {}
        }))
        .pipe(dest('./dist'))
}

@pavlo-tk
Yes, I am facing same problem.
I opened an issue on libsquoosh project and considering workaround to prevent this issue.

gulp-libsquoosh reuse libSquoosh ImagePool instance to prevent "wasm memory error" issue.
This issue caused because of not closing ImagePool instance.
I asked that closing ImagePool is needed by spec on libSquoosh project.
libsquoosh author (@surma) answered "Yes, its not a bug".
https://github.com/GoogleChromeLabs/squoosh/issues/1156
So I'll write following modification:

close ImagePool instance
in libSquoosh v0.4.0, closing ImagePool instance will occur "wasm memory error", so I rollback libSquoosh to v0.3.1

@pavlo-tk Thanks for sticking with me on this issue.
I have published new version (1.0.12).  I am happy if you have time to try this.
Thanks,

No problem, thank you for investigating.
Before I try the new version, may I ask what are the downsides of downgrading the libSquoosh library from 0.4.0 to 0.3.1 and whether the compromise of having the newer version (0.4.0) and Cmd + Cing would have been acceptable outcome instead?

what are the downsides of downgrading the libSquoosh library from 0.4.0 to 0.3.1

There are many improvements from 0.3.1 to 0.4.0. (ex. compression module upgrade, image file treatment bug fixes, etc.)
Downgrade means to drop these improvements.
(So I tried to avoid downgrade, but downgrade is necessary for stability.)

and whether the compromise of having the newer version (0.4.0) and Cmd + Cing would have been acceptable outcome instead?

You can use newer libSquoosh with gulp-libsquoosh using following steps.
$ npm i gulp-libsquoosh
$ npm i @squoosh/lib@latest

There are some known issues:

Sometimes gulp doesn't terminate.  You can terminate with Ctrl-C
Sometimes you get 'wasm memory error'.  I have not been able to identify the conditions to reproduce it, but this error sometimes occurs.  (If you have caught this error, you can try upgrade nodejs version)

Closing this issue.
If you have any other (or similar) issue, please create new issue
Thanks for staying to solve this issue.

Thank you!


sc.pl.rank_genes_groups_dotplot

I get the following error when I tun dotplot:
`ValueError                                Traceback (most recent call last)
 in ()
----> 1 sc.pl.rank_genes_groups_dotplot(vitro,['MYL2'], groupby='louvain')
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in rank_genes_groups_dotplot(adata, groups, n_genes, groupby, key, show, save, **kwds)
409
410     _rank_genes_groups_plot(adata, plot_type='dotplot', groups=groups, n_genes=n_genes,
--> 411                             groupby=groupby, key=key, show=show, save=save, **kwds)
412
413
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in _rank_genes_groups_plot(adata, plot_type, groups, n_genes, groupby, key, show, save, **kwds)
291
292     # sum(list, []) is used to flatten the gene list
--> 293     gene_names = sum([list(adata.uns[key]['names'][x][:n_genes]) for x in group_names], [])
294
295     if plot_type == 'dotplot':
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in (.0)
291
292     # sum(list, []) is used to flatten the gene list
--> 293     gene_names = sum([list(adata.uns[key]['names'][x][:n_genes]) for x in group_names], [])
294
295     if plot_type == 'dotplot':
ValueError: no field of name MYL2
`
Do we need to store marker genes within the adata object?

Just delete MY2L, or use sc.pl.dotplot

On 25 Feb 2019, at 18:37, rojin<EMAIL_ADDRESS>wrote:
I get the following error when I tun dotplot:
`ValueError Traceback (most recent call last)
in ()
----> 1 sc.pl.rank_genes_groups_dotplot(vitro,['MYL2'], groupby='louvain')
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in rank_genes_groups_dotplot(adata, groups, n_genes, groupby, key, show, save, **kwds)
409
410 _rank_genes_groups_plot(adata, plot_type='dotplot', groups=groups, n_genes=n_genes,
--> 411 groupby=groupby, key=key, show=show, save=save, **kwds)
412
413
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in _rank_genes_groups_plot(adata, plot_type, groups, n_genes, groupby, key, show, save, **kwds)
291
292 # sum(list, []) is used to flatten the gene list
--> 293 gene_names = sum([list(adata.uns[key]['names'][x][:n_genes]) for x in group_names], [])
294
295 if plot_type == 'dotplot':
/projects/sysbio/projects/czi/immune/anaconda2/envs/py36/lib/python3.6/site-packages/scanpy/plotting/_tools/init.py in (.0)
291
292 # sum(list, []) is used to flatten the gene list
--> 293 gene_names = sum([list(adata.uns[key]['names'][x][:n_genes]) for x in group_names], [])
294
295 if plot_type == 'dotplot':
ValueError: no field of name MYL2
`
Do we need to store marker genes within the adata object?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

did that help?


Requesting specific format gives error in bash script but works fine on command line

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2022.02.04. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Description
While this is similar to #714, it is different because the command works outside of a script, but not in a script.
When I run the below command on the command line, I am able to successfully download videos.
Command
yt-dlp -o '%(title)s.%(ext)s' --playlist-end 2 --dateafter now-7days -f 'best[height<=720]' https://www.youtube.com/user/LastWeekTonight

When I run this same command inside of a script, I get ERROR: [youtube] -gd8yUptg0Q: Requested format is not available.
And if I remove the format options, it works in the script.
 All the channel's videos will be downloaded. To download only the videos in the home page, add a "/featured" to the URL
[debug] [youtube:tab] Final URL: https://www.youtube.com/user/LastWeekTonight/videos
[download] Downloading playlist: LastWeekTonight - Videos
[youtube:tab] playlist LastWeekTonight - Videos: Downloading 2 videos
[download] Downloading video 1 of 2
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=-gd8yUptg0Q
[youtube] -gd8yUptg0Q: Downloading webpage
[youtube] -gd8yUptg0Q: Downloading android player API JSON
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
ERROR: [youtube] -gd8yUptg0Q: Requested format is not available
Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1381, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1465, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1517, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2588, in process_video_result
    raise ExtractorError('Requested format is not available', expected=True,
yt_dlp.utils.ExtractorError: [youtube] -gd8yUptg0Q: Requested format is not available

[download] Downloading video 2 of 2
[debug] [youtube] Extracting URL: https://www.youtube.com/watch?v=EICp1vGlh_U
[youtube] EICp1vGlh_U: Downloading webpage
[youtube] EICp1vGlh_U: Downloading android player API JSON
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, codec:vp9.2, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
ERROR: [youtube] EICp1vGlh_U: Requested format is not available
Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1381, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1465, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1517, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 2588, in process_video_result
    raise ExtractorError('Requested format is not available', expected=True,
yt_dlp.utils.ExtractorError: [youtube] EICp1vGlh_U: Requested format is not available

[download] Finished downloading playlist: LastWeekTonight - Videos

That is not how you quote in bash scripts. Remove all the single quotes from your script and it should work


Rewrite package:js to remove all the mirrors code.

Also, add similar classes to TypedJsMap from js_wrapping into the new version of the package.

This issue was moved to dart-lang/js-interop-experimental#193


Float32 array returns zeroeded out values past index 128 on each row

Hi, I'm trying to pipe vision camera output into a tflite face detection model that requires 128x128x3 float32 input. Here's the relevant code:
        const IMAGE_SIZE = 128
        const COLOR_CHANNELS = 3

        const data = resize(frame, {
          crop: {
            x: 0,
            y: 0,
            width: frame.width,
            height: frame.height,
          },
          scale: {
            width: IMAGE_SIZE,
            height: IMAGE_SIZE,
          },
          pixelFormat: 'rgb',
          dataType: 'float32',
        })

        // log out first row of image (and 1st pixel R value of the second row)
        console.log('first row plus 1px', data.slice(0, IMAGE_SIZE * COLOR_CHANNELS + 1))

        const outputs = bfsr.model?.runSync([data])

I was noticing that my face would only be detected if it was in the left side of the screen. Upon inspecting the resized array, I noticed that only the first 128 indices from each row had values:

This did not happen when I changed dataType to uint8:

Am I missing something? Thanks!

Huh - interesting. iOS or Android?

Observed on iOS

I just noticed the same thing (also on iOS). To verify / understand the content of my frames, I created a simple demo app that stores the frame content returned from the resize plugin and just draws it right below the original image via react-native-skia.
With uint8 it looks just fine:

But with float32 , only the left side is painted:

Hey - can you send me a link to a public github repo where I can also see this appear on the left side? That'd help me debug.

I'm not sure if you mean me, but here I have created a demo repository which visualizes the image stream via skia (not really stable, but is suitable for debugging).

yep perfect, thanks! I'll take a look next week or so :)

Hey - is this still an issue? cc @rodgomesc


PR: Fix issue #82

This PR includes a possible fix for Issue #82.
Please accept the merge if you agree, otherwise let me know how would you see this fixed.
Regards

Any news on this?

If this is a fix for the security problem, it would be great to have this merged ...

I never got any answer to the PR...

This plugin also has been highlighted as vulnerable in our project.
When this changes would be merged?

Almost 2 months later bump.
https://nodesecurity.io/advisories/537

@dodo Any chance of this being merged?

Slugify is still active.
https://www.npmjs.com/package/slugify

Still waiting... :(

Last commit/publish was 3 years ago and the main maintainer does not seem to be very active on GitHub currently :confused:
I'm afraid some people have to pick alternatives like https://www.npmjs.com/package/slugify or https://www.npmjs.com/package/mollusc (active fork of this package) until this gets fixed.

Ironically, node-slug seems like it's owner: dead like a @dodo

I've published a fork with this fix as dodoslug.

Last time @dodo was active here. May be can kindly ask him there 🤪?

@dodo , please merge or nominate a maintainer

0.9.2 has been published with this issue fixed. https://www.npmjs.com/package/slug/v/0.9.2
@vvanmol Can you close this?

@Trott The changes haven't been pushed to this repo. Version is still 0.9.1 in package.json

Hi @Trott
As mentioned by @woodyrew the new release is not part of this repository, I don't see my PR merged here...  Did you take ownership of the repository somewhere else ?

@Trott The changes haven't been pushed to this repo. Version is still 0.9.1 in package.json

@woodyrew That's because I don't have write access to this repo. I do have access to publish the module on npm though, so I did the update in my own fork and published that to npm as 0.9.2. @dodo seems to be unreachable, but if they ever pop up again, I'm more than happy to turn anything and everything back over to them (or not--whatever they want). But until then... that's the situation.
I have a question in to a GitHub employee about whether GitHub has a process for this kind of situation that would allow me to get write access to this repo.


Checklist for 2020.07

Here are the additions in the new release
Additions:

[x] Set equality operators: (==) Unicode ≡ and ≢ which allow to check
for sameness of the operands using QuantHash semantics
(for example, 1,2,3 (==) 3,1,2 returns True) -701f4cfb-dbd69ba7
[x] Add support for Supply.tail(*) and .tail(Inf) -9ccfc90e
[x] Add support for Supply.tail(*-3) -eaa72afa
[x] Make Supply.head(*-3) consistent with List.head(*-3) -5c8c7324-70e5cfb9
[x] Rakudo now supports the --rakudo-home command line option to specify the path of the Rakudo home -914bcbad

Not sure if / where Rakudo command line parameters are documented?

rakudo-home was already listed when I checked (last unchecked item, lizmat++)


Fix install deps code block

Thank you for helping out! ✨
Before submitting a pull request, please make sure the you checked the following:

[ ] Forked the repository and created your branch from master
[ ] Make sure the tests pass! npm it && npm run lint in the repository root
[ ] If you've fixed a bug or added code more tests are appreciated

Sorry for the lag merging this, thank you @tphummel!


🐛 Bug Report:

👟 Reproduction steps
When I fill in the login or sign up form and press the submit button, nothing happens
👍 Expected behavior
I should be able to sign up and maybe route to another page
👎 Actual Behavior
Nothing happens. The buttons don't work
🎲 Appwrite version
Different version (specify in environment)
💻 Operating system
Something else
🧱 Your Environment
Mobile phone. Chrome browser . I am not sure of the AppWrite version
👀 Have you spent some time to check if this issue has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

The same issue is happing while testing it on my laptop. However, in the console, I have found the issue given below
{"message":"Account already exists","code":409,"version":"0.14.2"}
Here the point to be noted is that I try to sign up for the first time, so there are zero chance that the account may already exists


use bytemuck crate instead of Byteable trait

This gets rid of multiple unsafe blocks that we had to maintain ourselves, and instead depends on library that's commonly used and supported by the ecosystem. We also get support for glam types for free.
There is still some things to clear up with the Bytes trait, but that is a bit more substantial change and can be done separately. Also there are already separate efforts to use crevice crate, so I've just added that as a TODO.

bors r+


Bug with dropdown height

Using select2 in my system I found a weird thing:

Load the page.
Open the dropdown -> below.
Close it.
Open the dropdown again -> above.

Then I tried to reproduce it purely and it got more weird. This jsfiddle was my attempt to reproduce the bug. But when I write the same code in a html file and loads it through the browser the bug is there.
The code:

    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1-rc.1/css/select2.min.css" rel="stylesheet" />

<select>
  <option>Risos</option>
  <option>Infinitos</option>
</select>

In my searches the dropdown outerHeight returns a different value and then calculates that it must change the position.

This has to do with Select2 not knowing if there is enough space beneath the container to display the dropdown. The padding beneath your example was 100px, and the dropdown itself is about 95px (on my computer). If you bump up the padding, the issue goes away.
In any case, this is a bug until I can figure out why it is calculating different sizes. It may have to do with the "Loading..." message.

It seems the actual height is calculated from the previous dropdown instance because the height is exactly the height of the collective options. When debugging on the open event The options appear and the get cleared but the height for the is not recalculated.
                    $(that._countrySelect).data('select2').on('close', function (e) {

                        this.dropdown._positionDropdown();
                    })

with a break-point on the this.dropdown._positionDropdown(); you can see the previous options visible and then disappear

  AttachBody.prototype._positionDropdown = function () {
    var $window = $(window);

    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');

    var newDirection = null;

    var offset = this.$container.offset();

    offset.bottom = offset.top + this.$container.outerHeight(false);

    var container = {
      height: this.$container.outerHeight(false)
    };

    container.top = offset.top;
    container.bottom = offset.top + container.height;

    var dropdown = {
      height: this.$dropdown.outerHeight(false) // bug here
    };

    var viewport = {
      top: $window.scrollTop(),
      bottom: $window.scrollTop() + $window.height()
    };

    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);

    var css = {
      left: offset.left,
      top: container.bottom
    };

    // Determine what the parent element is to use for calciulating the offset
    var $offsetParent = this.$dropdownParent;

    // For statically positoned elements, we need to get the element
    // that is determining the offset
    if ($offsetParent.css('position') === 'static') {
      $offsetParent = $offsetParent.offsetParent();
    }

    var parentOffset = $offsetParent.offset();

    css.top -= parentOffset.top;
    css.left -= parentOffset.left;

    if (!isCurrentlyAbove && !isCurrentlyBelow) {
      newDirection = 'below';
    }

    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
      newDirection = 'above';
    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
      newDirection = 'below';
    }

    if (newDirection == 'above' ||
      (isCurrentlyAbove && newDirection !== 'below')) {
      css.top = container.top - parentOffset.top - dropdown.height;
    }

    if (newDirection != null) {
      this.$dropdown
        .removeClass('select2-dropdown--below select2-dropdown--above')
        .addClass('select2-dropdown--' + newDirection);
      this.$container
        .removeClass('select2-container--below select2-container--above')
        .addClass('select2-container--' + newDirection);
    }

    this.$dropdownContainer.css(css);
  };


RGB Matrix with generic dimmers

Opening this so it doesn't get forgotten
As explained by @janosvitok here: http://www.qlcplus.org/forum/viewtopic.php?f=5&t=8088&start=10#p42488
When creating a RGB matrix with generic dimmers, the bahviour is not correct, as all the heads go to 100% intensity.
This is because the RGB Matrix function doesn't handle properly the intesity channel. We need to add an extra check for generic dimmers.

https://github.com/janosvitok/qlcplus/tree/rgbmatrix-dimmer is working code for this problem. TODO: tests.


Add compile-fail tests

Using a tool lime TryBuild we can test that certain code does not build and that the diagnostics the end user gets are what we expect.

If this happens, it would be great to have a test that trying to move things between threads doesn't compile for types that aren't MarshalType.Agile.

This is not something I'm likely to get to.


render_create_success should return 201 code not 200?

When i register using api, i expect it to be restful and receive 201 code if register was successful.
However, render_create_success does not set response code, so it stays 200.
Why is it important at all? well, for example i use rack-minitest, and it has convenient methods like assert_created which expect response to return 201. The method itself
Yes i know, i can redefine methods with my own controller, however i think 201 on success should be default behavior.

Nobody else seems to have a problem with this in the last 1.5 years so I'm going to close this for now.


Select2 in BelongsToMany not retrieving value

Hello,
I'm having trouble with this...
I have a model Products that can have multiple associated_products and these have a product_category.
So I have a pivot table associated_product between my table products and my table product_categories.
for now the insert in the DB works fine (my category_id is right in associated_product).
$categories = ProductCategories::all()->pluck('name', 'id')->toArray();

BelongsToMany::make(trans('product.associated_products'), 'products', self::class)->display('name')
                ->fields(function () use ($categories) {
                    return [
                        Select2::make(trans('product.category'), 'category_id')
                            ->sortable()
                            ->rules('required')
                            ->options($categories)
                            ->configuration([
                                'placeholder' => trans('product.category'),
                                'allowClear' => true,
                                'minimumResultsForSearch' => 1,
                                'multiple' => false,
                            ]),
                    ];
            }),

But in the listing the category does not display and when I'm editing the associated product the Select2 is empty, like it does not retrieve the category_id from the DB.
Thanks in advance !

Edit : Solved, I had to precise the addtionnal fields on the relation in my model
public function products() {
        return $this->belongsToMany(self::class, 'product_product_associated', 'product_id', 'product_associated_id')
            ->withPivot('category_id');
    }


Display? Issues With Different Appearance Options

This is a minor issue but perhaps major to some depending on theme and what's going on "behind the scenes".
This is hard to describe but for some games it's showing "2h 0m".
In this example, Beamdog's "Baldur's Gate" Enhanced Edition:

The plugin sees the correct record and times.

Now it just shows 2h 0m on the bar.
I've tried deleting the plugin data and re-downloading it but it makes no difference.
If I change the extension's view, like in this case, the theme integration, now it works

Can you try again with v1.1.1?

Seems better in 1.1.1, will do more testing and reopen if there's issues.

Still some issues, noticed Banner Saga 1-3 all showed the same times.  Deleted HowToBeat data and re-added it, the popup select times are correct but then the Playnite entry shows the times for the other games in the series.

My next step is going to be the plugin level delete all data and try again, maybe something's messed up.

Hi, a little more info on this (on my setup at least):
On startup, correct display/times are shown. Selecting 2nd game shows correct time but the progress bar narrows in height to about 50%. Selecting 3rd game shows correct time but the progress bar narrows again. Selecting 4th game and the time becomes locked at whatever the 3rd game time was. Progress bar remains narrow.
This happens with Time displayed above and below, but interestingly the issue isn't present when time displayed 'Inside progress bar' is selected.
LeeThomson's screenshots appear to be showing the bar at it's narrowest. As an aside, it looks pretty good narrow...
Hope this helps.


Can't make it work in a Groovy script

Hi!
This looks like a very nice project. By its simplicity I started trying to write a Groovy script but couldn't make it work due to the lambda used on the init method.
I tried something like this:
@Grab('com.aol.microservices:micro-core:0.62')

import com.aol.micro.server.*
import com.aol.micro.server.auto.discovery.*
import javax.ws.rs.*

@Rest
@Path("/status")
class StatusApp {

    static void main(String[] args){
        def init = { -> "status-app"}
        def app = new MicroserverApp(init)
        // also tried like this
        //def app = new MicroserverApp({ -> "status-app" })
        app.run()
    }

    @GET
    @Produces("text/plain")
	@Path("/ping")
    String respondToPing() {
        return "pong!"
    }
}

I know this is probably related to how Groovy handles Java 8 lambdas (I've been Googling but can not find a way to use a Groovy closure as a Java lambda for this case). What would be the best approach to make this script work?
Any help or pointers in the right direction would be very appreciated.
Thanks

@jeancarlozapata  Thanks! You can use the Groovy as keyword to coerce the Groovy closure to a Java 8 Functional Interface (see http://www.infoq.com/articles/groovy-to-Java-8).
e.g.
   Function f =  { a ->a+1 } as Function

I haven't run this code, but have made use of this technique in the past.
@Rest
@Path("/status")
class StatusApp {

    static void main(String[] args){
        Module init = { -> "status-app"} as Module
        def app = new MicroserverApp(init)
        // also tried like this
        //def app = new MicroserverApp({ -> "status-app" })
        app.run()
    }

    @GET
    @Produces("text/plain")
    @Path("/ping")
    String respondToPing() {
        return "pong!"
    }
}

Hi @johnmcclean-aol, thanks for your response. Been busy this week. Will try to test it over the weekend (or just will move the example to Java :wink:). Anyway, I will post the results and/or solution here.

We need to supply the current class to MicroserverApp to determine the base class  for Spring package scanning (if none is supplied MicroserverApp tries to figure this out from the StackTrace - which is probably different for Groovy). So this get's things a bit futher
@Rest
@Path("/status")
@Microserver
class StatusGroovy {

	static void main(String[] args){

		def app = new MicroserverApp(StatusGroovy,{ -> "status-app"} as Module).start()

	}

	@GET
	@Produces("text/plain")
	@Path("/ping")
	public String respondToPing() {
		return "pong!"
	}
}

In fact that works for me now.


Blocking requests

Hello,
I'm having an issue with blocking requests.
The following code sample fails:
val (request, response, result) = "http://google.com/".httpGet().responseString()
when(result){
    is Result.Success -> {
        Log.i("BlockingTest", "is Successful")
    }
    is Result.Failure -> {
        Log.i("BlockingTest", "Failed: ${result.error.message}")
        Log.d("BlockingTest", "request: $request")
        Log.d("BlockingTest", "response: $response")
    }
}

output:
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
I/BlockingTest: Failed: android.os.NetworkOnMainThreadException
D/BlockingTest: request: "Body : (empty)"
                "Headers : (1)"
                Accept-Encoding : compress;q=0.5, gzip;q=1.0
D/BlockingTest: response: <-- -1 (http://google.com/)
                Response :
                Length : 0
                Body : ((empty))
                Headers : (0)

while the corresponding async sample is successful:
"http://google.com/".httpGet().responseString { request, response, result ->
     when(result){
         is Result.Success -> {
             Log.i("AsyncTest", "is Successful")
         }
         is Result.Failure -> {
             Log.i("AsyncTest", "Failed: ${result.error.message}")
             Log.d("AsyncTest", "request: $request")
             Log.d("AsyncTest", "response: $response"
        }
    }
}

output:
I/AsyncTest: is Successful

I'm using the following SDK/build configuration:
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.orange.loco"
        minSdkVersion 24
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

Any idea ?

Android one is not really blocking because callback will be on the Main Thread.

Well in Android, you can't really call network on the mainThead, can you? I remembered it was enforced back in Honeycomb and Ice Cream Sandwich. They are much stricter about abuse against the UI Thread.
You need other mechanisms to help you achieve the non-callback fashion. RxJava is one of the ways.
I don't think this has anything to do with Fuel. I will close this but if you have anything to discuss feel free to continue doing so.


chore: update provider

What does this PR do?
I happened to notice that our extensions storage is in redhat.bootc-extension while minikube is in podman-desktop.minikube. Seems we forgot to update our provider when the repo was created in this org.
Screenshot / video of UI
N/A
What issues does this PR fix or reference?
N/A
How to test this PR?
N/A

Decided not to do this for mow.


Update links for system contracts

The previous links pointed to outdated commits

A duplicate of: https://github.com/matter-labs/zksync-web-v2-docs/pull/92


Support for search engines

We want to extend clangd-vscode with an AST search engine besides regex and plain text search, unfortunately it looks like, that VSCode does not support to extend the global and lokal search.
It would be very useful, if one could just add a search engine. Currently we have to add a new separate view, but that is unintentional.
Optionally it would be good to also support a pop-up dialog, with the ability to modify specific search options and a larger search field with semantic linting.

@caleb-allen Great question!
For the most part, this API is meant to be consumed to simply search for 'text' as-is. For example, if you create a custom filesystem, this API helps with actually understanding what it takes to get search results from your project. This being said, it was not necessarily created to facilitate a special or 'intelligent' search that requires custom options. The reason why the options have things like isRegex is because the UI (aka the search view on the sidebar) will have a button for that, which will drive what info we send to the API. If we introduced more/alternative options, this would preferably match changes in the UI. We want to keep the options simple, as that is what the user expects out of the search view (for now). Also, we only allow one provider per file scheme, so regular text would lose the traditional ripgrep text results if you overwrote our default provider for text with your own.

Can you reopen this, or explain how your extension will cover this issue?
The thing is, that we don't want to change anything with the current ways of searching.
We want to add a new search type "ast_search", which expects a string of the clang-ast-matcher-dsl. So we definitely need to somehow change the mode to something else than text or regex.
We also would like to change some options, e.g. the Traverse Mode.
A future extension would also be, to provide a rich semantic checking UI, where only valid matchers can be concatenated.

Okay, I can add this as a feature request candidate for adding new ways of searching to the UI.

I think to clarify what @Febbe is saying, we actually want to add two things

Searching across workspace directory in multiple files (AST analogue of ctrl-shift-f)
Finding AST matches in editor (AST analogue of ctrl-f)

@Febbe can you clarify which one hits request is for? I think we could accomplish 1. today by adding a custom TreeView in a sidebar, but there's no good way to do 2. (custom finding within the open file) currently.
If I understand correctly, this request is about a better/cleaner/more fully integrated way of performing 1. ?

Actually both, I believe that both search view bars are implemented similar or even with the same code. So we need in both bars a way to add our button 'AST' just next to regex (will later add some pictures and modify the base post).
Strg+F and STRG+Shift+F should move the focus into the bar and use the current selected search engine (in our case 'AST').

Cool, yep that's exactly what I was hoping for as well. This will need to probably add an LSP extension as well eventually, right?

This Rust-powered tree-sitter based search tool might be good to consider: https://github.com/alexpovel/srgn
I'm going to drop a feature request issue in that repo for VS Code Extension, but thought I'd leave this note as well


[RELAY] Support RelayBuild with Only Constants

The below reduced test-case shows segmentation fault in TVM compiler stack at the optimization level 2 and above. The problem is in call to 'lib.get_source()', as constant folding optimizes away whole graph and lib object becomes NULL.
import tvm
from tvm import relay
from tvm.contrib import graph_runtime
import numpy as np

data_shape = (2, 2)
matrix_x = relay.var('matrix_x', shape=data_shape, dtype='int32')
matrix_y = relay.var('matrix_y', shape=data_shape, dtype='int32')

add = relay.op.add(matrix_x, matrix_y)
fun = relay.Function([matrix_x,matrix_y], add)
relayMod = relay.Module({})
fname = relay.GlobalVar('main')
relayMod.entry_func = fname
relayMod[fname] = fun
print("Relay Module:\n", relayMod)

x_data = np.matrix('1 2; 3 4', dtype='int32')
y_data = np.matrix('5 6; 7 8', dtype='int32')
params = {
    "matrix_x" : x_data,
    "matrix_y" : y_data,
}
with relay.build_config(opt_level=3):
    graph, lib, params = relay.build(relayMod, "llvm", params=params)
print("Model graph:\n", graph)
print("\nModel parameters:")
for item in params:
    print(item, ":\n", params[item])
print("\nOperator library:\n", lib.get_source())
mod = graph_runtime.create(graph, lib, ctx=tvm.cpu(0))
mod.set_input(**params)
mod.run()
res = mod.get_output(0).asnumpy()
print("inference:\n", res)

Hi @zhiics @tqchen I'm interested in this issue and would be happy to help.
From a user's perspective, we would normally expect that relay.build returns an empty lib. An empty lib can be NULL/None, but it may cause confusion like this issue. As @zhiics mentioned, using assertion may raise unexpected issues for end users as well.
One workaround for this problem, which I'm currently implementing, is inserting a dummy function (with empty content) into the lowered_funcs map before passing to module building. In this way, we won't break other parts of the codebase, and the returned lib still makes sense.
If you prefer this way, I can continue implementing it and create a PR later.
Thanks

I agree with @zhiics that allowing feeding an empty Module to GraphRT makes more sense here.
In parallel, I am also OK supporting a dummy function to get around with most of the issues we have. There are certain cases where we still want to serialize the module binary blob as so, but there aren't any host functions.
also cc @FrozenGene @yzhliu

Thanks @tqchen , I've proposed a tentative implementation of this dummy function idea #4847. The script in this issue can be built successively now.
lib.get_source() output:
Operator library:
 ; ModuleID = '__dummy__'
source_filename = "__dummy__"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@__tvm_main__ = weak local_unnamed_addr constant [10 x i8] c"__dummy__\00", align 1

; Function Attrs: norecurse nounwind readnone
define dllexport i32 @__dummy__() local_unnamed_addr #0 !dbg !5 {
entry:
  ret i32 0, !dbg !9
}

attributes #0 = { norecurse nounwind readnone }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}

!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "TVM", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, dwoId: 1)
!1 = !DIFile(filename: "model.tvm", directory: "/tmp/")
!2 = !{}
!3 = !{i32 2, !"tvm_target", !"llvm"}
!4 = !{i32 4, !"Debug Info Version", i32 3}
!5 = distinct !DISubprogram(name: "__dummy__", scope: !1, file: !1, type: !6, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2)
!6 = !DISubroutineType(types: !7)
!7 = !{!8}
!8 = !DIBasicType(name: "int32", size: 32, encoding: DW_ATE_signed)
!9 = !DILocation(line: 0, scope: !5)

Not sure if we want to use LLVM in this case as it will be treated as the host module when exporting. I even think it is just okay to leave it as it is because it means we just return a null pointer when returning an empty module, which is a valid return. Considering mod is is essentially a shared pointer, the failure/crash in dereference sounds good to me.

I even think it is just okay to leave it as it is because it means we just return a null pointer when returning an empty module, which is a valid return. Considering mod is is essentially a shared pointer, the failure/crash in dereferencing a null pointer sounds good to me.

IMO, I agree with @zhiics 's point here.

There is one more question though: what the target of the dummy function should be? I currently set it to llvm.

Should be target_host_. llvm just means x86 cpu.

I would also like to comment about the future direction here.
In our vision, eventually everything will be stored in an IRModule, and it would be fine to create an empty IRModule and export it. We could also in-theory create an EmptyRuntimeModule, or use CSourceModule(with no content) as an empty module.

Thank you @zhiics @FrozenGene @tqchen I've changed the current implementation to use CSourceModule. It does not cost much and users can still get the benefit of avoiding unexpected halt.

https://github.com/apache/incubator-tvm/pull/4847 Thanks to @kumasento


youtube screen stays dark when playing

currently on version 5.6, all the other versions now prompts youtube to say it detects an ad blocker.
when it's toggled as on in the tampermonkey utilities page, when a youtube video plays, it lags on the screen saying "no adblocker please" before it blacks out, the screen where the youtube video should be stays black, but the video will play (like the background overlay of the adblock blocker is still there)
the blocker worked until today, usually it just plays a second of the ad before skipping to video, now it stays on a black screen
(note: i'm on opera gx, when i switch tabs and the youtube video automatically turns into a pop out tab of the video, the video itself keeps its graphics, but not when it's in the youtube video's tab itself)

(the small sound icon on the left side of the tab indicates that the video is playing and has the sound playing, i just thought it would help to attach this here)

fixed in PR : https://github.com/TheRealJoelmatic/RemoveAdblockThing/pull/4756, Lets hope the maintainers push the code changes

@jesvijonathan i think it works! But no ambient mode on dark theme. And shows me "You Tube" button instead of mini player and theater mode.

@jesvijonathan i think it works! But no ambient mode on dark theme. And shows me "You Tube" button instead of mini player and theater mode.

@jesvijonathan i think it works! But no ambient mode on dark theme. And shows me "YouTube" button instead of mini player and theater mode.Next button is missing.

@jesvijonathan i think it works! But no ambient mode on dark theme. And shows me "YouTube" button instead of mini player and theater mode."Next" button is missing also.

5.6 has all videos in black just like @ghostii404. Tried different styles on themes as @jesvijonathan mentioned but no luck. Tested on Chrome and Avast Secure browser. Yes, it was working on Avast up until 25th of June. Joelmatic maintains the code but I'm guessing he's on vacation

hello!! i wanted to update everyone who commented, a solution (likely temporary) that i found was to stay on 5.6, but reset all cache and re-login into youtube, it fixed the issue for me but so far i’m not sure if it would be detected again ^^

hello!! i wanted to update everyone who commented, a solution (likely temporary) that i found was to stay on 5.6, but reset all cache and re-login into youtube, it fixed the issue for me but so far i’m not sure if it would be detected again ^^

Thank you, ghostii404, It works for me too. Youtube has been fighting back hard. I hope we can get through this

forgot to mention, thank you @jesvijonathan regarding the pr #4756 fix! it took me a bit to change it (i'm barely a beginner coder so i didn't quite know how to import the code to tampermonkey, i got it now though 👍 )
the thread will be closed here!! note to future readers, as of august 6th 2024 the pr #4756 fix does work and fix the problem
(and i also hope youtube stop fighting back so aggressively, it's actually getting wildly upsetting)


Propose every nth block as finality candidate instead of all the blocks

From #855:
Concept
We do not want to send all the sidechain blocks to the parentchain, as this does not enhance the finality guarantees and causes unnecessary network congestion. Instead, the next sc-block candidate should be chosen based on sidechain slot duration and parentchain block production time so that we choose a sc-block finality candidate in the future, which is very likely to make it into the next parentchain block, i.e.:

fn compute_next_finality_candidate() -> BlockNumber {
  let next_parentchain_block_timestamp = somehow_get_timestamp_from_last_block() + parentchain_block_production_time;
  let remaining_time = next_parentchain_block_timestamp - now();

  // skip this slot if we don't have enough time.
  let next_target_parentchain_block_timestamp  = if remaining_time > sidechain_block_production_time / 5 {
      next_parentchain_block_time_stamp
  } else {
      next_parentchain_block_timestamp + parentchain_production_time - sidechain_block_production_time / 5;
  }

  let remaining_sidechain_blocks = (next_target_parentchain_block_timestamp - now) / sidechain_block_production_time;

  let scb_finality_candidate = scb_current +
      floor(
           remaining_sidechain_blocks * security_factor
      );

  scb_finality_candidate
}

Where the security_factor < 1 can be tuned to adjust the probability that the scb_finality_candidate does indeed make it into the next parentchain block.
This will reduce the expected parentchain-block inclusion latency to around 0.5 parentchain block production time depending on the exact value of the security factor.
The validateers do only send the sidechain block to the parentchain for finalization, when the blocknumber == scb_finality_candidate
Implications
Choosing the sidechain block finality candidate is done on the worker side, and thus is itself subject to forking, which could result in different sidechain block finality candidates. Hence, the parentchain needs to know which block number it needs to finalize, as it does no longer have the knowledge over the whole chain and hence cannot verify the ancestry. This, however, can be solved as the next sidechain block finality candidate is part of the extrinsic that finalizes the current finality candidate.
So the parentchain has to verify two things:

validateer part of the validateer set.
sidechain block number == expected sidechain block number.

Edit: I need to do a small change to the formula.

Some concerns:

I don't get the hardcoded division of 5: sidechain_block_production_time / 5. Shouldn't that be a const definition, just like the security factor of something?
Why the minus  sidechain_block_production_time / 5; ? Not saying it shouldn't be there, I just don't really get the reasoning behind it:

 else {
     next_parentchain_block_timestamp + parentchain_production_time - sidechain_block_production_time / 5;
 }

In case two worker have forked and both are producing a sc-block with the same number which, naturally, matches the next scb_finality_candidate. Therefore, both worker send the finalize xt to the parentchain. Both are valid, as they have the correct number.  How will the parentchain decide which to finalize? First come first serve?

Possible Attack Vector: Attacker sends a finalization candidate and goes offline right after wards. The block state has not been sent to the other workers. This means, a state has been finalized but is not accessible at all.
Should be solved in a different issue.


Branch 195443326

Looks like //tensorflow/contrib/timeseries/python/timeseries:estimators_test is flaking in MacOS Contrib.


Web - Search - Category field does not stay put when clicking on To title after enabling it

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.1-0
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:
Precondition:

Account has only one workspace.
Categories, Tags and Taxes features are disabled.
Account has at least one p2p expense.

Click To title a few times.
Go to workspace settings > More features.
Enable Categories.
Return to Search.
Click To title a few times.
Go to workspace settings > More features.
Disable Categories.
Return to Search.
Click To title a few times.

Expected Result:
When Categories feature is enabled/disabled, Category title will not disappear/appear when clicking on To field.
Actual Result:
When Categories feature is enabled/disabled, Category title disappears/appears when clicking on To field.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/38435837/9d03e2e4-6a8f-4453-88e2-0c0b6def9740

View all open jobs on GitHub

@puneetlath FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to  #vip-vsb

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - transaction search category column doesn't stay put when clicking on header to sort the search.
What is the root cause of that problem?
In here:
https://github.com/Expensify/App/blob/017605269c9f3a351522784aec04dd12644ec564/src/components/Search.tsx#L84
We set the searchResults as lastSearchResult when onyx data isn't available.
The  search metadata={searchResults?.search} stored in search field which contains columnsToShow.
When user sort the search list using other header the search result doesn't exist in onyx. and the columnsToShow will be reset to empty (set by useRef declaration) and not from previous searchResult columnsToShow.
This will make the category hidden until search result retrieved.
What changes do you think we should make in order to solve the problem?
We could use useRef of (columnsToShow) and set it when  and assign it to searchResults?.search?.columnsToShow
which will be used in SearchTableHeader metadata.

I think we can demote this one, its quite an edge case and it does not block user

FWIW I think this issue will fix it - https://github.com/Expensify/App/issues/43494

That ^ Pr is on prod. @m-natarajan reopen if you see an issue like this again. Thanks!


Unable to deploy the docker container

I have tried deploying butlarr inside a docker container but unable to do so however it worked in the interactive mode
getting below errors
butlarr  | 2024-06-11 14:15:29.449 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr  | 2024-06-11 14:15:55.983 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr  | 2024-06-11 14:16:48.057 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr  | 2024-06-11 14:17:48.933 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr  | 2024-06-11 14:18:18.092 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr exited with code 0
butlarr  | 2024-06-11 14:18:18.092 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr  | 2024-06-11 14:18:41.838 | ERROR    | butlarr.services:detect_api:86 - Could not reach compatible api. Is the service down? Is your API key correct?
butlarr exited with code 0
config.yaml
telegram:
token: "telegram_token"
auth_passwords:
admin: "adminpass"
mod: "modpass"
user: "userpass"
apis:
movie:
api_host: "https://radar_URL"
api_key: "apikey"
series:
api_host: "https://sonar_URL"
api_key: "apikey"
services:

type: "Radarr"
commands: ["movie"]
api: "movie"
type: "Sonarr"
commands: ["series"]
api: "series"

compose.yaml
services:
butlarr:
container_name: butlarr
image: trimforce/butlarr:latest
volumes:
- ./Butlarr_Data/data:/app/data
- ./Butlarr_Data/config.yaml:/app/config.yaml
environment:
- BUTLARR_CONFIG_FILE=./config.yaml
- BUTLARR_INTERACTIVE_SETUP=false
restart: unless-stopped

now it suddenly works


feat(interfaces/*): support untitled suites/tests #1632

Further to issue #1632, I created this draft.
let's discuss about it.

the other option would be to throw an error with a good message, that would probably result in better practices/readable tests imo

So there are two options:

use a fallback title - Untitled suite/test
throw an error with a usage message (it means to failing, and not run at all).
Please correct me if I get you wrong @travisjeffery

I prefer the second option, but the first one is more forgiving.
/cc @dasilvacontin

yeah let's go with throwing an error. i'd rather be opinionated on having people do the right thing.

Yeah, I also prefer throwing an error. As @travisjeffery, said, leads to more readable code and enforces good practice, and it's probably what you wanted to do anyways.

ping

I like the solution. It supports the possibility of creating interfaces that accept empty titles for either suites, tests, or both as well.

Thanks @danielstjules
:smile:

I started to implement it on the interfaces side, but then I got the feeling of repeating myself.

Yea, updating it at the suite/test level is good, since any interfaces can just use an empty string for the name if they'd like to accept "anonymous specs" :)

Was is possible to use an object as a title before? That was later being converted to a string inside our code.
Because if that was possible before, this should be considered breaking. Or we should check for a .toString() or something.

Using object as suite/test-case title, returning this result (is just toString it):
suite
    ✓ [object Object]

this should be considered breaking.

fair enough, I added it to v3.0.0 milestone

$ cat example.js
it({foo: 'bar'}, function() {});

$ mocha example.js

  ✓ [object Object]

  1 passing (8ms)

$ cat example.js
it(12, function() {});

$ mocha example.js

  ✓ 12

  1 passing (8ms)

But what if you accept objects that have a .toString() or are not a function?

@dasilvacontin Because mocha currently works with functions, too.
$ cat example.js
it(function() {}, function() {});

$ mocha example.js

  ✓ function () {}

  1 passing (9ms)

I don't personally see this PR as breaking the API and requiring a new major release. Minor would be fine, and would probably be a good fit for 2.3.0 or 2.4.0. It's unspecified behavior. We shouldn't be concerned if someone is relying on passing objects or functions as the spec or suite titles, rather than strings. The API documents that the title should be a string: https://github.com/mochajs/mocha/blob/master/lib/suite.js#L25 https://github.com/mochajs/mocha/blob/master/lib/suite.js#L43 https://github.com/mochajs/mocha/blob/master/lib/test.js#L16

I agree that this does not break the API. But if you make people waste time, you are doing the same harm; you don't want someone's build to suddenly stop working and make them waste time tracking down the issue to fix it.

you don't want someone's build to suddenly stop working and make them waste time tracking down the issue to fix it.

So that's the reason we added this user-friendly message :)

that's the reason we added this user-friendly message :)

User-friendly message that breaks your build and makes you correct hundreds of tests in the worst case scenario.*

We are not breaking the API, this is just a weakness that maybe users take advantage of it.
/cc @travisjeffery

http://symbolhound.com/?q=it(" / http://symbolhound.com/?q=it(' vs http://symbolhound.com/?q=it({ / http://symbolhound.com/?q=it(function (the only actual match is a typo) I wish I could find a search engine with better support for symbols lol Any suggestions?
So for:
it(function() {}, function() {
});
it({foo: bar}, function() {
});
it(-1, function() {
});

it's still undefined behavior, since the public API docblocks (https://github.com/mochajs/mocha/pull/1634#issuecomment-87801546) specify that title should be a string, and nowhere on http://mochajs.org/ do we mention non-string titles are supported.
@dasilvacontin I hear what you're saying about preserving BC, and agree for the most part, but the issue you highlighted in mustache.js seems to be of a different scope. That said, if a 3.0.0 release is in the works for the coming months, I'm not worried either way. :)

Those queries can't come up with the edge-cases I mentioned.
Still, I agree that the number of people who could be affected by this is very very low. And afaik, since we have some serious bugs in mocha (eg #534), I wouldn't bump to v3 solely for this reason, since not getting more bugfixes in v2 would probably out-harm the problems merging this PR could cause.
In the case we were soon bumping to v3, I'd include this for the next major.

imo, If it throws exceptions where it didn't throw exceptions before, it's not backwards-compatible and needs to wait until a major.

it's not backwards-compatible and needs to wait until a major.

fair enough.

@a8m this needs rebasing against v3.0.0 as well

Replaced with #1809(rebased on top of v3.0.0)


Generate and apply secrets yaml instead of using env vars

Issue #, if available:
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

:exclamation: No coverage uploaded for pull request base (support-multiple-acs-for-cmk@6602856). Click here to learn what that means.
The diff coverage is n/a.

@@                       Coverage Diff                       @@
##             support-multiple-acs-for-cmk       #5   +/-   ##
===============================================================
  Coverage                                ?   57.30%
===============================================================
  Files                                   ?      310
  Lines                                   ?    25397
  Branches                                ?        0
===============================================================
  Hits                                    ?    14555
  Misses                                  ?     9509
  Partials                                ?     1333

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6602856...a17831d. Read the comment docs.


Change bound value to tight in /reactions/kinlaw_by_rxn/ endpoint

Can the bound parameter value be changed to tight for the /reactions/kinlaw_by_rxn/ API calls made by the frontend?

I changed this in these files:

src/scenes/BiochemicalEntityDetails/Reaction/MetadataSection.js
src/scenes/BiochemicalEntityDetails/Reaction/RateConstantsDataTable.js
src/__tests__/scenes/BiochemicalEntityDetails/Reaction.test.js

This seems to work fine except for reactions for which some metabolites don't have InChI keys. See also KarrLab/datanator_rest_api#1116


Check max repo when fork?

Description
I have 6 repos in gitea.com

But it seems that the maximum of repo is 5.

So forked repo will be counted when we check maximum of user repos, but no checks when we fork repo.
Gitea Version
latest
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
gitea.com
Database
None

see https://github.com/go-gitea/gitea/pull/21848

Thanks. I see, we already have an option to control the behavior.
But what I want to say is that
how about ignore counting fork repos when we check the maximum of user's repos, if ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT is true.
ps: The reason of creating this issue is that when I contribute for Gitea in Gitea.com, after forking several repos, I even can't create a test repo. The only way to forbid this problem is creating 5 repos before forking or just create a new account. So I think this design only brings inconvenience. You know, Gitea have over 5 active repos in the organization, a contributor can not do anything else after fork 5 repos from Gitea.

We have increased this in the past for some maintainers/users, I think that would be fine. 🙂

I know we can increase the limits for Gitea maintainers.
But I think this problem is not only for Gitea, but also for other projects/organizations in gitea.com, even other sites.
So I created this issue, but not ordering the increase, as this will not change anything and resolve the root problem.

I believe it's indeed a bug that users can create forked repos without limits, but the forked repos will still be counted when creating regular repos.
And I'm worried about ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT. It means there will be no limit for forked repos, and users could create an infinite number of forked repos. The purpose of setting the repository number limit on gitea.com is to save resources. However, forked repos still consume resources just like regular repos.
BTW, I'm not sure if this has been handled:

Maybe I went off-topic.
I agree with that it should ignore counting forked repos when checking the maximum number of user's repos if ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT is true. And it's also a good idea to increase the limits for Gitea maintainers.

by the way, looks gitea.com has support agit also( https://gitea.com/ssh_info). you can use it to create a pull request without forking. ref: https://docs.gitea.com/usage/agit-setup


Increase the max Ensembl version to 83

...now we wait for tests to fail.

LGTM pending Travis


Bug: Android

Hello,
I would like to report a bug in this package related to the Android platform. The application is unable to listen to the return back URL information. Instead, it gets stuck in an endless loop
Steps to Reproduce:
Launch the demo application on an Android device.
Perform the action that triggers the return back URL functionality.
Observe that the application does not properly handle the return back URL and enters an endless loop.
could you please provide some information if this package is partially for Android?
for the IOS. it works well.
appreciate your efforts.

Hey!. i have a  solution for this bugfix. please let me know if you are open to contribute :)

Hi @muhsinzyne,
i am facing the same problem on Android. Can you provide the code snippet for the fix.


feat: Kakarot Rpc method "eth_sendRawTransaction"

eth_sendRawTransaction
Metadatax

name: sendRawTransaction
prefix: eth
state: ⚠
specification

Specification Description
Describe the method
Parameters

Transaction : bytes

Returns

TransactionHash : hash32

Kakarot Logic
Describe the interaction with Kakarot and/or Starknet.
e.g. "this method does not interact with the kakarot contract or any other starknet contract."
Kakarot methods
Which Kakarot methods are called?
Starknet methods
Which Starknet RPC methods are called? e.g. "Would be calling the corresponding starknet_sendRawTransaction https://github.com/starkware-libs/starknet-specs/blob/master/starknet_vs_ethereum_node_apis.md"

I can take this one


Update ocr.py with new get_date function

The past function was using spacy's ent labels to find date formats and then was reporting the first found date in the document. This approach had low accuracy because spacy wasn't identifying dates in XX/XX/XXXX format. This function solves that problem by instead using spacy's matcher functionality to identify all dates no matter the format within the document. Then, it returns the most recent date which is the date of the case file or the date the case file was updated. Also reformats all reported dates into the format of XX/XX/XXXX.

+1 for better output standardization and figuring out which date to be used.

Looks good. Could be improved to match a date where the month is spelled out, I don't think it will catch those, but if that's not coming up in these court cases I guess it doesn't matter.

Yes, I originally had it matching more formats but removed them as they weren't necessary, River.


Can generated docs pull doc-comments from function definition?

Right now, the doc generator seems to only pick up the docs for a decorator if the doc comment is copied from the function onto the extern dec statement. Just from the DRY principle, this is unfortunate, as it means that the docs need to be changed in two places, which will inevitably result in an inconsistency.
Is there no way to essentially reference the doc comments in the underlying function? Alternatively, could the function pull its doc comment from the extern dec statement in the cadl?

Decided not to do this

We should move decorator usage documentation from .ts to extern dec, then it's still DRY.

Why would we decide to do nothing here? Do we want the documentation between extern dec and the actual decorator functions to be different?  Even Nick's comment above would suggest this issue shouldn't be closed since.

It's fine IMHO to reopen this to track moving any decorator docs out of .ts and into .cadl. The title should be changed in that case, or maybe just open a new issue.
We explicitly rejected pulling info from .ts after a long investigation where we started out trying to do exactly that and it was too expensive to drive IDE features and such.

Makes sense. If pulling intellisense from the extern dec is feasible, then I'm happy to reopen and change the title. If we want the documentation to be different between the *.cadl and *.ts then it make sense to keep this closed--I just couldn't think of a reason we would want that.

If pulling intellisense from the extern dec is feasible

It's not only feasible, it's already implemented :) This one o the major value adds of extern dec!

If we want the documentation to be different between the *.cadl and *.ts

No we don't want that. :)

Well, if it's already implemented, then I guess this can stay closed 😛

I think maybe I'm missing something. If there are docs in .js now that are duplicated in the .cadl, then we should delete them from the .js. Having an issue for that is fine and good. If there is not such duplication now, then yeah, we're done here.

It may just be in my PR. I was copying the docs from the *.ts to the *.cadl.


Make debug directions clearer

This trips me up every time, but I'm not sure how to phrase it to fix it:
I always plus debug: true and spend a good amount of time figuring out what's broken before remembering it needs to be a part of the second argument rather than the third.
Is there a good way to specify this in the readme?

Can you detail which code sample you are using with debug: true that is not working?

@vvo Sure thing. See below. I know why it's not working now but it always takes me a while to get to that point because it's not incredibly clear in the documentation (though, I'm not sure right now a better way to phrase it).
autocomplete('#arrival', { hint: false}, [
  {
    debug: true,
    source: autocomplete.sources.hits(index, { hitsPerPage: 5, aroundLatLngViaIP: true }),
    displayKey: 'objectID',
    templates: {
      suggestion: function(suggestion) {
        //
      }
    }
  }
]).on('autocomplete:selected', function(event, suggestion, dataset) {
  console.log(suggestion, dataset);
});```

Ok yes you are trying to use the debug parameter as a source parameter, if you have any idea on how to make this clearer we could do it in the README.
We do not enforce and errors nicely about option schemas yet (typing options basically). There's no magic here for you sadly but seeing that it does not work and moving that option (same applies for hint).

@vvo Indeed--the README is good enough. The issue I have is I'm not entirely clear how that would be phrased. What would you call that type of option? Maybe that would help.

Something like
API
globalOptions{} - autocomplete(container, globalOptions, datasets);

debug..

datasets[] - autocomplete(container, globalOptions, datasets)
?

yes go ahead and bootstrap it, thanks!


Export project got no images

Describe the bug
I am using Docker Compose for Label Studio, and everything works fine. However, when I export the project, there are no images. For example, I exported in YOLO format and received the folders ‘images’ and ‘labels’, but the ‘images’ folder is empty while the ‘labels’ folder is normal contain labels txt.
I am using another Nginx as a reverse proxy.
Below is my docker-compose yml:
version: "3.9"
services:
  nginx:
    container_name: label-studio-nginx
    build: .
    image: heartexlabs/label-studio:latest
    restart: unless-stopped
    # ports:
    #   - "8080:8085"
    #   - "8081:8086"
    depends_on:
      - app
    environment:
      - LABEL_STUDIO_HOST=http://eih1aifsp01/label-studio
    #   Optional: Specify SSL termination certificate & key
    #   Just drop your cert.pem and cert.key into folder 'deploy/nginx/certs'
    #      - NGINX_SSL_CERT=/certs/cert.pem
    #      - NGINX_SSL_CERT_KEY=/certs/cert.key
    volumes:
      - /data/label-studio:/label-studio/data:rw # 將這裡的路徑改為 /data
      - ./deploy/nginx/certs:/certs:ro
    #   Optional: Override nginx default conf
    #      - ./deploy/my.conf:/etc/nginx/nginx.conf
    command: nginx
    networks:
      - my_network

  app:
    stdin_open: true
    tty: true
    build: .
    image: heartexlabs/label-studio:latest
    restart: unless-stopped
    # expose:
    #   - "8000"
    depends_on:
      - db
    environment:
      - LOCAL_FILES_SERVING_ENABLED=true
      - LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/label-studio/data
      - LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true
      - USER_UID=1002
      - USER_GID=1002
      - DJANGO_DB=default
      - POSTGRE_NAME=postgres
      - POSTGRE_USER=postgres
      - POSTGRE_PASSWORD=
      - POSTGRE_PORT=5432
      - POSTGRE_HOST=db
      - LABEL_STUDIO_HOST=http://eih1aifsp01/label-studio
      - JSON_LOG=1
    volumes:
      - /data/label-studio/mydata:/label-studio/data:rw # 將這裡的路徑改為 /data
    command: label-studio-uwsgi
    networks:
      - my_network

  db:
    image: pgautoupgrade/pgautoupgrade:13-alpine
    hostname: db
    restart: unless-stopped
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust
    volumes:
      - ${POSTGRES_DATA_DIR:-/data/label-studio/postgres-data}:/var/lib/postgresql/data # 這裡可以根據需要調整
      - ./deploy/pgsql/certs:/var/lib/postgresql/certs:ro
    networks:
      - my_network

networks:
  my_network:
    external: true

my nginx :
version: "3.9"
services:
  nginx:
    container_name: main-nginx
    image: nginx:latest
    restart: unless-stopped
    ports:
      - "80:80" # Expose Nginx on port 80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro # Mount your Nginx config
    networks:
      - my_network

networks:
  my_network:
    external: true

config:
events {
    worker_connections 1024;
}

http {
    server {
        listen 80;
        client_max_body_size 1000M;
        location /label-studio {
            proxy_pass http://label-studio-nginx:8085;  # Route to your app service
            proxy_buffering off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

    }
}

Environment (please complete the following information):

OS: ubuntu 22.04
Label Studio Version 1.4.0

Isn't it true that a .zip file usually contains images and a labeled .txt file? Or does the new feature not output images?

You have to copy images manually there. LS avoids touching user data for security reasons and because downloading images will take a long time. Your download will time out.

So I need to go to mydata/media/upload, take out the images, and manually combine them with the project output .txt? if i want to have a complete training dataset.

Yes. We don't recommend to use uploads because of this:
https://labelstud.io/guide/tasks.html#Import-data-from-the-Label-Studio-UI


SpeedTestReport : getTransferRateBit()

public void onDownloadProgress(float percent, SpeedTestReport report) {
report.getTransferRateBit()
}
The result will be cumulatively.
I think the calculation seems to be wrong, and here is my calculation :
            float getTemporaryPacketSize = report.getTemporaryPacketSize();
            float intervalDLSize = getTemporaryPacketSize-tempSize;
            tempSize = getTemporaryPacketSize;

            if(tempDLTime ==0)
                tempDLTime = report.getStartTime();

            long getReportTime = report.getReportTime();
            long intervalDLTime = getReportTime-tempDLTime ;
            tempDLTime = getReportTime;

            float mKBps = (intervalDLSize/intervalDLTime)*1000/8/1000 ;

The result will be cumulatively

Yes, it will give you the speed test rate on the whole period (cumulating all the speed rate obtained from the chunks uploaded/downloaded during that time)


[Question] Audio controls for webview

Hi! How do I make so audio tag controls were displayed in notification drawer on android? It works in browser (firefox) so there should be a way.

still searching for solutions

Hi again, I have the same question, any solutions?

Hi everybody still searching for solutions

Can we reopen this? iOS seems to work fine, but Android doesn't - it'd be great if we could enable controls on Android 😃

I'm looking for solution also.

Please support this on android, I having this problem


Server Error on Email from User Search

If you search for a large (>500 say) number of users, select them in the user manager and hit the "Email" button, you get a 413 Request Too Large error from the server.
It's because the page dumps a comma separated list of ID's into the URL, which is then too big for Nginx's default max HTTP request size. This can be changed from 1Mb to larger easily:
http://cnedelcu.blogspot.co.uk/2013/09/nginx-error-413-request-entity-too-large.html

I think this is fixed now.


Too many threads in the process for a single consumer

Hello everyone! I have a question regarding the number of threads being created. As far as I know, librdkafka creates the following number of threads:
Total number of threads = 2 + Number of brokers.
However, when using the library in .NET, approximately 10-15 threads are consumed when creating and connecting a consumer, with the number of brokers being 3. What could be the reason for this? Are these some overheads of the .NET library? Is it possible to reduce their number in any way?

This issue definitely seems to be related to Silverback. I've never noticed this but I'll investigate further and report back. Please bear with me as I'm quite busy at the moment.
Thanks for your patience.

Thank you for the response, I will be waiting. Actually, I have more suspicions about the Confluent.Kafka library, on which Silverback is based.

I was actually too quick to jump to conclusion. I did an extra test with a very simple producer which connects with a local broker (cluster with 2 nodes running in docker) and the threads seem to be under control:

I previously inspected a consumer connecting with a Confluent Kafka on AWS and I'm not sure how many nodes we have and what other things could come in play.
What's your use case? In which case do you see too many threads?

Testing in the dev environment, we have Kafka with 3 brokers. ASP.NET on .NET 8 with the latest libraries. During the application startup with 1 test consumer before Kafka initialization:
Current process thread id = 73171 count: 48
After:
Current process thread id = 73171 count: 61
If I start the other consumers, the thread count exceeds 100. But these are not application threads, they belong to the process itself as far as I understand right (librdkafka)

I don't know how to figure out which threads are being spawn by librdkafka in dotTrace.
I did a new trace and while I still see only 4 threads from librdkafka in process explorer:

In dotTrace there's a bunch of native threads, which I cannot clearly identify:

How did you parametrize the trace? (I'm a bit of a noob, I've to admit that.)

To be honest, I also don't fully understand how to get a proper display of all threads. In sampling mode, it only highlights hotspots, and as I understand, not all threads are captured. The thread count was 160 when i started dotTrace.

consumer_poll is highlighted as problematic, but when drilling down, the thread display seems to be broken (possibly due to the beta version)

I can also provide the method of initializing Silverback. A lot of reflection is used to simplify the configuration. Could this be the reason? Here is an example for consumers:

`public static IKafkaEndpointsConfigurationBuilder ConfigureTopics(
this IKafkaEndpointsConfigurationBuilder kafkaEndpointsConfigurationBuilder, ICrypto crypto, string kafkaPrefix)
{
// Consumer mapping with a message and a topic
var consumerTypes = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(assembly => assembly.GetTypes())
.Where(t => t.GetInterfaces().Any(i => i.IsGenericType &&
(i.GetGenericTypeDefinition() == typeof(IKafkaConsumer<>) ||
i.GetGenericTypeDefinition() == typeof(IKafkaBatchConsumer<>)))
&& t.GetCustomAttribute() != null);
    foreach (var consumerType in consumerTypes)
    {
        var asmName = consumerType.Assembly.GetName().Name.Split(".")[0];

        var kafkaAttribute = consumerType.GetCustomAttribute<KafkaAttribute>();
        var messageType = consumerType.GetInterfaces()
            .First(i => i.IsGenericType && (i.GetGenericTypeDefinition() == typeof(IKafkaConsumer<>) ||
                                            i.GetGenericTypeDefinition() == typeof(IKafkaBatchConsumer<>)))
            .GetGenericArguments()[0];

        kafkaEndpointsConfigurationBuilder
            .AddInbound(messageType,
                endpoint =>
                {

                    endpoint.ConsumeFrom(kafkaPrefix.ToLower() + kafkaAttribute.Topic.ToLower());
                    endpoint.Configure(config =>
                    {
                        config.GroupId = asmName + "-" + consumerType.Name;
                        config.AutoOffsetReset = kafkaAttribute.AutoOffsetReset;
                    });

                    if (consumerType.GetInterfaces().First().GetGenericTypeDefinition() ==
                        typeof(IKafkaBatchConsumer<>))
                    {
                        TimeSpan? maxWaitTime = null;
                        if (kafkaAttribute.MaxWaitTime > 0)
                        {
                            maxWaitTime = TimeSpan.FromSeconds(kafkaAttribute.MaxWaitTime);
                        }

                        endpoint.EnableBatchProcessing(kafkaAttribute.BatchSize, maxWaitTime);
                    }

                    endpoint.DeserializeUsing(new KafkaCryptoDeserializer(crypto, new JsonMessageSerializer()));

                    endpoint.IgnoreUnhandledMessages();
                    if (kafkaAttribute.RetryCount > 0)
                    {
                        endpoint.OnError(e => e.Retry(kafkaAttribute.RetryCount)
                            .ThenSkip());
                    }
                    else
                    {
                        endpoint.OnError(e => e.Skip());
                    }
                }
            );
    }
}`

Try to inspect the running process using process explorer: https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer#download
It's way simpler and easier to see where the threads are coming from.
I really doubt that whatever you do in .NET could have an impact in the thread being spawned by the wrapped C library.

Unfortunately, I'm on macos. I will try to look for alternatives and continue my investigation.

Keep me posted @mruslan97, and let me know if I can support you further. If there's indeed an issue, I'm very interested in solving it.
If you can create a reproduction project, perhaps by consuming from a local broker, I'd be happy to take a look and try to figure out what's going on.

@BEagle1984
I haven't been able to capture a full dump with all the application threads yet. But I suspect that I made some configuration mistakes. We have several consumers reading from the same topic (yes, I know it's a bad practice), and for each of them, I am calling .AddInbound in a loop. Probably, this isn't necessary, and a single .AddInbound with several subscribers added through AddSingletonSubscriber would suffice?

It depends. Both approaches work, but the main difference lies in error handling.
Subscribers won’t be transactional. If you use a single consumer (single inbound) and one subscriber throws an exception, the error policy will either skip or retry the message for all subscribers. If you can tolerate inconsistencies (i.e., some subscribers process the message successfully while others don’t) and your subscribers are generally idempotent, this setup is fine.
Otherwise, use a single subscriber that acts as a proxy, invoking all involved parties and handling the transaction to ensure consistent processing.
If you use a consumer (inbound) per subscriber, each one will be decoupled, making it easier to ensure that each message is processed exactly once by each subscriber.
Also, if you add multiple consumers for the same topic and always deserialize to the same message type, all subscribers will be invoked by all consumers, multiplying the processing of each message.


fix Issue 18712 by documenting the behavior

I don't understand why we don't do the due diligence to fix this.  It can be taken through the deprecation process, emitting a warning for a year or two informing users that the behavior will change in a future release, and then submitting the fix after that time has passed.  Let's not so easily give in to mistakes of the past.

What I'm doing here is documenting the way it behaves now. Redoing the semantics is another matter entirely and beyond the scope of this PR.
Fixing this is not just a tweak, it's substantial and could be fairly disruptive, and probably rises to the level of a DIP.

It makes sense to document existing behavior for experimental features that are expected to grow and change with time, e.g. -betterC.  This PR, however, is accepting defeat and endorsing a mistake in the implementation.   In this case we should be acknowledging that the current behavior is incorrect and keep the bug in bugzilla.  Then devise a solution to correct the behavior.  This PR, or any PR that clarifies current behavior, should only be accepted if the current behavior is exactly what we want, or the feature is experimental.

I think it is ok to document the current behavior if it is unlikely to change in the near future. It should be marked as a current limitation, though, as e.g. for multiple alias this.

#2512


In IE you can't focus on svg elements

So just try to blur and ignore if you can't.

Fixed by #105.