req-router-dealer-rep hangs on third message with libzmq 4.x

When using a rep-router-dealer-rep socket configuration, somewhere between sending to the dealer socket and receiving from the rep socket it hangs on the third message sent (the first two messages go through just fine) when using libzmq 4.x (the problem does not occur with libzmq 3.x). Basically the send happens but the message never shows up at the rep socket.
This happens even using the zeromq guide sample code for this socket configuration. Here's a simple version (run broker and worker, then client). When the zmq module is using libzmq 4.x, it gets through two messages and then hangs. When using libzmq 3.x, messages keep flowing indefinitely.
Broker:
var zmq      = require('zmq')
  , frontend = zmq.socket('router')
  , backend  = zmq.socket('dealer');

frontend.bindSync('tcp://*:5559');
backend.bindSync('tcp://*:5560');

frontend.on('message', function() {
  var args = Array.apply(null, arguments);
  backend.send(args);
});

backend.on('message', function() {
  var args = Array.apply(null, arguments);
  frontend.send(args);
});

Worker:
var zmq = require('zmq')
  , responder = zmq.socket('rep');

responder.connect('tcp://localhost:5560');
responder.on('message', function(msg) {
  console.log('received request:', msg.toString());
  setTimeout(function() {
    responder.send("World");
  }, 1000);
});

Client:
var zmq       = require('zmq')
  , requester = zmq.socket('req');

requester.connect('tcp://localhost:5559');
var i = 0;
requester.on('message', function(msg) {
  console.log('got reply', i, msg.toString());
  i += 1;
  requester.send("Hello " + i);
});

requester.send("Hello " + i);

If there is more than one worker running, two messages will work for each worker, and the first time any worker gets a third message it will hang. (So for example with two workers, four messages will work, with three, six will work, etc., before the system hangs.)

This seems related to #523 and #527
Can you confirm the problem does not occur on node-zmq 2.14.0?
I'm glad to hear you identified this as a ZMQ 4 issue. Now for the fix.......

Yes, 2.14.0 works fine against libzmq 4.x, 2.15.x fails.


Point release for Ed25519 bug fix

Hi there,
I have been experimenting with Tink's Ed25519 support for signing data, and ran into an issue where the 1.0.0 release of the library has a bug that prevents reuse of PublicKeySign instances (fixed back in Sept 2017 on this PR). Switching to a head snapshot fixes the problem, but I'd rather not ship code that is built against a moving target. Is there a plan for when the 1.1.0 release will be cut? Is there anything I can do to help get 1.1.0 out?

Hi iainmcgin@,
Yes it's a known bug in the code. That's why it's annotated with @Alpha. We don't recommend using it for production.
We're working hard on 1.1.0 release, but Ed25519 might not make the cut because we're still worried about that code (it was written by a contributor).
Do you absolutely need it or can you switch to ECDSA? If you really need it, we'll spend more time working on it and that might delay the 1.1.0 release 1-2 weeks -- it's fine for us, because we have no pressure to release it now.

Without Ed25519, 1.1.0 will be out in a couple of days. With Ed25519, it won't be later than 4/15/2018.

We don't desperately need it, I just picked that scheme as it is intended to be more performant than ECDSA, according to Bernstein's paper, though I haven't actually tried benchmarking the Tink implementation to see if that is the case.
So anyway, don't rush on my account. If there are any low-hanging fruit changes needed that you'd like help with, let me know.
P.S: Hello from the outside, I left the Google Identity team a couple of months ago.

Thanks Iain. We implemented it in pure Java, so it might not give you a better performance comparing to JCE ECDSA which I believe is a wrapper of native code. I'd love to see the numbers if you happen to benchmark it though.
Cheers!

Oh, one last thing: I didn't realize the Ed25519 implementation was alpha, and I think a potential point of confusion there is that Ed25519 is included from the default Tink config registration. Maybe if it's not considered safe to use, it shouldn't be in the default config and users of the library should have to explicitly roll their own config to include it?

Yeah it's a mistake.
We're making it safe now. Stay tuned!
On Wed, Mar 28, 2018 at 4:45 PM, Iain McGinniss<EMAIL_ADDRESS>wrote:

Oh, one last thing: I didn't realize the Ed25519 implementation was alpha,
and I think a potential point of confusion there is that Ed25519 is
included from the default Tink config registration. Maybe if it's not
considered safe to use, it shouldn't be in the default config and users of
the library should have to explicitly roll their own config to include it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/tink/issues/86#issuecomment-377074524, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAdbG35Hp3pWSlE-XV1zyaxCBdW2TVQks5tjCCWgaJpZM4S9rQb
.

--
https://vnhacker.blogspot.com

Hey Iain, just want to make sure you see this. We released 1.2.0 with Ed25519.

I spotted that, thanks! I'm still working with my employer to get the Google Corporate CLA signed so that I can send you a PR for the benchmarking code; hopefully that will be resolved soon.


[NPM] update latest release on NPM

Hi,
Can you update latest release on NPM to v0.4.15 instead of v0.4.11?
Thanks.
Regards.

Done :)


Update readme macOS version to 11+

The project no longer compiles with anything below macOS 11.

Thank you!￼

Thank you!￼


tests: Add Tox config for Python 2.6 and 2.7

I could not get Python 2.5 or earlier to work. Too many packages (critically docker) don't support it.
pyenv or it's plugin python-build are the best ways I know to install different Python versions.

Thanks Alex!


Update WebSocket Inbound Endpoint doc

Purpose
This PR will contain the doc changes in WebSocket Inbound Endpoint.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Edited a file for testing the PR autotester

Status Flag 'Pull Request Inspected' - Auto Inspected - Inspection Has Been Deemed Not Necessary for this Pull Request.

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:
** NOTE: CUSTOM REPORT NOT LOADED **
JOB: BSSIO_autotester_test; Build 9 on Jenkins server at https://jenkins-son.sandia.gov
Using Parameters:

BSSIO_SOURCE_BRANCH = patch-test-1
BSSIO_SOURCE_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_SOURCE_SHA = 0c9903056a1e4ea975df43bb504f684379fb1160
BSSIO_TARGET_BRANCH = develop
BSSIO_TARGET_REPO = https://github.com/william76/betterscientificsoftware.github.io
BSSIO_TARGET_SHA = b413c5f1ea470a0c933080021aea27376a036471
JENKINS_JOB_TYPE = Experimental
TEST_REPO_ALIAS = BSSIO

Using Repos:
Repo: BSSIO (william76/betterscientificsoftware.github.io) Branch: patch-test-1 SHA: [0c9903056a1e4ea975df43bb504f684379fb1160] - TEST_REPO
Pull Request Author: william76 (William)

Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED
Note: Testing will normally be attempted again in approx. 0:00:04 hours.  If a change to the Pull Request source branch occurs, the testing will be attempted again.
NOTE: CUSTOM REPORT NOT LOADED - TESTING HAS FAILED


Use encodeTokenHeader (resp. decodeTokenHeader)

Currently we are using the naive function Network.HPACK.encodeHeader (resp. decodeHeader). Which are less performant than the token-based counterparts.
This bug should not be too hard for a newcomer to the lib. Hence, tagging it as 'help wanted'.

I've started looking into this one and I take back the "should not be too hard" from my previous comment.
Reading through the implementation of HPACK.encodeHeader is enlightning.
The largest drawback of using encodeHeader is the memory allocation + copy for the whole buffer.
If we want to avoid this copy we'll need to use a same buffer and serialize access to the buffer (i.e., calls to _encodeHeaders) and keep the buffer protected while an HEADER frame and its CONTINUATIONs are sent. This situation could reduce concurrency because we would be holding an exclusion lock while performing the encoding. As a result, the choice between encodeHeader and encodeTokenHeader is a trade-off. The network is very likely the bottleneck and hence keeping a single buffer is likely worth the added complexity -- but definitely not an easy task for newcomers.


Issue with Spawner for diffdrive_controller: Controller manager not available

encountered the "Controller manager not available" error when using the spawner for diffdrive_controller,
error :
[ERROR] [spawner-9]: process has died [pid 26229, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner joint_state_broadcaster -c controller_manager --ros-args -r __ns:=/'].
[INFO] [spawner-19]: process started with pid [26646]
[spawner-19] [INFO] [1709295965.721752111] [spawner_diffdrive_controller]: Waiting for '/controller_manager' node to exist
[spawner-19] [INFO] [1709295967.740792119] [spawner_diffdrive_controller]: Waiting for '/controller_manager' node to exist
[spawner-19] [INFO] [1709295969.760746372] [spawner_diffdrive_controller]: Waiting for '/controller_manager' node to exist
[spawner-19] [INFO] [1709295971.781857527] [spawner_diffdrive_controller]: Waiting for '/controller_manager' node to exist
[spawner-19] [ERROR] [1709295973.798772303] [spawner_diffdrive_controller]: Controller manager not available
[ERROR] [spawner-19]: process has died [pid 26646, exit code 1, cmd '/opt/ros/humble/lib/controller_manager/spawner diffdrive_controller -c controller_manager --ros-args -r __ns:=/ --params-file /home/zahra/turtbot_ws/install/irobot_create_control/share/irobot_create_control/config/control.yaml'].

Same problem, have you solved it?

I've been encountering the same problem with spawner for joint_state_broadcaster. The issue seems to be from gazebo ignition plugin for differential drive controller.

@civerachb-cpr do you think that your latest PR should fix this issue?
https://github.com/iRobotEducation/create3_sim/pull/233

It might, though this issue predates Jazzy. The issue that #233 fixes appears to be specific to a new update to ros_controllers; when the Jazzy simulation was first released the timeout wasn't an issue, so something's changed between then and now on the controller front.
I suspect #233 won't hurt, but it may not completely solve the problem either.


Dropdown not aligning when text-center is applied for div

When text-center class is used along with dropdown component, alignment is not centered for context menu

While disabling text-center alignment property it works fine, but it loses container alignment

What if you use .center-block instead?

using .center-block is not aligning the drop down. Drop down goes to left alignment.

@senthilsivanath Would you post a live demo of this behavior?
I'm unable to reproduce it here: http://jsbin.com/duwidu/1/edit?html,output

Dropdowns are positioned absolutely based on the parent element—whatever closest parent has position: relative. If you're realigning things, you'll need to account for that somehow.


⚠ Avatar API Endpoint has degraded performance

In 4c13481, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 5775 ms

Resolved: Avatar API Endpoint performance has improved in 08502e3 after 9 minutes.


Options in JavaScript init method

Update docs to reflect all the options accepted by init method in JavaScript. For example, kOSSettingsKeyInFocusDisplayOption

@sachinB94 Thanks for bringing this up, we've added this information to our documentation: https://documentation.onesignal.com/v5.0/docs/react-native-sdk#section-ios-initialization-parameters

Hey, is kOSSettingsKeyInFocusDisplayOption not supported? I've tried it with values 0, 1 and 2, and it works fine.
I know there's an OneSignal.inFocusDisplaying() method, but if we can set kOSSettingsKeyInFocusDisplayOption in init also, don't you think it should be documented too?


[Feature Request] Highlight state border when state is hovered

Great job! I really like how direct and intuitive the zone information is presented. I also like the feature that shows the number of active cases (what I care the most, personally) when we hover on individual state.
🚀 Feature Request
When an individual state is hovered, highlight the border of that particular state (to help our friends who are not doing well in geography).

@HengJunXi Hey there! It is indeed a great feature to have and I really appreciate it that you share this with me. 😄
You shall see this feature in a week or two. Cheers!


ROADMAP: Migrate docs to Falco.org

Migrate documentation from GitHub Wiki to Falco.org site. The new documentation will be written in markdown and the Falco.org site (based on Hugo) will render it to HTML. Documentation will be hosted at falco.org/docs.
GitHub wiki lacks the ability to organize content in a way that creates a natural flow through the documentation. Hugo allows us to better organize the content.

https://github.com/falcosecurity/falco-website/pull/5

This is mostly done except for a few orphan pages. Issues have been created for those pages.


grammar fix

Proposed changes
Hello. Just a small grammar change here regarding Bower. I didn't think it made sense to have it in parentheses, after a sentence, and not capitalized. It's not quite wrong as a second sentence, but it looks a bit awkward.
Types of changes

[x ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to change).

Checklist:

[x ] I have read the CONTRIBUTING document.
[x ] My change requires a change to the documentation.
[x ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thanks 👍


C make cpp11 support

This builds upon #34 to also take advantage of newer CMake capabilities in Cmake 3.2 and greater for C++ 11 compiler usage.

@wjakob This too is also passing all tests and should be ready to merge.


Nuxt 4 beta Layers with Nuxt UI not working correctly.

Environment
I used the Hello World template, works.
Added the content, works.
Added a layer... kinda works but that template has Nuxt UI Pro.
Reproduction
Added the nested layer and created a component called . I tried to put class="prose," and that changed the results, but it still did not work. Added the nested layer and created a component called . The content isn't formatted correctly.
The I created a component in the non-layer called  and it has the same issue.
Describe the bug
Without prose, it does what we expect with tailwind. The content is wrapped in a header tag. With prose on a dark screen, you don't see it because it fails to format correctly—the header text is dark.
It appears the issue is not with Layers, and perhaps this needs to go to Nuxt UI?
Additional context
No response
Logs
No response

This sounds like it might be a Nuxt-modules/tailwindcss issue. Would you see if you can reproduce with just that module? 🙏

I replaced NuxtUI with DaisyUI, and things are working. I don't have an example, but my bias is that I wonder if the way NuxtUI works from one layer to the next needs some documentation. (at least for those using NuxtUI with a layer-based app)

I redid the project after getting it working with Daisy, and now it is working with NuxtUI. Sadly, I did not commit the version that was failing earlier, but it is great. It looks like I will be moving to NuxtUI moving forward.


New integration tests suite

This is the very first attempt to create a new suite of integration tests trying to improve our test coverage ratio.

Current coverage is 18.07% (diff: 100%)

No coverage report found for devel at 1733e4d.

Powered by Codecov. Last update 1733e4d...bb4874d


Create 1.9.7 Types_of_Hackers.md

Description 📜
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
Fixes # <issue_number_here>

Type of change 📝

[ ] Audio (Should be in mp3 format Includes speech clarity, Concise ,Low distortion)
[ ] Video (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)
[ ] Documentation (Content Creation in the form of codes or tutorials)
[ ] Other (If you choose other, Please mention changes below)

Domain of Contribution 📊

[ ] Android Dev (Flutter, Java, Kotlin)
[ ] Backend Dev (Java, .NET, Python)
[ ] C/CPP
[ ] Competitive Programming
[ ] Cyber Security
[ ] DSA
[ ] Database
[ ] Datascience with Python
[ ] Datascience with R
[ ] Frontend Dev (HTML, CSS, JS)
[ ] Frontend Dev (React, Angular, Vue)
[ ] Golang
[ ] Interview Prep
[ ] Java
[ ] JavaScript
[ ] MERN
[ ] Machine Learning
[ ] Open Source
[ ] Python
[ ] Rust
[ ] Statistics
[ ] UI/UX

Checklist ✅

[ ] I follow Contributing Guidelines & Code of conduct of this project.
[ ] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] My changes generates no new warnings.
[ ] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

Thank you, sir
I changed that sir

Thank you, sir
I changed that sir

Still not working, so I add a photo from my side, Please check it if you have any issue with it let me know I'll reset it !


Bump to 0.16.0

r? @brson
(rust_highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit 8dc8c08 has been approved by brson

:hourglass: Testing commit 8dc8c08 with merge 2ffc035...

:sunny: Test successful - cargo-cross-linux, cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-32, cargo-win-msvc-64
Approved by: brson
Pushing 2ffc035a1a35cea4cbf1cc16da7b85e6043f3d4d to master...


[Testing Confirmation] Confirm current testing requirements

As part of the discussion around implementing an organization-wide testing policy, I am visiting each repo to see what tests they currently perform. I am conducting this work on GitHub so that it is easy to reference.
Looking at the Neural Search repository, it appears there is

Repository
Unit Tests
Integration Tests
Backwards Compatibility Tests
Additional Tests
Link

Neural Search
- [x]
- [x]
- [ ]
Certificate of Origin, Link Checker
https://github.com/opensearch-project/neural-search/issues/124

I don't see any requirements for code coverage in the testing documentation. If there are any specific requirements could you respond to this issue to let me know?
If there are any tests I missed or anything you think all repositories in OpenSearch should have for testing please respond to this issue with details.

We are working on adding the perf test benchmarks using OpenSearch Benchmark tool for this plugin too. Issue: https://github.com/opensearch-project/neural-search/issues/34
Right now we don't need BWC tests, but we will be adding BWC tests soon in this repo.

I don't see any requirements for code coverage in the testing documentation.

Ideally we would want code coverage for this repo. but right now we have not enabled it.

Hi @navneet1v, sorry that I overlooked those details. There are a lot of these issues some sometimes I miss a few intricacies. Thank you for following up. I will be sure to update the notes to reflect what you mentioned.

Created a new issue to keep track of the BWC tests #202

Backwards Compatibility Tests are added
we added initial support for benchmarks https://github.com/opensearch-project/opensearch-benchmark-workloads/tree/main/noaa_semantic_search
code coverage enabled https://app.codecov.io/gh/opensearch-project/neural-search


LPFG 1186 MI accessibility options

Needs to be merged with LPFG-1186 in learner record

Added accessibility options to payload sent to learner record in learnerrecord.ts
Removed requested notification from booking.ts and pass accessibility options to learnerecord

Replaced by https://github.com/Civil-Service-Human-Resources/lpg-services/pull/536


Repeat checking state of RPi.GPIO input in edge detection handler.

Helps a lot with:
https://github.com/home-assistant/home-assistant/issues/10498
in my case, but still is not 100% reliable solution it theory.
Description:
Related issue (if applicable): fixes #10498
Checklist:

[y ] The code change is tested and works locally.

Hi @matkor,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Where is link to sign CLA?

This code lock the callback thread of the library and they can process other data in this time. I don't know if that will be a problem for this library. The problem look like he call the callback while new data are present but if you want read this data, you see only the old data while the callback was called to fast from library? Maybe you should fix that on library to make sure that call only the callback if the data are available. What do you think?

code lock the callback thread of the library and they can process other data in this time. I don't know if that will be a problem for this library

If I understand code correctly, it is not problem for library, but waiting in callback thread will prevent callbacks for other switches state changes to be called until callback handler finishes waiting.
Which is bad for multi switch scenario.


test PR with Github API

Please pull this in!

Docs Build status updates of commit 2d6f170:
:clock10: Pending: waiting for processors (8 builds ahead of you)
:warning: Docs Build is busy, currently there are 8 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 2d6f170:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

sdp-test/index.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 1ce9c3d:
:clock10: Pending: waiting for processors (8 builds ahead of you)
:warning: Docs Build is busy, currently there are 8 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 1ce9c3d:
:warning: Validation status: warnings

File
Status
Preview URL
Details
Dependent Files

sdp-test/page-model-documents/Tutorial.yml
:warning:Warning

Details

sdp-test/index.md
:white_check_mark:Succeeded

sdp-test/page-model-documents/Tutorial.yml

[Warning] Unable to find uid "challenge-uid".

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 0e51879:
:warning: Validation status: warnings

File
Status
Preview URL
Details
Dependent Files

sdp-test/page-model-documents/Tutorial.yml
:warning:Warning

Details

sdp-test/index.md
:white_check_mark:Succeeded

sdp-test/page-model-documents/Tutorial.yml

[Warning] Unable to find uid "challenge-uid".

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit abf9831:
:warning: Validation status: warnings

File
Status
Preview URL
Details
Dependent Files

sdp-test/page-model-documents/Tutorial.yml
:warning:Warning

Details

sdp-test/index.md
:white_check_mark:Succeeded

sdp-test/page-model-documents/Tutorial.yml

[Warning] Unable to find uid "challenge-uid".

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Github organization on CCLA page has no label/value

Location: sign/pivotal/ccla
Content: <option value=""></option>

Thanks for the report! We should probably make the label something like "Please select an Organization".


Add google drive reader for  text files

Oh nice! So does this only work for .txt files at the moment?

yeah.

@ravi03071991 one idea here which is similar to what @emptycrown did in https://github.com/emptycrown/llama-hub/pull/17/files. first just download the files from google drive to a local, temporary directory, and then call download_loader on "SimpleDirectoryReader" to parse these files. That way, you get to parse all extensions that SimpleDirectoryReader is able to process!

Yeah, even I thought the same. So, as per the documentation, google drive allows us to download files in bytes format and I am unable to figure out how to extract the text from bytes format. Any directions that you guys @jerryjliu @emptycrown can suggest here or should I try doing it in a different route?

@jerryjliu I found a workaround. Will update the PR with your suggesstion.

Helped clean up / refactor it a bit. Let me know what you think!

Helped clean up / refactor it a bit. Let me know what you think!

Thank you. Was restructuring in a similar manner. I think now we are good to go.


More complete example of Tornado instrumentation

I have been trying to piece together how to properly instrument a tornado application based on the documentation/comments throughout this repository, such as:
https://github.com/uber-common/opentracing-python-instrumentation#usage
https://github.com/uber-common/opentracing-python-instrumentation/blob/master/opentracing_instrumentation/request_context.py#L231-L240
However, I cannot quite connect all the dots. I think what would be extremely useful is a more complete example of how to use the middleware with a Tornado RequestHandler.
Also, if you just want to make a quick note in this issue showing how it is to be used, I would be more than happy to commit PR the actual documentation once we have our instrumentation working. Thanks!

This seems to be working for me. Code inspired by many sources.
from tornado.web import HTTPError
from tornado.web import RequestHandler
from opentracing_instrumentation import http_server
from opentracing_instrumentation import request_context

class BaseRequestHandler(RequestHandler):
    def _execute(self, *args, **kwargs):
        request = http_server.TornadoRequestWrapper(self.request)
        self.span = http_server.before_request(request)

        with request_context.span_in_stack_context(self.span):
            super(BaseRequestHandler, self)._execute(*args, **kwargs)

    def log_exception(self, typ, value, tb):
        if not isinstance(value, HTTPError) or 500 <= value.status_code <= 599:
            self.span.set_tag('error', True)
            self.span.log_event(event='error', payload=value)

        super(BaseRequestHandler, self).log_exception(typ, value, tb)

    def on_finish(self):
        self.span.set_tag('http.status_code', self.get_status())
        self.span.finish()


Add username to azlogger traces

Submit the username amongst the azlogger custom dimensions, to be used for creating the metrics report Hub CPU Hours Per User

Thanks! I'll get this deployed to staging now.


Federation capability

It would be great if multiple Zulip servers were able to talk to each other.
matrix.org is an open standard for inter-operable messaging, and would be a natural way for Zulips to talk to each other. It also trivially gives the ability to bridge into other communication systems like Slack and IRC.
Writing an integration would probably take the form of writing a small bridge that sits between a Zulip and a Matrix homeserver. There is a HOWTO for doing this using a Node bridging library here: https://github.com/matrix-org/matrix-appservice-bridge/blob/master/HOWTO.md or a non-Node bridge could be written using the raw Application Service APIs at https://matrix.org/docs/spec/ . This bridge would be handed messages from the Matrix homeserver, which it would then translate into Zulip messages using something similar to https://github.com/zulip/zulip/blob/f3783fb/bots/irc-mirror.py#L72 and would need to poll Zulip for messages using something like https://github.com/zulip/zulip/blob/f6f8f1f/bots/zephyr_mirror_backend.py#L744 and forward them to Matrix using the Application Services API.
Along the way, we'd probably want to add a Matrix homeserver to the Zulip install process. That installation process is documented at https://github.com/matrix-org/synapse/blob/master/README.rst but largely amounts to "install some system deps, configure to pass in a hostname and some certs, then run a python process".
Myself, @ara4n, @Kegsay, and several others from matrix.org are very happy to give advice and help out where we can.

Thanks for the detialed notes @illicitonion!  This would be a great project for anyone interested in messaging federation.

guys @illicitonion , are we resurrecting this topic?
RocketChat, for example, has its https://github.com/RocketChat/Rocket.Chat/issues/601 federation
Slack has gotten it for free from Matrix's team https://github.com/matrix-org/matrix-appservice-slack
There are also talks (suspended?) on LetsChat https://github.com/sdelements/lets-chat/issues/606

we (on the Matrix side) would love to help get Zulip federated.  I seem to remember it was one of your GSoC projects this year - ironically it was one of ours too (although nobody picked it, alas).  @timabbott: let me know if there's anything we can do, beyond throwing people at it.  One option might be for us to try to set up a bounty programme or something to encourage folks to sort it out?

I'd certainly love to see this worked on, and I'd be very happy to provide guidance to someone investing time into the project.

Please consider the specifications which are being developed by the W3C Social Web WG: https://www.w3.org/wiki/Socialwg#Specifications

This sounds like an awesome project! I think I'd like to consider applying for the GSoC spot to work on this if all parties are still interested!

We (matrix.org) would still happily support anyone wanting to work on this. In terms of Social Web WG stuff, i'm honestly not sure how ActivityPub and AS2 compare with Matrix.  We've been too stuck in building out Matrix to interface with the W3C, but hopefully the two will at the very least bridge in future :)

Yeah we're still interested.  @ara4n are you in GSoC this summer?

@timabbott we are indeed.

It would be great if multiple Zulip servers were able to talk to each other.

Indeed ! And that the communications should remain tractable since the messages
between Zulip servers can be neatly sorted to the designated topics within a
stream; it should be possible in a Zulip server to have lots of n-point <-->'s
in addition to the 2-point <-->'s given the 2-tier threading granularity.

matrix.org is an open standard for inter-operable messaging, and would be a natural way for Zulips to talk to each other. It also trivially gives the ability to bridge into other communication systems like Slack and IRC.

There is an ambiguity with how the implementation could be:

A topic in a stream, shared across multiple Zulip servers, synced to a
room in a Matrix homeserver that can be federated via PDU. The room bridges
with other communications systems.
A stream with several topics/subjects, shared across multiple Zulip servers,
synced to a room in a Matrix homeserver that can be federated via PDU. The
room then bridges with other communication systems. There is a complication
with how this is implemented since it is not possible to anticipate how the
topic/subject of a message is mapped into other communication systems.

Writing an integration would probably take the form of writing a small bridge that sits between a Zulip and a Matrix homeserver.
...

I, wrote a proof-of-concept integration using the Matrix client-server API
instead of the appservice API:
https://github.com/rht/python-zulip-api/tree/matrix (can be tested at
#zulip:matrix.org endpoint and
https://chat.zulip.org/#narrow/stream/test.20here/topic/matrix endpoint, haven't been
fortified with handling runtime errs, syntax translation yet).  From a functionality standpoint, it
approximates a script written with the appservice API, but a message translated
from a Zulip server is instead quoted and relayed by a user instead of having
each Zulip sender recreated in the room, so it already works. As long as the
messages are stored in a room in a Matrix homeserver, they can be federated to
any communication systems.
To proceed from here, the client-server API can be swapped with the appservice
API, but the way this can be implemented becomes either:

zulip/python-zulip-api, translated to nodejs, to be used with
matrix-org/matrix-appservice-bridge.
The appservice API, implemented into matrix-org/matrix-python-sdk, to be used
with zulip/python-zulip-api.

Along the way, we'd probably want to add a Matrix homeserver to the Zulip install process.

The ^ integration script linked can be moved to zerver/management/commands/
as necessary.
(As with the translation between Matrix Transaction data format and W3C AS2 data
format, regardless of transport or encryption scheme, I think this is tractable
as a first step toward a convergent evolution of the federation specs or at
least a spec overlap for a common use case area.  Indeed.)

@rht there are a couple Node libraries of basically zulip/python-zulip-api.  https://github.com/zulip/zulip-node and https://github.com/zulip/zulip-js are the two options.
But I think using their Python SDK will probably be more pleasant, so I'd vote for option 2 assuming Matrix's own Python implementation is reasonable.  @ara4n what's your advice on this?

As a maintainer of the matrix-python-sdk, I should note that the python sdk doesn't have AS capabilities by itself. There are a couple of third-party projects for matrix application services in python (one of which I'm working on myself), but their maturity isn't great. For developing application services, JS is better if it's possible to use JS.

@non-Jedi the situation is reversed in Zulip. zulip-node hasn't been touched for 4 years, zulip-js I have no idea of (at least it is as recent as last year, cc: @arpith). @timabbott made no statement of which one is the official/supported one.
@non-Jedi what is your estimate of the complexity of the task of implementing AS into the matrix-python-sdk / polishing the existing third-party-projects? Currently, the bridge has worked well without the essential feature of AS, that all that needs to be done is polishing.

@rht sorry for failing to respond to this for so long. @Cadair maintains the
main python AS project. He might be able to give you a better estimate how
stable things are. (I'm assuming the Zulip python code is python3-compatible)

My AS library https://github.com/Cadair/python-appservice-framework is still very alpha. I am happy to collaborate with people helping out with it, although I don't have a lot of time to do any development on it myself at the moment.

Any updates on this?

@Serkan-devel we now have a documented Matrix bridging system; though the docs are out-of-date today, since we merged an improved configuration format yesterday.  @neiljp @rheaparekh can you make sure we fix the docs soon?  Thanks!
(I suppose we should also extent the docs to show how to bridge two Zulip servers either through Matrix or directly, and then we can close this)

Thanks @timabbott! I don't see any reference to 'bridge' in the docs yet.
I work closely with a partner company and we'd like to have shared channels to collaborate on projects. I'm hoping this will be a good use case and I can get them off Slack. :)

https://zulipchat.com/integrations/doc/matrix and https://zulipchat.com/integrations/doc/irc are the docs.  Note that as of this moment the configuration format for that integration is now a .ini file and the docs haven't been updated yet (sigh), but you should be able to get it to work.

Create a bot ...
Is anyone still planning an actual method to bridge to other networks?
A relay-bot like this is not the capability that was originally proposed.  It's more like someone shouting over the fence what others are saying instead of actually connecting services.

Thank you to everyone  for the effort put into enabling federation.  I'm wondering if we may have a different view on what the federation would look like though.  Most of my experience is in the XMPP world. There, if you wanted to contact a user on a different server, the app could look up the SRV DNS record for the other user's ID and the server information would be discovered. The solutions I've seen so far for Zulip are what I think of as bridges (and named as such, irc bridge for example). Is XMPP style federation something that might be part of Zulip in the future or is the static bridge method the preferred route?

The current approach here is sadly bot based, although Matrix and XMPP both support much more sophisticated bridging approaches - see https://matrix.org/blog/2017/03/11/how-do-i-bridge-thee-let-me-count-the-ways/ for ways this could be much more idiomatic.

So far most people interested in this have the goal of using Matrix to bridge e.g. IRC channels with Zulip, which the bot-based approach works quite well for.
Zulip will probably eventually have XMPP style federation, though a lot of care needs to go into such a feature with an auto-discovery model to avoid creating other problems (E.g. spam vectors).  Zulip has been bridged with other networks that support Zulip's topic-based threading model (e.g. Zephyr) using a "double-puppeted" bridge approach with only a few functions in the Zulip server codebase supporting it, so there's little about the Zulip server that would need to change to support this for other protocols.  See https://github.com/zulip/python-zulip-api/tree/master/zulip/integrations/zephyr, which uses an API super-user bot and has synced tens of millions of messages between Zulip and MIT's Zephyr installation.
I have no plans to work on this personally, but I'm happy to provide advice to anyone serious about working on it.

Honestly I find these bot-based approaches super annoying. You can't
see who is on the other line and thus you can't have something basic
as completion on nicks.
On 9/28/18, Tim Abbott<EMAIL_ADDRESS>wrote:

So far most people interested in this have the goal of using Matrix to
bridge e.g. IRC channels with Zulip, which the bot-based approach works
quite well for.
Zulip will probably eventually have XMPP style federation, though a lot of
care needs to go into such a feature with an auto-discovery model to avoid
creating other problems (E.g. spam vectors).  Zulip has been bridged with
other networks that support Zulip's topic-based threading model (e.g.
Zephyr) using a "double-puppeted" bridge approach with only a few functions
in the Zulip server codebase supporting it, so there's little about the
Zulip server that would need to change to support this for other protocols.
See
https://github.com/zulip/python-zulip-api/tree/master/zulip/integrations/zephyr,
which uses an API super-user bot and has synced tens of millions of messages
between Zulip and MIT's Zephyr installation.
I have no plans to work on this personally, but I'm happy to provide advice
to anyone serious about working on it.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/zulip/zulip/issues/356#issuecomment-425576745

Hi, at first hand it would be very helpful to implement somewhat federation functionality between pre-known (trusted) instances e.g. for connecting multiple servers within large organizations (for example one to which customers can connect to and one internal for employees which ist integrated into the internal tool stack etc.).

At this point, federation cannot function without strong end-to-end encryption, so adopting MLS sounds like the first step.

Per https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix, Matrix is getting better threading features so the Gitter integration is lossless. I very much hope that could help out with this!
(Of course Matrix and Zulip are unlikely to have the same threading model, but as long as Matrix can replicate what exists on the Zulip side, and Zulip can recognize Matrix threads that correspond to Zulip threads (and Zulip invariants), we are good. This is like a Syntax -> Text -> Syntax round trip, where at least the first step is total, and the second step hopefully can have good error recovery.)

Per https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix, Matrix is getting better threading features so the Gitter integration is lossless. I very much hope that could help out with this!
(Of course Matrix and Zulip are unlikely to have the same threading model, but as long as Matrix can replicate what exists on the Zulip side, and Zulip can recognize Matrix threads that correspond to Zulip threads (and Zulip invariants), we are good. This is like a Syntax -> Text -> Syntax round trip, where at least the first step is total, and the second step hopefully can have good error recovery.)

Beyond Federation capability, is it simply considered to implement Zulip as a Matrix client?

Beyond Federation capability, is it simply considered to implement Zulip as a Matrix client?

@baderdean server or client?
On the client-side, a non-electron app that would allow accessing all kinds of open communication protocols (XMPP, Matrix, Zulip, E-Mail, ...) with proper abstraction into libraries would be great (there already is Ferdi as an electron app that uses the web views of  each). But that is not the domain of the Zulip developers.

So... what if all Private Messages would actually go via XMPP? Unlike the streams, the model of PMs maps over perfectly, enabling people to chat with other Zulip users and beyond, bridging the gap between Instant Messaging and Team Communication which makes many of my team members still use Whatsapp (oof!) despite embracing Zulip in the organization.
It would also facilitate easier communication with guests, who might not even have to be invited as they could send messages with any XMPP account. Honestly this idea really excites me, could that be a feasible GSoC project? @timabbott

Just wrote some thoughs on this in a CZO topic, thought it would be useful to leave a link here too for future reference.


not hidding the status and navigation bar in modal

Description
I am using a modal from react-native i wanted to hide the status bar and navigation bar on modal as well but its showing on the modal

react-native-system-navigation-bar version
2.6.0
React Native version
0.71
Snack, code example, screenshot, or link to a repository
No response

Hi @rehan-taiftec, can you share the snack code so I can test it?

@kadiraydinli
Same issue here. 🥺
Description
I want to use Immersive mode to cover both the status bar and the bottom navigation, but when I use the modal provided by react-native, the bottom navigation is visible.
react-native-system-navigation-bar version
2.6.0
React Native version
0.71.6
Snack, code example, screenshot, or link to a repository
// ImmersiveModaHandler.js
import { AppState, Platform } from 'react-native';
import SystemNavigationBar from 'react-native-system-navigation-bar';

import { PLATFORM } from '@Constants';

const setImmersiveMode = () => {
  SystemNavigationBar.immersive();
};

const initImmersiveMode = () => {
  if (Platform.OS === PLATFORM.IOS) {
    return;
  }

  setImmersiveMode();
  AppState.addEventListener('change', setImmersiveMode);
};

export { initImmersiveMode, setImmersiveMode };

// LoadingScreen.js
...
componentDidMount = async () => {
   ...
   await Promise.all([setImmersiveMode(), ...]);
  };

// Example > ModalComponent.js
import { Modal } from 'react-native';

...

return (
  <Modal
        transparent
        statusBarTranslucent
        visible={modalVisible}
        accessible={false}
        style={getStyle().container}
      >
...

Hi @uncoolclub, thank you for your comment. 🙏🏼 I was able to see the problem when I tested your snack code. This issue was fixed in react-native before(https://github.com/facebook/react-native/commit/f8a4d281e2be5b68fbebf53f930d37d96236829c), but now it doesn't seem to work properly for Android SDK Level 33 (Android 13). It works correctly when I tested it on Android SDK Level 28 (Android 9). I'm looking at what I can do to fix this issue. I'll let you know when I find a solution.

Hello again @uncoolclub , sorry to be back late. This issue is a React Native related issue. If I can find the time and do it, I'm thinking of opening a pull request for this in React Native. Unfortunately this issue cannot be resolved in my package.

Hello, @kadiraydinli. It's okay, thanks for comment! I am aware of that. Could you tell me what specifically was an issue in the reaction native? Is it the same issue as the one you linked above (https://github.com/facebook/react-native/commit/f8a4d281e2be5b68fbebf53f930d37d96236829c)?

Yes,same issue as above link. @uncoolclub

Faced with the same problem.  There are no workarounds?

@valery-lavrik  As far as I know there is no workaround. Maybe you can patch react-native in your node_modules with patch-package.

unfortunately, I don't know react-native so well

Faced with the same problem

same problem here....

Same problem here.

Any workarounds? For current react-native, any patch we can apply to fix this?

news?

not working rite?

Not working for modals ??

Yes in React Native Modal it still show


Silk while testing

I'd like to run some tests, and then be able to runserver and view the silk results.
Any guidance on achieving this?
I've made sure to install the silk app and middleware when testing, and I can see requests being logged, but the issue is that the test database gets reset/deleted after every run.
I tried a custom database router where all the 'silk' app stuff gets saved to a different database, but the test runner also deletes/resets that database.
My next approach is to get rid of my custom database router, and just have a custom test runner, where I make sure to not delete/reset the silk data in between runs.
But I'm just curious if anyone else has other ideas.

pytest-django has a --reuse-db option.


Texture animate jitter when use metal backend on mac

My platform is macos 12.6.1.
I test a simple texture animation with sokol_gfx+sokol_app.
When test with opengl backend.The animation is smooth.
But when i switch to metal backend.The animation start to jitter, and looks not smooth.
The screen recording is below(record by my phone):
The left window is opengl backend, the right window is metal backend.
https://user-images.githubusercontent.com/12448588/213926685-6e026c30-c04e-4850-9cc2-905b04ec2df2.mp4
The difference is very obvious.
I notice that If i open more programs to use more cpu and memory, the metal backend animation jitter will get worse.
Maybe the opengl backend do more optimizations?
This is metal backend sokol_anim.m file, the opengl backend just change SOKOL_METAL to SOKOL_GLCORE33
    #define SOKOL_IMPL
    #define SOKOL_METAL
    #import <Foundation/Foundation.h>

    #include "sokol_app.h"
    #include "sokol_gfx.h"
    #include "sokol_glue.h"
    #include "sokol_fetch.h"
    #include "sokol_time.h"
    #include "HandmadeMath.h"

    #define STB_IMAGE_IMPLEMENTATION
    #include "stb_image.h"
    #define SOKOL_SHDC_IMPL
    #include "batch_system_shader.h"

    /* application state */
    static struct {
        sg_pipeline pip;
        sg_bindings bind;
        sg_pass_action pass_action;
        uint8_t file_buffer[256 * 1024];
    } state;

    float vertices[] = {
        50,50, 1.0f, 1.0f,1,1,1,1,
        50,0, 1.0f, 0.0f,1,1,1,1,
        0,0, 0.0f, 0.0f,1,1,1,1,
        0,50,0.0f, 1.0f,1,1,1,1
    };

    static void fetch_callback(const sfetch_response_t*);

    static void init(void) {
        sg_setup(&(sg_desc){
            .context = sapp_sgcontext()
        });

        /* setup sokol-fetch
            The 1 channel and 1 lane configuration essentially serializes
            IO requests. Which is just fine for this example. */
        sfetch_setup(&(sfetch_desc_t){
            .max_requests = 2,
            .num_channels = 1,
            .num_lanes = 1
        });

        /* initialize sokol_time */
        stm_setup();

        /* Allocate an image handle, but don't actually initialize the image yet,
        this happens later when the asynchronous file load has finished.
        Any draw calls containing such an "incomplete" image handle
        will be silently dropped.
        */
        state.bind.fs_images[SLOT_tex] = sg_alloc_image();

        /* flip images vertically after loading */
        stbi_set_flip_vertically_on_load(true);
        state.bind.vertex_buffers[0] = sg_make_buffer(&(sg_buffer_desc){
            .size = sizeof(vertices),
            .usage = SG_USAGE_DYNAMIC,
            .label = "quad-vertices"
        });

        /* an index buffer with 2 triangles */
        uint16_t indices[] = {
                0, 1, 3,   // first triangle
                1, 2, 3    // second triangle
        };
        state.bind.index_buffer = sg_make_buffer(&(sg_buffer_desc){
            .type = SG_BUFFERTYPE_INDEXBUFFER,
            .size = sizeof(indices),
            .data = indices,
            .label = "quad-indices"
        });

        /* create shader from code-generated sg_shader_desc */
        sg_shader shd = sg_make_shader(batch_shader_desc(sg_query_backend()));

        /* create a pipeline object (default render states are fine for triangle) */
        state.pip = sg_make_pipeline(&(sg_pipeline_desc){
            .shader = shd,
            .index_type = SG_INDEXTYPE_UINT16,
            /* if the vertex layout doesn't have gaps, don't need to provide strides and offsets */
            .layout = {
                .attrs = {
                    [ATTR_batch_vs_xyuv].format = SG_VERTEXFORMAT_FLOAT4,
                    [ATTR_batch_vs_rgba].format = SG_VERTEXFORMAT_FLOAT4
                }
            },
            .label = "proj-pipeline"
        });

        /* a pass action to clear framebuffer */
        state.pass_action = (sg_pass_action) {
            .colors[0] = { .action=SG_ACTION_CLEAR, .value={0.2f, 0.3f, 0.3f, 1.0f} }
        };

        sg_image image1 = state.bind.fs_images[SLOT_tex];

        /* start loading the PNG file
        we can use the same buffer because we are serializing the request (see sfetch_setup) */
        sfetch_send(&(sfetch_request_t){
            .path = "awesomeface.png",
            .callback = fetch_callback,
            .buffer_ptr = state.file_buffer,
            .buffer_size = sizeof(state.file_buffer),
            .user_data_ptr = &image1,
            .user_data_size = sizeof(image1)
        });
    }

    /* The fetch-callback is called by sokol_fetch.h when the data is loaded,
    or when an error has occurred.
    */
    static void fetch_callback(const sfetch_response_t* response) {
        if (response->fetched) {
            /* the file data has been fetched, since we provided a big-enough
            buffer we can be sure that all data has been loaded here
            */
            int img_width, img_height, num_channels;
            const int desired_channels = 4;
            stbi_uc* pixels = stbi_load_from_memory(
                response->buffer_ptr,
                (int)response->fetched_size,
                &img_width, &img_height,
                &num_channels, desired_channels);
            if (pixels) {
                sg_image image = *(sg_image*)response->user_data;
                sg_init_image(image, &(sg_image_desc) {
                    .width = img_width,
                    .height = img_height,
                    /* set pixel_format to RGBA8 for WebGL */
                    .pixel_format = SG_PIXELFORMAT_RGBA8,
                    .wrap_u = SG_WRAP_REPEAT,
                    .wrap_v = SG_WRAP_REPEAT,
                    .min_filter = SG_FILTER_LINEAR,
                    .mag_filter = SG_FILTER_LINEAR,
                    .data.subimage[0][0] = {
                        .ptr = pixels,
                        .size = img_width * img_height * 4,
                    }
                });
                stbi_image_free(pixels);
            }
        }
        else if (response->failed) {
            // if loading the file failed, set clear color to red
            state.pass_action = (sg_pass_action) {
                .colors[0] = { .action = SG_ACTION_CLEAR, .value = { 1.0f, 0.0f, 0.0f, 1.0f } }
            };
        }
    }

    void frame(void) {
        sfetch_dowork();

        if (vertices[0] > 700) {
            vertices[0] = 50;
            vertices[1] = 50;

            vertices[8] = 50;
            vertices[9] = 0;

            vertices[16] = 0;
            vertices[17] = 0;

            vertices[24] = 0;
            vertices[25] = 50;
        } else {
            for (int i = 0; i < 4; i++) {
                vertices[0+i*8] += 5;
                vertices[1+i*8] += 5;
            }
        }

        hmm_mat4 projection = HMM_Orthographic(0.0f, sapp_width(), 0.0f, sapp_height(), -1, 1);

        sg_begin_default_pass(&state.pass_action, sapp_width(), sapp_height());
        sg_apply_pipeline(state.pip);
        sg_apply_bindings(&state.bind);
        sg_update_buffer(state.bind.vertex_buffers[0], &SG_RANGE(vertices));

        batch_vs_params_t batch_vs_params = {
            .proj = projection
        };
        sg_apply_uniforms(SG_SHADERSTAGE_VS, SLOT_batch_vs_params, &SG_RANGE(batch_vs_params));

        sg_draw(0, 6, 1);
        sg_end_pass();
        sg_commit();
    }

    void cleanup(void) {
        sg_shutdown();
        sfetch_shutdown();
    }

    void event(const sapp_event* e) {
        if (e->type == SAPP_EVENTTYPE_KEY_DOWN) {
            if (e->key_code == SAPP_KEYCODE_ESCAPE) {
                sapp_request_quit();
            }
        }
    }

    sapp_desc sokol_main(int argc, char* argv[]) {
        return (sapp_desc){
            .init_cb = init,
            .frame_cb = frame,
            .cleanup_cb = cleanup,
            .event_cb = event,
            .width = 400,
            .height = 300,
            //.gl_force_gles2 = true,
            .window_title = "sokol proj metal",
            .high_dpi = true,
        };
    }

And this is my batch_system_shader.glsl
    @ctype mat4 hmm_mat4
    @vs batch_vs
    uniform batch_vs_params{
        mat4 proj;
    };

    in vec4 xyuv;
    in vec4 rgba;

    out vec4 outColor;
    out vec2 outTexCoord;

    void main() {
        outColor = rgba;
        outTexCoord = xyuv.zw;
        gl_Position = proj * vec4(xyuv.xy, 0, 1);
    }
    @end

    @fs batch_fs

    uniform sampler2D tex;

    in vec4 outColor;
    in vec2 outTexCoord;

    out vec4 outputColor;
    void main() {
        outputColor = texture(tex, outTexCoord) * outColor;
    }
    @end

    @program batch batch_vs batch_fs

Hard to remote analyze, the code looks alright and should result in smooth animation.
It's unlikely that sokol-gfx is the problem, more likely that the MTKView that's used in sokol-app has problems and skips frames for some reason. But I have never seen this sort of stuttering unless the animation code uses a measured frame time and does this wrong (but in your code that's not the case, since the per-frame updates don't take the frame time into account. I work on Mac most of the time and use the Metal backend, that's why I'm surprised that the Metal backend is the one that's misbehaving, not the GL backend.
I did notice that the Metal backend has a fairly high CPU load when built in debug mode and/or when the Metal debug layer is active. In release mode the overhead is much more sensible. But this should only become a problem under a much higher general system load.
What does you Mac config look like? Model and macOS version?

Wow! That is very unexpected but very good to know!
I need to figure out why that is, because buffer updates within the render pass definitely shouldn't disrupt rendering like this (and this is done in quite a few of the other sokol header).
Many thanks for the bug report. I'll keep the ticket open as reminder, but hopefully the workaround to move the buffer update higher up in the frame is a workaround that works for you.

(I renamed the issue)

PS:After some tests, i found that the sg_update_buffer call must after sg_begin_default_pass and before sg_apply_pipeline and sg_apply_bindings like this:
    sg_begin_default_pass(&state.pass_action, sapp_width(), sapp_height());
    sg_update_buffer(state.bind.vertex_buffers[0], &SG_RANGE(vertices));
    sg_apply_pipeline(state.pip);
    sg_apply_bindings(&state.bind);

or the jitter will appear.

My fault,  putting sg_update_buffer() between sg_apply_pipeline() and sg_apply_bindings() do not have the issue neither.Both movements are smooth.

That makes sense :) I need to check whether the Metal documentation says anything about this situation. I would expect that the order of operations doesn't matter in this case (it should even be possible to place the buffer update after the draw call, although I never tested that).
Another thing: is Metal validation layer maybe turned on? (this is the case when running in debug mode on Xcode - it might be that the validation checks are also interfering.

I don't use xcode directly, i use the xmake tools, all the tests are compile with xmake debug mode.
Does this turn on  Metal validation layer auto?
Or is there a way to check whether Metal validation layer turn on?

AFAIK the only way to enable the validation layer outside of Xcode is to set an environment variable. But this is poorly documented. Both METAL_DEVICE_WRAPPER_TYPE=1 and  MTL_DEBUG_LAYER=1 seems to work, e.g. when I run one of the sokol-samples with:
> METAL_DEVICE_WRAPPER_TYPE=1 ./fips run cube-sapp

I see a message on in the terminal:
2023-01-24 16:30:30.678 cube-sapp[28676:3078033] Metal API Validation Enabled

Ok, I'll keep the ticket open until I have time to properly research and fix the issue. Thanks for writing the ticket!


Kong cache upstream response

NOTE: GitHub issues are reserved for bug reports only.
For anything else, please join the conversation
in Kong Nation https://discuss.konghq.com/c/kubernetes.

Summary
It looks like Kong is caching the response's upstream.
I am not sure about what HTTP header create this behavior.
I am trying to proxy google's document from their bucket via Kong
I did not find any ressource on the community edition documentation talking about response caching, so I am not sure if this a bug or a expected behavior.
Kong Ingress controller version
0.1.0
Kubernetes version
paste kubectl version output
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.7", GitCommit:"dd5e1a2978fd0b97d9b78e1564398aeea7e7fe92", GitTreeState:"clean", BuildDate:"2018-04-19T00:05:56Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.6-gke.2", GitCommit:"384b4eaa132ca9a295fcb3e5dfc74062b257e7df", GitTreeState:"clean", BuildDate:"2018-08-15T00:10:14Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}
Environment

Cloud provider or hardware configuration: GKE
OS (e.g. from /etc/os-release): COS
Kernel (e.g. uname -a):
Linux gke-mycluster 4.14.22+ #1 SMP Wed May 30 13:49:27 PDT 2018 x86_64 Intel(R) Xeon(R) CPU @ 2.00GHz GenuineIntel GNU/Linux
Install tools:
Others:

What happened
I added a service, a Kongingress, an Ingress and some plugins with the following configuration:
apiVersion: configuration.konghq.com/v1
kind: KongIngress
metadata:
  name: ingress
  namespace:  foo
proxy:
  path: /foo/baz
  protocol: https
route:
  strip_path: true
---
apiVersion: v1
kind: Service
metadata:
  name: svc
  namespace:  foo
spec:
  type: ExternalName
  externalName: storage.googleapis.com
  ports:
  - name: https
    port: 443
    protocol: TCP
---
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: transform-request-to-google
  namespace: foo
config:
  remove:
    headers: host
---
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: foo-cors-ingress
  namespace:  foo
disabled: false
config:
  origins: "my.domain.com"
  max_age: 86400
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  namespace: foo
  annotations:
    kubernetes.io/ingress.class: "nginx"
    request-transformer.plugin.konghq.com: |
      transform-request-to-google
    cors.plugin.konghq.com: |
      foo-cors-ingress
spec:
  rules:
    - host: my.domain.com
      http:
        paths:
        - path: /foobazregex(/+.*$|$)
          backend:
            serviceName: svc
            servicePort: https

Now when i request https://my.domain.com/foobazregex/qdsfvdq, it return an outdated version of my document. On the first request, HTTP headers are following:
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-GUploader-UploadID: AEnB2UrFtNaFg5nxABuu5orrYiFBTpdojcTkHqsnnP71kg2Xo--ml7JnWCYZbAKLpHGhC8L-qZqyZD4Ew8Rmfp4BvIkRMfppSx5GJK4KRmGAAX46jAPwAvU
Date: Tue, 11 Sep 2018 14:13:03 GMT
Expires: Wed, 11 Sep 2019 14:13:03 GMT
Last-Modified: Tue, 11 Sep 2018 13:51:55 GMT
x-goog-generation:<PHONE_NUMBER>869880
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 36
x-goog-hash: crc32c=d8Mp4Q==
x-goog-hash: md5=JysxZkRC22NL5N6yaHg8HA==
x-goog-storage-class: REGIONAL
Accept-Ranges: none
Server: UploadServer
Cache-Control: no-transform
Age: 3364
Vary: Accept-Encoding
X-Kong-Upstream-Latency: 5
X-Kong-Proxy-Latency: 32
Via: kong/0.13.1

On second and followings calls:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-GUploader-UploadID: AEnB2UrFtNaFg5nxABuu5orrYiFBTpdojcTkHqsnnP71kg2Xo--ml7JnWCYZbAKLpHGhC8L-qZqyZD4Ew8Rmfp4BvIkRMfppSx5GJK4KRmGAAX46jAPwAvU
Date: Tue, 11 Sep 2018 14:13:03 GMT
Expires: Wed, 11 Sep 2019 14:13:03 GMT
Last-Modified: Tue, 11 Sep 2018 13:51:55 GMT
x-goog-generation:<PHONE_NUMBER>869880
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 36
x-goog-hash: crc32c=d8Mp4Q==
x-goog-hash: md5=JysxZkRC22NL5N6yaHg8HA==
x-goog-storage-class: REGIONAL
Accept-Ranges: none
Server: UploadServer
Cache-Control: no-transform
Age: 3371
Vary: Accept-Encoding
X-Kong-Upstream-Latency: 2
X-Kong-Proxy-Latency: 0
Via: kong/0.13.1

X-Kong-Proxy-Latency being at 0 on second call, I suppose Kong is caching the document due to the cache policy
For information, headers returned by google:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-GUploader-UploadID: AEnB2UrFtNaFg5nxABuu5orrYiFBTpdojcTkHqsnnP71kg2Xo--ml7JnWCYZbAKLpHGhC8L-qZqyZD4Ew8Rmfp4BvIkRMfppSx5GJK4KRmGAAX46jAPwAvU
Date: Tue, 11 Sep 2018 14:13:03 GMT
Expires: Wed, 11 Sep 2019 14:13:03 GMT
Last-Modified: Tue, 11 Sep 2018 13:51:55 GMT
x-goog-generation:<PHONE_NUMBER>869880
x-goog-metageneration: 1
x-goog-stored-content-encoding: gzip
x-goog-stored-content-length: 36
x-goog-hash: crc32c=d8Mp4Q==
x-goog-hash: md5=JysxZkRC22NL5N6yaHg8HA==
x-goog-storage-class: REGIONAL
Accept-Ranges: none
Server: UploadServer
Cache-Control: no-transform
Age: 3364
Vary: Accept-Encoding
X-Kong-Upstream-Latency: 5
X-Kong-Proxy-Latency: 32
Via: kong/0.13.1

Expected behvaior
Kong not caching responses or Kong apply the cache policy as a browser will do (on a force refresh, it recall the upstream)
Steps To Reproduce
I did not re-test theses step, but this is what I do when I deploy:

Create a cluster on GKE
Add Kong
create a google storage bucket
Create a file, deploy it as public using  gsutil cp -z html -a public-read <file> gs://<bucket>
add my configuration
Browse to https://my.domain.com/foobazregex/qdsfvdq
Update your file and redeploy using gsutil cp -z html -a public-read <file> gs://<bucket>
Browse to https://my.domain.com/foobazregex/qdsfvdq

X-Kong-Proxy-Latency being at 0 on second call, I suppose Kong is caching the document due to the cache policy

The proxy latency of 0 doesn't imply that Kong is caching the response. The first request to Kong has a higher proxy latency because the proxy router is being built. Once built, the router is not rebuilt till there is a route/service in Kong is added/removed or updated. The proxy latency signifies how much time was spent by Kong to route the request and run plugins before sending the request to upstream server.
Also, as you can see in your second request, the headerX-Kong-Upstream-Latency: 2 is present, which tells us that upstream took 2 ms to respond to Kong for that HTTP request.
Kong doesn't cache any HTTP request/responses unless being done so via a plugin.


Redirect mdb-564 to passio3.com/roadrunner/passioTransit/gtfs/google_transit.zip

mdb-564 doesn't have datasets. Deprecate and redirect to passio3.com/roadrunner/passioTransit/gtfs/google_transit.zip

Closed with #486


Relax the WFI instruction requirement in system suspend

Not every RISC-V implementation may support the WFI instruction for entering into the quiesced state.
So, make the requirement generic to allow platform supported mechanisms.
#65

@SiFiveHolland


For me I do not think this should be a configuration, it should be a state? Like balancerSwitch and mergeSplitSwitch.

There is a cleaner_chore_switch shell command but if you want to prevent the cleaner to start on a restarted cluster you don't have any option. When the cleaner is disabled from the shell it will prevent future executions but the in-progress cleanup is not interrupted.

There is a cleaner_chore_switch shell command but if you want to prevent the cleaner to start on a restarted cluster you don't have any option. When the cleaner is disabled from the shell it will prevent future executions but the in-progress cleanup is not interrupted.

I mean you need to store this state somewhere... For now, we usually use zk to store the state, you can check the code in master.

So any updates here?

So any updates here?

I didn't have time to work on this. I'm closing this PR and we can add the state to the master region once HBASE-27514 is merged.


We need react 17 support

Agreed. Any chance this can get traction?

Can easily be solved by implementing this wrapper on your own - it's ~30 lines.
import { useEffect, useRef, VoidFunctionComponent } from "react";
import { default as TypedLib } from "typed.js";

const Typed: VoidFunctionComponent<{ options: any }> = ({options}) => {
  const ref = useRef<HTMLSpanElement | null>(null);

  useEffect(() => {
    if (! ref.current) {
      return;
    }
    const typed = new TypedLib(ref.current, options);

    return () => {
      if (!typed) {
        return;
      }
      typed.destroy();
    };
  }, [ref, options]);

  return (

  );
};

export default Typed;

any sucks, I know, but unfortunately TypedOptions are not exported (see https://github.com/mattboldt/typed.js/pull/494)

Perhaps update the README with https://github.com/ssbeefeater/react-typed/issues/26#issuecomment-983953018 and mark this package as deprecated?
I implemented the wrapper and ditched the package.  Problem solved.


Change Ht16k33 I2C_ADDRESS

Ht16k33 is currently setting the I2C_ADDRESS to 0x70; which causes a conflict when you stack the RainbowHat and the Adafruit Motor Hat together because the latter responds to address 0x70 - regardless of the address jumper settings or the value in the motor library/driver.
As a result, AlphanumericDisplay and MotorHat are clashing with each other.  Therefore, please change the I2C_ADDRESS in Ht16k33 class to some other value than 0x70.

Thanks for reporting this @IeiuniumLux
It seems it is possible to change the I2C address of your ht16k33. However, we don't want to require this of every person who uses one, so I think the right approach is to keep 0x70 as the default address and provide an alternate constructor that accepts a different address (similar to the MotorHat driver), so you can change the address of your ht16k33 and continue to use it.
We have made this change internally and will close this issue when we've released another version of this driver.

@IeiuniumLux we've published the optional address change. It's in the version 0.6 of the ht16k33 driver.

Excellent.  Thank you!


merge muliple .evl files into one dataframe

Hi,
I am using Echopype to process Simrad EK data and I have line files generated in Echoview (.evl). I can read multiple .nc files and combine them, but it appears that I am not able to read multiple .evl and combine them into one Panda dataframe using the .read_evl function.
For example, in Echoview I can generate a bottom line for each EK data file individually. Now, I would like to read the EK files and read the .evl files using Echopype. I can combine the EK files into one "xarray". However, it seems that I can only read one .evl file at a time, and now that Pandas has removed the .append function, I can not easily generate a single data frame from the multiple data frames that are created by read_evl.
Example code:
import echopype as ep
import echoregions as er
import pandas as pd

# read in two EK60 files that have been converted to netCDF4
ek_list = ['ek_file_1.nc', 'ek_file_2.nc']
edlist = []
for fn in ek_list:
    edlist.append(ep.open_converted(fn))
ed = ep.combine_echodata(edlist)
Sv = convert_to_Sv(ed, wf='CW', encode='power')

# read in two .evl files
evl_list = ['evl_file_1.evl', 'evl_file_2.evl']
evldf = pd.DataFrame()
# I have tried this without success
for fn in evl_list:
    tmp = er.read_evl(fn)
    evldf.append(tmp.data)   # this does not work because Pandas has removed the append capability
# or I could do
evldf_1 = er.read_evl(evl_list[0])
evldf_2 = er.read_evl(evl_list[1])
# but this is not dynamic

The recommended way in Pandas to merge data is to do the merging using lists, then create a data frame. However, read_evl defaults to a data frame and it is not efficient to convert each data frame back to a list, merge lists, the create a new data frame. After looking at the code (parse_evl), it seems the best way is for echoregion to do the merging internally and return a single data frame - in my opinion.
Unless, there is a way that I haven't found?
Thanks,
mike

Hey @jmjech : If I understand correctly you'd like echoregions to have a functionality to combine multiple Line objects, is that right? That should be straightforward to add, just need a bit of time.
For the moment, pd.concat should do what you want?
Something like below (note I haven't actually tested it):
# read in two .evl files
evl_list = ['evl_file_1.evl', 'evl_file_2.evl']
evl_data_list = []
for fn in evl_list:
    tmp = er.read_evl(fn)
    evl_data_list.append(tmp.data)

new_evl_data = pd.concat(evl_data_list)
new_evl_data.to_csv("all_evl.csv")

lines_all = er.read_lines_csv("all_evl.csv")  # maybe this is what you're looking for?

For pandas concatenation, i think it is usually faster if one accumulated as a list and then do a one time joining, vs joining them in each iteration of a loop.
@ctuguinay : feel free to chime in!

That should work, and I'm pretty sure that's what I did earlier on when organizing our own EVL data. I think this would be nice to have in the package and I can add this as a TODO that can probably done in the same PR as #124.

@leewujung - yes, concat works! I was reading about append and concat in a StackOverflow conversation, and I mistakenly conflated both, when only append was removed. Very nice solution.
@ctuguinay - many thanks for adding this to echoregions. Very nice code.


Feature/groundwork

Summary by CodeRabbit

New Features

Implemented a new Discord login integration with configuration options.
Added pre-commit and commit message linting tools to improve code quality.

Documentation

Updated the README file, though no substantial content changes were made.

Chores

Updated .gitignore to include common directories like node_modules and dist.
Set up new husky hooks for commit message validation and linting staged files.

Refactor

Organized Discord login-related types into a dedicated file for better maintainability.

resolves #1


placeholder

Description
%luckperms_group_expiry_time_%
If it is 5 day, it displays 4d 23h, 59M, 59S  I don't want it!
Proposed Behaviour
No format, no unit, it doesn't need
If the player has 5 days, please display it as an integer of 5 without any units
I'm sorry. I'm in English level 0
------------Google Translate
Extra Details
false

well 4 days, 23 hours, 59 minutes, and 59 seconds is not 5 days. its 1 second less than 5 days. You personally might not care that its only 1 second less, but not everyone wants this number rounded. There are ways to do what you want without causing other people who rely on the current behavior to begin having issues, such as using another plugin that formats it however you want.

In the most direct way, you can add other placeholders directly
excess

Adding an excess of placeholders for special formatting seems out of scope for LuckPerms. Not to mention solutions for this already exist.

如果是这样的话，谢谢你的回复，不得不说这个插件非常强大。
感谢您免费的提供支持


setup is not clear enoigh i get lateinitialization error

LateError (LateInitializationError: Field 'controller' has not been initialized.)
#0      RecaptchaHandler.controller (package:flutter_gcaptcha_v3/recaptca_config.dart)
#1      RecaptchaHandler.executeV3 (package:flutter_gcaptcha_v3/recaptca_config.dart:45:16)

hi @shahindadashov you find any solution ?


Maher/fixing issue#141

@thiennn Please review

Arabic language has been merged
and #141 has been fixed by https://github.com/simplcommerce/SimplCommerce/commit/6dbcdcb7fa15a0b84f034d3009ef05cf61a0e404


nypost?

Is there a reason nypost.com is in this filter?

I didn't notice that, I'll remove that. Thanks 👍


Plaintext tokens

In Feb 2014 I brought up the idea of plaintext tokens: https://github.com/scambra/devise_invitable/issues/444
As of devise 3.5.2, devise no longer uses them for email confirmation (oddly categorized as a bug fix)

discussion: https://github.com/plataformatec/devise/issues/3640
change: https://github.com/plataformatec/devise/commit/eb640ed344fb5e227e82b1f3a914ca9fabb938e0
changelog: https://github.com/plataformatec/devise/blob/master/CHANGELOG.md

Could devise_invitable now consider changing accordingly?
The reason they rationalized being able to do it is because they no longer log users in after confirming (in case the system uses 2-factor). I think maybe devise invitable doesn't have to worry about that, since the user is always brand new?

I have been thinking in this and not sure if it's safe. If raw token is stored, getting access to DB can allow to get access to an account, it would be a new account, but an accounting binded to an email, so it's similar to reasons to store encrypted token for remember password. In a social media web, for example, attacker could contact with inviter, and inviter would think it's talking with a friend, so attacker would be forging identity.
Maybe a config option could be added, default to encrypted which is safest.


rem()/em() don't compute when called with "use" (gulp)

Hi,
Now that I have the ability (thanks to you @leny) to use the use option in gulp, i used it in my gulpfiles and removed the @import i had in my stylus files.
But it sims both rem/em functions aren't processed anymore. If I put back  @import, it's immediately ok.
Am I missing something ?

If you remove the @import directive, kouto-swiss isn't implemented in your stylesheets.
The use option of Stylus is just a way to tell Stylus to link with libs, you still need to include them in the .styl files.


RTL support

Hey!
Thank you for bringing this interesting idea into a package.

I noticed the implementation of the padding's toEdgeInsets function doesn't do what the docs of the Edge is saying for the .trailing and .leading.
I also noticed the align function doesn't support RTL with AlignmentDirectional.

I think these changes are essential in the early stages to make sure developers that have to support RTL are on board (myself included). The package has to tick the supports internationalization check to match the framework.

Hey there, thanks a lot for bringing this up! Taking a look at it!

This is great, thanks, I'd use EdgeInsetsDirectional for all of the Edge mappings just for consistency - we should definitely merge it after that! 🙏

Done!


Initial commit of sixth JAX-101 notebook

FYI I think some of my comments got messed up because you pushed changes while I made them. Lemme know if anything's incomprehensible.


[Bug]: The relationship graph often fails to display properly.

What happened?
graph-wasm.js:1  Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 's')
at Module._malloc (graph-wasm.js:1:12863)
at GraphAssembly.init (graph-view.js:1:843)
at Object.initializeGraphView [as onRuntimeInitialized] (graph-view.js:1:8142)
at graph-view.js:1:15486
at o. (userscript.html?name=%25E8%25AE%25A1%25E6%2597%25B6%25E5%2599%25A8%25E6%258E%258C%25E6%258E%25A7%25E8%2580%2585%257C%25E8%25A7%2586%25E9%25A2%2591%25E5%25B9%25BF%25E5%2591%258A%25E8%25B7%25B3%25E8%25BF%2587%257C%25E8%25A7%2586%25E9%25A2%2591%25E5%25B9%25BF%25E5%2591%258A%25E5%258A%25A0%25E9%2580%259F%25E5%2599%25A8.user.js&id=7c199628-3c4f-4d8a-a409-411a364d91da:44:29758)
Reproduction
The error code mentioned above frequently occurs when opening the website, resulting in the right sidebar relationship graph unable to display properly.
Last Working Version
No response
Version
1.8.1-1B
Operating System
win11
Obsidian Version
v1.5.8
Which browsers can you reproduce this in?
No response
Relevant log output
N/A

Additional Info
No response

I have only seen this bug occur on Safari on IOS. What browser are you using? You didn't fill it out in the form. Have you tried other browsers?

I have only seen this bug occur on Safari on IOS. What browser are you using? You didn't fill it out in the form. Have you tried other browsers?我只在 IOS 上的 Safari 上看到过这个错误。你使用的是什么浏览器？你没有在表格中填写。您尝试过其他浏览器吗？

I have tried both Edge and Google Chrome browsers, and this error may occur in either. However, it is not guaranteed to happen every time. Additionally, when I encounter this issue, pressing Ctrl+F5 may sometimes restore the display, but simply switching articles generally does not restore the display of the relationship graph.

I have only seen this bug occur on Safari on IOS. What browser are you using? You didn't fill it out in the form. Have you tried other browsers?我只在 IOS 上的 Safari 上看到过这个错误。你使用的是什么浏览器？你没有在表格中填写。您尝试过其他浏览器吗？

I have tried both Edge and Google Chrome browsers, and this error may occur in either. However, it is not guaranteed to happen every time. Additionally, when I encounter this issue, pressing Ctrl+F5 may sometimes restore the display, but simply switching articles generally does not restore the display of the relationship graph.

I have tried multiple times and found that pressing Ctrl+F5 can generally restore the display, but regular page refreshes cannot. After the restoration, there are usually no further issues.

Is it possible for you to share a link to your website so I can test it? I have never encountered this

Is it possible for you to share a link to your website so I can test it? I have never encountered this您可以分享您网站的链接以便我测试吗？我从来没有遇到过这个

This is a frustrating situation. I haven't encountered this issue today despite opening it multiple times. I'm starting to suspect it might be a problem with my own network.😂

Is it possible for you to share a link to your website so I can test it? I have never encountered this您可以分享您网站的链接以便我测试吗？我从来没有遇到过这个

This is a frustrating situation. I haven't encountered this issue today despite opening it multiple times. I'm starting to suspect it might be a problem with my own network.😂这是一个令人沮丧的情况。尽管我打开了多次，但今天还没有遇到这个问题。我开始怀疑可能是我自己的网络有问题。😂

I may have an idea of what's going on. This could be caused by the button I added in my head.html file for redirecting to the homepage.

Is it possible for you to share a link to your website so I can test it? I have never encountered this您可以分享您网站的链接以便我测试吗？我从来没有遇到过这个

This is a frustrating situation. I haven't encountered this issue today despite opening it multiple times. I'm starting to suspect it might be a problem with my own network.😂这是一个令人沮丧的情况。尽管我打开了多次，但今天还没有遇到这个问题。我开始怀疑可能是我自己的网络有问题。😂

I may have an idea of what's going on. This could be caused by the button I added in my head.html file for redirecting to the homepage.我可能知道发生了什么事。这可能是由我在 head.html 文件中添加的用于重定向到主页的按钮引起的。

When I switch back to the homepage using window.location.href, it seems that the elements of the relationship graph are not reloading. Here is the source code I added:
<div class="cmdr status-bar-item clickable-icon" aria-label-position="top" aria-label="打开主页" style="color: inherit" onclick="window.location.href='/';">
    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-home">
        <path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
        <polyline points="9 22 9 12 15 12 15 22"></polyline>
    </svg>
</div>

Okay I'll check if I can reproduce this. It is possible there is something I can do to make it more resillient to changes


The service station

Adds the service station block to automatically repair the linked rockets using nearest precision assemblers.
Also some fixes, refactorings and helper classes.

because this is a big change, I will not read every single code change because it would take a lot of time. So I just ask this questions that may cause bugs in the code:
1: How does the system handle one of the following events during repair of a part:

rocket launched
rocket disassembled
assembler destroyed
service station destroyed

2: how does the service station scan for assemblers around it?
3: when a part is placed in the assembler, will it be removed from the storagechunk and will rocketstats get recalculated? (thrust, weight) This is important for when the rocket is disassembled during repair so it does not dulicate parts
4: what happens when the player removes the repaired part from the assembler output before the station can take it back?
5: are the bugs reported from discord fixed?
If the system is ready and merged I will probably modify it to make little robots move the parts around into the assembler and back to the rocket

this update may be great for some people who love realism but others may not like it to worry about rocket repairs. there has to be a config to disable rocket damage system.

this update may be great for some people who love realism but others may not like it to worry about rocket repairs. there has to be a config to disable rocket damage system.

There is a config option

because this is a big change, I will not read every single code change because it would take a lot of time. So I just ask this questions that may cause bugs in the code:
1: How does the system handle one of the following events during repair of a part:

rocket launched
rocket disassembled
assembler destroyed
service station destroyed

2: how does the service station scan for assemblers around it?
3: when a part is placed in the assembler, will it be removed from the storagechunk and will rocketstats get recalculated? (thrust, weight) This is important for when the rocket is disassembled during repair so it does not dulicate parts
4: what happens when the player removes the repaired part from the assembler output before the station can take it back?
5: are the bugs reported from discord fixed?
If the system is ready and merged I will probably modify it to make little robots move the parts around into the assembler and back to the rocket

1:
Rocket is disconnects from repair station on launch, and all repair stats clears from the service station.
Rocket stats will be recalculated when it launches, so rocket without engines cannot start.
If assembler destroyed, it will be disconnected from the service station and all things assigned to it will be lost. Very sad.
Destroying the service station making your life some... unstable, because parts repairing at the moment would stuck in assemblers. Now you need to disassemble the rocket to make it work again.
2:
There is a button inside the interface, additionally you can toggle rescan by redstone.
3:
Before placing part into assembler, part is removing from StorageChunk, yes. As already stated, RocketStats gets recalculated on every launch top avoid such mistakes.
4:
Very, very sad. You broke the process, now the only way is to repair rocket by hand.
5:
All reported bugs from discord were fixed


templates/composer: fix fluentd requests/limits

No separate request for memory was defined in #3472, only cpu request/limit.

@thozza i broke the deployment with https://github.com/osbuild/osbuild-composer/pull/3472 :/


OKEx needs to migrate to v3 websocket API

Exchange
OKEx
Describe the bug
OKEx v1 feeds are no longer available.  The new API documentation states

Please note that the current version of this document is v3 and it will be updated regularly. Traders are advised to check this document from time to time for latest updates.

So it looks like the library needs to migrate to the new API since the old one is offline now.
New documentation: https://www.okex.com/docs/en/#spot_ws-general
The V3 API uses the V3 REST API, this corresponds ot the okex3 ccxt client as well.

Closed with #78


add PartialEq for LpConstraint

Thanks for the previous merge @jcavat ! Adding another small upgrade that allows me to compare constraints (to avoid duplicates).

Sorry for the delay !


fix(version): update ngx-login-client to 1.1.9

@fabric8cd fabric8/fabric8-ui:SNAPSHOT-PR-2247-1 is deployed and available for testing at https://fabric8-ui-fabric8-ui-pr-2247-fabric8-planner.badger.fabric8.io


Add functionality to trigger the start of a match once conditions are met for a lobby

Goal: To have a transition from the lobby page to the match page, we can either start a match automatically once the timer runs out (given the lobby has the minimum number of people), start a match automatically once the lobby reaches the maximum number of people, or give users to a button to start a match once the lobby has the minimum number of people. We want to implement functions that allow us to automatically redirect players when a condition is reached and enable a was-greyed-out "Start" button when a condition is reached.

UPDATE: split from issue #122.

discussed during weekly team meeting: the match_status attribute will be updated when a function for joining a match is accessed

This issue was expanded into all functionality concerning what buttons are displayed at the bottom of the lobby details page.

If Lobby.match_status is Lobbied (i.e., match hasn't started yet): a user can join a lobby if they haven't already, or leave a lobby if they have. The user who created the lobby can also delete a lobby.
If Lobby.match is In-Progress: a user sees a message that the match is in progress.
If Lobby.match is Closed (i.e. the match has either completed, or start conditions were not met by the lobby): a user sees a message that the match is closed.

See pr #345. In particular, lobby_details.html

Closing Comment: Instead of showing functionality on through accessible or inaccessible buttons, we simply have the buttons which a user may use at any point appear, depending on match_status.
Nat: Implemented this switch statement in lobby_details, created the join game button.
Chloe: Outlined which buttons will be available, according to match_status.
Lucien: Implemented the join and leave lobby buttons in the case where the lobby is still open.

Issue Score: Excellent
Comments:
Well implemented functionality and descriptive updates!


Update TDI ref point

Signed-off-by: Nupur Uttarwar<EMAIL_ADDRESS>

This is required because of recent change in TDI - https://github.com/p4lang/tdi/pull/104/files


Add PubMatic contributors

Please go through https://goo.gl/A1oZcx so that we can track associations between people, handles and companies. Thanks!


[Doubt] Is there a way to control the order of "pages" on the sidetab

So if i add another "page", how can i change the order in which it appears here. See screenshot for reference.

You can modify the sidebar.html file in _includes folder. Where you have

    home
    /

You just manually add the other pages after it. e.g.

    home
    /

    Resume
    /

Not the most elegant way but it works.

Hmm, okay. While we're here, let me ask this as well.

"Can I have a post or just a webpage, without it being one among [home/archive/categories/resume
etc]  and not among the home page posts (this i already do by not
posting in _posts directory).
You get my point right? Its not a "page" or a standard "post". Its just supposed
to be a webpage (with 'post' layout but not part of the blog posts as such) (written in md ofc) which I can link to."

I see what you're trying to do. I know there is the drafts function but I'm not sure if that'll do the work.
You could try adding a variable to posts and modify your index page like this:
https://stackoverflow.com/a/31365506

Yaay, thanks for that link. removing just the title worked XP

Hey @geeknerd, quick question, if I want to change my default homepage/landing page to something other than the actual "blog" page, how would i go about it? Thanks in advance :)

@skrish13 the content of the landing page is in index.html, you can just modify it.


Exclude django_select2.js in a manner similar to #484, because #479

In #479, you published the django-select2 JS to NPM
In #484, you provided the option to exclude the Select2 JS from the Select2Mixin class in forms.py
It would seem to follow that we would like the option to exclude the django-select2 JS in a similar manner, e.g. because we want to provide it via npm and our bundler.  ( I haven't yet attempted that.)

Hey there, I will continue to make comments about this matter on your PR, to make it a bit simpler.

HI @MiddleFork thanks for reaching out. I absolutely understand your points. There are scenarios where you want a custom script. I have plenty projects where I use costumized versions of select2.
However, I do think there might be a better solution, that covers more scenarios. I for example, have multiple different flavors of a select2 widget in a single project. Only one settings would not work.
Futhermore the basic script is already extenable. So you might want to keep the basic script and add a second one. So your Setting would need to provide a tuple?
Keeping all that in mind, I believe inheritance in the better way to solve this issue. You build your own mixin or a subclass that makes the changes to media, and importantly also changes the class name of the widget. That way you can also avoid namespace collision.
I have a set of those mixins at had, that give me a boostrap template or inject a completely different template renderer. I am happy to share them with you. Just let me know what you need.
Maybe we can also improve the documentation, another setting is for me currently not a satisfying alternative.

My use case is to implement an NPM/webpack solution. For that reason I wish to exclude the script from being provided at all.
I'm one step away from this. I can definitely load both and bundle them and expose them. Everything works except the AJAX url at this point - I guess I'm not initializing something correctly and thus the /select2/fields/auto.json url doesn't get utilized - the AJAX request is working itself but the URL it acts against is the URL of the page itself.
When I switch back to the 'traditional' approach everything works so I know my configuration is OK at that level.
So my scenario, again, is that I don't want the script included locally at all.
If I'm able to totally implement the npm/webpack solution I'll provide a working example and perhaps you'll better understand my use case here.

Hi @MiddleFork
I agree, it would be great to have an example for the NPM solution. I don't use it myself, so I can't really provide an example myself. But I know someone who can... @graingert would you mind providing a sample on how to use django-select2 integrated via NPM? Thx!

Yeah so I just subclassed the widgets and blanked it the media. You want to do this for all 3rd party widgets you use

That was a cryptic one-liner, however as I am using django_crispy_forms, that may be an instance of which you are referring.
-------- Original Message --------
Subject: Re: [applegrew/django-select2] Exclude django_select2.js in a
manner similar to #484, because #479 (#519)
From: Thomas Grainger<EMAIL_ADDRESS>Date: Fri, December 14, 2018 1:05 am
To: applegrew/django-select2<EMAIL_ADDRESS>Cc: MiddleFork<EMAIL_ADDRESS> Mention<EMAIL_ADDRESS>Yeah so I just subclassed the widgets and blanked it the media. You want to do this for all 3rd party widgets you use —You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.


major: Force display to 'spinner' on iOS

BREAKING CHANGES.
Forces the display prop to spinner now that iOS14 defaults to a new component UI.
Requires @react-native-community/datetimepicker>3.0.0
Fixes #473

Hey @mmazzarolo, I could be missing something however I don't see any difference after this update ? I can see that it forces display to spinner but the UI looks the same as before

Make sure you update the community picker to 3.0.2
On Sat, 19 Sep 2020 at 23:23, Kyle Johnson<EMAIL_ADDRESS>wrote:

Hey @mmazzarolo https://github.com/mmazzarolo, I could be missing
something however I don't see any difference after this update ? I can see
that it forces display to spinner but the UI looks the same as before
[image: image]
https://user-images.githubusercontent.com/8608314/93689465-a52ed580-fac6-11ea-90e4-4b0534bfcb48.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mmazzarolo/react-native-modal-datetime-picker/pull/474#issuecomment-695357331,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACIYGYRMUO76DNUFGUD5YRLSGUOLNANCNFSM4RS6ODJQ
.

Yep it's using 3.0.2

Thanks! got this working. Just to clarify, you might have to run pod install again as well.

I'm on v9.0.0, and community date picker 3.0.2
I've deleted node_modules, and cleaned my cache. also run pod cache clean --all and reinstalled my pods.
But I'm still seeing this UI

@daybreaker does it work correctly if you use the community-picker directly?

Ah, nope. Even with display="spinner", the community date picker shows the new UI.
Looks like I'm headed over to their issue page! Thanks!


Document that PHP LDAP module is not optional.

Even when not using LDAP, current code still needs PHP LDAP module present, in order to pass a check for this module.

Hrms, I thought that with#296 the LDAP was optional and that it no longer required the php module if not using the LDAP functionality :disappointed:
In any case :+1:

That is right, you don't need it, but there's a check when loading Zend Ldap that checks for module presence in the constructor. If you just install the module, everything works fine and no actual LDAP configuration needs to be present. So it's easy enough to work around and not much of a burden to keep the module installed for now.