build: remove ALL_POSIX_PLATFORMS which is no longer used

Cleanup some CMake logic that we no longer need as the entire code base
now builds on all the targets.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @Rostepher @gottesmm

@swift-ci please smoke test and merge


Using param limit_claims_per_channel doesn't return always all claims that would excpected

I think currently on claim_search hub looks up to 1000 items for specific params.
And if I do claim_search with following params:
"limit_claims_per_channel":1,
"channel_ids": <43-channel_ids>,
"page_size": 36

I may only get 25 items in total(even though there are more claims that could be returned), since there are only claims from 24 different channels in those 1000 items.
If using smaller page_size there are more items that get returned in total. Since it's able to fill more pages, I guess.
This can currently be seen easily on spooky category on Odysee, when ordering by effective amount https://odysee.com/$/spooky?order=top
(44 channel_ids, but only 25 claims returned in total)

exact claim search:  {"jsonrpc":"2.0","method":"claim_search","params":{"page_size":50,"page":1,"claim_type":["stream","repost","channel"],"no_totals":true,"not_channel_ids":[],"not_tags":["porn","porno","nsfw","mature","xxx","sex","creampie","blowjob","handjob","vagina","boobs","big boobs","big dick","pussy","cumshot","anal","hard fucking","ass","fuck","hentai"],"order_by":["effective_amount"],"remove_duplicates":true,"has_source":true,"limit_claims_per_channel":1,"channel_ids":["76ef5bbd5c42e057e36b2402833111f24c5f9c12","119a2e8c0b50f78d3861636d37c3b44ba8e689b5","c4851557645332a7268fe0340faa656341ec5cb1","6489aa07c4bc480e338dc67071e0895df6af1eda","abf8c3b0426cd89fce01770a569d525c648a92b5","e2773f14ea4b438fa9f8c8e4f962055167f01000","b4ccefa53e0bb5730b56facb9b2ae5ad92c99935","deed21cf85c453e074b95949098fcd0c3dc65d69","4f2e005e8ca6ed57fde10c52571c39e22e1bf27f","468aa10ee3f12f0ba6cf2641f11e558c841f12fa","c32de3d9a336f20fd4f66d67428d0d46cea06d58","5f2a5c14b971a6f5eed0a67dc7af3a3fe5c0b6a4","fccced5026200bc9f0fa836f5159b47dd1d78061","b016d47e56f0914c2b985d83e051d43ebf7d2b52","e1f6a655de964977b5b2c56ba6b67ba434e03da1","05a7f5f90f7d5979d1d151f9d1e2d05b55eb151b","146dac6dcef9bbfe3621879bd76c30825341168a","a475e3dcee2111191eda14af5c6e48e5348bf384","2827bfc459c12d7c6d280cbacee750811291d4ba","4bdda920f2fef4caf8095456f5c071b2d4f4260e","e3199607f9f2bcb89cb0f09ed35747a58fd6c128","af927bd2092e7383789df183ff1eaf95c7041ee9","4a7f6709df6770e0786b04599fb00262a98d220b","239e4068eb8c4607e2b204f7019a73fc97636cad","f626ffc07218fffba49518f64216fdeff5097ce3","fa697814b01cbad882e62eb547cf304ad0494d9e","cfcd968df4fd7523ce48e580bc7adb2536d211d6","7579e81c2457f65c14fcd4d1f288c8f32b332d43","8657e17c43187f989a762b4f54868d693ce5e87a","59cf1673391c88f18d92337d0dafd84681f99371","f6b3124d6914978c59eb39176db1f70659ea854e","9cf01ce2a02d3f180b1e0037b25c2760e191ebfc","450a4952e611f333ac2a5fb08b2a4bb421b4a406","b7829928a5d84e12c8ea07de14456d50862833b8","b712d27bf04554ef115fe139aae3b31474872882","fa3a0dbeb5f8c99fbe2571c60db0c3499096da6e","6fc489b1bc7b44b57cba7b613fac21903e6e75c0","5831f60b25f5b5cb7d8b04c7887aa65949bdb279","a1229255cfe560646813132a561a875b09c6fa64","4b02df3aa8192bf7dab499edfcf8b291ba8dde1f","5df2339835971f101023082851808d73d043e13f","66a5e121b0ff4de4e52a0c765afc3e8816f5c0c1","1438eb1126db6340225d6863467ea25941c19947","3302aa9254ab9b24e913366603242e55858f1d18"],"release_time":">1669651200","duration":">=60","any_languages":["en","none"]},"id":1670258910855}


add initial rulesets

Content carried over from WIP in: https://github.com/dart-lang/linter/tree/master/tool/canonical
@munificent: could you spot check?
/cc @devoncarew @mit-mit

Just as a question, once these are released, do you think you'll include them in the sets fields of the machine generated JSON?

@parlough: totally, we should do that.  could you maybe open an issue on the linter to track?

@parlough: totally, we should do that. could you maybe open an issue on the linter to track?

For referenced, open an issue at https://github.com/dart-lang/linter/issues/2611

Landing and we can iterate.
Thanks for all the thoughtful back and forth!


Cloud9 static pdf was removed from the repo

https://github.com/bigchaindb/bigchaindb/tree/master/docs/server/source/_static

@eminogrande Thanks for noticing this and fixing it! Do you agree to license this change to the documentation (all deletes, I know) under the license we use for our documentation (CC-BY-SA 4 International)?

Yes I agree to the mentioned license.
Troy McConaghy<EMAIL_ADDRESS>schrieb am Mo. 13. Nov. 2017 um
13:10:

@ttmc requested changes on this pull request.
Don't merge this pull request unless @eminogrande
https://github.com/eminogrande agrees to license his contribution
(documentation-only) CC-BY-SA 4.0 International.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bigchaindb/bigchaindb/pull/1839#pullrequestreview-76078772,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADcfPTnMQMdUJJfi_LyKZQLzCMg78N4Kks5s2DGbgaJpZM4QbpR1
.

--
Emin Mahrt
+491701667348 <0170%201667348>
emin.de
@em http://www.twitter.com/em
Schedule a meeting with me: https://calendly.com/emino

Yes I agree to the mentioned license CC-BY-SA 4 International

Thanks again @eminogrande ! I will merge this pull request now. You will be able to see the change in the master branch of the docs, and in the docs of the next release (after 1.2.0, which just came out earlier today).


Fix error code and argument order

Exit with error code 1 if the build fails
Fix a bug in a print message
Insert arguments before "--" if any (otherwise, put them at the end)

cc @meteorcloudy

I don't know what's failing.
Tests pass locally.

The tests are failing, because the releases_for_tests.json somehow isn't used, thus Bazelisk now picks up a newer Bazel release that was released in the meantime, thus the hardcoded golden version strings in the test no longer match.
I don't know why, though :/

The Bazelisk + Incompatible flags pipeline is basically ready
https://buildkite.com/bazel/bazelisk-plus-incompatible-flags/builds/17
But the result are not entirely correct due to the issues this PR is going to fix.


19 site search

This PR implements the site search page (#19). For designs, see:

Search Form on Figma
Search Results on Figma

I tried to interpret the search form and how it would fit into the page as best I can, but I think some more discussion is needed to disambiguate the form on this page from the one in #359, which will appear in the top navigation bar (and is not part of this issue).
Would appreciate advice on things like the placeholder text and "no results found" text. The page also doesn't have a title (or rather, the default title of "Search" is hidden) — should it be visible instead?

Codecov Report

Merging #372 (aaf491d) into develop (f449104) will decrease coverage by 0.05%.
The diff coverage is 95.38%.

@@             Coverage Diff             @@
##           develop     #372      +/-   ##
===========================================
- Coverage    98.23%   98.18%   -0.06%
===========================================
  Files           88       89       +1
  Lines         3624     3686      +62
===========================================
+ Hits          3560     3619      +59
- Misses          64       67       +3

added OpenSearch stuff from PPA, thx for mentioning that

Placeholder text could be improved; I think I liked the version you had in the prototype better — didn't you list the kinds of content that were searchable?

fwiw i did too, but it turned out to be too long on mobile 😞


How to create batch data for testing set?

If you want to do a proper test, you would probably have to use known triplets and compare them to see how the loss is progressing on these spesific examples?
Otherwise, observing the loss from just passing test embeddings and labels should be useful as a pointer i reckon.


TypeError: b.render is not a function

Since yesterday I'm getting the following error when loading the angular-recaptcha. It ran flawlessly for months. Did Google change something in their Recpatcha response? I have just updated it to the latest version, but no change:
TypeError: b.render is not a function
at c.js:496
at c.js:142
at m.$digest (c.js:153)
at m.$apply (c.js:156)
at c.js:118 "Possibly unhandled rejection: {}"

We were able to solve the issue by removing

from the page head. Looks like the plugin does this by itself. Why this was working for months is unclear to us.

Looks like a duplicate of #224 which was fixed by #225 and released in 4.1.4.
Have you tried that version? Please reopen if still doesn't work for you.

Is anyone aware of what caused this issue to begin occurring yesterday?  I don't see any information on this outside of this project.  Thank you.

My bet would be a change in Google's code. Just a minor change like an early definition of the module, (like grecaptcha = {}) on their side would trigger this bug.

4.1.4 does not fix this. Already included

@drakanor That is the behavior i experienced, being a possible timing issue.  Tests so far suggest that removing the script call is required.

From what I gathered from a convo with @rauchg, it seems like calling Google for api.js loads a secondary script now (before, it just loaded api.js with the onload calling vcRecaptchaApiLoaded).

Change return b.render(a, e); to setTimeout(function () { return b.render(a, e) }, 100);}


utf8-bom file check fail

warning: result of comparison of constant 239 with expression of type 'char' is always false [-Wtautological-constant-out-of-range-compare]
if (buffer[0] == 0xEF && buffer[1] == 0xBB && buffer[2] == 0xBF)

auto ubuffer = reinterpret_cast<unsigned char*>(buffer);
code is update earlier，plz update to new version。


Added missing GetText call around ConfigurationScript in TreeNodeBuilder

Unrelated test failures.  Merging.

Euwe Backport details:
$ git log -1
commit 0e2613225aab3274eca111c8bcf5f3a596c42293
Author: Oleg Barenboim<EMAIL_ADDRESS>Date:   Fri Nov 4 11:12:44 2016 -0400

    Merge pull request #12434 from skateman/confscript-node-gettext

    Added missing GetText call around ConfigurationScript in TreeNodeBuilder
    (cherry picked from commit 9fa0ba53c70581d61ef1e7f57a94bec59cd29343)


duti: init at 1.5.4pre

I would init at 1.5.4, but sadly it doesn’t work on OS X 10.11+.

It looks ok after rebasing against may WIP changes.

@matthewbauer The CoreFoundation changes are in master now, should be good to merge now if you rebase.

Ok I've rebased and no seg fault!


Add plugin tools as a git submodule and depend on it directly

This is the first step toward moving the plugin tools over to this repo.
For the time being, this will allow you to change the plugin tools, and test the changes directly without the need to publish to the tool to pub.

What's the reason for using a submodule instead of actually moving the code into this repo? (I ask because my previous experience with submodules was that they really didn't work very well, and it was easy to get a tree into a state where it was hard to understand what was happening and how to fix it; that was a number of years ago though, so maybe tooling has improved.)

@stuartmorgan yes. The GitHub UI tells you exactly which commit the submodule points to. This is mostly a temporary state before I move the code and archive that repo.  I'd like to ensure I capture everything else that might be needed as a result.

https://github.com/flutter/plugins/tree/5bb6ce7fc6ebdd1f2a033704f3a0013e27032bad/script as an example


replace etcd with k8s apiserver backed by etcd

would it be possible to replace etcd with the k8s etcd (which is accessed via the apiserver)?
could we use k8s CRDs to define the captures (and other etcd backed resources)?
would this provide benefits in the multi-cluster use case?

It's probably feasible. That being said, we would still need to support etcd for non k8s deployments so it means more maintenance for a small team so I don't see this happening anytime soon :-(


Remove version: Jackett.Jackett version 0.21.241

404 - release deleted
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/Jackett/Jackett/releases/download/v0.21.241/Jackett.Installer.Windows.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 918)


fix: allow innerHTML to replace non-empty node, credit @tokichie

Copy-pasted changes from @tokichie https://github.com/snabbdom/snabbdom/pull/347 re-applied to the current master branch

happy new year bump!

LGTM, except for the one nitpick comment :)

Thanks!


code structure cleanup

[ ] Cleanup stale files

[ ] Split code/experimental into code/attic and code/experimental

[ ] Move production ready code from code/experimental to code

[ ] Move frozen primitives and experiments to code/attic, only keep in code/experimental primitives which will be shortly moved to code

Just created a code/attic directory and moved a few stale files in code there. I identified them by going through files in code (except code/experimental) that weren't verified during CI.

[Moved to attic/bignum] code/bignum/Hacl.Bignum.Lemmas.fst
[Moved to attic/hash] code/hash/Hacl.Hash.SHA2_256.PrePost.fst
[Moved to attic/salsa-family] code/salsa-family/AEAD.Chacha20.fst
[Moved to attic/salsa-family] code/salsa-family/Hacl.Spec.Symmetric.Chacha20.fst
[Moved to attic/ed25519] code/ed25519/Hacl.BignumQ.fst
[Moved to attic/ed25519] code/ed25519/Hacl.Impl.Ed25519.Ladder.BigLoop.fst
[Moved to attic/api] code/api/Hacl.Hash.fst
[Removed, same as in code/api] code/api/interfaces/Hacl.Constants.fst
[Moved to attic/lib] code/lib/Utils.fst
[Moved to attic/lib/kremlin] code/lib/kremlin/Hacl.SBuffer.fst

I kept code/api/Hacl.SecretBox.fst, which looks stale and currently doesn't verify. It doesn't seem hard to fix.
I'm unsure about the role of code/api/interfaces. The fsti files in there don't seem to be used anywhere and, for instance, typechecking code/api/Hacl.Box.fst against code/api/interfaces/Hacl.Box.fsti fails.
I patched and added to CI some files meant to be verified that weren't, either because they regressed or were (un)intentionally omitted. Notably, the whole code/lib and code/lib/kremlin directories.

Directory attic was removed in the dev branch


Validate funding stream amounts in coinbase transaction

Motivation
We need to validate the funding stream amounts that are present in the coinbase after Canopy. This is part of https://github.com/ZcashFoundation/zebra/issues/338
Specifications
https://zips.z.cash/protocol/protocol.pdf#subsidies
https://zips.z.cash/protocol/protocol.pdf#fundingstreams
Designs
We worked in a design for this in the past however i am not sure if we will update it: https://github.com/ZcashFoundation/zebra/blob/main/book/src/dev/rfcs/drafts/xxxx-block-subsidy.md
Solution
Validate funding stream amounts according to rules. Another PR will validate the output addresses, this is just the amounts.
Review
@teor2345 and/or @jvff will be good. This is a draft so i am asking for some suggestions as code comments.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

Follow Up Work
Validate funding stream addresses.

I have some code based on this PR for validating the founders reward addresses. Currently only working with transparent address(the ones that are hard coded in the protocol right now are all transparent) however we are going to need a new PR to validate sapling addresses on top of this one:
https://github.com/oxarbitrage/zebra/pull/160
I think is important that reviewers of this PR take a look to it as it has a bigger picture on what is needed to get the full task done.

I have some code based on this PR for validating the founders reward addresses. Currently only working with transparent address(the ones that are hard coded in the protocol right now are all transparent) however we are going to need a new PR to validate sapling addresses on top of this one:
oxarbitrage#160
I think is important that reviewers of this PR take a look to it as it has a bigger picture on what is needed to get the full task done.

I can have a look at that PR tomorrow, or maybe @jvff wants to look at it on Monday?

https://github.com/oxarbitrage/zebra/pull/160 was replaced by https://github.com/ZcashFoundation/zebra/pull/3040


Update MenuPeriod table Schema and function

Change the MenuPeriod Schema to have it's primary key based on the restaurant, date, and meal period.
Also, change it to store the price in addition to the start and end times.
Refer to #205 for more information on what needs to be stored.
In addition, you should change the savePeriod function in @zotmeal/api menu services to reflect these changes to the schema.

no longer relevant after the recent schema update


Unify Search Not Found Responses

Currently each search command (anime me, manga me, image me, spotify me, etc) each implement their own results not found text.
Should unify them in a single function.
Bonus Points add ~15 unique lines so that the responses feel less canned.

https://github.com/Splyth/slack_bot/pull/34


example for rendering graphics output

Do you have any example notebooks for rendering graphics output?

That would require binding to a specific library in C, which is not supported at the moment.
If you want to support a particular graphics library, please feel free to re-open another issue :)


Tree function path argument for subfolders

There's an issue with the tree function to access subfolders. It doesn't append the 'path' argument value to the url.
Example:
/repository/branches/[branchname]/[project id]/repository/tree/[path]

Fixed in the latest version, issue was caused by urlencode.


Objects going though each other

Hello,
First of all, nice library! I just have one problem, colliders go through each other :D
What I do is :

Update physics
Update my objects position with the newly calculated positions
Render

The collision tests work, testCollision() and testOverlaps() both return right values when the rendered colliders actually collide, but no bounce.
Here is my code, Transform class is my own code, but works just as any Transform class :
const float constantTimeStep = 0.02f;
while (m_OldTime < time)
{
  m_PhysicsWorld->update(constantTimeStep);
  m_OldTime += constantTimeStep;
}

m_OldTime = time;

for (int i = 0; i < bodies.size(); i++)
{
  auto* body = bodies[i];
  auto* transform = body->object()->transform();

  const rp::Transform& rp3dTransform = body->b->getTransform();
  rp::Vector3 rpNewPos = rp3dTransform.getPosition();
  rp::Quaternion rpNewRot = rp3dTransform.getOrientation();

  transform->setPosition(glm::vec3(rpNewPos.x, rpNewPos.y, rpNewPos.z));
  transform->setRotation(glm::quat(rpNewRot.w, rpNewRot.x, rpNewRot.y, rpNewRot.z));
}

And here is a image showing what happens :

Never mind, i needed to create a CollisionBody instead of a Rigidbody.
RigidBody and CollisionBody don't collide, i suppose it's for triggers only :)


Changed openssh password prompt regex + Added max number of retries ; fix #1904

My ssh  doesn't have the password prompt pyzmq expects, which triggers infinite looping (as described in #1904).
> ssh -f <IP_ADDRESS> -i /path/to/my/key/
Enter passphrase for key '/path/to/my/key/':
> ssh -V
OpenSSH_8.9p1 Ubuntu-3ubuntu0.4, OpenSSL 3.0.2 15 Mar 2022

I changed the pattern from pass(word|phrase): to pass(word|phrase) to account for my ssh.
I also added a max number of  retry to avoid infinite looping, in case future updates also change the phrasing of password prompts.
closes #1904

Thanks!


Tables

Work in progress...
Starting to look at how to parse and display table data - see https://github.com/ome/ngff/pull/64/
Test: https://deploy-preview-20--ome-ngff-validator.netlify.app/?source=https://minio-dev.openmicroscopy.org/idr/temp_table/test_segment.zarr/tables/regions_table
Currently showing X, var, obs and obsm data:

Using sample data generated with https://github.com/kevinyamauchi/ome-ngff-tables-prototype/blob/main/examples/save_load_squidpy_segment.py with some tweaks at
https://github.com/kevinyamauchi/ome-ngff-tables-prototype/pull/12
This data appears in napari like this (screenshot):
https://github.com/ome/ngff/pull/64#issuecomment-1310600810
Initially, this shows a link when viewing the image that has a table.
Clicking the link shows the full table page, coloured to match the AnnData scheme.
Limitations:
zarr.js doesn't support data with dtype: <i8, which means data such as obs/cell_id needs to have dtype fixed (see PR above).
The current implementation differs from the spec as described at https://github.com/ome/ngff/pull/64/files#r1022784696 with a single table at test_segmetation.zarr/tables/region_table/.zattrs (as generated by the script above).
cc @kevinyamauchi

Closing, since https://github.com/ome/ngff/pull/64 is closed.


Not connecting

Does not connect for me. IP, Api and room is set correct. (Can control with the API-key using my browser). ”Connect” in RuneLite stays checked but ::testlights says not connected. Is this plugin still working? Any way to see why it failed to connect?

Generated a new API-key and now it works. This can be closed.


Consider replacing npm-watch with nodemon

Maybe it's a good idea to replace npm-watch with nodemon directly.
npm-watch is based on nodemon and in the current situation the advanced functions of npm-watch are not needed.

unfortunately it is not working as expected


Logging Losses for Loss Curves

Is there any convenient way to currently get loss curves after training a fairseq model? The default logging output of tqdm isn't the most convenient to extract from and while the json output you can make loss curves from isn't written to any file. I know I could do output redirection, but since other things also get printed to screen you still wouldn't get a simple json file.
If there isn't an easy way I'm not noticing, I was thinking of adding an option to put the logs in a file and then just add a small visualization script that reads from a log file and then generates loss curves. Would that be wanted as a pull request?

sure, that would be nice. another idea we have been thinking about (but haven't gotten to yet) is integration with tensorboard and/or visdom

I usually do --log-format json, redirect to a file, and then when I want plain json do grep "^{" train.log. If you want just training output (no validation) then you can do: grep "^{" train.log | grep -v valid.
I generally avoid having options that write output to files -- it's too easy for this kind of output to get separated from the main log output, which contains important debug info, such as the args that the script was run with. It's also usually redundant and complicates the code :/

Grepping that way is simple enough to cover my need, so I have less desire to actually tweak the logging code to write to files unless someone else wants it.

With the addition of the --user-dir flag, now it's easy to implement a plugin that does so. I just did that: https://github.com/noe/fairseq-tensorboard

This is awesome! We're working on a major refactoring of logging currently, with the aim of adding more native tensorboard support and simplifying the various logging code scattered throughout the code, but your solution is a really clean way of doing this in the interim :)


Add eslint-plugin-prettier to webapp-next

Add eslint-plugin-prettier to webapp-next
Fix any following linting errors

Hi @codicocodes can I take this?

@Murad013 Ofc! Thank you for picking it up!


Render pure text into the og:description meta tag

🐛 Bug Report
Currently, after my Pull Request #1054 I realized that maybe it's not best option to render raw HTML into the og:description meta tag. I think that It just doesn't look nice or at least it doesn't help a readability at all. Maybe we could stick to the option of rendering a pure "text-like" output into the og:description.
Have you read the Contributing Guidelines on issues?
yes
To Reproduce

Start any of your doc.md files with markdown formatted text including i.e. pictures, links, bold/italic text, etc.
Run your application to render the changes.
3 .Navigate and then copy a URL address of the doc that you just prepared.
Check  tags in header of your doc file inside your browser dev tools or paste url link, that you copied in previous step into the Open Graph Check and look for your og:description meta tag.

Expected behavior
In my opinion, it could be way more user-friendly if we could show to the user potentially as much of clear text as possible.
So from example described in Actual Behavior part of this issue, I think that rendered og:description can look like:
Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.

Actual Behavior
Let's say your actual Doc page starts with:
Docusaurus was _designed_ from the ground up to be easily [installed](https://nodejs.org/en/download/) and used to get your website up and **running** quickly.

Currently, after running your app in Open Graph Preview you will see something like:

or in a browser dev tools something like this:

Docusaurus was designed from the ground up to be easily installed and used to get your website up and running quickly.

Reproducible Demo
You can find reproducible demo on my github fork repository sinodko/Docusaurus. But in overall I think it is a lot more simpler to just copy/paste Actual Behavior example into any of your own Doc file.
If you want to use my fork anyways then there are some steps to make it work:

Clone my fork and run yarn install from root and yarn start from v1/ folder. After development server is started just head to Docs -> Installation or url: http://localhost:3000/docs/en/installation.

That should be it :) Look for your og:description  tag.

Note: If you would like to check it by Open Graph Preview then you need to make localhost dev server accessible from "other side" of your router :D. The most simple way to do so is by my opinion to use ngrok.  Continue by installation of ngrok and after installation run command ./ngrok http 3000 which will create a public IP address that will somehow point to your Docusaurus development server... After this you are free to use Open Graph Preview, but instead http://localhost:3000/docs/en/installation write http://ngrok-generated-key.ngrok.io/docs/en/installation.

opinion @yangshun @JoelMarcey ??

Hello, is there any news on this issue?
I'd like to suggest that the description could be set as pure text from front matter.
Example:
---
id: some_page
title: "Some Page"
description: "This description will be set in the corresponding meta tag."
---
...page content...

My pages description don't make any sense at the moment, like:

<svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16">
<path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
</svg>

Install

Accepting PR on this for v1 😉
I agree we shouldnt render markdown.


chore(deps): update module github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper to v1.2.8

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper
require
minor
v1.1.7 -> v1.2.8

Release Notes

terraform-ibm-modules/ibmcloud-terratest-wrapper
v1.2.8
Compare Source
Bug Fixes

deps: update module github.com/gruntwork-io/terratest to v0.41.0 (#177) (23c0a56)

v1.2.7
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.5 (#172) (642eeb3)

v1.2.6
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.4 (#170) (1e68d03)

v1.2.5
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.3 (#168) (c0e2cfd)

v1.2.4
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.2 (#166) (b1e04f1)

v1.2.3
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.1 (#162) (c0d1a05)

v1.2.2
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.29.0 (#161) (7f9fe3c)

v1.2.1
Compare Source
Bug Fixes

deps: update gomod (#157) (0baa3b2)

v1.2.0
Compare Source
Features

activity tracker region check and parallel test improvement (#144) (54d9457)

v1.1.9
Compare Source
Bug Fixes

deps: update module github.com/ibm/platform-services-go-sdk to v0.28.7 (#151) (0e50e05)

v1.1.8
Compare Source
Bug Fixes

deps: update module github.com/stretchr/testify to v1.8.1 (#147) (85bb9a6)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

:tada: This PR is included in version 3.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


TweetDeck refresh

TweetDeck FOLLOWING Updates are displayed on TweetDeck more than 10 seconds slow, can it be updated faster and displayed within 5 seconds?

no


Move the images for the Nuget (Visual Studio) example from the old wiki to the new one

Task Description
We have migrated our wiki from the strongbox project to strongbox-docs project. We appear to have some images still pointing to the old wiki and this prevents us from being able to shut down the old wiki, which is now obsolete and might be misleading people.
Tasks
The following tasks will need to be carried out:

[ ] Clone the docs from git@github.com:strongbox/strongbox-docs
[ ] Then copy the images necessary images from wiki/** under resources/images/nuget/ to docs/assets/images under the strongbox-docs repository. Make sure to preserve git history!
[ ] Change the link for the images in the hello-strongbox-nuget-visual-studio to point to the new locations.
[ ] Check if there are other images which have not been migrated and report/fix them.

Useful Links

strongbox-docs

Help

Our chat
Points of contact:

@carlspring
@fuss86
@sbespalov
@steve-todorov

Can I take this issue?

Hi @JekRock ,
Feel free to look into it! Thanks for offering to help! :)

Hi @carlspring ,
Glad to help!
I've made two pull request for this issue. Could you please check them out?

This for copying images
This for changing links for the images


Release 1.1.1

See my comments above. Did you test the new version already?

I've updated the files corresponding to your comments. Thanks.
Yes, I've tested it locally.


Add the posibility of zipping a specific subdirectory from the workspace

Hi,
I added a new configuration option that allows users to specify a subdirectory to zip instead of the whole workspace. Usually there's a lot clutter in the workspace and only a designated build folder should be packed and uploaded to S3. The appspec.yml file and attached .sh scripts must be copied in the subfolder ahead of time. I had a similar pull request earlier (closed it because it wasn't on a branch).
Cosmin

Hi!
Thanks for the pull request. I've merged this in and it should go out with our next plugin release soon.


Improve Connection.override_return_types macro and usage

As mentioned in https://github.com/mosquito-cr/mosquito/pull/98#issuecomment-1264511990, there are some commands' return types missing from the override_return_types macro.
Additionally, it may be worth looking into refactoring this macro so it doesn't also end up needing to be called in Cluster.

Added c77f7aa that moves the override_return_types macros into a single call that Client, Connection, and Cluster all share.

Fixed in 83973cb. That commit doesn't implement all of those commands, but it does set the return types for when they are implemented.

Out of curiosity: what's the purpose of that macro? Why not define the return type on each method?

Client, Connection, and Cluster can do this because they return the values immediately, but Pipeline and Transaction return them only once the pipeline/transaction is complete. They all include the same mixin so that the methods only need to be defined once.
I'm not sure if that's the best way to do it, but it was the only way that I could come up with.

Would putting that in a module work?

I'm not sure I understand. The Commands mixin is where all of the concrete types get the command methods from. Do you mean another module that overrides the return types for the classes that return immediate values?

Oh, sorry, I guess I didn't take a lot of time to look at the entire source code.
I'm just thinking "How could this be done in another language that doesn't have macros?" and I'm sure that's possible. Macros should be avoided if possible.
Then...
I tried removing that macro and casting the types when needed. Here's the diff:
diff --git a/src/client.cr b/src/client.cr
index 5b3b668..f4cbd05 100644
--- a/src/client.cr
+++ b/src/client.cr
@@ -50,8 +50,6 @@ module Redis
       end
     end

-    Connection.set_return_types!
-
     # All Redis commands invoked on the client check out a connection from the
     # connection pool, invoke the command on that connection, and then check the
     # connection back into the pool.
diff --git a/src/cluster.cr b/src/cluster.cr
index b7d7fb2..34333d7 100644
--- a/src/cluster.cr
+++ b/src/cluster.cr
@@ -297,8 +297,6 @@ module Redis
       end
     end

-    Connection.set_return_types!
-
     # Close all connections to this Redis cluster
     def close
       @write_pools.each do |(_, pool)|
diff --git a/src/commands.cr b/src/commands.cr
index 848d071..0a2708e 100644
--- a/src/commands.cr
+++ b/src/commands.cr
@@ -36,8 +36,8 @@ module Redis
     # redis.keys("f*") # => ["foo"]
     # redis.keys("b*") # => ["bar", "baz"]
     # ```
-    def keys(pattern = "*")
-      run({"keys", pattern})
+    def keys(pattern = "*") : Array
+      run({"keys", pattern}).as(Array)
     end

     # Set a given key to a given value, optionally specifying time-to-live (TTL).
@@ -220,8 +220,8 @@ module Redis
       run({"ttl", key})
     end

-    def pttl(key : String)
-      run({"pttl", key})
+    def pttl(key : String) : Int64
+      run({"pttl", key}).as(Int64)
     end

     def type(key : String)
diff --git a/src/commands/set.cr b/src/commands/set.cr
index e6c9b1b..0026611 100644
--- a/src/commands/set.cr
+++ b/src/commands/set.cr
@@ -7,8 +7,8 @@ module Redis::Commands::Set
     run({"sismember", key, value})
   end

-  def smembers(key : String)
-    run({"smembers", key})
+  def smembers(key : String) : Array
+    run({"smembers", key}).as(Array)
   end

   def srem(key : String, *values : String)
diff --git a/src/commands/stream.cr b/src/commands/stream.cr
index 40cc999..47317e2 100644
--- a/src/commands/stream.cr
+++ b/src/commands/stream.cr
@@ -81,19 +81,19 @@ module Redis::Commands::Stream
   end

   # Return the number of entries in the given stream
-  def xlen(key : String)
-    run({"xlen", key})
+  def xlen(key : String) : Int64
+    run({"xlen", key}).as(Int64)
   end

   # Return the entries in the given stream between the `start` and `end` ids.
   # If `count` is provided, Redis will return only that number of entries.
-  def xrange(key : String, start min, end max, count = nil)
+  def xrange(key : String, start min, end max, count = nil) : Array
     command = {"xrange", key, min, max}
     if count
       command += {"count", count}
     end

-    run command
+    run(command).as(Array)
   end

   def xgroup_create(key : String, groupname : String, *, id : String = "$", mkstream = false)
diff --git a/src/connection.cr b/src/connection.cr
index eeacb28..ffd8bb3 100644
--- a/src/connection.cr
+++ b/src/connection.cr
@@ -211,129 +211,6 @@ module Redis
       run({"readonly"})
     end

-    # :nodoc:
-    macro override_return_types(methods)
-      {% for method, return_type in methods %}
-        # :nodoc:
-        def {{method.id}}(*args, **kwargs) : {{return_type}}
-          super(*args, **kwargs){{".as(#{return_type})".id unless return_type.stringify == "Nil"}}
-        end
-      {% end %}
-    end
-
-    macro set_return_types!
-      # When new commands are added to the Commands mixin, add an entry here to
-      # make sure the return type is set when run directly on the connection.
-      ::Redis::Connection.override_return_types({
-        keys:   Array,
-        del:    Int64,
-        unlink: Int64,
-        ttl:    Int64,
-        pttl:   Int64,
-
-        # String commands
-        append:      Int64,
-        decr:        Int64,
-        decrby:      Int64,
-        get:         String?,
-        getdel:      String?,
-        getex:       String?,
-        getrange:    String,
-        getset:      String?,
-        incr:        Int64,
-        incrby:      Int64,
-        incrbyfloat: String,
-        mget:        Array,
-        mset:        String,
-        msetnx:      Int64,
-        psetex:      String,
-        set:         String?,
-        setex:       String,
-        setnx:       Int64,
-        setrange:    Int64,
-        strlen:      Int64,
-        substr:      String,
-
-        # List commands
-        blmove:     String?,
-        blmpop:     Array(Value)?,
-        blpop:      Array(Value)?,
-        brpop:      Array(Value)?,
-        brpoplpush: String?,
-        lindex:     String?,
-        linsert:    Int64?,
-        llen:       Int64,
-        lmove:      String?,
-        lmpop:      Array(Value)?,
-        lpop:       String | Array(Value) | Nil,
-        lpos:       Int64 | Array(Value) | Nil,
-        lpush:      Int64,
-        lpushx:     Int64,
-        lrange:     Array,
-        lrem:       Int64,
-        lset:       String,
-        ltrim:      String,
-        rpop:       String?,
-        rpoplpush:  String?,
-        rpush:      Int64,
-        rpushx:     Int64,
-
-        # Hash commands
-        hdel:         Int64,
-        hexists:      Int64,
-        hget:         String?,
-        hgetall:      Array,
-        hincrby:      Int64,
-        hincrbyfloat: String,
-        hkeys:        Array,
-        hlen:         Int64,
-        hmget:        Array,
-        hmset:        String,
-        hrandfield:   String | Array(Value),
-        hscan:        Array,
-        hset:         Int64,
-        hsetnx:       Int64,
-        hstrlen:      Int64,
-        hvals:        Array,
-
-        # Sets
-        sadd:        Int64,
-        scard:       Int64,
-        sdiff:       Array,
-        sdiffstore:  Int64,
-        sinter:      Array,
-        sintercard:  Int64,
-        sinterstore: Int64,
-        sismember:   Int64,
-        smembers:    Array,
-        smismember:  Array,
-        smove:       Int64,
-        spop:        String | Array(Value) | Nil,
-        srandmember: String | Array(Value) | Nil,
-        srem:        Int64,
-        sscan:       Array,
-        sunion:      Array,
-        sunionstore: Int64,
-
-        # Streams
-        xack:       Int64,
-        xadd:       String?,
-        xautoclaim: Array,
-        xclaim:     Array,
-        xdel:       Int64,
-        xgroup:     String | Int64,
-        xinfo:      Array,
-        xlen:       Int64,
-        xpending:   Array,
-        xrange:     Array,
-        xreadgroup: Array(Value)?,
-        xrevrange:  Array,
-        xtrim:      Int64,
-      })
-    end
-
-    set_return_types!
-
     # Execute the given command and return the result from the server. Commands must be an `Enumerable`.
     #
     # ```

All specs pass for me, and that entire macro is gone. Am I missing something?
(actually, not all specs pass for me: the ones for json and ts fail because I don't know how to enable those features locally)

All specs pass for me, and that entire macro is gone. Am I missing something?

I don't think it's you that's missing anything, I think my tests are, though. 🙂 They're mostly checking result.should eq expected, so they'll pass even if compile-time types aren't scoped down.

(actually, not all specs pass for me: the ones for json and ts fail because I don't know how to enable those features locally)

This is a frustrating thing for other folks that I should fix. Only 2 other people I know of besides me are using those Redis server modules, so those specs probably shouldn't run by default.


[SIP] API Row Level Security: get rls by username or roles via API (tested on Apache Superset 2.1.0)

SUMMARY
I have created the following SIP to give the client-side possibility to generate an embedding request by retrieving the row level securities defined on the UI page:

Providing either the username of the user or the role already defined on Apache Superset, API returns the list of RLS to be provided to body of endpoint /api/v1/security/guest_token/:

Otherwise, the client making the request must know in advance the settings provided at the user interface level. The following endpoints generate output considering the filter type (Basic / Regular) and the presence or absence of the Group Key. Right now a user without providing an rls but only the default value [ ], can display all the data within the dashboard, in my case I needed to manage the display of the type of data with respect to the user requesting the embedding. The output of request will be list of dictionaries with "clause" and "dataset" as keys, e.g:
[{"clause":"(province = 'AG')","dataset":25},{"clause":"(gender = 'boy')","dataset":2}]

If the different rls filters associated with the requested user or role have the same group key, the filters associated with the same dataset will be merged using the OR condition, e.g:
[{"clause":"(province = 'AG') OR (province = 'SI')","dataset":25}]

Proposed Change

I created new two endpoints:

/api/v1/security/get_rls_by_username/
/api/v1/security/get_rls_by_role/

that retrieve users, roles, tables and rls from Metadata tables (using the SQLAlchemy package), convert all filters of type Base to Regular and aggregate the filters with respect to the defined group key value. Obviously considering only the row level securities enabled on that specific user or role.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
BEFORE: no endpoints to retrieve RLS configs made by Row Level security settings page
AFTER:

TESTING INSTRUCTIONS
Create an user with a specific role and related RLS, check if endpoints return correct output.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[x] Introduces new feature or API
[ ] Removes existing feature or API

Thank you for the PR @frlm. I'm not sure if you are aware but we have the following RLS endpoints. Are they not sufficient for your use case?

Thank you for the PR @frlm. I'm not sure if you are aware but we have the following RLS endpoints. Are they not sufficient for your use case?

Hi Michael,
thank you for your interest in my SIP request, I know there are new endpoints to pull RLS information via API, I had read them before implementing the two new endpoints included in this pull request. You will notice that I did not include them within the RowLevelSecurity class because they were not yet present in Apache Superset version 2.1.0. I needed this functionality in the version I am using in a specific production environment. However to explain the reasons why I think it is necessary to add these endpoints I will use /api/v1/rowlevelsecurity  as an example. In particular if we read the json argument:

"result: [
    {
      "changed_on_delta_humanized": "string",
      "clause": "string",
      "description": "string",
      "filter_type": "regular",
      "group_key": "string",
      "id": "0",
      "name": "string",
      "roles": [
        {
          "id": "0",
          "name": "string"
        }
      ],
      "tables": [
        {
          "id": 0,
          "schema": "string",
          "table_name": "string"
        }
      ]

we can observe that there is all the information present in the RLS table plus the associated roles but during the embedding requests I observed the following shortcomings:

the endpoints already present allow you to extract information from the RLS table but do not help you extract the RLS for that specific username or role, generally the Client does not know which role the user is associated with.

If for that specific user or role there are several RLS filters of the Regular / Base type and with different group key values, it is necessary for the Client to carry out all the logical aggregation operations (AND, OR) to generate the list of dictionaries used later in the endpoint body /api/v1/security/guest_token/.

{
  "resources": [
    {
      "id": "string",
      "type": "dashboard"
    }
  ],
  "rls": [
    {
      "clause": "string",
      "dataset": 0
    }
  ],
  "user": {
    "first_name": "string",
    "last_name": "string",
    "username": "string"
  }
}

This leads to greater difficulty on the Client side in using the tool via API because it must understand and manage any updates on the Superset side on how the settings relating to Row Level Security are managed.

You will notice that I did not include them within the RowLevelSecurity class because they were not yet present in Apache Superset version 2.1.0. I needed this functionality in the version I am using in a specific production environment.

In scenarios like this, the best approach is to contribute to the master version, to ensure the contribution will be available in subsequent releases, and wait for a minor version of your current release that includes the new feature. An alternative is to just implement this feature locally for your deployment but you'll need to support it when upgrading.

the endpoints already present allow you to extract information from the RLS table but do not help you extract the RLS for that specific username or role, generally the Client does not know which role the user is associated with.

If for that specific user or role there are several RLS filters of the Regular / Base type and with different group key values, it is necessary for the Client to carry out all the logical aggregation operations (AND, OR) to generate the list of dictionaries used later in the endpoint body /api/v1/security/guest_token/.

I'm pretty sure we can resolve these use cases by a combination of filters (q request parameter) and token augmentation if the required information is not there already. I'll ping some folks that know more about the embedded feature and can help you. @rusackas @lilykuang @betodealmeida @yousoph

You are right, I should have released on the master branch. However, I only added two methods within the file /superset/security/api.py; there are no other changes.
I await your feedback, the important thing is that filters of type Basic are transformed into Regular (otherwise they cannot be used) and also that OR aggregations are performed between different RLSs if the group key is the same.

@frim this seems to have slid under the radar for quite some time. Sorry about that. If you want to rebase the PR, we'll see how it works in current Superset, and review it. Hopefully we can get this across the finish line, but in the meantime, I'll set this to Draft mode while it awaits rebase. Mark it as open for review when you think it's ready. Thanks!


how we can monitor used traffic

thanks for your great work.
how we can monitor used traffic? i already opened an issues about it HERE.
please add more feature like xray api statsquery to this project so we can learn and use it.

Hi, Thanks for your interest to my app, currently I have no plan to add extra features, maybe I reconsidering in future.

@SaeedDev94 are you still have no plan for it?

@SaeedDev94 are you still have no plan for it?

No, at least for now


commenting with bug / test case feedback doesn't work

Looks like the bodhi API documentation is either wrong or misleading, since a JSON array of Karma items as feedback does nothing.
Will investigate the server-side implementation ...

Looks like filing testcase feedback via API is blocked by testcase IDs not being exposed in JSON responses:
https://github.com/fedora-infra/bodhi/issues/3888

Should be fixed by:

for bugs: https://github.com/ironthree/bodhi-rs/commit/08d1ff556b031310c2e98e72f7d98d918964ffbe

for test cases: https://github.com/ironthree/bodhi-rs/commit/4fa663560eca9df9392d2e4d07a3cbc8af60729f

Actually, it's not fixed. :frowning:


fix bank/trade withdraw-x

-fix incomplete "Offer/Deposit/Withdraw-X" sequence in Trade.offer(), Bank.deposit(), Bank.withdraw()
-change interact to "Offer-All" when >= quantity to offer instead of just > quantity in Trade.offer()

Change Worlds class to prevent spamming open/closing of world menu interface on laggy network connections by not ignoring result of Static.client.loadWorlds()


Can't use database from importer

First of all, I'm new to NodeJS development. I'm liking it so far (except for a few annoyances here and there).
I am extending development of nodebb-plugin-import-ipboard (forked and will send a PR once it's done) to support a bunch of stuff the current plugin does not currently support, for instance:

IPB replies which are in a special blockquote format.
Spoiler blocks
Mentions
A few more things...

On my nodebb-plugin-import-ipboard/index.js file, which I'm requiring from a manual test.js file (so it's not running inside NodeBB!), I placed a:
var db = require('nodebb-plugin-import/server/db');
But when I try to use it like this:
var imported_post = db.getObject("_imported_post:1566");
I just get "undefined".
I can see on the debugger variables Redis is loaded (but I don't know if it was loaded correctly.)
I also tried loading data instead of db:
var data = require('nodebb-plugin-import/server/data');
and
var imported_post = data.getImportedPost("1566");
And I just get undefined.
Can someone tell me what I'm doing wrong?
Thanks!

Commit your changes, ill take a look.
by the way, the import plugin does support spolier blocks, mentions and blockquotes if they are BBcode or HTML, what is the format that IPB uses? can you share few examples?

Newer versions of IPB do not use BBCode by default, they encourage otherwise.
Here's a reply with a spoiler block:

Olha, eu assisti o Yu-gi-oh GX, até que foi legalzinho. Fica a seu critério assistir ou não.

Eu achei brisado demais

[spoiler]Escola de Monstros  de Duelo? huashua tá parecendo Pokémon, cade escolas normais? A taxa de analfabetismo deve ser grande :ha: [/spoiler]

Here's a mention:
@[member="Kaitei"]

Here's the commit:
https://github.com/Fidelix/nodebb-plugin-import-ipboard/commit/ac29927b715d40f98abc5cf8c09bcd1b7d232d79
I'm only just getting started, so there isn't much yet, and it's not properly organized...

ill take a look this weekend

@Fidelix - the importer plugin imports all content untouched. So You can run the import normally, then put this script below in a .js script and run it.
// assuming this script in the nodebb-plugin-import directory

// NOTE: this is NOT a complete script, just a hint.

// load my custom data module that has many iterative helpers
var Data = require ('./server/data.js')

// using your regex here, I haven't really tested it
// I would always recommend against parsing HTML via regex, it never works right, even when you think it does.
var ipb_reply_ex = /
([\s\S]+?)<\/blockquote>/gi;

Data.eachPost(function(post, next) {
        // 'post' is the NodeBB post hash, but augmented with the importer stuff
        // 'next' is your callback function, when you're done from this specific record
       var new_content = '';
       var reply_matches = ipb_reply_ex.exec(post._imported_content);
        if (reply_matches && reply_matches.length == 3) {
             // let's just assume reply_matches[1] is your _imported_post id,
            Data.getImportedPost(reply_matches[1], function (err, _imported_post) {
               if (err) { // if there is an error, maybe that specific post was never imported for other reasons.
                  // just call next to skip it - or you can choose to parse it without the pid
                  return next();
               }

                // no error, great, the _imported_post has the original _pid and the new pid
               // you can start building your string
              // _imported_post.pid is the new post id
              // etc ....  build new_content
             ......
             .......
             ........

              // assuming you have the new content, you can now save

              Posts.setPostFields(_imported_post.pid, {content: new_content}, function (err) {
                  if (err) {
                       return next(err);
                  }
                  next(); // post saved!
              });
            });
        } else {
           // if there isn't a match, you still want to call next() otherwise, it would hang
           next();
        }
    },
    {
        async: true, // make sure each set of iterations waits for the next batch
        eachLimit:  10 // limit 10 at the same time or whatever
    },
    function (err) {
         // when ALL of them are done or an error occurs
         if (err) {
             throw err;
         }
         console.log("DONE!!");
   }
);

but why?
Why do you need to reference the old post ids? isn't the username enough? If you want, the Importer have a built in converter to convert the blockquotes to Markdown. If you want I can just add support for data-author to quote the Author. @bdharrington7 recently added support for rel atttribute as the author
Also, the [spolier]is also supported, this one is bbcode.
As for the mentions, you don't have to write a script, we can write a quick custom JS regex replacement to run in each post import, See screenshot.

Someone recently import IPB which was a mix of html and bbcode together
https://github.com/akhoury/nodebb-plugin-import/issues/112

@akhoury this is awesome, thanks for all the tips and all the help.
The problem with the username is that they're not always correct - some users can change usernames on IPB, and IPB has different requirements than NodeBB. IPB accepts spaces and a bunch of special characters on usernames (I know, it sucks), and NodeBB does not, so the usernames on NodeBB are different than what they were on IPB after the conversion.
Also, on IPB, when you reply to another post you can just click on the title of the reply blockquote and it takes you to the reply post. Would be nice to have that as well.
For the spoiler stuff, you're right. A simple regex replacement would suffice, but I think it would be nice to have this in the importer as an option (not forced!) to keep things simpler.
I will try to post-process the posts as you're suggesting, and I'll let you know if I succeed.

This is the code I'm using:
https://gist.github.com/Fidelix/5b860d9be476d4fc18df
I know, not very pretty, but it seems to work. Perhaps this will help other people in the future.
I'll try to keep the gist updated.


Could you please provide a tutorial about how to compile mxnet with cpp package on win10?

I tried to compile mxnet with cpp package on win10, vs2015 for many times, but I have never succeed.  Could you please provide a tutorial about building mxnet with cpp package, opencv, and cuda on windows?

@EternalSaga did you solve this issue?

You can refer to this issue post by me.

@EternalSaga oh. thank you. It is so helpful for me!
Can i ask one more question?
Is new "include" folder created during building mxnet?
I successfully build libmxnet.lib and dll (i sovled op.h problem individually), but
no "include" folder was made.
Should I construct include folder manually?

@EternalSaga oh. thank you. It is so helpful for me!
Can i ask one more question?
Is new "include" folder created during building mxnet?
I successfully build libmxnet.lib and dll (i sovled op.h problem individually), but
no "include" folder was made.
Should I construct include folder manually?

The headers are generated by the OpWrapperGenerator.py script in mxnet.

@EternalSaga oh. thank you. It is so helpful for me!
Can i ask one more question?
Is new "include" folder created during building mxnet?
I successfully build libmxnet.lib and dll (i sovled op.h problem individually), but
no "include" folder was made.
Should I construct include folder manually?

Hi ,@visionNoob ,How to solve this problem ?
line 761 is 'enum {SIZE = N};'.


Improve performance of some pages by lazy loading images

Lazy loading makes web pages load images only when they are actually
needed (when they need to be displayed to the user), thus saving
resources for both host and users and improving performances for the
latter.

Page
Page weight before (load time)
Page weight after (load time)
Space savings (time savings)

index.html
474 kB (546 ms)
214 kB (373 ms)
-54% (-31%)

get-started/what-is-monero/index.md
320 kB (548 ms)
246 kB (525 ms)
-23% (-4%)

get-started/accepting/index.md
254 kB (747 ms)
193 kB (536 ms)
-24% (-28%)

downloads/index.md
397 kB (595 ms)
243 kB (383 ms)
-38% (-35%)

(tests ran locally)
This should work our of the box on Firefox and Chrome.
https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading

I think eager loading might actually be preferred here to avoid any CLS issues. You might not agree with me, but I definitely think it's something worth considering.

I believe best practice is to eager load images above the fold.

I'm not sure it would be beneficial. The point of lazy loading is to show immediately the important stuff and the rest as soon as possible. We have few images in these pages, if we eager load the first 1 or 2, i'm afraid the performance improvements wouldn't be as significative.

I only mentioned it because it's recommended on this page, but since we don't use any JavaScript, it might not be an issue.


Automatically calibrate cursor position to match head tilt (Bonus: generalizes head tilt mode)

Currently, the user's face is detected in order to place tracking points, and optical flow is then used to track these points on your face, and only the optical flow influences the final cursor movement.
In this existing scheme:

Cursor movement is directly affected by the camera's perspective.
The head's tilt is not used directly.
Translating your head has as much of an affect as tilting it (or more).
When the cursor runs into the edge of the screen, it stops, whereas your head can continue of course, and this naturally leads to a way of "calibrating" on the fly to a more comfortable range of head movement.
However, you have to think about it a bit.

What if we auto-calibrated based on the head tracker's face orientation, perhaps making adjustments only during otherwise-detected movement?
Like a perpetual motion machine's secret magnetic "kick", or a magician's slight of hand, it would subtly adjust the mouse position so that it ends up at the edges of the screen when tilted a certain amount, and centered when facing forward.
Drawbacks:

It may not actually feel subtle in practice, when strong enough to work, or may feel subtly wrong and degrade the experience overall in a way that's hard to put your finger on, since it's like a magic trick.
Tilt is relative to camera position! So this auto-calibration would need its own calibration.
This may just be overcomplicating things.

Formula:
Assuming the tilt can be normalized, or assuming the camera and screen and face are directly in line with each other,
a formula for the other part might be fairly simple, something like
adjusted_x = x + (abs(delta_x) * auto_calibrate_strength * (x_implied_by_tilt - x)
where x_implied_by_tilt is the x position on the screen that would be mapped purely from the head tilt
where delta_x = x - x_previous
where x is the latest x position from optical flow tracking
It's probably a little more complicated, like maybe the delta_x factor should be raised to some power, or clamped, etc.
On the plus side, it could be made so that with auto_calibrate_strength = 1, it purely uses the head tilt, so a separate head tilt mode wouldn't be needed. (Again, I'm not sure about the delta_x part in regard to this.)

Maybe it should only make adjustments in the direction that you're already moving,
i.e. if sign(delta_x) = sign(x_implied_by_tilt - x)
I think that would help with the sleight of hand, although I'm still not sure if sleight of hand is desirable.
If nothing else, it would be an interesting experiment!


[Bug] NamedSize on BadgeView

Description
When declaring a BadgeView in Xaml, we cannot use NamedSize for the FontSize property.
Steps to Reproduce

Declare a BadgeView in Xaml
In the FontSize property put Medium

Expected Behavior
Like Xamarin.Forms controls, be abble to use NamedSize
Actual Behavior
Unable to use named size
Basic Information

Version with issue: All
Last known good version: None

Workaround

Set it in code behind using : Device.GetNamedSize(NamedSize.Medium, typeof(Label))
Reproduction imagery

Reproduction Link

@Seuleuzeuh are you willing to take this one on for yourself? If not, I could easily fix this one as well, as I'll also will be implementing this on the Shield view #482

Already did in #486


Styling knitr reports

@andkov, you may remember @genevamarshall.  She's been getting into reports recently and created some neat ones with knitrBootstrap.  I'm a little concerned that there hasn't been an real development since spring 2014.  Do you know of anything similar that's still being developed?  I'd hate for her to invest time into learning it, if it's not going to be maintained.  Her preliminary stuff looks great so far.
Here are some links, if that helps jog your memory:

http://stackoverflow.com/questions/35653260/using-rmarkdown-with-css-from-cdn
https://bookdown.org/yihui/bookdown/theming.html#
http://rmarkdown.rstudio.com/html_document_format.html
http://yihui.name/knitr/demo/showcase/

@wibeasley @genevamarshall
There were two news that I saw on twitter feeds that might be relevant.
First, there have been developments to simplify  webpage publishing with GitHub pages : https://github.com/blog/2289-publishing-with-github-pages-now-as-easy-as-1-2-3. One does not need to create a gh-pages branch, but can publish directly from the master.
Secondly, @yihui recently released a new package for publishing presentations https://github.com/yihui/xaringan. See a tutorial-documentation here.  I haven't been able to test it out yet,  so i'm looking forward to hearing any feedback.
As for the reports themselves, I didn't see anything, which is, of course, can't rule out there there are no developments. However, i'm monitoring feeds of some of the Rstudio employees and other data scientist, will let you know if anything catches my eye in the respect you've mentioned.

Thanks, @andkov and @wibeasley !  The first link (Publishing with GitHub Pages) sounds like it would be really convenient once we're ready to put everything online. I wonder if there's some way we could get it to generate the html without needing to publish immediately.
Wow that xaringan package is the first one I've seen with so many manga references...or with any. I'm not quite ready to go down the rabbit hole for presentations, but it looks really cool. :)

@wibeasley have you used Shiny for static reports?
I guess I was under the impression initially that everything on Shiny needed to be interactive with bells and whistles and slider bars and ... I only saw your MIECHV example, which seems pretty complex, but as I'm looking through the gallery, it appears you can insert .md, .html, .txt, whatever. Do you think it's a good venue for the kinds of reports we're doing?
I like that you can specify your layout just like a regular webpage (as opposed to maybe being able to do that for your plots using the ggplot2 grids, which would be basically unreadable on a smaller screen...I assume?).
I see that using shinythemes , you can employ the same templates used in knitrbootstrap.


Does not detect restart of charging session while 'trying to sleep'

Describe the bug
Using Streaming-API: When car stops charging due to reaching chargelimit, after a few minutes/seconds (i don't know exactly) TeslaMate shows car is trying to sleep for XX. When I now open the app (car not sleeping) and set the chargelimit to a higher SOC and the car starts charging again TeslaMate does not detect the charge start.
Expected behavior
Tesla Mate should change state from 'trying to sleep' to 'charging'
How to reproduce it (as minimally and precisely as possible):

Use Streaming-API
Plug in the car and let it charge
Reduce charge limit so car stops charging due to higher SOC than charge limit
Wait until TeslaMate shows 'Trying to sleep'
Increase the charge limit via Tesla App to a higher SOC than current SOC
Car starts charging but TeslaMate still shows 'trying to sleep'

Environment

TeslaMate version: 1.21.5
Type of installation: Docker

Same issue when you park the car, wait until TeslaMate UI shows 'trying to sleep' and then plug in the car. Start of charging session is not detected.

Related to / duplicate of #1274. The car can only fall asleep if no queries are made via the API. TelsaMate can only detect (re)started charging via the Streaming API. But this requires that the API actually returns any data at that point in time which sometimes may not be the case for reasons beyond TeslaMate's control.


cannot connect to obs in linux

System info
Kernel: 5.15.0-46-generic
OBS Studio - 27.2.4 (linux)
code: 1.70.2, e4503b30fc78200f846c62cf8091b76ff5547662, x64
version: 0.1.2

clicking Connect to OBS button does nothing.
obs switcher: Connect to OBS does nothing.
no log, no error popups (it did pop up, but gone after i've set up connection password), no everything.
can connect to websocket via wscat -c "ws://localhost:4455", so obs websocket is working.

same in windows with the built in websocket of OBS v28 (wscat works fine)

Seems like this extension is broken on OBS v28<=

obs-websocket shows the following output:
13:08:23.969: [obs-websocket] [WebSocketServer::onMessage] Client [::ffff:<IP_ADDRESS>]:57172 appears to be running a pre-5.0.0 protocol.
13:08:23.969: [obs-websocket] [WebSocketServer::onClose] WebSocket client `[::ffff:<IP_ADDRESS>]:57172` has disconnected with code `4010` and reason: You appear to be attempting to connect with the pre-5.0.0 plugin protocol. Check to make sure your client is updated.

https://github.com/ThomasK33/vscode-obs-switcher/pull/265


scripts: elf_helper.py: Simplify tests with chained comparisons

'a < b and b < c' can be simplified to 'a < b < c' in Python.
Fixes this pylint warning:
R1716: Simplify chained comparison between the operands
(chained-comparison)

Fixing pylint warnings for a CI check.

Thanks


Configure remark as default processor

Initial checklist

[x] I read the support docs
[x] I read the contributing guide
[x] I agree to follow the code of conduct
[x] I searched issues and couldn’t find anything (or linked relevant results below)
[x] If applicable, I’ve added docs and tests

Description of changes
This is used as a fallback if remark can’t be resolved.
Closes #6

Hey, we are also getting the same issue.
When are you planning to publish the fix ?

Once the next major versions of remark-lint are released.


ledger_device_sdk rust doc generate failed

Doc at https://docs.rs/crate/ledger_device_sdk/latest meaning doc generate failed, it would be nice to fix it.

Also the rust-analyzer not work when using docker image


Lasers passover objects like projectiles unless the target is clicked on

About the PR

Makes lasers function like projectiles and pass over objects
Why / Balance

Create consistency within ranged weapons. Fixes #28494
Technical details

gaaahhh... adds a check when selecting the result of a raycast when it creates the laser that checks if the object should be hit or not.
Media

https://github.com/space-wizards/space-station-14/assets/83733158/d4f8b698-6d79-44a8-a35d-d8f44f13ba88

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Uhh... I sure hope none
Changelog

:cl:

tweak: Lasers now pass over things unless clicked like projectiles

Why does the Crate Reflect?

Why does the Crate Reflect?

That is just something that crates do, they have done that forever. No clue why they are like that but this pr does not add or touch crates.

Why does the Crate Reflect? Also thank you for killing crate shields

That is just something that crates do, they have done that forever. No clue why they are like that but this pr does not add or touch crates.

fixes https://github.com/space-wizards/space-station-14/issues/27988


Sticky item with different layout

I want to know if I can use this library and how to create the following list effect.
I want always the first displayed item from a list (lets call this a focused item) to have a different layout then the other items. When I scroll each item will receive focus, one by one.
For example if I have items 1,2,3 displayed on screen, item 1 will have focus and a different layout. When I scroll down item 1 will be replaced in the focused layout with item 2 and on screen we will have: item 2 (has focus and is displayed with a different layout in top part of the list), items 3 and 4. If I scroll again item 2 will be replaced in the focused layout with item 3 and on screen we will have: item 3 (has focus and is displayed with a different layout in top part of the list), items 4 and 5.
A solution that I thought of is to use the sticky functionality and make each list item a header without items. Any other suggestions?

Hi @cristin, not clear at all what you want to achieve. I don't understand your explanation. But please choose better your words, when you introduce your problem. However:

You can create any different items with their names and specific layout as much as you desire.
Focus term is not appropriate in the context for lists.
You wanted to say, "when you scroll UP item 1 is replaced by item 2"?
You can't create the sticky effect only with headers because sections have no subitems, so the first headerItem will just scroll up as any normal item because the second headerItem will push it up when they are adjacent, so there's no sense to create headers...
What do you mean with "if you scroll AGAIN item2" ?? how much big are these items?
The layout displayed is always attached to the item. Layout cannot be changed with the scroll but maybe with a state, so that you can change layout if item has different [custom] state...
When sticky, a headerItem layout is just translated and don't change layout, why it should change?


JSONs class: compatibility with the previous versions of the json files

@doutriaux1 @gleckler1 The JSONs class (in io/base.py) does not seem to work on the old structures of the jsons files. At least with some of the ones that @gleckler1 gave me with all CMIP5 historical results.
Should we work on having the right structure in the json files or on the JSONs class to be able to ingest the different structures that have been produced by the PMP?

works for me on the json files you sent me.

anyhow we have a writter that wotks for he future json too.

On all the variables? It only works for me on a subset (the ones with the metrics names without the region)

yes for all variables but because I have a fix for #435 which is probably your issue.

I guess not, for instance the variable rlds comes out empty of the JSONs class, although there are data in the json file.

@doutriaux1 @jservonnat   I suspect this results from not having and estimate of rlds in the obs dataset..... this error should be trapped

@gleckler1 @doutriaux1 I haven't add any issues with the JSONs class since the last update. I will provide you with some feedbacks after more testing but it sounds like the last version works pretty well.

@gleckler1 @doutriaux1 I haven't add any issues with the JSONs class since the last update. I will provide you with some feedbacks after more testing but it sounds like the last version works pretty well.

@gleckler1 @doutriaux1 I haven't add any issues with the JSONs class since the last update. I will provide you with some feedbacks after more testing but it sounds like the last version works pretty well.

@gleckler1 @doutriaux1 I haven't add any issues with the JSONs class since the last update. I will provide you with some feedbacks after more testing but it sounds like the last version works pretty well.

@jservonnat @doutriaux1 Sounds like we can close this for now


[FindACrewBridge] Implement bridge for findacrew.net

My little contribution to rss-bridge ⛵

Thank you very much for the bridge ! Just a few notes:

Could you add images to the enclosures ?
You could also fill the item's tags so they can be managed by the RSS client

Yes sure no problem, can I just have an example of item's tags? I don't find any information about this in the wiki.

RSS-Bridge calls them categories. They are mentioned here.
Example: https://github.com/RSS-Bridge/rss-bridge/blob/1a7a7bad98f7fb80f87adc4a244aae4fc07a9354/bridges/PikabuBridge.php#L81-L91

Ok done for this one

Thank you very much for the bridge and the reactivity !
Merged !


composer install failed - Laravel v5.7.20

Fresh install of Laravel v5.7.20...
$ composer require vinkla/instagram php-http/message php-http/guzzle6-adapter
Using version ^9.1 for vinkla/instagram
Using version ^1.7 for php-http/message
Using version ^2.0 for php-http/guzzle6-adapter
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - nexmo/client 1.6.0 requires php-http/guzzle6-adapter ^1.0 -> satisfiable by php-http/guzzle6-adapter[v1.0.0, v1.1.0, v1.1.1] but these conflict with your requirements or minimum-stability.
    - nexmo/client 1.6.0 requires php-http/guzzle6-adapter ^1.0 -> satisfiable by php-http/guzzle6-adapter[v1.0.0, v1.1.0, v1.1.1] but these conflict with your requirements or minimum-stability.
    - nexmo/client 1.6.0 requires php-http/guzzle6-adapter ^1.0 -> satisfiable by php-http/guzzle6-adapter[v1.0.0, v1.1.0, v1.1.1] but these conflict with your requirements or minimum-stability.
    - Installation request for nexmo/client (locked at 1.6.0) -> satisfiable by nexmo/client[1.6.0].

Installation failed, reverting ./composer.json to its original content.

this will works  php-http/guzzle6-adapter "^1.0"


ros_control changes for HERB

@mkoval this "works" in simulation, but haven't tested on the real robot yet. Take a look and see if things make sense.
This is required by personalrobotics/herbpy#63

This now works on HERB! Last question is should I move wam.py to herbpy?

Nice!  I think we should move it over, in accordance with moving the mico stuff to adapy

We need to merge this pull request simultaneously with https://github.com/personalrobotics/herbpy/pull/63 and https://github.com/personalrobotics/herb_description/pull/25.
I also agree with @psigen that most of this functionality should be moved into PrPy. Can you do that as part of this pull request so we can avoid a second set of breaking changes?


Simplified code

I deleted a few lines of code
and adjusted the order of one line of code,
in order to simplify the classification of strings into 3 types.

Thanks, but I feel the original conveys the conditions being handled better (subjective!).


Add support for asyncronous assertion functions and methods

Suggestion

🔍 Search Terms

assertion
method
function
async
promise

✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Allow functions and methods of the signature (...args: any[]) => Promise<asserts condition> which mean that condition is true if the promise resolves.
📃 Motivating Example

Sometimes it is necessary to call asynchronous functions to make sure that some field is assigned. For instance, a somewhat common pattern is to have an async ensureFieldX(): Promise<void> method and it would be nice if typescript knew that after that method has resolved (and not rejected).
class Foo {
  private bar: string | undefined;

  async getBar(): Promise<string> {
    await this.ensureBar();

    return this.bar;
  }

  private async ensureBar(): Promise<asserts this is (Foo & { bar: string })> {
     ...
  }
}

💻 Use Cases

See motivating example...
Could also be extended to asynchronous user defined type guards but I don't think that is as important.

In this case you could use logical assignment as workaround:
class Foo {
  private bar: string | undefined;

  async getBar(): Promise<string> {
    return this.bar ||= await this.createBar();
  }

  private async createBar(): Promise<string> {
     //...
  }
}

You could indeed but that is a bit cumbersome.

Duplicate of #37681.


Prevent netcdfplus from trying to load netcdfplus CVs as SimStore CVs

As of #995, it appears that netcdfplus tries to load CVs as SimStore CVs. This is apparently because netcdfplus maps a class name (not fully qualified; just the class name) to a class. And once SimStore CVs were found in the chain of subclasses, netcdfplus replaced the old CVs with the new ones. This would lead to errors when loading old CVs (which do not have the same storage dict as new CVs).
The solution is to exclude classes in the openpathsampling.experimental.storage subpackage from being listed as classes that netcdfplus can load.

I have no idea why GHA isn't running this... going to close/reopen to see if that triggers a build.

This is ready for review and comment. I will leave it open for at least 24 hours, merging no earlier than Thu 08 Apr 16:00 GMT (18:00 local).
(Forgot to add that once tests passed!)


Catch invalid date range for score and value queries and return 400

Example:

start_date = 2010-02-20
end_date = 2010-02-31 <-- No such thing

Return 400 with message "Invalid date range"

merged to develop


Ingest Budgets Index

Made changes as per the Open Source Docs Migration Plan.
Purpose of this pull request
This pull request (PR) to the Ingest Budgets Index under Ingestion and Volume.
Issue number:

Select the type of change:

[ ] Minor Changes - Typos, formatting, slight revisions
[ ] Update Content - Revisions and updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - Updates, maintenance, and new packages for the site, Gatsby, React, etc

@kimsauce any action needed from me?

@kimsauce any action needed from me?

nope I've fixed the images for all of them


Token Id missing for Oauth2 Authorization

I encountered an issue of token missing error when following the guide A Quick Guide To Using Cloud Foundry UAA  and demo code,  after I input the username and secret, select authorities and click Authorize button, then this error pop out. Is there any details I missed , can you please help point it out?

Hi @janecd  I can't reproduce the issue on our codebase, so I suggest making sure you followed all the steps in the tutorial. The error message suggests that either the openid scope is not configured for the client defined in the UAA server, or the openid permission was not granted by the user when logging in.

@lor6 thanks for your suggestion,  I wonder maybe it's mainly caused  by the difference  of UAA versions and configurations.


add: Container Components section

I love the dead simple example.
Would it be worth adding a note about Flux? Something along the lines of
| If you have multiple components reaching for the same data, it's a smell that you should move your data retrieval out of the container component, and into a flux action/util/store

Thanks!
I agree that it might be a nice introduction to Flux. Are there any posts or docs that you think would be good to link here? A Case for Flux is good but it's a little long for a first introduction.

Just realized that this example is in ES2015, while all the others use createClass.


Does it work with the latest typescript version?

Hi.
I get strange assertion errors inside typescript.js with no hints on their origins...

Not working now, thanks for your reminder.
Because I moved to @babel/preset-typescript from typescript, this package is no longer maintained.
But if anyone is still using it, PR is welcome.

I see, thanks. Pity, because there is a trend of getting rid of Babel and of going TS-only since it's good enough already and quickly adsorbs the upcoming Ecmascript changes.


Display a notification on the sidebarToggle button for PDF documents with outline/attachments

This is something that I've had lying around for quite a while locally, and I figured that I might as well just submit it to see if others think there's value in it!
Re: issues #5961 and #7025.

Display a notification on the sidebarToggle button for PDF documents with outline/attachments

A longstanding issue with the viewer is that you cannot tell if a PDF document includes an outline and/or attachments without actually opening the sidebar.
This patch contains a suggested solution for that, by displaying an hide-on-interaction notification on the sidebarToggle button (and the relevant sidebar view buttons). Note that this was inspired by e.g. the update notification that is displayed on the menu button in Firefox.
For an initial implementation, I've tried to do this in such a way that the notification isn't too distracting. Without being an UX expert, I don't think that we'd want something too in-your-face, in order to keep the viewer toolbars reasonable clean. (We probably do not want e.g. an entire notification bar in these situations, since that would take up unnecessary screen space and require actions from the user to close.)
However it's certainly possible that the current notification might simply be too inconspicuous to be truly helpful to users, but we could probably iterate on that if the feature itself is deemed useful.
One idea could be to e.g. use a modified tooltip for the sidebarToggle, e.g. "Toggle Sidebar (outline and/or attachments available)", when the notification is used.

Append the contents of FileAttachment annotations to the attachments view of the sidebar, for easier access to the embedded files

Other PDF viewers, e.g. Adobe Reader, seem to append FileAttachments to their attachments views.
One obvious difference in PDF.js is that we cannot append all the annotations on document load, since that would require parsing every page. Despite that, it still seems like a good idea to add FileAttachments, since it's thus possible to access all the various types of attachments from a single place.
Note: With the previous patch we display a notification when a FileAttachment is added to the sidebar, which thus makes appending the contents of these annotations to the sidebar slightly more visible/useful.

/botio-linux preview

Awesome work! I like the idea of this patch. I'm wondering: can we do the green indicator symbol with just CSS instead of using an image?

Awesome work! I like the idea of this patch.

Thanks for the kind words!

I'm wondering: can we do the green indicator symbol with just CSS instead of using an image?

Really nice idea; I've attempted to do implement this, and it seems to work just fine.
/botio-windows preview

The review comments have now been addressed; @timvandermeij thanks for many good review comments!
Note that I added one new thing here: a PDFSidebar parameter to disable the notification(s). I don't think that we really need to make it a regular viewe5r preference, but I figured that it cannot hurt to have a simple way to disable this feature (e.g. from within app.js).
/botio-linux preview

/botio-linux preview

/botio test

The bots fail at annotation-fileattachment.pdf. I don't think that's coincidence, but opening that file manually in the viewer works just fine. Any ideas as to why this fails here?

The bots fail at annotation-fileattachment.pdf. I don't think that's coincidence, but opening that file manually in the viewer works just fine. Any ideas as to why this fails here?

Normally I take great care to run all applicable tests locally, but here I forgot to do that since I didn't think that any of changes in the src/ folder would matter. Obviously I was wrong, since the LinkServiceMock used by the test-suite was missing (now) required methods.
The best solution would probably be if we could use the SimpleLinkService in the tests, but for now I've amended the LinkServiceMock in test/driver.js with all the missing methods.
@timvandermeij Thanks for pointing out exactly where the tests failed, since that helped me to very quickly pinpoint the exact location of the problem.

/botio test

Nice work, thanks!

@timvandermeij As always: Thank you for reviewing this, and other of my PRs!


(Faster_Kids!!!) Free Robux Generator 2023 Get 200K

Description
100% generator working, ' as much as you want.
They say technology is good, but at the same time, if not well applied, it can become a challenge and a ground for fraudsters to thrive. This is because, in the recent, there have been so many fake sites that claim to offer Robux for free on Roblox gamers which may ends up messing up with the players. The main contributor may merely be because, Roblox popularity is growing in a very high rate and at the same time, some so many desperate players are ready to try up anything to be on the go. This, however, should not be a reason to worry any gamer as there are also many good roblox generators that provide services to people from all over the world. The original and working generators have a few features in common some of which include: •They are compatible with both Android and iOS devices. They should have a team in place to check the compatibility of their product to ensure they are not selective. •Easy to use: The primary focus of all generator providers should be to make the life of gamers easy and comfortable; hence, any product they launch should be able to reach this goal. •Easy to access: Although there are some steps involved in obtaining any generator, the levels should be very minimal and easy to understand (should be easy for both young and old). Before stepping up to the generators-searching field, it is essential first to have a clear understanding of the game itself. This is because you might end up more confused and lost at the end of the process if you don't have a clear picture of what you are looking for. In the beginning, you might not have any need of getting the free Robux, but with time as the game grows sweeter and you get more connected even to other players, they might come in handy. Therefore, it is advisable to have a good game plan and be forearmed with the knowledge on how to source for them. In this tool page, you can generate free robux using our "Free Robux Generator" and also you will know about roblox and robux. Roblox is the game where the player would be able to play along with other players and then compete on some other different levels as well. Roblox is one of the most popular games that have more than 70 million active users for sure. Most of these players are teenagers who are aged between 8 and 13 years old. There are so many different levels and challenges that the players can go for along with some other Easter egg hunts as well. There is no doubt that the fantastic game is filled with lots of other games that would have different maps, models, and levels. So, you will not be just playing one game but a lot of others that are available on Roblox. That is one of the main reasons why these games are so popular. This is not even the best part of people; most of these games are free for people to play. Doesn't that seem to be the most exciting thing ever? Yes, you can find lots of games to choose from and play them for free. However, there are some things that you might need, and we are going to talk about it right here. You are going to need a thing called Robux, and we are going to tell you how to get free robux using our latest free robux generator tool which is 101% working. What Is A Robux? While you might not need to pay to play in Roblox, there are a thing called Robux, which you are going to need, and it is the main currency that you will need to make sure that you can play the games in Roblox. This is a very fantastic currency, which will be very important to make sure that you can be on the game of Roblox, and that is why most people are concerned about getting this currency in the best way. There are some methods with which you will be able to get the Roblox without any problem easily, and there is not a
single speck of doubt that you will have no trouble in getting what you want. No matter what game you want to play, with the help of Robux, it is all possible. So, don't you think it should be your ultimate goal to generate more Robux so that you can try out most of the games that Roblox provides you with What Is The Use Of Robux In Roblox? When it comes to finding out the right type of currency on Roblox, there is not a single speck of doubt that you would want to have all the right things for sure. So, this is where Robux comes to help you out in the best way. When you have Robux, there is not a single speck of doubt that you will be able to have some of the best things in the best way. With the help of the Robux, you will be able to play any game that you want to and that too, without any trouble or hassle. Plus, you will not have to pay any money for it as well. This is one of the best things about the Roblox games, and we are pretty sure about the fact that you are going to love to play the game for sure. That is why we are going to tell you how you are going to get the Robux in the best way with the help of our Robux generator. The process is pretty simple, and you will have all the details for sure. What is Free Robux Generator? Now that you know how important Robux is, we are sure that you would want to know how to create these Robux in the first place. Well,
there are some methods with the help of which you will be able to create the Robux and that too in the best way. Well, we are going to talk about these ways to you right now. Don't worry; we are going to provide you with a straightforward method so that you can generate the Robux in the best ways. We have a Robux generator where you will be able to make sure that you can create amazing Robux and that too without paying any money. Doesn't that seem to be an amazing option, people? We are pretty sure that you would want to try it out in the best way. With the help of the Robux generator, you can get this amazing currency any time you want to have it. How To Use Free Robux Generator? Now you must be thinking about how to get these Robux for free, and there is no doubt that the options are too many. Follow the steps to generate free robux direct into your roblox account 1.Now enter your account username 2.Now select server 3.Select robux amount 4.And then, click on "generate" button Now it will take hardly one minute to transfer robux into your account without survey or human verification. How Does Free Robux Generator Work? We are sure that you want to know how the Robux generator tends to work now. However, we are going to tell you a little bit about it in detail. This is a straightforward process where the generator would go to the Robux server, and it would connect with it to produce the Robux for you and that too for free. All you need to do is have the Robux generator, and you will have all the details for sure. It is needless to say that you will be able to have many benefits for sure. Conclusion So, that is all you need to know about the Robux generator. We hope that you can use it in the
best way so that you can have all the benefits in one place. Make sure to follow all the tips which have for you to get better results. Free Roblox Robux Generator No Survey Without Human Verification.How to Get Free Robux Generator 2023. Free Robux Generator -free robux-roblox robux Hack generator-free robux hack generator-free robux- robux generator no human verification. Free Roblox Robux Hack Generator 100% Working Robux Generator No Survey.Roblox Robux Generator No Survey.Free Robux Roblox Generator. Robux Generator for Roblox FREE ROBUX.Free Robux Codes, Free Robux Hack Free Robux Generator No Survey 2023. Roblox Robux HackGenerator No Human Verification. FREE ROBUX NO SURVEY 2023. Earn Free Robux by using our latest tool that generates for Roblox.Free Robux Codes, Free Robux Hack, Free Robux, Free Roblox Hacker, Free Robux Generator, Free Robux Generator Hack., Free Robux Hack Generator, Roblox Hack, Roblox Hack Robux, Roblox Hack Jailbreak, Roblox Hack Free Robux, Roblox Generator , Roblox Generator Robux, Roblox Free Robux, Roblox Robux Hack, Roblox Robux Generator, Roblox Robux Codes, Roblox Robux Free, Robux Roblox, Robux Free, Robux Generator Free, Robux Codes, Robux Gift card, Robux Giver, Roblox Code Redeem, Roblox Redeem Codes, Get Free Robux Generator-free Roblox Robux
Generator-free robux hack generatorfree robux- robux generator no human verification.Get free robux - working free roblox robux generator 2023 without human verification - Easy way to get free Robux in Roblox game. Get our complimentary free robux with the first-rate Roblox generator.  Allow me inform you, there is no much better web site for the Roblox Generator, where you can right away secure free robux. Our robux Generator 2023 has a first-class
React Native Version
NEW
Output of npx react-native info
new
Steps to reproduce
new
Snack, code example, screenshot, or link to a repository
new

100% FREE**Roblox Robux Generator 2023
Open
01 Seconds ago - Roblox Robux Generator 100% Working Robux Generator No Survey. Roblox [Free Robux Generator 2023 FREE]
Free Robux Generator 2023 FREE
>>>CLICK HERE TO GENERATE NOW**

Generator Free Robux Codes, Free Robux, Free Robux, Free Robux Generator, Free Robux Generator. To get Robux cash, you can search online for generators. It's easy to get Robux cash. Use our Robux This generator is only used to finish a few offers; nothing will be given to you Free Robux Generator, Free Robux Generator. To get Robux cash, you can search online for generators. It's easy to get Robux cash. Use our Robux Generator to make perpetual Robux RRegister to receive Roblox Generator for free. Roblox Generator is only available to endorsers for the interest program.
for free. It is super simpleto use, and we are sure you want to learn how it works. This revolutionary process will ensure that you never need to worry aboutROBUX again. ROBUX Generator will automatically go to the server to generate them for your free ROBUX Generator This methodwill allow you to obtain ROBUX that isn't yet available in your shop.ROBLOX ROBUX GENERATOR, a web-based program, is 100% SECURE. ROBUX, a type of in-game currency used to enhanceyour game experience s mentioned above.Different packages have different amounts of ROBUX. However, it's slow to earnROBUX through tasks and surveys.You can either purchase ROBUX from Roblox directly or a Roblox subscription. You can also purchase ROBUX from the side. We'lldiscuss that later. Use our online free Roblox ROBUX generator to get your ROBUX today. Receive a free ROBUX Generatorimmediately. The slow hardware update cycle of ROBUX Generator is ideal for game development. ROBLOX ROBUX GeneratorIndia is a web-based program that's 100% SECURE.
NO HUMAN VERIFICATION IS REQUIRED.Roblox does not offer free ROBUX Generators that do not require human verification. Roblox can only function with a ROBUXGenerator. You may be offered a ROBUX Generator for free. They all work in the same model that makes money every time theyare visited. Free Roblox Robux Generator 100% Working Robux Generator No Survey. Roblox Robux Generator Free RobuxCodes, Free Robux, Free Robux, Free Robux Generator, Free Robux Generator. To get Robux cash, you can search online forgenerators. It's easy to get Robux cash. Use our Robux Generator to make perpetual Robux. Register to receive Roblox Generatorfor free. Roblox Generator is only available to endorsers for the interest program.#FreeRobuxGenerator #freeRobuxGeneratornohumanverification #WorkingFreeRobuxGenerator #howtogetfreeRobux#freeRobuxgenerator2022 #freeRobuxnoverification #freeRobuxnohumanverificationMaking games can earn Robux. These creators might try to make real money by selling their benefits. Robux can be obtained in afew ways. Roblox Robux's
>>>CLICK HERE TO GENERATE NOW


Feature/rtodling/rev hgrid def backout

This revises how the saber/atlas grid is defined in relation to that of GSIbec. This is way more consistent now than before. All works in the context of fv3jedi_var.x

Thanks.