Update nan to 2.12.1

Replaces https://github.com/node-serialport/node-serialport/pull/1745
Fixes #1672
See nan changelog for release notes.

@reconbot Is that process documented somewhere?


Refactor restore DB scripts

scripts/db_copy_to_localhost.sh should call scripts/db_restore.sh rather than copy-pasting

I am having a look at this one now if you don't mind!

@iamliamc feel free to ask if the team can help with anything!

Thank you! I need to put a second genuine session in and ill update.

This is a harder one for me to test locally due to:
➜  api git:(main) ✗ npm run db:copy:prod

> db:copy:prod
> ./scripts/db_copy_to_localhost.sh prod && PG_DATABASE=opencollective_prod_snapshot npm run db:sanitize

heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/640ff464-85c3-43c6-8d57-8ef2a40f1fbf?requestor=SFMyNTY.g2gDbQAAAAw2OC4zMi4xNDYuNDduBgCoFr9phQFiAAFRgA.1euBigfMmkd16gcUhpPKs4CE_tLpRmgRvNWbRcVlgsQ
Logging in... done
 ›   Error: You do not have permission to view config vars on opencollective-prod-api. You need to have the deploy or operate permission on this app.
 ›
 ›   Error ID: forbidden


GET followers/lists

GET followers/list

You should have been asking more questions as there's no way you got this code to work! Anyway, I will merge it in and clean it up. Be sure to look at the changes I made when I commit new versions of these files. So, you can see what you were trying to achieve. You needed to read the documentation on this page a lot more closely: https://dev.twitter.com/rest/reference/get/followers/list


calling RemoveAt on an instance of HtmlNodeCollection throwing exception

I've a valid instance of HtmlNodeCollection having 78 member (retrieved using .Count) as below:
var regionRows = ...
I need to remove very first element from the regionRows.
I tried calling regionRows.RemoveAt(0), but it is throwing an exception System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
   at HtmlAgilityPack.HtmlNodeCollection.RemoveAt(Int32 index) in ..... 250

Any suggestion? I want to do it without LINQ.

Thank you for reporting.
My developer will look at this issue this week.
Best Regards,
Jonathan

Hello @goforgold ,
Could you provide an example that's not working?
My developer is not able to reproduce this issue.
Best Regards,
Jonathan

Hello @goforgold ,
Since no example has been provided, we will close this issue.
Feel free to re-open it if you can add an example,
Best Regards,
Jonathan


Sendig String/Text data

Hi,
I'm using this plugin and I can connect to my device. On the server side is running a nodejs(bleno). But I cannot send utf8 text message, in the writeCharacteristic(...). On the node side I always get: ��e value.
From another app for example: LightBlue it works fine and I can send and display utf8 text messages.
How can I send string messages?
Thanks.

I Found myself!
The key concept was: evothings.ble.toUtf8(str)


Sensor: mpr: Add Honeywell MPR driver and example

The Honeywell MPR sensor is a piezoresistive silicon pressure sensor,
which can be accessed via i2c.
https://sensing.honeywell.com/micropressure-mpr-series
Signed-off-by: Sven Herrmann<EMAIL_ADDRESS>

The PR is now split into two commits, one for the driver the other for the sample. I cleaned up the header and Kconfig files and added a node in tests/drivers/build_all/i2c.dtsi.


Add USB compatibility to LowLatencyMRC

It would be super convenient if one could use the Low Latency MRC with the HoloLens connected via USB.
I have an App that switches WiFi connections of the Lens - therefore the live capture logically stops when the Lens exits the Network of the PC. With USB, this would not occur, and I could properly present my App to other people.
Please tell me if this is possible, or maybe this feature already exists and I don't know how to configure the View.sln App? :-)

I think that UWP's have some restrictions on setting up server/client connections via USB for security purposes.
One hypothetical solution might be to get an ethernet adapter for the HoloLens and run MRC with a tethered device on a local network while going through WiFi application scenarios (Not sure if this adapter exists or ethernet tethering is possible). I'm also not sure if configuring WiFi is possible if the device is able to be tethered to a network.


VSR: Move formatting into replica.zig

Move formatting (from superblock) into replica.zig.
Rewrite WAL formatting to be async (previously used os.write()).

Previously the MessagePool was owned by the MessageBus, but this introduced a circular dependency: SuperBlock requires a MessagePool, MessageBus requires cluster, cluster is retrieved from the SuperBlock. I resolved this by moving MessagePool out and passing MessageBus a reference to the pool.
The MessageBus is required by the Replica, but must be initialized outside because we support different implementations (for now — see https://github.com/coilhq/tigerbeetle/issues/71).
But it must be initialized after the SuperBlock is opened, since it requires the cluster.

Nice resolution for the dependencies. SuperBlock could take in a MessageBus (it uses it primarily to get/unref messages in SuperBlockClientTable), but MessagePool was used instead as its easier to setup for testing than the former.

Yeah, MessagePool is better for SuperBlock — MessageBus would cause a circular dependency because it requires the cluster. (Plus using the narrower dependency is preferable in general).


[bug] WebView crashes on certain pages(STATUS ACCESS VIOLATION)

Describe the bug
The WebView crashes when you load the certain page by doing the following in initialization script(WebviewWindowBuilder::initialization_script).
Initialization script
document.addEventListener('DOMContentLoaded', () => {
  window.__TAURI__.event.listen('test', (event) => {
    console.log(event);
  });
});

URL
https://st.id.softbank.jp/sbid_auth/type1/2.0/authorization.php?response_type=code&client_id=yPXPPaM2ccrUxdLtHV5VEgbJ3jGeDGic&redirect_uri=https://bff-top.crth.st.bene-st.jp/v1/top/sb-pre-auth-start&state=36eaf7a1-5103-45cf-93ba-97cb642519f2&scope=openid+cdp&nonce=0797f0f2-c821-4f19-8502-ccd789673704&acr_value=1
I don't know if it will crash with other URLs, but it will definitely crash with the above URL.
Reproduction
https://github.com/kanatapple/tauri-status-access-violation.git

yarn
yarn tauri dev

Expected behavior
The page loads without crashing.
Full tauri info output
[✔] Environment
    - OS: Windows 10.0.19045 x86_64 (X64)
    ✔ WebView2: 129.0.2792.89
    ✔ MSVC:
        - Visual Studio Professional 2017
        - Visual Studio Professional 2019
    ✔ rustc: 1.81.0 (eeb90cda1 2024-09-04)
    ✔ cargo: 1.81.0 (2dbb1af80 2024-08-20)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 20.17.0
    - yarn: 1.22.11
    - npm: 10.8.2

[-] Packages
    - tauri 🦀: 2.0.5
    - tauri-build 🦀: 2.0.1
    - wry 🦀: 0.46.2
    - tao 🦀: 0.30.3
    - tauri-cli 🦀: 1.2.3
    - @tauri-apps/api : 2.0.2
    - @tauri-apps/cli : 2.0.3

[-] Plugins

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - bundler: Vite

Stack trace
No response
Additional context
No response

I can reproduce this, seems like any __TAURI_INTERNALS__.invoke("") call on DOMContentLoaded would crash on this site, doesn't seem to happen if I put this call inside a setTimeout with 10ms delay inside or outside DOMContentLoaded event listener, doesn't seem to happen on a few other sites I tested
I don't have a clue on the cause to be honest

I can reproduce this, seems like any __TAURI_INTERNALS__.invoke("") call on DOMContentLoaded would crash on this site, doesn't seem to happen if I put this call inside a setTimeout with 10ms delay inside or outside DOMContentLoaded event listener, doesn't seem to happen on a few other sites I tested
I don't have a clue on the cause to be honest

We can just add a timeout to the implementation of that window invoke I guess?

I don't think we can just simply wrap invoke in a setTimeout, still need more digging to understand why this is happening

Thank you for the workaround.
It doesn't reproduce in Tauri v2.1.1, but has anyone fixed?

Seems like it has been fixed by the fact that it does not happen in tauri
v2.1.1
On Mon, 16 Dec 2024, 1:12 pm Yasunari Fujieda, @.***>
wrote:

Thank you for the workaround.
It doesn't reproduce in Tauri v2.1.1, but has anyone fixed?
—
Reply to this email directly, view it on GitHub
https://github.com/tauri-apps/tauri/issues/11432#issuecomment-2544818177,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUE3X6KWOFNY5PB6LFNPEF32FZ75PAVCNFSM6AAAAABQJI37NGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBUHAYTQMJXG4
.
You are receiving this because you commented.Message ID:
@.***>

Doesn't seem to crash for me either now, not sure what actually fixed it though, maybe webview2 maybe some code we changed actually fixed it or maybe some code changed from that website

It still happens in v2.0.5, so it may be Tauri.

There were some changes around injecting scripts in wry, maybe that fixed this, specifically https://github.com/tauri-apps/wry/commit/59c1eef0805ecbb1f70a7c78578ff4e03b09a204 changed the script injection from using AddScriptToExecuteOnDocumentCreatedAsync for top level only scripts to use ExecuteScript inside ContentLoading event handler
Since this is not reproducible anymore, let's close it for now


http2: Remove RELEASE_ASSERTs in sendPendingFrames() error handling

Commit Message:
Remove RELEASE_ASSERTs in sendPendingFrames() error handling
Additional Description:
This PR removes RELEASE_ASSERT on the status of the sendPendingFrames() call and replaces it with the error handling that schedules callback to disconnect connection. The change makes sendPendingFrames() for server codecs to always return the status of the protocol constraint check regardless of the dispatching/non-dispatching context.
During tests I have discovered that returning an error from the onSend and onDataSourceSend callbacks in non-dispatching context does not work well because it aborts the processing of the nghttp2_session_send() and as a result any nghttp2 callbacks that may have been invoked on pending frames will not be called. This is a problem for frames like RST_STREAM and GOAWAY because they invoke callbacks in codecs and http connection manager.
As a result I have unwound the code that returns errors from the onSend and onDataSourceSend callbacks when outbound frame queue limits had been exceeded and instead let the nghttp2_session_send() complete normally and check for protocol constraint violations after it has completed.
Risk Level: Medium
Testing: Unit Tests
Docs Changes: N/A
Release Notes: N/A
Fixes #12280
Signed-off-by: Yan Avlasov<EMAIL_ADDRESS>

/azp run

I think CI issues should be fixed. Let's try one more main merge?
/wait

Merge main once https://github.com/envoyproxy/envoy/pull/13598 merges. Thanks!
/wait


WFLY-9927 make fields in test service volatile

https://issues.jboss.org/browse/WFLY-9927

@tomjenkinson @gytis can one of you please review?
My theory is that the intermittent failure in https://ci.wildfly.org/viewLog.html?buildId=92167&buildTypeId=WF_PullRequest_LinuxElytro is caused by changes from the first request not being visible to the second, as there is not necessarily a happens-before relationship between the two requests (the only place that establishes happens-before would be the worker thread pool, and there is no guarantee that the first thread has been returned to the thread pool by the time the second request runs).

Let's ask @ochaloup - he is the lead of XTS now.


On-net static pattern at start of call

Hello.  I'm testing Jitsi for SIP calls.  I've noticed that when I call extensions on-net, I get an odd 7 or 8 pulse static pattern at the beginning of each call, only heard on the callee side.  After that initial static pattern, the call is perfect.  If I call over PSTN, there's no issue at all.  What could be causing this?

Are you using different codecs for the 2 calls?  Which ones?  Does it happen when you dial any other endpoint / SIP URI?

@saghul
I figured it out.  It didn't like g722 being enabled.  As soon as I disabled it, the on net calling is working.

G722 is a special one. There is a bug in the spec because 14 bits are used for audio samples and some implementations take the first 14 others the last 14 so implementations usually detect the mismatch and adjust accordingly, hence the choppy audio in the beginning.
I guess we can close this now then.

Thanks!!
From: Saúl Ibarra Corretgé<EMAIL_ADDRESS>Sent: Thursday, February 9, 2017 11:40 AM
To: jitsi/jitsi<EMAIL_ADDRESS>Cc: Daniel, Steve<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [jitsi/jitsi] On-net static pattern at start of call (#317)
G722 is a special one. There is a bug in the spec because 14 bits are used for audio samples and some implementations take the first 14 others the last 14 so implementations usually detect the mismatch and adjust accordingly, hence the choppy audio in the beginning.
I guess we can close this now then.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/jitsi/jitsi/issues/317#issuecomment-278697788, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYefWS__nitxZAcCX6mlPBo7LuHTASBcks5ra0FugaJpZM4L8Mqw.
NOTICE: Protect the information in this message in accordance with the company's security policies. If you received this message in error, immediately notify the sender and destroy all copies.


test: scale support

[ ] ensure that fargate deploys more replicas when ingress rate increases

This definitely works! @alexellis
Tested using:
while [ true ]; do seq 1 10 | parallel -j 5 -I{} curl -X POST 'https://openfaas-1528342534.eu-west-1.elb.amazonaws.com/function/figlet' -H 'X-Callback-Url:https://webhook.site/9997c558-6290-49af-80c6-22c3aa3e2f1b' -kis --data 'fargate';done


add server test

Codecov Report

Merging #63 (b416876) into main (7e1f9a3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #63   +/-   ##
=======================================
  Coverage   93.77%   93.77%
=======================================
  Files          10       10
  Lines         241      241
=======================================
  Hits          226      226
  Misses         11       11
  Partials        4        4

Continue to review full report at Codecov.

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

Codecov Report

Merging #63 (b416876) into main (7e1f9a3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #63   +/-   ##
=======================================
  Coverage   93.77%   93.77%
=======================================
  Files          10       10
  Lines         241      241
=======================================
  Hits          226      226
  Misses         11       11
  Partials        4        4

Continue to review full report at Codecov.

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


Use rest parameters instead of arguments

This could be really awesome, especially if we also use ...spread arguments instead of .apply(obj, arguments), too.

The trickiest part will be identifying and eliminating function calls that are meant to turn arguments into an array, like Array.prototype.slice.call(arguments) or _.toArray(arguments) (where _ is bound to something like require("underscore")). Since those methods could do anything, it will never be totally safe to assume a certain behavior, but perhaps the user can provide input about what styles of array conversion are used in the codebase.

The initial version of this transform has been implemented in Lebab 2.5.0.
Doesn't support detection of Array.prototype.slice and friends though. However the .apply(this, arguments) case is already covered by arg-spread transform.

Closing this in favor of a follow-up issue: #191


Some translations/locale aren't working

Hello,
Using Timex 3.1.13, some locale aren't working:
Interactive Elixir (1.4.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> use Timex
Timex.Timezone
iex(2)> Timex.from_now(Timex.shift(DateTime.utc_now(), days: -2))
"2 days ago"
iex(3)> Timex.from_now(Timex.shift(DateTime.utc_now(), days: -2), "fr")
"2 days ago"
iex(4)> Timex.from_now(Timex.shift(DateTime.utc_now(), days: -2), "ru")
"2 дня назад"
iex(5)>

I was looking for the french translation, I didn't test for other languages.

When I run your second example, I get:
iex(4)> Timex.from_now(Timex.shift(DateTime.utc_now(), days: -2), "fr")
"il y a 2 jours"

But I just double checked, and this because French wasn't added until 3.1.14 :)

Thanks! That makes sense!
On hex.pm I didn't see 3.1.14 should I use the git repo in my mix conf instead?

I'll get 3.1.14 pushed up right away :)

hehe thanks a lot! :)

3.1.15 is up!


output paramerer for msslookup

It would be great to have an optional output parameter for the database created from msslookup
Currently, the databse is always written to mslookup_db.sqlite

Try commit 7c12d76964301ed31e11c0ab0cdde26c3ac7e237
The commit after that may break stuff, as it changes an output, so be careful.

Think this issue has been fixed and released now, so closing.


fix(bug): Fix ECR logspam by debouncing client refreshes

Description
ECR integration can create lots of logspam when it fails to refresh. This is due to the fact that each request tries to refresh the client but it can error so the expiryTime is never updated. This adds the concept of the last time we attempted to refresh so that we won't try more than the interval
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change
Pretty challenging to test this one, but will rely on code review
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

/retest


Can't compile uWS on Linux

Running Ubuntu Gnome 16.10. I run 64-bit in the year 2017. Trying to compile the newest uWebSockets update. Here's the cmake .:
$ cmake .
-- The C compiler identification is GNU 6.2.0
-- The CXX compiler identification is GNU 6.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g")
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
-- Configuring done
CMake Error at CMakeLists.txt:18 (add_library):
  Cannot find source file:

    src/uUV.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx

CMake Error: CMake can not determine linker language for target: uWS
CMake Error: Cannot determine link language for target "uWS".
-- Generating done

As I see, there's no file called uUV.cpp in the src folder.

 Let me quote it:
Frequently posted issues
I cannot compile or link the project <insert compiler or linker error>
Try a released version, master branch is where development happens. If you still have issues then you need to check your end very thoroughly before posting this issue. You are not the only one using µWS and it is probably not this broken.
I'm banning you for 1 week now.

Check CMakeLists, okay? There's 'uUV.cpp' to compile, but it doesn't even exist. Next time be careful.

Hello? Is anybody here? Will I be unbanned?


No error when calling dask.visualise

I have graphviz and python graphviz. When calling z.visualise(filename='test.svg'), nothing happens. No error, no exceptions and no file.
from time import sleep

def inc(x):
    sleep(1)
    return x + 1

def add(x, y):
    sleep(1)
    return x + y

from dask import delayed

x = delayed(inc)(1)
y = delayed(inc)(2)
z = delayed(add)(x, y)

z.visualise(filename='test.svg')

How are you meant to debug this?

Hi Dask team, I realise this issue is marked as closed, but having read through the brief conversation here I was wondering if you would indeed consider aliasing visualise to visualize as @TomAugspurger asked above?
I raise this because as well as the original poster, I (also a British English speaker) too ran into this when following along with the official tutorial (in 01_dask.delayed.ipynb) and spent ~15 minutes trying to work out why I was getting a delayed object rather than the graph. I suspect yet more people could end up being unnecessarily confused on this for the same reason, especially when the result of some spelling variant or typo on the method returning a valid object and not an error making one such as I suspect and try to fix some environment issue (e.g. not having graphviz or some facet of the notebook set up correctly to show the image, etc.) initially, rather than realise the, ultimately obvious, cause!
Having checked through your Issue Tracker for similar requests, I see that in #5944 you specify you aren't keen on method name aliases in general, and that's understandable, but think visualise could be a good exception due to the motivation of the very common spelling variant? I guess it could be the only spelling-variant alias required for delayed at least as e.g. delayed(lambda a: a + 1)(1).__dir__() only gives four other non-internal methods ('compute', 'dask', 'key', 'persist'), all with the one spelling.
Alternatively, for us Brit English users, could you perhaps create a log warning or similar for when visualise is called, e.g. 'Did you mean visualize?' or consider adding a a 'tip' or 'note' to the documentation and/or tutorial to point out that only the American spelling will work, else we'll be setting up deferred attribute access, possibly inadvertently?
Thanks for (re-)considering this!

I'm fine with aliasing visualise if other maintainers are on board. I think I'd prefer that to emitting a warning.

Thanks for poking this issue @sadielbartholomew! I think today we should raise an informative warning
https://github.com/dask/dask/blob/95fb60a31a87c6b94b01ed75ab6533fa04d51f19/dask/delayed.py#L544-L552
What version of dask are you using?

For example, this is what I see on the current main branch
In [1]: from dask import delayed

In [2]: @delayed
   ...: def foo():
   ...:     return "bar"
   ...:

In [3]: result = foo()

In [4]: result.visualize()
Out[4]: <IPython.core.display.Image object>

In [5]: result.visualise()
/Users/james/projects/dask/dask/dask/delayed.py:547: UserWarning: dask.delayed objects have no `visualise` method. Perhaps you meant `visualize`?
  warnings.warn(
Out[5]: Delayed('visualise-64663e0d-7fa9-4049-88bb-f10d9c1b0e81')

Thanks Tom and James for the extremely quick replies.
Ah, so there already is a warning, that's really useful! Sorry for not checking the current main branch which I should probably have done before commenting. I was using the environment that is provided for binder for the tutorial from the dask-tutorial repo, which is '2.20.0' (from dask.__version__) as backed up by the environment file. I assumed that would be pretty up-to-date.
I think the warning demonstrated is definitely sufficient, so I guess the alias isn't strictly necessary given it, though certainly if the alias was added it would be helpful in that some of us wouldn't need to go in and change the s to z a lot of the time from typing intuitively :smiley: We could always define that alias simply in our scripts locally etc., I guess.
Thanks again, I'm sure I'll catch the warning in the wild when the next release is out and I update!

Oh wait, just re-reading and seeing that you are probably proposing that for main, not that it is already there as I assumed? Either way, that exact warning looks great to me.

https://github.com/dask/dask/pull/6216 is where the visualise warning was added, which should be included in the dask==2.17.0 release. When I launch a binder session from the Dask tutorial I see the warning when I use visualise instead of visualize:

Do you see something different? Could you confirm that visualise is spelled correctly?

Interesting, I didn't see that (or any) warning before, no. I was using the binder environment but not actually on Binder, just running the Jupyter Notebooks of the tutorial repo locally.
Strangely, I have just re-run the original Notebook I was working with and still had open, and this warning did indeed pop up, much to my surprise! So it is implemented as you indicated and does emerge, however if I re-run the cell any number of times, it doesn't seem to be shown again, only the once on first run. So I suspect in my case, in coding up some lines as part of the tutorial the warning got hidden by the cell having been run before with different code, or maybe it did show and I missed it completely (given it is marked strikingly in red the former is most likely I think).
So, it looks like the warning is indeed already there and working fine - my bad, sorry about that! As for the warning disappearing in the Notebook, I guess that's a Jupyter and not a Dask issue and there's probably a good reason for warnings behaving that way. Assuming people re-run their Notebook afresh they should see the warning about visualise should they try it :)
Thanks @jrbourbeau, case (already) closed I think!

Good to know. Thank you for following up. The warning is disappearing because, by default, Python will not repeat the same warning multiple times if it's coming from the same source location. From the warning module docs:

Repetitions of a particular warning for the same source location are typically suppressed.

I'm going to close this issue, but thank you for engaging here. I had forgotten that we raised this warning, so it was good to be reminded.


Hot reloading on storybook is not working

Hot reloading on storybook is not working (It works fine on the app)

We'll need to pass module to each of our stories as a 2nd parameter.

@skellock Thanks for the comment. I've done that before on the other project, so tried it by adding @types/node and passing module as a second parameter already. It makes the red screen gone but the hot reloading still isn't working - I'm seeing the hot loading top banner but it's not refreshing the components. I'm looking into it!

Fixed by:

Providing module as a second parameter of storiesOf()
Added a root component for StorybookUI since RN hot module must be in a class for HMR


index.go: add omitempty to platform

Signed-off-by: zhouhao<EMAIL_ADDRESS>

LGTM, per https://github.com/opencontainers/image-spec/blame/master/image-index.md#L43

LGTM


catalog: thread safety

The one know issue, is that the maps in the catalog are not protected by locks. Discussed simply putting a lock around map access. The alternative of using a concurrent map was discussed.
To verify that we have no other concurrency bugs or design issues, a multi-threaded stress test for the catalog should be used. Deletion of catalog entries is only partially implemented. Until then, the test should only insert and verify.

The other thing to examine is need for the maps. They are convenient, but... we have a ptr to the sql table helper, in the catalog. The maps facilitate doing lookups and eventually retrieving the storage ptr. Can this (should this) be done via the catalog? We discussed that the execution layer is not going to use the C++ catalog code, so all of the lookups that need to be done, must be possible via the catalog tables.

The one know issue, is that the maps in the catalog are not protected by locks. Discussed simply putting a lock around map access. The alternative of using a concurrent map was discussed.
To verify that we have no other concurrency bugs or design issues, a multi-threaded stress test for the catalog should be used. Deletion of catalog entries is only partially implemented. Until then, the test should only insert and verify.

We didn't have a concurrent test for sql_table because it was a simple wrapper around DataTable, which has a concurrent test. I am adding a concurrent test for sql_table.h as I'm rewriting sql_table.h to support schema change. I believe there will be an overlap between the tests I'm writing and the one needed by the catalog.


Interprocess Synchronization Functions Missing

As far as I can tell, none of the synchronization functions are available through winapi.
A list of those functions can be found at : https://msdn.microsoft.com/en-us/library/windows/desktop/ms686360(v=vs.85).aspx

I was clearly wrong. Not sure why the functions didnt show up when i searched through docs.rs and github...


Refactored event listener

I noticed when the equal sign button is clicked, it displayed undefined. I've added a condition to check if string is empty, and also styled the buttons to have the border show when hovered over. Please review.
@Tanya1227 feel free to check out my changes as well.

Thank you @codersalman for the changes, So kind of you, I would
definitely check the changes.
On Wed, 12 Oct 2022 at 19:05, zenocodes @.***> wrote:

I noticed when the equal sign button is clicked, it displayed undefined.
I've added a condition to check if string is empty, and also styled the
buttons to have the border show when hovered over. Please review.
@Tanya1227 https://github.com/Tanya1227 feel free to check out my
changes as well.
You can view, comment on, or merge this pull request online at:
https://github.com/codersalman/Hacktoberfest-2022/pull/60
Commit Summary

2dc45a6
https://github.com/codersalman/Hacktoberfest-2022/pull/60/commits/2dc45a695f8ebc719a48694db9a63f655fef7687
added a border for the button on hover
73cdb69
https://github.com/codersalman/Hacktoberfest-2022/pull/60/commits/73cdb69f70e99d63631c43ec2e964d6c177672a5
added condition to check if string is empty when the equal sign button is
clicked

File Changes
(2 files https://github.com/codersalman/Hacktoberfest-2022/pull/60/files
)

M Javascript/Calculator/index.css
https://github.com/codersalman/Hacktoberfest-2022/pull/60/files#diff-e5154f592dd49c5c3fed26ea7d6184a978bcacf6dcdbcf4d65654758d3804401
(2)
M Javascript/Calculator/string.js
https://github.com/codersalman/Hacktoberfest-2022/pull/60/files#diff-1b1ba9a477e2af9fb113c393380e1e3d6b5df09b71a9ee373e49c2396454c2ce
(7)

Patch Links:

https://github.com/codersalman/Hacktoberfest-2022/pull/60.patch
https://github.com/codersalman/Hacktoberfest-2022/pull/60.diff

—
Reply to this email directly, view it on GitHub
https://github.com/codersalman/Hacktoberfest-2022/pull/60, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AWTZB2ZJVYGECJVNEMIRBKTWC25DJANCNFSM6AAAAAARDJRTJI
.
You are receiving this because you were mentioned.Message ID:
@.***>


Correct signal events on Windows

Allowable Windows signals can be found here: https://msdn.microsoft.com/en-us/library/xdkz3x12.aspx#Anchor_2

+1


how add format options to format-message?

I'd like to do something like this:
{{format-message (intl-get 'player.total') value=model.debit maximumFractionDigits=2}}
where my translation is:
player:
  total: "for a total of {value, number, EUR}"

format-number works:
{{format-number value format='EUR' maximumFractionDigits=2}}

@masciugo we can't distinguish between just key/value pairs and format settings for numbers to be formatted in a message. What if you have more than one number that you want to format in the same message? It is imposible to determine. This is why we have formats that you can define at the app level, which will allow you to do something like:
"for a total of {value, number, MyCustomFormat}"

where MyCustomFormat can be anything you want, including the maximumFractionDigits value for that type of number.

To be more specific, in ember-intl you can have a custom app/formats.js to define custom formats. More details here: http://formatjs.io/ember/#usage, look at the section above the usage.

great. thanks a lot for your incredible effectiveness


Explorer does not collapse after closing file preview

Issue Type: Bug

Create a new directory and open VSCode in it.
Create a file in a subdirectory which you can open in preview mode.

A simple method would be to type npm i foobar in the console, create a main.js file with the content import "foobar"; and then use the "Go to Definition" feature.

See that the directory structure in the explorer got expanded to show where the file is.
Close the file preview.
See that the treeview still is expanded.

This is especially annoying when working with large dependency structures like pythons .venv or nodes node_modules. After looking up some implementation details the whole explorer view is filled and one has to scroll down or collapse the respective directories to be able to see the usual project files.


K.Dᴀᴠɪs: Watch cairo-glitz.com

K.Dᴀᴠɪs requests the watch of the watch_keyword cairo-glitz\.com. See the Metasmoke search here and the Stack Exchange search here.

cairo-glitz.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Coverage remained the same at 65.093% when pulling 0d82256ecb30d6f6dc725ddbe57d37552a6d5ea8 on auto-blacklist-1520493341.9500976 into 99f51b1db964cf496081ede407ab44d3c2191b42 on master.

!!/approve


add decodeTimestampToTimeSpec() to register custom timestamp ext handlers

Also added an example to re-map timestamp-ext with @std-proposal/temporal.

Codecov Report

Merging #40 into master will increase coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
+ Coverage   95.43%   95.46%   +0.02%
==========================================
  Files          14       14
  Lines         767      772       +5
  Branches      163      163
==========================================
+ Hits          732      737       +5
  Misses         15       15
  Partials       20       20

Impacted Files
Coverage Δ

src/timestamp.ts
100% <100%> (ø)
:arrow_up:

src/index.ts
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Ignored constraint in rule condition

This seems to silently ignore a constraint of the condition:
(let [r (dsl/parse-rule [[Temperature
                          (= ?v (+ temperature 5))
                          (< ?v 10)]]
                        (println ?v))
      s (mk-session [r])]

  (-> s (insert (->Temperature 1 "m")) fire-rules)
   (-> s (insert (->Temperature 10 "m")) fire-rules))

;; prints
;; 6
;; 15

;;; Adding a print to the ignored constraint shows it unevaluated entirely.

(let [r (dsl/parse-rule [[Temperature
                          (= ?v (+ temperature 5))
                          (do (println "hello!") (prn ?v) (< ?v 10))]]
                        (println ?v))
      s (mk-session [r])]

  (-> s (insert (->Temperature 1 "m")) fire-rules)
  (-> s (insert (->Temperature 10 "m")) fire-rules))

I'd expect either the compiler to fail with a meaningful exception, or for the constraint to be evaluated and tested for the condition.

Seems like the best approach here would be to make a variable bound in a constraint visible to subsequent constraints. I'll take a look at adding such logic to clara.rules.compiler/compile-condition, detecting instances of subsequently used variables and wrapping the generated code of subsequent constraints with a let binding containing the variable

that sounds like a good approach. I think this could be a potentially useful feature. I've seen people expect it to work before and get confused too.

The above commit makes bound variables visible in subsequent constraints under the same condition as described in my previous comment. This fixes the originally reported issue and has a more intuitive behavior.
I don't think this breaks any existing code, and all tests pass without changes. I'll probably merge this into master in the next day or so unless there are objections.

Rebased and merged to into master in the above commit. Closing since there is nothing more to do with this one.


Session Detail Label Menus

Add menus to field names in session details. The menu should include these items for all fields:

Export Unique
Export Unique with count
Open SPI Graph

Implemented in 4c61fc1


Crash when giving an non-existing OCIO config path

Hey there,
Issue
The application hard crash when I'm trying to enter a path to a config that doesn't exists.
F:\softwares\apps\pyvexr\0.0.3\dist>pyVexr_gui.exe
qt.qpa.fonts: Unable to enumerate family ' "Segoe UI Variable Static Display" '
qt.qpa.fonts: Unable to enumerate family ' "Segoe UI Variable Static Display" '
Traceback (most recent call last):
File "pyVexr_gui.py", line 1979, in onCsChanged
File "pyVexr_main.py", line 355, in getLooks
PyOpenColorIO.Exception: Error could not read 'ocio/config.oci' OCIO profile.

Steps to reproduce

Open application
Open OCIO menu
In the Ocio Path parameter, delete the last character of the already existing path
App crash

You can also just paste a non-existing path to get the same result
Expected behavior
The application doesn't crash and let the user submit a wrong path. I expect an error message to be displayed somewhere to tell me my path is wrong. And then I can correct it manually if it's a simple typo.

Cheers.

Hello,
It is fixed in this commit :
https://github.com/mteillet/PyVexr/commit/ff4c318ab9665fb5767fdd7910657f458d897caf

The behaviour of the QLineEdit containing the path has also been modified. It now triggers the pathChanged function only when the users presses the enter on his keyboard, instead of whenever the field was modified.
If the ocio path is wrong, the ocio variable used for backend encoding will stay the same as the previous valid one (it will however keep the wrong path in the QLineEdit field, in order the user has to simply fix a type), and an error message will pop up.
This fix will be included in the next release :smile:
Thanks again for your feedback.
Martin


Fix dependency caching across rebuilds

Prior to this, we were looking at the wrong path to determine whether dependencies needed to be built 😳
Now WebpackDependencyPlugin doesn't even make the list of contributors for rebuilds.

🙌 🎉 💥


add new t&c section: TF DMCC t&c

make a new branch called development_dmcc from development
create new file under /wiki folder, with name terms_conditions_tf_dmcc
add one new md file called tf_dmcc.md
fill in the t&c information
commit and push (make sure youre on the development_dmcc branch still)
edit the sidebar.md (make sure youre on the development_dmcc branch still)
add TF DMCC Section, link the md file there
create a pr to merge to 'development' and assign @sasha-astiadi as a reviewer

https://github.com/ourworld-tsc/www_ourparadise_new/issues/3

we need to do this in different way, we are working on hero based publiushing for T&C


Preparing for  2019.10 RC

Codecov Report

Merging #7737 into master will decrease coverage by 0.42%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #7737      +/-   ##
==========================================
- Coverage   58.49%   58.07%   -0.43%
==========================================
  Files         495      495
  Lines       22081    21725     -356
  Branches     3547     3547
==========================================
- Hits        12917    12616     -301
+ Misses       8352     8288      -64
- Partials      812      821       +9

Impacted Files
Coverage Δ

...nt/datascience/jupyter/invalidNotebookFileError.ts
0% <0%> (-75%)
:arrow_down:

.../client/datascience/jupyter/jupyterConnectError.ts
0% <0%> (-66.67%)
:arrow_down:

...science/jupyter/jupyterKernelPromiseFailedError.ts
0% <0%> (-50%)
:arrow_down:

...ent/datascience/jupyter/jupyterWaitForIdleError.ts
0% <0%> (-50%)
:arrow_down:

src/client/common/utils/platform.ts
64.7% <0%> (-23.53%)
:arrow_down:

src/client/language/characters.ts
12% <0%> (-18.77%)
:arrow_down:

src/client/common/platform/pathUtils.ts
66.66% <0%> (-5.56%)
:arrow_down:

src/client/linters/pydocstyle.ts
84.61% <0%> (-5.13%)
:arrow_down:

src/client/constants.ts
75% <0%> (-5%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
79.24% <0%> (-3.78%)
:arrow_down:

... and 32 more

Continue to review full report at Codecov.

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


Verify that the user jwts has hca group claim

Reverted running of tests in docker build as it has a dependency on Mongo service.


failure of running the front-end

Hi,
I encounter a problem as shown below when running the front-end command "yarn start" (back-end has been running).
The yarn version I use is 1.22.11. The environment is ubuntu 18.04.
Have you seen this failure before? How do you fix it?
Thanks for your help!

Hi,
I just realize that there is also a yarn.lock file in the depclean-web folder.
Before doing "yarn install" in the front-end folder, I have to do "yarn install" in the depclean-web folder first.
git clone https://github.com/castor-software/depclean-web.git
cd depclean-web
yarn install
cd front-end
yarn install
yarn start

This works for me.


5.4 issue with double playback of video

Script version
v5.4
Describe the bug
YT Videos are played twice (I assume by YT and the AdBlock). Sound overlaps and the Adblock replay was not synced with the YT one. Only the AdBlock video is seen/interactable (i.e. paused and stuff). I can hear both videos, but only the adblock video pauses.
Expected behavior
A single video is played (as previous versions have done) and still skips ads.
Screenshots
No screenshot would be helpful since the YT video runs in the background without visuals.
Desktop (please complete the following information):

OS:  Windows 10
Browser Chrome
Version 125.0.6422.141

Additional context

The same thing happens to me, using Google Chrome the audio of the video I watch is played twiceThe same thing happens to me, using Google Chrome the audio of the video I watch is played twice

Does anyone know how I can find out when they fix it?

Video playing twice, overlapped by add
OS: Windows 11
Browser Chrome
Version 125.0.6422.141

You need to downgrade to v5.3 it works for me at least

Yeah, i just received an update and got that issue as well, i have to turn off the script on mozilla

same here

Gente usen la version 5.3 confirmado que en esta version no tendran ese error :)

how can I downgrade to v5.3?

Same here. How can I downgrade to 5.3v?

same here

Does anyone know how I can find out when they fix it?

If you go to YouTube and there's a new version of RAT, TamperMonkey should automatically notify you with a pop stating a new version is available. And it gives you the option to download it.

You may try to get v5.3 from here
https://github.com/TheRealJoelmatic/RemoveAdblockThing/blob/861272fb6b4aee20cd6b59f281b2034926e174c0/Youtube-Ad-blocker-Reminder-Remover.user.js
Then click on "Raw", and then on reinstall

how can I downgrade to v5.3?

If you cant do it directly through tampermonkey then you can get the old 5.3 code here and then just replace the 5.4 script with that 5.3 script in tampermonkey

Does anyone know how I can find out when they fix it?

I assume we'll just see if next update the bug is fixed.

You may try to get v5.3 from here https://github.com/TheRealJoelmatic/RemoveAdblockThing/blob/861272fb6b4aee20cd6b59f281b2034926e174c0/Youtube-Ad-blocker-Reminder-Remover.user.js Then click on "Raw", and then on reinstall

good lookin

Temp Fix: Temp fix: https://github.com/TheRealJoelmatic/RemoveAdblockThing/issues/460

I've pushed an update to hopefully address this (v5.5)
Also, this is a duplicate issue. (https://github.com/TheRealJoelmatic/RemoveAdblockThing/issues/449)

I have already been testing version 5.3 of the extension for 2 days and it works, but YouTube is already detecting that we are using something external that skips the ads, in addition to the fact that tampermoney also automatically updates the version of the Ad-blocker to the most current one which still They don't fix this bug


Improve log messages

Peels off some pieces from #46. This PR

improves the log messages and prompts for human play to include call amounts and valid raise bounds.
Adds specific messages for assertions

TODO: adjust the tests to look for specific assertion messages
This isn't working quite right--it misses the small (or big?) blind (sometimes?), and needs tests.

bors r+


chromium: 120.0.6099.109 -> 121.0.6167.85

Description of changes
https://chromereleases.googleblog.com/2024/01/stable-channel-update-for-desktop_23.html
This update includes 17 security fixes.
CVEs:
CVE-2024-0807 CVE-2024-0812 CVE-2024-0808 CVE-2024-0810 CVE-2024-0814
CVE-2024-0813 CVE-2024-0806 CVE-2024-0805 CVE-2024-0804 CVE-2024-0811
CVE-2024-0809
M121 also requires the new rust toolchain, which we don't have ready yet.
See commit message for details.
I eventually settled on working around it for now, so we at least can get this one version bump with rust still disabled.
This could have been prepared better and ahead of the stable bump, but we simply don't have enough chromium maintainers right now :(
cc @lorenz who worked on the rust toolchain in chromium initially^
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I can take a look at getting the Rust toolchain to work in time for M122

Result of nixpkgs-review pr 283371 run on x86_64-linux 1 (without the google-chrome fixup)

2 packages marked as broken and skipped:

python312Packages.pytest-playwright
python312Packages.pytest-playwright.dist

4 packages failed to build:

google-chrome
netflix
sharedown
sitespeed-io

16 packages built:

aws-azure-login
chromedriver
chromium
chromium.sandbox
fast-cli
mermaid-cli
mermaid-filter
percollate
playwright-test
puppeteer-cli
python311Packages.pytest-playwright
python311Packages.pytest-playwright.dist
selendroid
selenium-server-standalone
vhs
wayback

# git describe --abbrev=40
24.05-pre-23970-g95c1439b205d507f3cb88aae76e02cd6a01ac504
# nix-build nixos/tests/chromium.nix -A stable
/nix/store/ydpmzp3ar3ga7k89gw1wnawsmhf6x2vb-vm-test-run-chromium-stable

Result of nixpkgs-review pr 283371 run on x86_64-linux 1

2 packages marked as broken and skipped:

python312Packages.pytest-playwright
python312Packages.pytest-playwright.dist

2 packages failed to build:

sharedown
sitespeed-io

18 packages built:

aws-azure-login
chromedriver
chromium
chromium.sandbox
fast-cli
google-chrome
mermaid-cli
mermaid-filter
netflix
percollate
playwright-test
puppeteer-cli
python311Packages.pytest-playwright
python311Packages.pytest-playwright.dist
selendroid
selenium-server-standalone
vhs
wayback


multiple container runtime at the same time

We will deploy different container runtime implementations at the same time.
It doesn't seem to be supported currently.
I would like to be able to support connecting multiple container runtimes at the same time.

Multiple container runtime environments on a single node imply the complexity of the management. It could cause performance degradation.
Neuvector will dedicate one container runtime to simplify and enhance the performance of any k8s/rancher cluster under a production environment. No plan to support multiple container runtimes so far. Thanks.


Move coverage to nightly and simplify reporting

Codecov Report

Merging #15776 (f356418) into main (23b6f3d) will decrease coverage by 47%.
The diff coverage is n/a.

:exclamation: Current head f356418 differs from pull request most recent head 865d154. Consider uploading reports for the commit 865d154 to get more accurate results

@@          Coverage Diff           @@
##           main   #15776    +/-   ##
======================================
- Coverage    47%       0%   -48%
======================================
  Files        11        7     -4
  Lines       427       14   -413
  Branches     60        1    -59
======================================
- Hits        201        0   -201
+ Misses      214       14   -200
+ Partials     12        0    -12

Impacted Files
Coverage Δ

...aco-editor/esm/vs/platform/editor/common/editor.js

...es/vscode-languageclient/lib/common/utils/async.js

node_modules/webpack/buildin/global.js

..._modules/monaco-editor/esm/vs/base/common/types.js

...or/esm/vs/platform/contextkey/common/contextkey.js

...lient/common/process/internal/scripts/constants.ts
0% <0%> (ø)

Not sure why codecov reports 0%  when NYC shows 70%:
https://github.com/microsoft/vscode-python/pull/15776/checks?check_run_id=2196975663


kong gateway evaluates prefix paths sometimes wrong

Kong version ($ kong version)
2.6
Current Behavior
we  use kong gateway with kong ingress controller in k8s, and we use nginx ingress(not use kong ingress) to  add two path ingress :
1)  /A/v1/(.*)  proxy_pass to service A1
2)  /A/v1/B/(.*) , proxy_pass to service A2

accounting to this doc：https://docs.konghq.com/gateway-oss/2.4.x/proxy/#evaluation-order， Kong evaluates prefix paths by length: the longest prefix paths are evaluated first，so if we call /A/v1/B/C shoud be pass to service A2,

but in very few times， when we call /A/v1/B/check ，kong gateway in k8s pass this path to A1， seems wrong ？can anyone help explain this ? thanks!

Expected Behavior
accounting to this doc：https://docs.konghq.com/gateway-oss/2.4.x/proxy/#evaluation-order， Kong evaluates prefix paths by length: the longest prefix paths are evaluated first，so if we call /A/v1/B/C shoud be pass to service A2,

above case in very few times happens, our ingress yaml is:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: common-rewrite
namespace:internal
config:
replace:
uri: '/$(uri_captures[1])/$(uri_captures[2])'
plugin: request-transformer
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name:internal-kong-ingress
namespace:internal
annotations:
kubernetes.io/ingress.class: "internal-kong-ingress"
spec:
rules:

http:
paths:

path: /payment/v1/(.*)
backend:
serviceName: nginx-proxy
servicePort: 80

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: internal-kong-ingress-payment
namespace:internal
annotations:
kubernetes.io/ingress.class: "internal-kong-ingress"
konghq.com/plugins: common-rewrite
spec:
rules:

http:
paths:

path: /(payment)/v1/(regulatory/.*)
backend:
serviceName: test1
servicePort: 8080

Hi. Thanks for reporting this.
We recommend updating to the latest version(master or the most recent release).
Please referer to the document about regex route. This longest length rule does not apply to regex routes.


3644 gradebookng use sakai's resource loader

resolves #3644

Awesome!

Can we merge this to 11.x?


Are there any benchmarks ?

Hello,
this server is a piece of great work. I like it very much. Do you have any benchmarks or metric numbers we can expect? How many points / fences / notifications can be handled by one instance?
Thank you fro this great piece of software !
Maciej Bednarz, Hannover, Germany

Thanks for the kind words.
Fence benchmarks is something that I've been working on but is currently past due.
The performance currently depends greatly on if you are using SETHOOK or just a standard FENCE.
The notification and networking framework for Tile38 has been under some big changes that include persistent HTTP/2 and GRPC connections.
I'll fasttrack this request and try to get something posted soon.
Thanks!

This is also mentioned in an older issue #27.

Josh !
Thank you very much for your quick help. How can I help you ? Is there anything which could be done by me ?
Thank you very much,
Maciej

Hi Maciej,
I could use some help on identifying the priority benchmarks or metric that should be measured, and perhaps which tools might be best for the job.
Things I want to benchmark:

The general SET, GET, DEL crud commands, should be O(log n).
The geospatial search commands such as INTERSECTS, NEARBY, WITHIN, should also be O(log n).
The geofence commands SETHOOK and FENCE. Which may be more difficult to measure  because much can depend on the limitations of the server and network. Also the recent changes that include persistent HTTP/2 and GRPC are still very new.

What do you think would be most valuable?

The performance currently depends greatly on if you are using SETHOOK or just a standard FENCE.

So which do you think is better?
Btw. .We're seriously thinking of using Tile38 but we can't find any perf benchmarks on the internet so it makes it a bit tricky to approve of .. Please do let us know if/how we can help.
Thanks.

@johnsonc

So which do you think is better?

I think the SETHOOK is the way to go in most cases, because it allows for a dedicated queue/notification server that Tile38 connects to directly (rather than middle-tier custom solution that connects to Tile38).
The gap in performance between SETHOOK and a standard FENCE has closed signifigantly over the past couple releases.
There's support for GRPC, Redis PubSub, and HTTP. GRPC is the quickest, followed by Redis, and then HTTP.

HTTP performance depends greatly on the endpoint; Is it HTTP/1 or 2? Is there a proxy in the middle? What about keep-alives, etc.
Redis PubSub is what it, always fast and darn good at delivering notifications.
GRPC is super quick and allows for a custom solution at the endpoint.

There's also support for Disque, which is a really great message queue system, but the Disque project is still in beta.

We're seriously thinking of using Tile38 but we can't find any perf benchmarks on the internet so it makes it a bit tricky to approve of

I totally understand. Benchmarks around geofencing is something Tile38 is sorely missing. But I can say that there's been tremendous strides made with regards to the performance of geofence delivery and Tile38 in general since this issue was first opened. We're adding a couple new protocols soon (Kakfa and MQTT) and I'm hopeful that we can get some number that are public around the same time.

Please do let us know if/how we can help

Feel free to share your experience, whether that's with benchmarking, testing, or implementation.
Thanks a bunch for considering Tile38!

I think the SETHOOK is the way to go in most cases, because it allows for a dedicated queue/notification server that Tile38 connects to directly (rather than middle-tier custom solution that connects to Tile38).
Thank you!

I totally understand. Benchmarks around geofencing is something Tile38 is sorely missing.
:(
It gets really tough to convince those who are out to compare and contrast between frameworks to make a choice for production stack.
Right now, we are comparing ElasticSearch with Tile38 and we've come up with a few metrics that would be crucial for production for a service that we're considering:
Scalability/Clustering, Throughput, Fault tolerance, Reliability, Monitoring - Logging and Reporting.

Feel free to share your experience, whether that's with benchmarking, testing, or implementation.
aside:The Oxford comma aye?
I'd be happy to! It might take us a bit, but I'll try to get back.

Starting to build up benchmarks.
https://github.com/m1ome/tile38-benchmark
Mostly this was related to issue #130 to test up speed.
But i think i can refactor it to work with entire system.

@m1ome
Thanks for getting a head start on this. Before you get to far down the road with a benchmark tool, we should discuss the strategy around what is being benchmarked and the tool itself in more detail.
It looks like the project that you are building is based on a go test --bench. Which is great for simple unit test benchmarks, but maybe not so great for benchmarking operations that goes over the network.  I think that the output of go test --bench may be too simplistic, and the need for a Go environment may be prohibitive for reproducibility for non-dev users.
It's going to most important that the benchmarking tool represents real world networks. As a foundation it needs to support:

Executing over the network
Pipelining
Concurrent clients
Customizable payload sizes.

The output should be something that have useful that includes stuff like:
====== SET ======
  1000000 requests completed in 13.86 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.76% `<=` 1 milliseconds
99.98% `<=` 2 milliseconds
100.00% `<=` 3 milliseconds
100.00% `<=` 3 milliseconds
72144.87 requests per second

With this kind of data we can start to produce graphs that present information around operation speed and network latency.
There's a good write up on benchmarking on the Redis website.

@tidwall i will look up to redis benchmark, maybe we can get same one but written in go for Tile38, main thing will be a concurrent access and measurement. First tool for benchmarking is just a rally point to head over to more specific one.

Thank you very much. Now we have very great numbers. Everyone could compare
this great piece of software to other solutions.
2017-01-26 19:10 GMT+01:00 Pavel Makarenko<EMAIL_ADDRESS>
@tidwall https://github.com/tidwall i will look up to redis benchmark,
maybe we can get same one but written in go for Tile38, main thing will be
a concurrent access and measurement. First tool for benchmarking is just a
rally point to head over to more specific one.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tidwall/tile38/issues/54#issuecomment-275464565, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAw0TAsSiZBJq6oLqDIffUCWCeKSZVVLks5rWOF6gaJpZM4J8nYE
.

Is someone still working on benchmarks? It may be useful to look into the Redis benchmark tool as mentioned earlier. source
And speaking about performance, is there any interest in maintaining redis-gis, and do you have any idea how it stacks up agains Tile38 especially in adding data to it (set) @tidwall ?

@Lars-Meijer

Is someone still working on benchmarks? It may be useful to look into the Redis benchmark tool as mentioned earlier.

Yes, it's a work in progress but @m1ome is maintaining the brand new tile38-benchmark project. I haven't spent much time with it yet. It's built in Go and is focused specifically on Tile38 commands.
The redis-benchmark is quite good. I use it all the time for my other projects (Redcon, SummitDB, kvnode). Though it would require some modifications to support Tile38 commands, I can see it being used as a base.

And speaking about performance, is there any interest in maintaining redis-gis, and do you have any idea how it stacks up agains Tile38 especially in adding data to it (set)

Sorry, I'm not maintaining redis-gis at the moment and I don't have much information in the way of benchmarking. I would suspect that it could be a little faster for general purpose GSET/GGET/GSEARCH commands, because it's written in C and uses the Redis command pipeline. But it's woefully out of date in terms of features vs Tile38, and it's not stressed tested in a production environment.

Thanks for the quick response. I ran the benchmarks and they seem to indicate that tile38 can process much more requests than what I saw originally, looks very promising.

I did some measurements on the memory usage of Tile38 by placing a number of points within roughly the bounding box of The Netherlands with a random 15 digit key, I used the Server command to check the memory usage, then ran "GC" and measured again.

Number of points
Usage/point
Total
U/p After GC

10,000
416 B
3.97 MiB
250 B

50,000
251 B
12.01 MiB
190 B

100,000
306 B
29.01 MiB
182 B

250,000
226 B
53.97 MiB
178 B

500,000
177 B
84.611 MiB
176 B

1,000,000
271 B
258.63 MiB
175 B

My initial guess to explain the difference between the usage/point and the usage/point after GC was that Tile38 allocates more memory than it needs (to prevent needing to allocate memory very often), after GC the memory that is not used would be freed. Initially the usage per point seems to be higher, probably because the server itself takes up a few MB of RAM.
Is this explanation correct, or is there something else going on?

Your explanation is on track.
Tile38 is a static executable and the entire executable is loaded into memory (~4MB). As more points are added the memory usage will level out.
Tile38, which uses the Go runtime, hangs on to memory for as long as possible. The memory will eventually be released, but when this happens depends on factors like how often the Go memory allocator reuses the memory pages, the ratio of unused/used memory in the Tile38 process, and how much system memory is available.
The GC command is expensive and I don't recommend using it except following a mass insert of points or when debugging.

@m1ome @tidwall
When running benchmark with 1 client performance seems to be higher than when running 50 parallel clients, this seems a little counter intuitive to me?
====== GET(POINT) ======
100000 requests completed in 1.557656048s
1 parallel clients
keep alive: true
100.00% <= 1 milliseconds
<1%(1) <= 5 milliseconds
64199.03 requests per second
====== GET(POINT) ======
100000 requests completed in 2.327297588s
50 parallel clients
keep alive: true
99.96% <= 1 milliseconds
<1%(23) <= 2 milliseconds
<1%(9) <= 3 milliseconds
<1%(4) <= 4 milliseconds
<1%(1) <= 5 milliseconds
<1%(1) <= 6 milliseconds
<1%(1) <= 7 milliseconds
<1%(1) <= 11 milliseconds
<1%(1) <= 13 milliseconds
<1%(1) <= 15 milliseconds
42968.29 requests per second
I do a (simple) benchmark with Lettuce in Java I cannot get more than 20k SET per second on the same machine, maybe @m1ome can elaborate a little on how the benchmark work?
When I use my Java program with Lettuce and insert 1,000,000 points in  a clean database, the rate is around 20K/s, when I then restart the database it performs around 90K sets/s, does the AOF reader do something clever, or is there something going wrong with the connection?
Any help would be greatly appreciated

When running benchmark with 1 client performance seems to be higher than when running 50 parallel clients, this seems a little counter intuitive to me?

Seem counter intuitive to me too. I'll investigate and get back to you.

Seem counter intuitive to me too. I'll investigate and get back to you.

It might be the benchmarks that are not correct, I've also seen the benchmark reporting increased performance on a system that was under heavy load (tho I have not extensively looked in to that result). My own tests  seem to indicate that Tile38 is core bound, and reserving a core for Tile38 and running everything else on a different core definitely help performance.

@tidwall that's why i am asked you too look upon test sources :)

@tidwall that's why i am asked you too look upon test sources :)
The benchmarks seem to indicate the same kind of result (or slightly worse) as reading the AOF, so I am assuming they are mostly correct. But the weird thing is that I cannot get nearly the same performance when using lettuce in Java. It might be that I am doing something wrong, I will continue to look into it.

@Lars-Meijer stop defending him. He told me he will look at benchmark code month ago.

@Lars-Meijer Tile38 utilizes all cores if possible. It uses a single read-write locker sync.RWMutex that is shared across all connections. Read operations such as GET and NEARBY should be very quick. Write operations are slower and block connections in order to fill data structures and write to the AOF.
Loading from the AOF will likely be faster than benchmarking over the network (assuming the read performance of your SSD is better than your network). It also runs some optimized code which executes prior to the server starting, without any locking, and does not have the burden of writing anything to disk.
Regarding multi vs single core.  You may want to try playing with the GOMAXPROCS system variable. For example running
$ GOMAXPROCS=1 tile38-server

which will force Tile38 to run on only one core. Perhaps this is a good thing in some cases.
@m1ome I'm looking at benchmarking options today. Thanks for your patience.

Loading from the AOF will likely be faster than benchmarking over the network (assuming the read performance of your SSD is better than your network). It also runs some optimized code which executes prior to the server starting, without any locking, and does not have the burden of writing anything to disk.

I figured this, but I don't think it explains the slow performance in my tests in comparison to the benchmark (3x slower than the benchmarks (if they are correct), 4x slower than reading from the AOF.). I also find it unlikely that 20k updates per second saturate a gigabit ethernet network
.
Is there an option to disable the AOF and how much of an impact does it actually have, since there is absolutely no use for it in my usecase.

which will force Tile38 to run on only one core. Perhaps this is a good thing in some cases.

I used the taskset (http://manpages.ubuntu.com/manpages/wily/man1/taskset.1.html command to lock it to one core, and locked other high load processes to the other cores. It seems to perform a lot better when I do this.

Is there an option to disable the AOF and how much of an impact does it actually have, since there is absolutely no use for it in my usecase.

There isn't an option to disable the AOF because required for core operations.
I just pushed a custom build to the memoptz branch that provides a --appendonly no flag. This will disable the AOF so you can test performance on your side. It's likely to break some stuff like Leader/Follower syncing, but standard commands like GET/SET/NEARBY will work.

I just pushed a custom build to the memoptz branch that provides a --appendonly no flag. This will disable the AOF so you can test performance on your side. It's likely to break some stuff like Leader/Follower syncing, but standard commands like GET/SET/NEARBY will work.

Thanks, first impressions it makes quite a bit of difference, I will test further tomorrow.

@Lars-Meijer Sounds good. I look forward to the results.

I pushed an update to the master branch which includes a packaged tile38-benchmark tool.

Uses the recommended Redis protocol.
Tests common commands: PING, GET, SET, and NEARBY.
Modeled after redis-benchmark. Same inputs and output.
Supports pipelining, quiet mode, and CSV output.

You will now likely see performance on par with Lettuce.
Make sure to check out the --help menu and https://redis.io/topics/benchmarks

In case you want to test the performance of the tool itself you can run it against a Redis instance like such:
$ tile38-benchmark -p 6379 -t SET,GET --redis

And compare it to:
$ redis-benchmark -p 6379 -t SET,GET

Or with pipelining:
$ tile38-benchmark -p 6379 -t SET,GET -P 10 --redis
$ redis-benchmark -p 6379 -t SET,GET -P 10

I've merged master into the memoptz branch and tested with benchmark tool, tile38 running on 1 core:
====== SET (point) ======
100000 requests completed in 4.47 seconds
50 parallel clients
82 bytes payload
keep alive: 1
24.39% <= 0 milliseconds
50.72% <= 1 milliseconds
76.80% <= 2 milliseconds
91.43% <= 3 milliseconds
96.63% <= 4 milliseconds
97.72% <= 5 milliseconds
98.18% <= 6 milliseconds
98.48% <= 7 milliseconds
98.71% <= 8 milliseconds
98.93% <= 9 milliseconds
99.09% <= 10 milliseconds
99.19% <= 11 milliseconds
99.29% <= 12 milliseconds
99.38% <= 13 milliseconds
99.44% <= 14 milliseconds
99.49% <= 15 milliseconds
99.58% <= 16 milliseconds
99.66% <= 17 milliseconds
99.72% <= 18 milliseconds
99.79% <= 19 milliseconds
99.88% <= 20 milliseconds
99.96% <= 21 milliseconds
99.99% <= 22 milliseconds
100.00% <= 24 milliseconds
22392.72 requests per second
Without the AOF on my PC (SSD):
====== SET (point) ======
100000 requests completed in 3.34 seconds
50 parallel clients
82 bytes payload
keep alive: 1
32.85% <= 0 milliseconds
68.60% <= 1 milliseconds
94.31% <= 2 milliseconds
96.97% <= 3 milliseconds
97.90% <= 4 milliseconds
98.35% <= 5 milliseconds
98.69% <= 6 milliseconds
98.95% <= 7 milliseconds
99.12% <= 8 milliseconds
99.27% <= 9 milliseconds
99.40% <= 10 milliseconds
99.48% <= 11 milliseconds
99.53% <= 12 milliseconds
99.62% <= 13 milliseconds
99.71% <= 14 milliseconds
99.78% <= 15 milliseconds
99.80% <= 16 milliseconds
99.81% <= 17 milliseconds
99.85% <= 18 milliseconds
99.88% <= 19 milliseconds
99.91% <= 20 milliseconds
99.95% <= 21 milliseconds
99.99% <= 22 milliseconds
100.00% <= 23 milliseconds
29911.44 requests per second
With the Tile38 server on 2 ports it seems to be about 2k/s better, this is indeed very close to the performance I am seeing with Redis. Thanks very much for you quick support :+1:

These are some more results form my not-so-fast server (vm on 4 old xeon cores (vCPU's @ 2.6GHz), locked to 1 core and 8 Gb of DDR3 ram @ 1333MHz) with AOF disabled.
When I run the benchmark on a different machine:
====== SET (point) ======
100000 requests completed in 10.29 seconds
50 parallel clients
82 bytes payload
keep alive: 1
0.51% <= 1 milliseconds
//More
100.00% <= 48 milliseconds
9714.58 requests per second
When the benchmark are ran directly on the server:
====== SET (point) ======
100000 requests completed in 5.43 seconds
50 parallel clients
82 bytes payload
keep alive: 1
19.60% <= 0 milliseconds
// More
100.00% <= 44 milliseconds
18409.89 requests per second
It might be network overhead, but the server has is on the same network as I am and the ping latency is about 1 ms.

@Lars-Meijer Thanks for sharing your results.
The local loopback interface should be faster than over the network. The near 20% <= 0 milliseconds vs 0.5% <= 1 milliseconds hints to me that the network may be bottleneck.

The local loopback interface should be faster than over the network. The near 20% <= 0 milliseconds vs 0.5% <= 1 milliseconds hints to me that the network may be bottleneck.

Could be, I don't have the capacity to look into the network over here.
I am able to get the performance needed by starting multiple Tile38 instances and balancing load between them.

For anyone else interested on my slightly better desktop machine at home I was able to get the following results
Test system:
Intel Core i5, 4 cores @ 3.3GHz, turbo boost disabled.
16 Gb RAM (1600MHz)
Ubuntu Desktop 16.10
The benchmarks where run on the same machine as the tile38 server, I might do some benchmarks over network later :)
All benchmarks had the following parameters:
100000 requests
50 parallel clients
keep alive: 1
noappend-multicore.txt
noappend-singlecore.txt
normal-multicore.txt
normal-singlecore.txt
summary-noappend-multicore.txt
summary-noappend-singlecore.txt
summary-normal-multicore.txt
summary-normal-singlecore.txt
The summary files provide a good starting point if you are just interested in the numbers.

Thanks for the benchmarks Lars!
Josh your'e doing some pretty amazing work!
On 1 April 2017 at 00:55, Lars Meijer<EMAIL_ADDRESS>wrote:

For anyone else interested on my slightly better desktop machine at home I
was able to get the following results
Test system:
Intel Core i5, 4 cores @ 3.3GHz, turbo boost disabled.
16 Gb RAM (1600MHz)
Ubuntu Desktop 16.10
The benchmarks where run on the same machine as the tile38 server, I might
do some benchmarks over network later :)
All benchmarks had the following parameters:
100000 requests
50 parallel clients
keep alive: 1
noappend-multicore.txt
https://github.com/tidwall/tile38/files/886694/noappend-multicore.txt
noappend-singlecore.txt
https://github.com/tidwall/tile38/files/886695/noappend-singlecore.txt
normal-multicore.txt
https://github.com/tidwall/tile38/files/886696/normal-multicore.txt
normal-singlecore.txt
https://github.com/tidwall/tile38/files/886698/normal-singlecore.txt
summary-noappend-multicore.txt
https://github.com/tidwall/tile38/files/886699/summary-noappend-multicore.txt
summary-noappend-singlecore.txt
https://github.com/tidwall/tile38/files/886700/summary-noappend-singlecore.txt
summary-normal-multicore.txt
https://github.com/tidwall/tile38/files/886697/summary-normal-multicore.txt
summary-normal-singlecore.txt
https://github.com/tidwall/tile38/files/886701/summary-normal-singlecore.txt
The summary files provide a good starting point if you are just interested
in the numbers.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tidwall/tile38/issues/54#issuecomment-290805929, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABIBhidNmDopXYfRHaO7HbH7gLajyKOJks5rrVMkgaJpZM4J8nYE
.

--
Regards,
Johnson Chetty

@Lars-Meijer I'm actually pretty surprised by the how large the difference is between append and noappend is 20%. Thanks for providing these benchmarks.

@johnsonc Thanks. :)

I've tested some more and the results of the benchmarks seem very stable. They seem to indicate performance very well and match the results I get with my own test. They would also be good to test performance between versions.
As for the performance of the append only file, I would call the result significant. It might be worthwhile to look into methods to increase the performance of the Append only file, or make it configurable to enable and disable is. Kafka is  disk backed, and has a write up on their persistence https://kafka.apache.org/documentation.html#persistence, although I am not sure how useful this is.
Benchmarks over network have very similar results, even slightly better in some cases, tho that might also be some noise by some background programs and a chrome tab that was open during the previous benchmarks. It seems that there was a network bottleneck during earlier tests
I've attached the benchmark results for the tests over network (gigabit ethernet).
--- <IP_ADDRESS> ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 99009ms
rtt min/avg/max/mdev = 0.253/0.366/0.419/0.033 ms
network-noappend-multicore.txt
network-noappend-singlecore.txt
network-normal-multicore.txt
network-normal-singlecore.txt
summary-network-noappend-multicore.txt
summary-network-noappend-singlecore.txt
summary-network-normal-multicore.txt
summary-network-normal-singlecore.txt

Hello,
I don't know if it's it's the right place to put my question but I believe so.
I'm starting to use tile38 and I was wondering if there was a way to get multiple leader, to be able to set across multiple instance?
Thanks.

Hi @sfroment,

I'm starting to use tile38 and I was wondering if there was a way to get multiple leader, to be able to set across multiple instance?

Sorry but Tile38 only supports one leader at a time for a single collection.
If you need to scale to multiple leaders then you'll have to geographically shard your collections. For example, one leader could hold a collection that is eastern united states and another for western united states. etc.

I'm closing this issue because it's pretty old, and there have been many enhancements and optimizations over the past few years.


Adding pointer casts and fixing file issues

Same size casts are valid in some cases, but they're usually sub-cases of existing allowed cases (like numerics). For example, I'm not sure that the following should be valid:
struct foo { i32 member; }
struct bar { i32 member; }

foo a = ...;
bar b = cast(bar) a;

Removed them. I remembered LCC doing them, that's why I added them


Performance and readability improvement

Guten Tag,
1- In rtu_transport.go file there is a function that receives an argument of type rtuLink which is an abstract interface type:
func newRTUTransport(link rtuLink, addr string, speed uint, timeout time.Duration, customLogger *log.Logger) (rt *rtuTransport) {
I don't understand the need for an abstract type instead of just passing already existing concrete type:
type serialPortWrapper struct { 	conf		*serialPortConfig 	port		serial.Port 	deadline	time.Time }
Abstraction has the advantage that you can pass different types with similar behavior to a function but this is not the case here (because there is only one type which implements the abstracted interface, namely serialPortWrapper)
On the other side, abstraction has disadvantage of reducing runtime performance because of type assertion and also reducing code readability (In all IDEs if you click on abstracted function call, it jumps to abstraction signature of the function rather than the real implementation).
2- In rtu_transport.go and inside the function ExecuteRequest() there is an unnecessary condition check.
err	= rt.link.SetDeadline(time.Now().Add(rt.timeout)) 	if err != nil { 		return 	}
SetDeadline() function always return nil error. Basically it should not return any value.
MfG,
/Vahid

Hi Vahid,
i believe you may have missed that RTU framing can be used over both TCP and UDP in addition to serial links.
Look for occurrences of newRTUTransport() in client.go and see for yourself.
Also, while SetDeadline on serialPortWrapper indeed won't ever return any error, its TCP/UDP counterparts may very well do. If SetDeadline fails on a socket, we shouldn't proceed with reading/writing to/from the socket as the client may get hung forever (i.e. no timeout would be applied).
I'm going to go ahead and close this as resolved, but feel free to reopen if needed.


Proposition in startup-order.md

Hey, So yes, I've made that tool. I'm not sure about the text changes have the right wording but I'm pretty sure holdup is way better than what's suggested there. It has checks for files, tcp/unix sockets, http, https and postgresql (that handles the infamous FATAL:  the database system is starting up error).

Deploy preview for docsdocker ready!
Built with commit 426931a2eebf6c9edf6d9b5b3593317fcd63eb80
https://deploy-preview-8953--docsdocker.netlify.com

@ulyssessouza - Could you PTAL?

Any update?

Hello @ulyssessouza @usha-mandya, I've rebased this, is it acceptable in this form?

Well?


Error in reflect1

Ball will sometimes go pass bar. Especially when incoming from a narrow angle.

https://user-images.githubusercontent.com/65702891/154410714-9e1a485e-7321-45bd-8f09-a97e18cd4cf3.mp4


more controlled curation to display

following on from #494, I found a few other controlled curation types that we probably want to show on PomBase2 gene pages:

catalytic activity	(example: hsp3102)
experimental tools (lys3)
genome organization	(pol4)
misc functional group	(prz1)

On legacy-PomBase gene pages, these each have their own little sections, but that may be overkill. Unless @Antonialock or @ValWood objects, I'd be happy to lump the lot in with the Miscellaneous listing.
v2 milestone only because these are visible in old pb
There are also a few "pathway" annotations, but those will probably be superseded by cleverer GO/interaction/etc. curation and displays ...?

I agree they could be lumped.
"pathway" annotations could be reported in the logs and we can then target them for GO
with annotation extension annotations (if they are not covered already).
v

yeah may as well keep it concise

I agree they could be lumped.

Do we need sub-headings in the Miscellaneous section, like this?:

Catalytic activity
Experimental tools
Genome organization
Misc functional group

I guess it wouldn't hurt because it would make grouping more sensible.

I think sub-headings would be neither harmful nor essential, so I don't have a strong preference.

I guess it wouldn't hurt because it would make grouping more sensible.

A lot of genes only have one of the four types so in a lot of cases there will be the main "Miscellaneous" heading, then a sub-heading and then a one line table.  It looks a bit odd.  pombase-dev now has a "Miscellaneous" section for you to have a look at.  I'll add it to the preview tomorrow if it's OK.

I think it looks fine on pombase-dev now; I still don't have a strong preference wrt keeping or losing the sub-headings.
I did notice one finicky nit-picky little thing: anything that's not catalytic activity, experimental tools, or genome organisation gets the "miscellaneous functional group" sub-heading. That's not quite correct, because in Artemis and Chado there are two separate CVs, the functional group one and the "really really miscellaneous" one. Strictly speaking only the m_f_g (89 annotations to 6 terms at present) should get "miscellaneous functional group".
Should we have something other than plain "miscellaneous" for the misc CV? Maybe something as simple as "Comment" would do.
example gene pages: rad54, sid2, our old poster child sty1
CV linkies
https://curation.pombase.org/pombe/view/object/cv/misc?model=chado
https://curation.pombase.org/pombe/view/object/cv/m_f_g?model=chado

" comment" works

Maybe something as simple as "Comment" would do.

I've made that change.  It will appear in pombase-dev.bioinformatics.nz next time I update and in the preview a bit after that.

Maybe something as simple as "Comment" would do.

Done in the preview.


Client name is stored as client id, and visa versa

In CreateClientAsync:
var clientId = clientNameClaim.Value;
var clientName = clientIdClaim.Value;

Woops, thanks for report.
Fixed


🐛 Bug Report: React Field Components are not exposed for extension

📜 Description
Currently it seems impossible to easily extend the custom field extensions that backstage provides.
For example it is not possible to create an EntityPicker that has custom selection logic in its catalog filter.
👍 Expected behavior
That the relevant React Controls and their subordinate APIs are exposed for modification.
👎 Actual Behavior with Screenshots
Currently one can reimplement the relevant controls directly, but this requires a decent amount of copy pasting.
👟 Reproduction steps

Create a new backstage plugin
Try to make a custom field extension that uses an EntityPicker as an inner React control to modify the selection behaviour
Notice that the React Controls themselves are not exported.

📃 Provide the context for the Bug.
We are currently in the process of creating custom pickers so that entities can be properly selected without having to perform verification steps during the execution of the template.
This seems to be impossible without copying a large amount of code.
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
Yes I am willing to submit a PR!

Not stale


iFrame-less option, and other speed improvements

I'm working towards getting the speed of a basic renderer down, currently the most basic rendering takes over 100ms on my computer. iFrame generation takes 60ms on it's own for me. I bypassed the createWindowClone and rendering still works the same—it looks like the iFrame is for Chrome and "background-images", is that the only reason? Would you be interested in an option to turn iFrame rendering off, e.g. option.useIFrame = false (true by default)
Another thing I'm noticing is there are a lot of objects being created on each render that don't need to be recreated (could be cached). Some of the easiest to cache would be Support, ImageLoader, much of the code inside of Font() could be setup once and cached, and a bunch of other little things like that. What do you think about a way to create a reference to html2canvas that persists:
var context = new html2canvas();
context.render(document.body).then(function(canvas){ });

:+1:  all for improving the speed. It's one of the major downsides at the moment that is starting to turn me away from using this.

Is there a way to speed up the rendering because it is taking 8 seconds to create the snap shot, and that 8 seconds adds up, because I need it to take anywhere from 15 to 50 snap shots for creating thumb nails of tiles. Is there some way to have it not block the UI for the 8 seconds, I could live with that time if it wouldn't block the UI.

Just curious, in what browser do you notice this? It is a bit slow but I don't think it could use WebWorkers in background threads because DOM isn't thread-safe and allowed from that context?

I notice it in every browser. Ya i know it will not work in WebWorkers, wish it could though lol. I have tried to clone the element and put it in an iFrame and have the code in the iFrame run the snap shot so that it would do the work and not the main page but it doesn't seem to work.
How long does one snap shot take for everyone else?

@bdely Are you using 0.4.1?

I am using 0.5
Just tested the latest build add it takes between 4 and 5 seconds.

Same to me using 0.5-alpha2... 4-6 seconds each snap.

Version 0.4.1 takes 0.7s each snap, but it does not suport svg.

I would absolutely use a version that didn't use iframes, that would be a great example. In SceneVR, I'm rendering dozens or hundreds of divs to canvases, and creating the iframe causes bad lag that results in dropped frames and judder in the oculus rift.
@mudcube do you have a fork with the no-iframe / re-use iframe code patched in? I'm happy to submit a PR, I really need this function. :)

I hacked this up in scenevr/html2canvas and the performance for rendering many divs is about 100x faster. Would you accept a PR for cacheIframe: true?

Try create a loader in "overlay", eg with jQuery:

http://www.jqueryscript.net/loading/Creating-A-Loading-Indicator-with-jQuery-CSS3.html
Repo: https://github.com/ninjaonsafari/jquery.loading-indicator

I'm about to use html2canvas to create a web texture component for aframevr - has there been any progress on reusing an iframe instead of creating a new one for each render?

One thing to speed things up would be to use a faster Promise implementation. At least, this is what I found back in Dec. It looks like the promise shim was dropped from the dist, which is great. Bluebird will be much faster than native Promises however.
@bnolan Here's a GIST. It's modified from 0.5 alpha-1. It's by no means a complete solution, I may of disabled some features but forget what exactly (there would be an early return). My main interest was in paragraph rendering.


feat: Lazy install plugins on invocation

Lazy install
I was playing around with the idea of lazy installing plugins if there are present in your Meltano project, but the executable is missing. Instead of displaying the missing "Missing plugin run meltano install xyz to install it", Meltano would install the plugin for you and re-invoke it instantly.
This would remove the necassity of always running Meltano install on a new project. It would also make the use of Meltano in ephemeral environments easier, as you no longer need to have all plugin pre-installed.
When running the following command rm -rf .meltano && meltano invoke dagster it looks like this:

Catalog file issue
I am running into an issue however, when running the following command: rm -rf .meltano && meltano --log-level=debug run tap-carbon-intensity target-jsonl the code reaches the discovery command and tries to install the tap. However, here some weird bugs occur which I can't quite figure out.
Cannot start plugin tap-carbon-intensity: Catalog discovery failed: invalid catalog: [Errno 2] No such file or directory: '/home/jules/projects/temp/project/.meltano/run/tap-carbon-intensity/tap.properties.json'

It probably has to do something with the fact it tries to write the catalog here: https://github.com/meltano/meltano/blob/af049cc941884c1f19356b92697056e20bd2b2ef/src/meltano/core/plugin/singer/tap.py#L376, while the file is open here: https://github.com/meltano/meltano/blob/af049cc941884c1f19356b92697056e20bd2b2ef/src/meltano/core/plugin/singer/tap.py#L405
Do you think the lazy install is feasable, or is it too much of a hassle?

@JulesHuisman - First of all - this is very cool. Thanks for contributing!

However, here some weird bugs occur which I can't quite figure out.
Cannot start plugin tap-carbon-intensity: Catalog discovery failed: invalid catalog: [Errno 2] No such file or directory: '/home/jules/projects/temp/project/.meltano/run/tap-carbon-intensity/tap.properties.json'

It sounds like the 'discovery' operation might be failing silently, failing on the next step (sync), then installing, and then failing on retry of sync because the catalog doesn't exist.

Do you think the lazy install is feasable, or is it too much of a hassle?

I think it is definitely feasible, but I wonder if it would be easier to introduce some type of "is_installed()" check as condition for inline install, rather than triggering install upon failure. Wdyt?


Added Dice roll simulator

Description
We will need to import these modules:

Tkinter: Imported to use Tkinter and make GUI applications.
Image, Imagetk: Imported from PIL, i.e. Python Imaging Library. We use it to perform operations involving images in our UI.
Random: Imported to generate random numbers.

Fixes #439 Dice Rolling Simulator
Have you read the Contributing Guidelines on Pull Requests?

[x] Yes
[ ] No

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md
[x] My documentation follows Template for README.md
[x] My changes generate no new warnings
[ ] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works.

@kaustubhgupta @antrikshmisri @tamanna-verma

@antrikshmisri


different users on different IDs

@rultor release, tag is 0.0.29

@rultor release, tag is 0.0.29

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.29

@yegor256 Done! FYI, the full log is here (took me 8min)


cmd/cue: cue cmd stack overflows where cue export succeeds

What version of CUE are you using (cue version)?

cue version v0.5.0

go version go1.19.8
       -compiler gc
       -trimpath true
     CGO_ENABLED 0
          GOARCH amd64
            GOOS linux
         GOAMD64 v1

Does this issue reproduce with the latest stable release?
Yes, I also reproduced with the current master branch, 6c926983a43ebd32c5d8b582a3db2ffafb301cff.
What did you do?
-- a.cue --
package test

#obj: {
        requests?: {
                memory?: int & <=limits.memory
        }
        limits?: {
                memory?: int & <=100Gi
        }
}

// Stack overflow, but only in `cue cmd`.
obj: #obj & {
        requests: memory: 1Gi
        limits: memory:   requests.memory
}

// Works
// obj: #obj & {
//      requests: memory: 1Gi
//      limits: memory:   1Gi
// }
-- a_tool.cue --
package test

import (
        "encoding/yaml"
        "tool/cli"
)

command: kube: {
        task: print: cli.Print & {
                text: yaml.Marshal(obj)
        }
}

Works: cue export ./...
Fails: cue cmd kube ./...
What did you expect to see?
The same behavior as cue export: output of a concrete obj.
What did you see instead?
$ cue cmd kube ./...
runtime: goroutine stack exceeds<PHONE_NUMBER>-byte limit
runtime: sp=0xc0207003e0 stack=[0xc020700000, 0xc040700000]
fatal error: stack overflow

[long stacktrace...]

This one is quite similar to #2416, except that #2416 worked in v0.4.3, where this one also panicked there.

Reduced a little bit, and as you can see, it panics the same on both v0.4.3 and f56ccf025c2e079c1b38a4acc801de0cf354dc34:
! exec cue-v0.4.3 cmd print
stderr 'stack overflow'

! exec cue cmd print
stderr 'stack overflow'

-- a_tool.cue --
package test

import "tool/cli"

obj: {
	request: int & <=limit
	limit: int & <=100

	request: 10
	limit: request
}

command: print: cli.Print & {
	text: "\(obj.request) \(obj.limit)"
}


oven-media-engine: 0.13.1 -> 0.13.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/AirenSoft/OvenMediaEngine/releases.
meta.description for oven-media-engine is: "Open-source streaming video service with sub-second latency"
meta.homepage for oven-media-engine is: "https://ovenmediaengine.com"
meta.changelog for oven-media-engine is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2/bin/OvenMediaEngine had a zero exit code or showed the expected version
0 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 0.13.2 with grep in /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2
found 0.13.2 in filename of file in /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
oven-media-engine

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A oven-media-engine https://github.com/r-ryantm/nixpkgs/archive/170fa3cc549348a0a91d2e5a315157124e76e159.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2
ls -la /nix/store/bjyib77gkkjz3g64b3rnv605lvnmmf1h-oven-media-engine-0.13.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

oven-media-engine

Maintainer pings
cc @lukegb for testing.

was already updated in 21e312d0f7bb3668fb822d32a389d5fc532dc34f