[Bug]: LiveStreamView Warp

Version
v1.2.3
Which operating systems have you used?

[X] Android
[X] iOS

Environment that reproduces the issue

Samsung galaxy A12 (Android 13)
Google Pixel 6 Pro emulator (Android 13)
iPhone 11 (iOS 16.4.1)

Is it reproducible in the example application?
Not tested
RTMP Server
AMS
Reproduction steps
Create app with a LiveStreamView.
Expected result
The LiveStreamView scales to the containing view while maintaining the camera's aspect ratio.
Actual result
The LiveStreamView warps.
Additional context
No response
Relevant logs output
No response

This issue is supposed to be fixed with 2.0.0.
Could you test with 2.0.0?

Stall issue.
Please reopen if you have new info.


Token selection during combat is borked.

Many of the objects that the combat detection code was using are no longer present, so the whole token-selection logic is broken.

Version 1.0.2 should resolve this issue.


Syncing release-branch 'test-example' change to master

This is a preventative change that will allow release-1.15 to merge successfully.

/lgtm
/approve


causal-ts: rename available-interval to alloc-ahead-buffer

Issue Number: #13596
Signed-off-by: pingyu<EMAIL_ADDRESS>
What is changed and how it works?

Issue Number: Close #13596
What's Changed:

Rename `causal-ts.available-interval` to `causal-ts.alloc-ahead-buffer` for more clear meaning.

Related changes

No

Check List
Tests

Unit test
Integration test

Side effects

No

Release note
Rename `causal-ts.available-interval` to `causal-ts.alloc-ahead-buffer` for more clear meaning.

/build

/cc @haojinming @zeminzhou

/cc @haojinming @zeminzhou

PTAL, thanks~

/merge


position should be fixed to take up no dimensions

:rocket: PR was released in<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>:rocket:


turndown sets own deployment to 0

Im running this on a cluster spun up by our current GKE terraform files, only deployment running on the cluster is teardown, the cluster currently has two node pools both with autoscaling enabled.
The very first thing turndown does, is turn its own deployment to 0, Im assuming this is why the turnup i have configured a 20 minutes after after turndown does not trigger. (poc schedule for seeing how turndown works)
This is the controller log:
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:22:01.122236       1 validator.go:39] Validating Provider
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:22:01.127017       1 namedlogger.go:24] [GKEClusterProvider] Loading node pools for: [ProjectID: xxxxxxxx, Zone: xxxxxxx, ClusterID: xxxxxxx]
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:22:01.345562       1 reflector.go:122] Starting reflector *v1alpha1.TurndownSchedule (30s) from pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:22:01.345602       1 reflector.go:160] Listing and watching *v1alpha1.TurndownSchedule from pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:22:01.345705       1 schedulecontroller.go:109] Starting TurndownSchedule controller
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.345558       1 turndownscheduler.go:404] -- Scale Down --
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.356117       1 namedlogger.go:24] [TurndownScheduler] Already running on correct turndown host node. No need to setup environment.
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.356152       1 namedlogger.go:24] [Turndown] Scaling Down Cluster Now
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.364449       1 namedlogger.go:24] [GKEClusterProvider] Loading node pools for: [ProjectID: xxxxxxx, Zone: xxxxxx, ClusterID: xxxxxxx]
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.398052       1 namedlogger.go:24] [Turndown] Found Cluster-AutoScaler. Flattening Cluster...
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.398147       1 namedlogger.go:32]   [Flattener] Starting to Flatten All Deployments...
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:01.589561       1 namedlogger.go:32]   [Flattener] Starting to Flatten All DaemonSets...
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:02.010862       1 namedlogger.go:32]   [Flattener] Starting to Suspend All Jobs...
cluster-turndown-5c77649bff-67tng cluster-turndown I0607 18:23:02.021614       1 namedlogger.go:24] [Turndown] Resizing all non-autoscaling node groups to 0...

Any input on why this is happening?

Hey @chap-dr! Thanks for the input. This behavior is definitely not expected (flattening it's own deployment). The flattener does have a blacklist, and for a while that blacklist included its own deployment. However, it does appear that bit of code no longer exists. I'm going to investigate a bit more, and will hopefully have a fix here soon. Thanks again for the report!

Released in v1.2.1


Update exercise screen UI, use pagination for exercise control buttons

Updated screen to look similar to Health & Fitness Gallery examples

We should get the screenshot tests running.  It seems to be breaking on 192dp with large font.

Excellent point, thanks for catching that


marathon-consul (de)registers consul services in all datacenters

From #285
We run federated consul to stich together two mesos cluster installations running in an active-passive configuration. We we run marathon-consul in our passive site against a consul cluster that is configured to not be in "dc1", it de-registers all services in our active site ("dc1") whenever it does a sync.
The relevant piece of code seems to be https://github.com/allegro/marathon-consul/blob/master/consul/consul.go#L82
I think the default behavior should be to only (de)register services in the datacenter that the agent belongs to. And perhaps there should be a config option to select which datacenter that marathon-consul should sync with.

Hi @tomwganem
If there is a single consul cluster that is used by different mesos/marathon clusters (in your case, they are active and passive clusters), marathon-consul configured for these clusters should have different configurations, so sync will understand they are in fact independent.
There is a property called consul-tag, it's value is added (as a tag) to every service registration in consul. This is the way marathon-consul knows if the service is managed by it, and whether it should touch it. In your case, you should change this value to something like marathon-active, and marathon-passive respectively.
Please let me know if this helps you.

I've read the docs and somehow that feature never properly registered in my mind. Sorry for the trouble. We have things running smoothly now. Thank you.

@tomwganem I'm glad that worked for you. :)


Make it easier to import Node.js core modules

We want people that are in a Node environment to be able to import core
modules (like fs, path, readline) quickly. To do that, we're borrowing
ideas from eslint, where you can configure what environments a project
is using 1. I decided to use environments as the config key instead
of env, and use an array of environments instead of a hash (env =>
boolean). That made the config option more consistent with how other
keys are named and used.
Imports for core modules will end up at the top of the imports, in its
own group (above) package dependencies.
Fixes #201

Just to double check, you will be able to turn this on for a subset of a project right?

Yes, based on the file you are editing (applies_to). Not based on the file you are importing (applies_from).


Spacebar broken in beta

Prerequisites
Atom beta
Description
The space bar is not resolving with key resolver for my package jumpy + vim-mode.
Steps to Reproduce

Open editor with vim-mode on
press the space bar

Expected behavior:
The cursor should progress
Actual behavior: [What actually happened]
Key resolver says no key press being passed to the package / commands
Versions
Atom 1.12.0-beta0
Mac OS 10.11.6
I have created an issue with vim-mode as well:
https://github.com/atom/vim-mode/issues/1071
But I believe this is more of an issue with atom core, as the key resolver doesn't show anything for vim-mode nor my package.  Did the key for the keymap change perhaps?

https://github.com/atom/atom/issues/12953

Thanks @t9md for linking the duplicate Issue!

oops sorry guys.  I must have missed it :(


MAX v.s. AVE Pooling

Hi Robert,
I noticed that you have commented out line 80 in peleenet.py file, which is the max pooling layer replacing the original average pooling layer. Could you share your experience on the performance difference between the two options? Thank you!

I just tried max pooling at the very beginning of the project and did not compare the performance of these two models in detail. At that time, the model with ave pooling achieved a slightly higher accuracy than the one with max pooling on Stanford Dogs dataset. For the object detection task, the model with max pooling is slightly better than the one with ave pooling. But that object detection model was trained from scratch, instead of initializing with the model pre-trained on ImageNet, and the model was not fully convergent at that time.

@Robert-JunWang , Thanks for the experience sharing. I will also post my findings if there is any interesting results.

I found in Densenet network, it uses max pooling after first conv layer, but then uses 2x2 average pooling in each transition layer, average pooling is rarely used in object detection method.


'|' is not a valid character.

Inside head.html in line 8, the link for the google fonts api, I think it contains an invalid character; '|'. Is it really invalid or is it necessary?

Hi @brosholok, it is valid. When you want to embed two or more than two fonts from Google, that's what you need in your code to separate those.


Update README.md

This repository is still under the top search results when googling FSharp and biology, so i guess a deprecation warning makes sense.
It would also make sense to add this warning to the repository description itself

bum @muehlhaus


Mobile/narrow view is missing the logo

At under ~1250px the logo disappears. I feel there is still enough space to display it for a while longer, and I wonder if there is a way we could also display the logo in some way in a mobile width?

Maybe something like this, but IANAD :-)

What do you think of this @spencerbygraves?

@petesfrench I think you can give it a try, but we should make sure the logo never interferes with the text. Thanks.

No longer necessary, but we should take this into account for the next design.


prevent deploy script from being executed multi times

fix #10
Change-Id: Ife6d5e7960d4e2abdc05e7b432b0c322299f6bba

this won't work: branch =~ env(RELEASE_BRANCH) , because TRAVIS_BRANCH is the same as the tag name, see travis-ci/travis-ci#4745
https://docs.travis-ci.com/user/conditions-v1
https://docs.travis-ci.com/user/environment-variables/


Example of icons

Hi, I was wondering if this lib supported icons like leaflet, or if that's best left to an actual leaflet geojson layer. Thanks!

@hoopes sorry I missed your question (I should look at all issues more often). The lib is oblivious to any extra functionality of both the leaflet layer (you can add any layers to it directly), or any icons in Vega itself (part of your Vega spec).  The lib simply allows both leaflet & vega work together and stay in sync in terms of what is positioned where. Hope this helps!


refactor

delete add_dot, list
delete setup.zsh
gnome-terminal -> terminator
pip

peda setup
font setup for source han code jp
oj

separate mac and linux
github actions test
git credentials
aws cli

node

n
cdk
ncu
https://github.com/rajyan/dotfiles/commits/master

git credentials
https://github.com/microsoft/Git-Credential-Manager-Core

aws cli
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

jetbrains settings

separated to individual issues


Add support for specifying subflow template color

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Proposed changes

This PR add support for specifying SUBFLOW color.
Color is specified for SUBFLOW template (not instance) by its appearance tab.

Change of SUBFLOW color take effect after reloading editor.
Checklist

[x] I have read the contribution guidelines
[x] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
[x] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Coverage increased (+0.04%) to 76.735% when pulling 3ee8bcad8cc7b7f3dea668634077d4a4f0c04284 on node-red-hitachi:subflow-color into 944f3bd3294b0cd24fe6c2712a44da767770e1ba on node-red:dev.

Thanks @HiroyasuNishiyama - this works well to set the colour attribute of the subflow. I can confirm that exporting the subflow includes the property and when it gets imported, the colour is applied.
There are a couple missing parts that need looking at. When you change the colour, existing instance nodes do not change to match the choice. Also the node colour does not change in the palette.

Thank you for review.
Yes.  Changing the subflow color take effect after reloading Node-RED editor.  This is same behavior as current category specification.
But I will try to change it.

Fixed the color change take effect immediately on pushing OK button.

It turns out that color type of input tag do not work on Safari.
To solve this, added custom color picker interface.

I have made some further updates:

the color and icon pickers use the new RED.popover.panel() api
I've updated the icon and color buttons to be fully consistent in appearance


Does not work when two keys exist on the same line, Regex needs to be lazy

Example code:

running vue-i18n-extract on this html returns a path of:
product.priority_info'"><a href="/login" class="gtm-pdp-signin" v-t="'product.sign_in

instead of 2 seperate paths of product.sign_in and product.priority_info
Fix: In file-operations-vue.js, directiveRegExp should be /v-t="'(.*?)'"/g instead of /v-t="'(.*)'"/g
Here are some links to regex101.com that further illustrate my point:
https://regex101.com/r/PzcT5n/1
https://regex101.com/r/DeVMfZ/1
Want me to open a PR?

Yes, please. It would be great if you could open a PR.


View pager should cache more fragments.

View pager currently caches too few fragments and causes unneeded fragment reloads.
mViewPager.setOffscreenPageLimit(3);

Done


[release-1.14] pilot: fix EnovyFilter inline patch removal

This is an automated cherry-pick of #38750

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio_release-1.14
3769dea046529cddcdd71d64a8489e8cf39f715f
link
true
/test integ-security-multicluster_istio_release-1.14

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-security-multicluster_istio_release-1.14

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio_release-1.14
3769dea046529cddcdd71d64a8489e8cf39f715f
link
true
/test integ-security-multicluster_istio_release-1.14

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-security-multicluster_istio_release-1.14


AttributeError: module 'tensorflow.lite.python.schema_py_generated' has no attribute 'Model'

I have a problem with the conversion model using template code.
I am running on Jupyter Notebook
This is the template code：
Convert the model to the TensorFlow Lite format without quantization
converter = tf.lite.TFLiteConverter.from_saved_model(MODEL_TF)
model_no_quant_tflite = converter.convert()
Save the model to disk
open(MODEL_NO_QUANT_TFLITE, "wb").write(model_no_quant_tflite)
Convert the model to the TensorFlow Lite format with quantization
def representative_dataset():
for i in range(500):
yield([x_train[i].reshape(1, 1)])
Set the optimization flag.
converter.optimizations = [tf.lite.Optimize.DEFAULT]
Enforce integer only quantization
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.int8
converter.inference_output_type = tf.int8
Provide a representative dataset to ensure we quantize correctly.
converter.representative_dataset = representative_dataset
model_tflite = converter.convert()
Save the model to disk
open(MODEL_TFLITE, "wb").write(model_tflite)
Output result：
AttributeError                            Traceback (most recent call last)
 in ()
18 # Provide a representative dataset to ensure we quantize correctly.
19 converter.representative_dataset = representative_dataset
---> 20 model_tflite = converter.convert()
21
22 # Save the model to disk
F:\anaconda3\lib\site-packages\tensorflow\lite\python\lite.py in convert(self)
745         self.inference_input_type, self.inference_output_type)
746     if flags_modify_model_io_type:
--> 747       result = _modify_model_io_type(result, **flags_modify_model_io_type)
748
749     if self._experimental_sparsify_model:
F:\anaconda3\lib\site-packages\tensorflow\lite\python\util.py in modify_model_io_type(model, inference_input_type, inference_output_type)
833     return model
834
--> 835   model_object = _convert_model_from_bytearray_to_object(model)
836
837   if len(model_object.subgraphs) > 1:
F:\anaconda3\lib\site-packages\tensorflow\lite\python\util.py in _convert_model_from_bytearray_to_object(model_bytearray)
570 def _convert_model_from_bytearray_to_object(model_bytearray):
571   """Converts a tflite model from a bytearray into a parsable object."""
--> 572   model_object = schema_fb.Model.GetRootAsModel(model_bytearray, 0)
573   model_object = schema_fb.ModelT.InitFromObj(model_object)
574   model_object = copy.deepcopy(model_object)
AttributeError: module 'tensorflow.lite.python.schema_py_generated' has no attribute 'Model'
I want to know the reason

Hi Yan,
Which version are you running? Could you provide a list steps to reproduce your issue?
Also if possible, please also check if tensorflow/lite/python/schema_py_generated file under dist packages exists or have Model class defined.
Thanks,
Hi Maghna,
I re-assign this bug to you in case you have seen similar issues. Feel free to reassign.
Thanks,

This issue should be fixed with the latest TF code (tf-nightly). Could you try with that let us know if it works?
eg:
`` `
pip install tf-nightly

(you need to restart your runtime if you are using [https://colab.research.google.com])

Hi Yan,
Which version are you running? Could you provide a list steps to reproduce your issue?
Also if possible, please also check if tensorflow/lite/python/schema_py_generated file under dist packages exists or have Model class defined.
Thanks,
Hi Maghna,
I re-assign this bug to you in case you have seen similar issues. Feel free to reassign.
Thanks,

Firstly,thank you very much for your message.
What I run in jupyter notebook is   :   ! pip install tensorflow==2.4.0rc0 , so tensorflow should be version 2.4.0and python is 3.7.0
The source code of the model I run:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/examples/hello_world/create_sine_model.ipynb
Chapter title is " Generate a TensorFlow Lite Model"
AttributeError                            Traceback (most recent call last)
 in ()
18 # Provide a representative dataset to ensure we quantize correctly.
19 converter.representative_dataset = representative_dataset
---> 20 model_tflite = converter.convert()
21
22 # Save the model to disk
AttributeError: module 'tensorflow.lite.python.schema_py_generated' has no attribute 'Model'
But my schema_py_generated file has no code.
I am looking forward to your reply

Hi Yan,
As Meghna mentioned, please try tf-nightly instead of the RC version for now.
https://pypi.org/project/tf-nightly/

Hi Yan,
As Meghna mentioned, please try tf-nightly instead of the RC version for now.
https://pypi.org/project/tf-nightly/

My tf-nightly is already 2.5.0 dev version, but still the same problem

I need the code under the schema_py_generated file

@YANxu-666 I was able to run this on tf-nightly with version 2.5.0-dev20201117 (as of today). It also worked for 2.4.0rc0 Here is the link: https://colab.research.google.com/drive/1tE3bJNXOv1NW1OPncgpLfPb1bk8RZnAE?usp=sharing
(Change EPOCH=1 to EPOCH=500 to exactly get the same results as the hello_world example.)
If it helps, you can use the schema_py_generated.py.zip attached here.
Marking issue as resolved.

@YANxu-666 I was able to run this on tf-nightly with version 2.5.0-dev20201117 (as of today). It also worked for 2.4.0rc0 Here is the link: https://colab.research.google.com/drive/1tE3bJNXOv1NW1OPncgpLfPb1bk8RZnAE?usp=sharing
(Change EPOCH=1 to EPOCH=500 to exactly get the same results as the hello_world example.)
If it helps, you can use the schema_py_generated.py.zip attached here.
Marking issue as resolved.

I ran it in jupyter notebook according to the link you provided, and the same error still appeared.

I had the same problem and found that schema_py_generated.py did exist in my tensorflow installation, but was empty.
And it was independent of installing freshly or with --upgrade via pip, and for both nightly (several dates) and 2.4 (both rc).
Is there a problem with the pip config?
Anyway, thanks @MeghnaNatraj  for the file, this solved the issue for me
Btw., I think #44725 is a duplicate of this one

The problem was with TF release itself (due to a change that was rolled out). However it was fixed soon after - refer to #41846
The latest builds do not have this issue. (or at-least I am unable to reproduce this issue). If you face this issue even now, please create a new issue or post a comment in #41846 so we can look into it.

I got this error too.
tensorflow: 2.4.1
window 10
python 3.7

This issue is fixed on 2.4.1 ?

@wqcsim Trye downloading tf-nightly. pip install tf-nightly

I had the exact same problem using TensorFlow 2.4.1 with python 3.7 on Windows 10, and unzipping the above-mentioned schema_py_generated.py.zip to replace an existing but 0-byte file schema_py_generated.py in my python 3.7 installation subfolder Python37\Lib\site-packages\tensorflow\lite\python fixed the problem. I'd rather not use nightly versions unless I really have to.
Thanks!

I had the exact same problem using TensorFlow 2.4.1 with python 3.7 on Windows 10, and unzipping the above-mentioned schema_py_generated.py.zip to replace an existing but 0-byte file schema_py_generated.py in my python 3.7 installation subfolder Python37\Lib\site-packages\tensorflow\lite\python fixed the problem. I'd rather not use nightly versions unless I really have to.
Thanks!

it works!

It works, but it's just a duct tape!
Why it is not generated?


add_user_message() fails. called with List instead of a string.

System Info
Here is the error call stack. The code is attached to this submission.
I did a workaround to prevent the crash. However, this is not the correct fix.
Hacked FIX
def add_user_message(self, message: str) -> None:
"""Add a user message to the store"""
print(type(message))
if isinstance(message, list):
message = message[0].content
self.add_message(HumanMessage(content=message))
---------------------------- Call Stack Error --------------------
Exception has occurred: ValidationError       (note: full exception trace is shown but execution is paused at: _run_module_as_main)
1 validation error for HumanMessage
content
str type expected (type=type_error.str)
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/site-packages/pydantic/main.py", line 341, in pydantic.main.BaseModel.init
raise validation_error
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/site-packages/langchain/schema.py", line 254, in add_user_message
self.add_message(HumanMessage(content=message))
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/site-packages/langchain/memory/chat_memory.py", line 35, in save_context
self.chat_memory.add_user_message(input_str)
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/site-packages/langchain/chains/base.py", line 191, in prep_outputs
self.memory.save_context(inputs, outputs)
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/site-packages/langchain/chains/base.py", line 142, in call
return self.prep_outputs(inputs, outputs, return_only_outputs)
File "/Users/randolphhill/gepetto/code/mpv1/version1/geppetto/maincontroller.py", line 96, in
eaes = agent(messages)
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/Users/randolphhill/anaconda3/envs/version2/lib/python3.10/runpy.py", line 196, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
pydantic.error_wrappers.ValidationError: 1 validation error for HumanMessage
content
str type expected (type=type_error.str)
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[X] Agents / Agent Executors
[X] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
from langchain.chat_models import ChatOpenAI
from langchain import SerpAPIWrapper
#from typing import Union
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import Tool
from langchain.chains.conversation.memory import ConversationBufferWindowMemory
from langchain.prompts.prompt import PromptTemplate
from langchain.tools import DuckDuckGoSearchRun
from langchain.schema import (
SystemMessage,
HumanMessage,
)
#Build Prompt
EXAMPLES = [
"Question: Is there a Thai restaurant in San Francisco?\nThought: I need to search for Thai restaurants in San Francisco.\nservation: Yes, there are several Thai restaurants located in San Francisco. Here are five examples: 1. Lers Ros Thai, 2. Kin Khao, 3. Farmhouse Kitchen Thai Cuisine, 4. Marnee Thai, 5. Osha Thai Restaurant.\nAction: Finished"
]
SUFFIX = """\nQuestion: {input}
{agent_scratchpad}"""
TEST_PROMPT = PromptTemplate.from_examples(
EXAMPLES, SUFFIX, ["input", "agent_scratchpad"]
)
#print(TEST_PROMPT)
messages = [
SystemMessage(content="You are a virtual librarian who stores search results, pdf and txt files. if a message cannot save, provide a file name based on the content of the message. File extension txt."),
AIMessage(content="I'm great thank you. How can I help you?"),
HumanMessage(content="List 5 Thai resturants located in San Francisco that existed before September 2021.")
]
def ingestFile(filename:str):
return f"{filename}ingested file cabinate middle drawer"
def saveText(msg:str):
print("\nSEARCH RESULTS FILER !!!!\n",msg,"\n")
try:
with open("/tmp/file_name.txt", 'w') as file:
file.write(msg)
#print(f"Successfully written")
return f"{msg}Information saved to thai.txt"
except Exception as e:
print(f"An error occurred: {e}")
#serpapi = SerpAPIWrapper()
serpapi = DuckDuckGoSearchRun()
search = Tool(
name="Search",
func=serpapi.run,
description="Use to search for current events"
)
save = Tool(
name="Save Text",
func= saveText,
description="used to save results of human request. File name will be created"
)
#tool_names = ["serpapi"]
#tools = load_tools(tool_names,search_filer)
ingestFile = Tool(
name="Ingest-Save file",
func= ingestFile,
description="Used to store/ingest file in virtual file cabinet"
)
tools = [search,save,ingestFile]
type(tools)
chat = ChatOpenAI(
#openai_api_key=OPENAI_API_KEY,
temperature=0,
#model='gpt-3.5-turbo'
#prompt=TEST_PROMPT,
model='gpt-4'
)
memory = ConversationBufferWindowMemory(
memory_key='chat_history',
k=20,
return_messages=True
)
agent = initialize_agent(tools, chat,
#iagent="zero-shot-react-description",
agent='chat-conversational-react-description',
max_interations=5,
#output_parser=output_parser,
verbose=True,
max_iterations=3,
early_stopping_method='generate',
memory=memory)
eaes = agent(messages)
#res =agent(O"List 5 Thai resturants in San Franciso.")
#res = agent(messages)
print(res['output'])
res =agent("What time is it in London")
print(res['output'])
res =agent("Save the last  TWO LAST ANSWERS PROVIDEDi. Format answer First Answer: Second Answer:")
print("RESULTS OF LAST TWO\n",res['output'])
print("\n")
res =agent("Ingest the file nih.pdf")
print(res['output'])
res=agent("your state is now set to ready to analyze data")
print(res['output'])
res=agent("What is your current state")
print(res['output'])
Expected behavior
Not to crash and return with message saved.

Close this issue.


Scan axis start, stop, step list[detectors] as a syntactic sugar over a call

idea - allow for quickscans with known syntax used now in the ipython environment
This is a CLI thin wrapper with logic around a call to some step plan
prerequsites

setup some motor as the default for the beamline (allow to override)
read in the start, stop, steps as parameters to a blueapi client call
read in detectors list as dynamically created list of devices to listen in

@coretl where did the discussion on this end up?

I can't remember a discussion on this... Gareth definitely had opinions though


include which listener to remove for BackHandler in componentWillUnmount

fixes #79

@jacklam718 for review

@cpetzel Thanks!


Midi handler wrapup

So far, implements all 7 of the Channel Voice Messages tested working.
TODO System Real-Time Messages and System Common Messages, Channel Mode Messages.

Hi @beserge ! This is looking good! I wondered if we could add some unit tests for the MIDI parsing. It seems like a great chance to check for bugs, not just now but also in the future when other people want to make modifications to the MIDI classes. Ping me on slack if I can be of any help on this

Quick look over everything looks good.
I agree with @TheSlowGrowth on adding unit tests to this.
We'll have to add some preprocessor considerations to avoid the UART handle being a part of the class, but otherwise in the "NONE" input/output modes you could feed the Parse function with bytes in a test environment without any hardware reliance.
A few other things related that may be worth changing (either now or in a post v0.1 update):

We could consider making the various input/output modes "Transports" like we did for the OLED. To keep the actual "MIDI parsing" separate from the hardware acquisition/transmission. That would help make this a bit more unit test compatible, and possibly easier to add the other modes down the road.
@beserge and I were talking a bit earlier about possibly reworking MidiEvent struct, and the actual handling of MIDI Messages, etc. since the previously "simple" MidiEvent is pretty huge now that we've got pretty much full MIDI 1.0 support. I'm pretty split on a few different approaches. So I'm open to ideas and feedback.

In the interesting of limiting API breaking changes until we start having releases/changelogs to help people migrate I'm leaning toward making both of those points issues and handling them at a later time. With that said, idk if it would be better to hold off on unit tests until that happens or not.

To keep the actual "MIDI parsing" separate from the hardware acquisition/transmission.

I suppose the Parse(byte) functionality isn't likely to change too much. So might not be a bad thing to add tests sooner than later.

100% agree to that. We've seen on the OledDisplay stuff that the transport abstraction doesn't have to come with breaking API changes. It would allow to add tests right now and ship a very solid implementation for v0.1.

We've seen on the OledDisplay stuff that the transport abstraction doesn't have to come with breaking API changes.

It did require some changes to user code for the Initialization API, though. But I agree that it's worth making this change sooner than later regardless.
So yeah, @beserge I think we should make the following changes:

Move the MIDI Event stuff (as-is) to it's own MidiEvent.h file. (that'll help keep the file cleaner with the next few changes)
Add MidiUartTransport class that can be used for the next point.
Make the MidiHandler a template class with a Transport argument as illustrated below

this will remove the need for the current init arguments
a Config struct (containing the transport config struct) should be provided for configuring UART pins, and any other related config we want to set up later (I've seen some MIDI libraries have the ability to just ignore certain message types which might be a nice feature to add down the road).

Add UnitTests for the new non-hardware-reliant MidiHandler

I think @TheSlowGrowth will have some good advice for this
We'll probably need to make a "TestTransport" class or something, but that can probably live in the test itself.

I think that'll pretty much cover it for now.

Also, if we want to hide away the templating a bit for users we can pre-typedef a class like we did for the various common display types:
using MidiUartHandler = MidiHandler<MidiUartTransport>;

OK moved to the Transport method.
Wrote a UartTransport and a TestTransport. The test is just a ton of hardcoded test data.
Will move to a method that just loops over all possible (valid) messages for the unit test.
Also: seriously dropped the size of the sysex buffer. It was huge and was causing overflows when I tried to build.

this works, and fixes some issues that exist in the current implementation (i.e. Clock messages stalling the state machine, etc.).
I do want to add unit tests to validate the parser functionality before we make further changes, or rework any of the MidiEvent stuff, but I don't want to leave MIDI partially broken in the meantime. So I think for now this is good to go.


Add Arch Detector

now we have 2 arches: amd64, arm64
so we need to add arch detector to install.sh & install.ps1

done


Feature complete

Support for both v0 and v1 CID.
Ready for review

@dignifiedquire @VictorBjelkholm could you review?

Thank you for the CR @dignifiedquire, applied, now validation happens and it will throw if something is incorrect.


[Install issue]: chroma run failed with binding issue

What happened?
After I executed chroma run, the console output the following logs:
WARNING:  [30-08-2024 09:43:18] chroma_server_nofile is set to 65535, but this is less than current soft limit of 1048576. chroma_server_nofile will not be set.
INFO:     [30-08-2024 09:43:18] Anonymized telemetry enabled. See                     https://docs.trychroma.com/telemetry for more information.
DEBUG:    [30-08-2024 09:43:18] Starting component System
DEBUG:    [30-08-2024 09:43:18] Starting component OpenTelemetryClient
DEBUG:    [30-08-2024 09:43:18] Starting component SqliteDB
DEBUG:    [30-08-2024 09:43:19] Starting component QuotaEnforcer
DEBUG:    [30-08-2024 09:43:19] Starting component Posthog
DEBUG:    [30-08-2024 09:43:19] Starting component LocalSegmentManager
DEBUG:    [30-08-2024 09:43:19] Starting component SegmentAPI
INFO:     [30-08-2024 09:43:19] Started server process [1005]
INFO:     [30-08-2024 09:43:19] Waiting for application startup.
INFO:     [30-08-2024 09:43:19] Application startup complete.
ERROR:    [30-08-2024 09:43:19] [Errno 99] error while attempting to bind on address ('::1', 8000, 0, 0): cannot assign requested address
INFO:     [30-08-2024 09:43:19] Waiting for application shutdown.
DEBUG:    [30-08-2024 09:43:19] Stopping component System
DEBUG:    [30-08-2024 09:43:19] Stopping component SegmentAPI
DEBUG:    [30-08-2024 09:43:19] Stopping component LocalSegmentManager
DEBUG:    [30-08-2024 09:43:19] Stopping component Posthog
DEBUG:    [30-08-2024 09:43:19] Stopping component QuotaEnforcer
DEBUG:    [30-08-2024 09:43:19] Stopping component SqliteDB
DEBUG:    [30-08-2024 09:43:19] Stopping component OpenTelemetryClient
INFO:     [30-08-2024 09:43:19] Application shutdown complete.

I was executing the command within a docker container.
Versions
Chroma: 0.5.5
Python: 3.12.5
Relevant log output
No response

hey @SupJoeeeeeey, thanks for reporting this. It seems that your system has trouble binding to localhost on IPv6. May I suggest you try running with chroma run --host <IP_ADDRESS> --path ./chroma-data

hey @SupJoeeeeeey, thanks for reporting this. It seems that your system has trouble binding to localhost on IPv6. May I suggest you try running with chroma run --host <IP_ADDRESS> --path ./chroma-data

Thanks a lot! It does work!


Fix dependency error in daily testing

In this PR, I removed the version limitations on numpy and sklearn, and installed the dependencies in the scope of dev for the workflow DailyTesting.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 84.892%

Files with Coverage Reduction
New Missed Lines
%

pypots/classification/base.py
2
79.76%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
3158

Relevant Lines:
3720

💛  - Coveralls


Make mobile more friendly

It should be easy. Mostly support different sizes for Skinny/Wide modes.

fc4ee88a992f73d9663caf8fd5fbe7a3adc8826c
No promises that I won't come back and get rid of the horizontal padding/offset used in the wider screen modes. Seems like a waste, but I'm just not a UI designer.


add dates

still handy sometimes, especially since we're (ab)using this as production logging right now as well haha

need add options like date IP etc.

+1


best_partition weight cannot be set to None, but "None"

I need the algorithm to take the graph as unweighted, but the weight parameter cannot be set to None, only string is accepted. I'm currently set as "None" and it works. But probably improvements can be made in the source codes?
~/anaconda3/envs/py36/lib/python3.6/site-packages/community/community_louvain.py in best_partition(graph, partition, weight, resolution, randomize, random_state)
    247                                 resolution,
    248                                 randomize,
--> 249                                 random_state)
    250     return partition_at_level(dendo, len(dendo) - 1)
    251

~/anaconda3/envs/py36/lib/python3.6/site-packages/community/community_louvain.py in generate_dendrogram(graph, part_init, weight, resolution, randomize, random_state)
    350     status_list.append(partition)
    351     mod = new_mod
--> 352     current_graph = induced_graph(partition, current_graph, weight)
    353     status.init(current_graph, weight)
    354

~/anaconda3/envs/py36/lib/python3.6/site-packages/community/community_louvain.py in induced_graph(partition, graph, weight)
    409         com2 = partition[node2]
    410         w_prec = ret.get_edge_data(com1, com2, {weight: 0}).get(weight, 1)
--> 411         ret.add_edge(com1, com2, **{weight: w_prec + edge_weight})
    412
    413     return ret

TypeError: add_edge() keywords must be strings

how modularity value is calculated for unweighted graph?

how modularity value is calculated for unweighted graph?

can't you just set all weights to 1?

Hello, for unweighted graphs, all weights are assumed to be 1. In fact if you specify a weight key which does not exist, all weights are assumed to be 1. Even if one specific link have no weight set it will be 1.

Thanks for your reply
On Sun, 27 Dec, 2020, 9:20 PM Thomas Aynaud<EMAIL_ADDRESS>wrote:

Hello, for unweighted graphs, all weights are assumed to be 1. In fact if
you specify a weight key which does not exist, all weights are assumed to
be 1. Even if one specific link have no weight set it will be 1.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/taynaud/python-louvain/issues/73#issuecomment-751483227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANB2WCONH6MVBBTDECG4ICLSW5JTVANCNFSM4T4I3YVQ
.


Getting abbr: invalid option -- -q as installing with fisher

I'm getting this as I type n fish
gitabbr: invalid option -- -q                        4975ms  Tue 28/07 18:29
commandline: Unknown input function 'expand-abbr'~/.config/fish/functions/__abbr_tips_bind_space.fish (line 10):
    commandline -f 'expand-abbr'
    ^
in function “__abbr_tips_bind_space”
        called on standard input
       commandlinecommandline - set or get the current command line buffer
        -

   Synopsis
       commandline [OPTIONS] [CMD]

commandline: Type “help commandline” for related documentation

What is your fish version?

Yeah I was using the default fish package repository which had v2.7 not the release 3 one


ci: Use Github app token for creating release notes

Fixes #1213
Github app token is generated using this instructions
Test Plan

How do we know the code works?

All jobs are run properly in created PR (builds + integration tests when 2+ approves) when run release notes jobs.
Checklist

[ ] Documented
[ ] Unit tested

Codecov Report

Merging #1253 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1253   +/-   ##
=========================================
  Coverage     79.73%   79.73%
  Complexity      713      713
=========================================
  Files           233      233
  Lines          4378     4378
  Branches        751      751
=========================================
  Hits           3491     3491
  Misses          492      492
  Partials        395      395


use commonjs

Thanks for the PR @w9n - can you help me understand the change to commonjs?  I am intentionally using es2015 because it gets piped through webpack and with es2015 module syntax, webpack 2 is able to perform tree shaking.  Is there an advantage of using commonjs here that I am not aware of?  Since it goes through webpack anyway, what advantage would commonjs bring?

Im very new to js and i am not able to install rxjs or glamorous without commonjs as compiler (also had the same missing mocha dependency error with es2015, which i somehow cant reproduce now). Maybe it is possible to compile through commonjs -> es2015 -> es5 and have tree shaking that way?

I'm not using RxJS or Glamorous and would prefer to keep the module type as ES2015. Thanks for the PR though.  Maybe you could add this to your fork.


Appstudio update mvp-test-component

Pipelines as Code configuration proposal

Pipelines as Code CI/mvp-test-component-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
18 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
13 seconds
sanity-inspect-image

✅ Succeeded
12 seconds
deprecated-base-image-check

✅ Succeeded
8 seconds
clamav-scan

✅ Succeeded
16 seconds
clair-scan

✅ Succeeded
13 seconds
sbom-json-check

✅ Succeeded
9 seconds
sanity-optional-label-check

✅ Succeeded
9 seconds
sanity-label-check

✅ Succeeded
7 seconds
show-summary


[BUG] - trx has no outputs, breaks the explorer

External
Summary
A particular transaction has no outputs on the chain, I believe the transaction should have a valid utxo.
transaction hash: 05e5bb869d0a71e3689d7a7d2bcde70494e370df0e8958fb338562d94a7dddb6
Steps to reproduce

Go to https://explorer.mainnet-candidate-4.dev.cardano.org/en/
open chrome console
search 05e5bb869d0a71e3689d7a7d2bcde70494e370df0e8958fb338562d94a7dddb6
See error

Expected behavior
A transaction should have a valid utxo with inputs and outputs

being fixed at the explorer, https://github.com/input-output-hk/cardano-explorer-app/issues/329


Allow password authentication when using HTTP

Background
Currently, to use password authentication, you must be communicating with the Presto coordinator over HTTPS.
From the docs about using a pluggable password authenticator (https://prestosql.io/docs/current/develop/password-authenticator.html):

Additionally, the coordinator must be configured to use password authentication and have HTTPS enabled.

I see a block in AuthenticationFilter here which enforces this requirement: https://github.com/prestosql/presto/blob/57051c9a9616eee4f8713f58b84c07a8041767cb/presto-main/src/main/java/io/prestosql/server/security/AuthenticationFilter.java#L67-L71
Problem
I'd like to use password authentication with a cluster where Presto nodes all live behind a load balancer.  I'm running Presto in a Kubernetes cluster; worker nodes cannot be accessed from outside the cluster, and the coordinator can only be accessed via Ingress (https://kubernetes.io/docs/concepts/services-networking/ingress/#tls), a Kubernetes object analogous to a load balancer.  Ingress can be configured to force HTTPS, so effectively all traffic going to Presto is over HTTPS, even if the coordinator itself is only serving HTTP traffic.
Would the community be open to allowing password authentication to work over HTTP?  We could put this behavior behind a flag, and disable it by default to make it less likely for someone to run Presto in an insecure setup with basic authentication over HTTP.

This sounds reasonable. Maybe we should enforce that the X-Forwarded-Proto or the Forwarded header says the original request is HTTPS?

That sounds like a better approach than what I suggested.  I can open a PR sometime next week.

I think we should do both: only allow if a config is enabled (default disabled) and if the forwarded header says the original request was secure.

Initial PR (work in progress): https://github.com/prestosql/presto/pull/1442


define relationships

Coverage decreased (-0.3%) to 58.96% when pulling c071223fde4ff6e31b6e798093dc50ff4d0deda3 on relations into c82252c81cd95472278801c143cde6e8f3466176 on dev.


[WIP] Enable CoreValidation on CM52 with LLVM/Clang 18

Depends on CMSIS-Toolbox update

Clang/LLVM 18 builds for CM52 still failing due to missing support in CMSIS-Toolbox. The support will be part of upcoming CMSIS-Toolbox 2.4.0


Add partials for dotnet v7

Change-type: patch
Signed-off-by: Trong Nghia Nguyen<EMAIL_ADDRESS>

@balena-ci I self-certify!


Devicesettings update to add new setMixerLevels API

RDK-46920: RDK Devicesettings update to add new setMixerLevels API
Reason for change: To control both primary and player volume
Test Procedure: Verify using the curl commands to set the volume
Risks: Medium Priority: P1

Closing this PR as it not followed the See -> https://github.com/rdkcentral/rdk-halif-device_settings/blob/main/CONTRIBUTING.md


Show a better error if cargo-generate does not exist

Ran into this just now:
shell ❯ cargo leptos new --git https://github.com/Gentle/start-axum-workspace
Error: Could not spawn command at `/home/k/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-leptos-0.1.8/src/command/new.rs:61:14`

Caused by:
    No such file or directory (os error 2)

thanks


buffer: h264: Enable use of slice arrays

Looking good - a description of this CL and why we decide to use slice arrays would be helpful. We currently do have the required context, but someone else several years down the line might not.


(Suggestion) I want to help you implement a more versatile cave generator.

Sorry for the long post.
Several months ago, I was working on a fairly large modpack based almost entirely around adding new modded blocks and biomes to Biome Bundle. So I don't waste your time, I'll just say that one big feature was a dimension filled entirely with caves. This was handled using giant BO3 structures, which was problematic both in the way of performance and also in getting other structures to spawn correctly. The project was eventually abandoned due both to my own stupidity and another project I was working on, which was originally designed to be a small mod that added different stone variants for each ore type I was using at the time so that the caves would look nicer. (Un?)fortunately, that project grew way out of hand and has shifted my free time priorities >> 1000.
I'm revisiting this whole caves idea, but this time, I'm looking for something better. Over the past week, I have begun to dissect and understand how Mojang's cave generator produces its shapes, as seen underground in every Minecraft world since long before launch. You can view my progress on GitHub, as well get more information and a compiled build on CurseForge.
Basically, I would more than happy to implement as many of these features as I can into OTG (after making a few more improvements first). I just need your feedback on a few things first:

Whether you feel these changes are practical and fit within the mod's overall meta.
Whether you would prefer to wait for 1.13.
Whether you would prefer an entirely new preset format similar to *.BO3 or *.BC instead of *.json

If so, and if there are no issues with the above questions, then:

Whether you would prefer these changes to remain biome-specific, as I have them.
Whether you're comfortable with some currently very questionable, beta features, such as the BlockFillers / decorators.

These are used to randomly layer different blocks on top of or inside of cave walls in any direction, which sometimes requires storing the info in new files for later use, i.e. when the given chunk has not yet generated.
This theoretically decreases world generation speed as more chunks get added to the queue. I can say that, having explored at least 20k blocks in one direction, the impact is not noticeable; however, it definitely still needs work.

Any other practical issues and whether you feel they could be worked around.

As this will take me so long (at least one week after I finish making adjustments to the original mod, fingers crossed), I will not submit any pull requests or even begin working until I hear any concerns you have.
For now, here's a quick rundown of what this will entail:

Biome-specific cave presets with the following options and more:

Tunnels

Slope control

Starting value, randomness factor

twist control (the amount a slope changes per iteration)

Linear and quadratic scaling, starting value, randomness factor

Scale control

Horizontal and vertical; linear and quadratic scaling (vertical needs work), starting value, randomness factor

Noise control

An entirely new cavern generator

Can be used alternatively or in addition to the tunnels
Octaves, frequency, height control, etc.

Height control supports smoothing. Currently uses 2D noise, but I also have a slightly more efficient method which works by reducing the scale near height limits.

Almost no additional overhead when used together or instead of the tunnel generator

Between 0.5 and 2.0 additional seconds world gen time from vanilla, r = 12

See this comparison of my original caves preset (mind the light--sorry) to the new caves generated procedurally by the mod.

BlockFillers

A much more efficient way to cover caves in grass, flood them with water, add stalagmites and stalactites, place vines on walls, etc.

This is because fewer blocks are tested for placement
Almost zero noticeable performance overhead.

Supports calling on other generators (presets) to spawn branches
Could easily be adapted to allow spawning BO3 and other structures, neatly and guaranteed to be within cave boundaries.

A command for reloading presets, much like "/reloadBO3s"

I hope this wasn't too much to read. I was afraid my code was just garbage, but I think I've made a sizable volume of progress at this point and I can't wait to hear back from you.
Edit (this may be relevant): Cave Generator actually does not break seeds by default. I'm not yet sure how well I can do the same with OTG, though.

Hey @PersonTheCat, MCPitman has been asking me for better caves for ages! I simply don't have the time so would much appreciate your help. If you can implement caves in such a way that it is optional, doesn't break existing features and the code is (reasonably) self-contained so it can be merged without much trouble then I have no objections at all. I'm wondering though, will these caves be procedurally generated from pre-fabricated (and even customisable) parts? Then yes I imagine you'd need something like BO3's. If it's more like the normal cave generator which uses a relatively simple algorithm with configurable variables then I don't think you would need anything like that, you could add the settings to the biome configs, right? As for 1.13, at the moment I'm still hard at work on improvements for 1.12, I'll start worrying about 1.13 when Forge updates (there is someone who already said he's working on a 1.13 branch for spigot though). A note about cave worlds, there's a reason that the nether is only 128 blocks tall and that's performance, a 256 block tall cave world really slows things down. I still have to add a "128 height" option for OTG dimensions so users can make proper cave dimensions, After I'm done with the current improvements that'll be high on my priority list. I'm not sure about Block Fillers btw, it's always preferable to not have to save/maintain any state like unfinished chunks, but if it doesn't cost performance and doesn't cause problems I don't really have a problem with it. Ofcourse if the caves are optional and some of the performance-intensive features are optional then users can always balance their settings for the best compromise. Do you intend to test for Spigot as well btw or just Forge?
Cheers!

Love the pics btw! One more note btw, it's a basic rule for OTG that we don't add any assets to the game (blocks, materials, entities etc), I hope that won't be a problem.

Okay, great. I'm glad to hear back from you. So, the cavern generator is actually extremely simple to implement because it's literally just a 3D noise generator. You can see the original algorithm here. I've just made a few minor changes and then added an equation to smooth the noise out a bit / fractalize it. The way I have it implemented in Cave Generator is literally just by iterating through x, z = 0; x, z < 16; y = 0; y < whatever height, where the existing stone just gets replaced if the noise is above the threshold. However, I expect that spawning caverns instead of stone (and not just replacing it) would be slightly faster, so I'll definitely look into that using OTG's chunk provider. This will most likely happen the the world config. I have a way to stop the caves from generating between biomes and it sometimes looks nice, but other times it just doesn't work, so adding it there will produce the easiest and cleanest results.
At this point, I also have a way for users to spawn stone in layers using 2D noise. This looks pretty good, but should ideally stay biome-dependent. In Cave Generator, this part happens whenever the cavern generator fails. I'll need to see if that's possible with OTG's setup, because it is the fastest solution I can think of for adding multiple new types of noise to the world.
The block fillers were actually super fast and didn't really cause any issues for most users, but they had two major problems: 1, their size was limited; and 2, multiple blocks could get written to the same BlockPos, which was just inefficient. I've fixed all of this by imitating the way ChunkPrimer stores its blocks. I've also written a custom read/writeObject() method so that only the indexes which contain meaningful information are ever (de)serialized. However, while it wasn't notably slower before, it definitely is now, so I probably will not bother you or other OTG users with it. On the other hand, placing blocks on ceilings and floors (as well as filling / flooding caves with water, gravel, etc) using a similar method is still much, much faster than using BO3s, so I will include that for you to at least consider. I also plan to write a dedicated stalactite generator for placing multi-block stalactites and similar decorations more easily, but I haven't even started on that, so I can't quite consider it for OTG just yet.
The rest of the mod is just Mojang's normal MapGenCaves, except I've identified the impact of most variables and even have screenshots and GIFs to demonstrate their effects. Users can change them and even have a few new options that didn't previously exist. I will need to completely rewrite CavesGen to support these changes, but I'll do my best to avoid breaking existing functionalities and even test Spigot for you.
Give me at least a week before I can even get started. Another group of developers has contacted me for help with overhauling cave generation for their mod as well, which I plan to start on today. Once I'm done with that, I may start with just the cavern generator, which will be super easy to implement and then start on the rest shortly following that.

Maximum cavern height is now generated using a height map that gets added to the existing terrain height. This produces some interesting shapes and, more importantly, fixes the long-time bug of caverns carving holes in ocean floors.

Just finished updating Cave Generator to version 0.13. A download and its changelog can be found on CurseForge. At this point, my plan is to wait just a bit for some feedback about how smoothly everything runs for everyone. In the near future, I should be able to clone the master branch for OTG and start working on changes. I would plan to start with just the custom tunnel / ravine variables and a noise generator used for generating underground caverns. I would really like your feedback beforehand, though.

It should be possible to have multiple tunnel generators enabled simultaneously in OTG, just as it is in CG. My only problem is that this will take up an enormous amount of space in the current biome configs. I can add tunnel settings in the world config, but overriding the global config per-biome also needs to be possible, simply because it is and it produces very interesting results in-game. What I need are your opinions on how that should be done. You may want to take a look at how tunnels are managed in the vanilla preset on GitHub to get an idea of how many parameters there are.
The cavern generator now uses FastNoise to handle noise generation. This has a couple of its own problems.

The entire FastNoise library (slightly modified) is included directly inside of the jar file.
The use of FastNoise is inconsistent with how noise is generated elsewhere in OTG, and thus you may want to consider more thorough changes involving it.

FastNoise is highly beneficial, however, simply because it allows the user to choose from a variety of configurations. This means that users can choose between simplex noise, perlin noise, and use a whole bunch of other setups to produce their own shapes. None of this can be achieved without FastNoise.

I'm sure there are several hour long conversations that can be had about altering the cave generation algorithms for OTG, but I figured these two subjects would be a good start for now, since I can absolutely handle their integration with no issues whatsoever.

Hey @PersonTheCat, sorry for the late reply, I see you're still active, how's it going? I think it'd be great to make the mods compatible, but not necessarily integrate the two projects. Since you're developing Cave Generator as a separate mod now, I'll close this issue (cleaning up the git atm). My biggest concern with a cave generator btw is performance. I've been doing a lot of profiling lately, and even the current, basic, cave generator is causing significant load during generation, as much as the rest of the base terrain combined at times. As for noise, OTG uses a few different noise generators, much of the code is lifted from MC. Unfortunately we can't just change noise generation for biomes, as that would break everyone's seeds. But there's no problem with using different noise generators for different things. I may take a look at FastNoise in the future, still have a lot more things to clean up and fix before then though :o.

Just out of curiosity, which presets did you try using? From my own experience, it tends to be the WallDecorator feature that causes the biggest hit to performance. It's horribly optimized. Seeing as OTG can already handle this sort of thing in better ways, this would not get ported over. Just the ability to change tunnel shapes, angles, etc. as well as optional, noise-based cavern generation.

Actually I meant just the standard boring OTG cave generator, I did profiling for CPU hotspots using visualvm and found that the caves generator was creating just as much load as basic terrain generation. Most likely because basic terrain generation doesn't need to manipulate existing blocks or check for the existence of neighbouring blocks etc. VisualVM is really easy to use btw, just download it from https://visualvm.github.io/, start it, start a MC client, you'll see the process appear in the process list for visualvm, rightclick it and pick "sample" (not "profile"), then try out the CPU and memory tabs. VisualVM detects CPU hotspots (code that is used very often and/or causes a lot of load) and shows you how many and what types of objects are in memory. Be aware btw that attaching the cpu profiler can sometimes affect the process and cause a crash, that's not necessarily a problem with your code.


scrollable-areas: scrollbar doesn't stick to the right in markdown file's code blocks

Description
Take a look at the code blocks in the README here: https://github.com/elastio/bon#struct-builder. The scroll bars appear in the middle of the block. I think they stick to the widest code line in that block.

How to replicate the issue + URL
Take a look at the README in https://github.com/elastio/bon#struct-builder
Extension version
24.11.21
Browser(s) used
Chrome v131.0.6778.86 (Official Build) (64-bit)
Token ⚠

[X] I set a token in the options page. I understand that some features require a token to work.

Thanks! This is actually not intentional. The feature should only apply to comments, not any markdown area.
cc @ToBinio https://github.com/refined-github/refined-github/pull/7952

Oh actually it's likely https://github.com/refined-github/refined-github/pull/8089 @kovsu

CSS hotfixed for now


Inline buttons not working

Followed instructions on creating buttons using Button maker. Then used command for creating an inline button, selected the desired button from the dropdown list and the correct code is inserted at the spot. When you go to preview mode, however, you just get an Undefined button with no action attached.

This happens to me also, but only when there is more than one button with the same name. Unfortunately the plugin does not accept characters like '-' in the name, so I had to change some of the button names. But once the duplicates were out, it worked.

I have neither of those situations - all of my buttons have unique names and there are no other characters besides letters. (I initially just let the plug assign the id's with the auto-generated names of random characters. Thinking that was the problem, I deleted all of the buttons and then recreated them with my own names - again using just letters - and I still get the same thing.) The insert inline button command lets me choose from the list of buttons defined, the correct shortcode within the tic marks appears, but when you go to preview mode, you just get a button that says "Undefined."  I tried changing themes but it doesn't seem to matter

Not sure if it's related, but in Live Preview I don't have a button being rendered. At the moment, I only have 1 button which contains no non-alphabetic characters. When I place the button with the inline button command I just see the text 'button-getEvents' (getEvents is my button id). However, in reading mode it renders as a button just fine and the button works.

Thanks for reporting. Inline buttons need to be updated to work with Live Preview as it uses a completely different rendering method. Stay tuned.

I am having this same problem: more than one button inline, the first is "undefined", while the second inline button works. The buttons have unique names. If I add a third button, the previously working button then shows up as "undefined" (first two now undefined).
At one point, I did get two buttons working, but I cannot, for the life of me, figure out what I did differently.
I am running Obsidian v0.13.19 and Buttons v0.4.16.

yeah，I  am having this same problem,have you soved this?help,help,please.


vendor libnetwork v0.6.1-rc3

fixes https://github.com/docker/docker/issues/20140

This is a P3 issue and not specific to 1.10 release (seen also in 1.9).
cherry-picking this patch from master since it was marked for 1.10.1 (and the master has diverged for libnetwork).
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

Job: Docker-PRs-WoW-TP4 FAILED:

---
Current directory is /c/gopath/src/github.com/docker/docker
---------------------------------------------------------------------------

-----------------------------------------------
ERROR: Failed with exitcode 1 at Thu Feb 11 17:48:32 CUT 2016.
-----------------------------------------------

INFO: Tidying up at end of run
INFO: Nuking /d/CI
INFO: Zapped successfully
INFO: End of cleanup
INFO: Ended at Thu Feb 11 17:48:33 CUT 2016 (0m 1s)
Build step 'Execute shell' marked build as failure
[PostBuildScript] - Execution post build scripts.
[docker] $ sh -xe D:\temp\hudson1882285174345572740.sh
+ set +e
+ set +x
INFO: End of cleanup
Notifying endpoint 'HTTP:https://leeroy.dockerproject.org/notification/jenkins'
---

Job: Docker-PRs-Win2Lin FAILED:

---
etwork/store.go     | 3 ++-
 3 files changed, 6 insertions(+), 2 deletions(-)
[docker] $ sh -xe C:\Users\Jenkins\AppData\Local\Temp\hudson647458882133537819.sh
+ set +x
INFO: Started at Thu Feb 11 17:48:32 CUT 2016. Script version 4-Jan-2016 15:19 PST
Build step 'Execute shell' marked build as failure
Performing Post build task...
Could not match :Build timed out  : False
Logical operation result is FALSE
Skipping script  : cd c:\scripts
sh timeout-post-build.sh

END OF POST BUILD TASK 	: 0
[PostBuildScript] - Execution post build scripts.
[docker] $ sh -xe C:\Users\Jenkins\AppData\Local\Temp\hudson8581603351543679809.sh
+ set +x

---

LGTM

LGTM

re LGTM

Job: Docker-PRs-WoW-TP4 FAILED:

---
Current directory is /c/gopath/src/github.com/docker/docker
---------------------------------------------------------------------------

-----------------------------------------------
ERROR: Failed with exitcode 1 at Thu Feb 11 18:31:59 CUT 2016.
-----------------------------------------------

INFO: Tidying up at end of run
INFO: Nuking /d/CI
INFO: Zapped successfully
INFO: End of cleanup
INFO: Ended at Thu Feb 11 18:32:00 CUT 2016 (0m 1s)
Build step 'Execute shell' marked build as failure
[PostBuildScript] - Execution post build scripts.
[docker] $ sh -xe D:\temp\hudson7974837764235533928.sh
+ set +e
+ set +x
INFO: End of cleanup
Notifying endpoint 'HTTP:https://leeroy.dockerproject.org/notification/jenkins'
---

Job: Docker-PRs-experimental FAILED:

---
804)
	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:802)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
	at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
	at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:34)
	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)

Build step 'Execute shell' marked build as failure
[PostBuildScript] - Execution post build scripts.
ERROR: Build step failed with exception
java.lang.NullPointerException: no workspace from node hudson.plugins.ec2.EC2OndemandSlave[ubuntu (aufs) (i-0c77cccb)] which is computer hudson.plugins.ec2.EC2Computer@6449b413 and has channel null
	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:74)
	at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:64)
	at org.jenkinsci.plugins.postbuildscript.PostBuildScript.processBuildSteps(PostBuildScript.java:204)
	at org.jenkinsc
---


Castome

Hi,
I created custom monitor to collect data from network connection count by types.
See below
Execution of this script taking about 1,2 seconds.
But diamond using one trade 100% for 20 seconds
Please tell me whats wrong
#!/usr/bin/python
from decimal import *
import commands

import diamond.collector
class ConnectionCounterCollector(diamond.collector.Collector):
        def collect(self):

            all_connections = commands.getoutput("netstat -ant")

         connection_list = {"ESTABLISHED" : 0 , "SYN_SENT" : 0 ,  "SYN_RECV" : 0 ,  "FIN_WAIT1" : 0 ,  "FIN_WAIT2" : 0 ,  "TIME_WAIT" : 0 , "CLOSE" : 0 , "CLOSE_WAIT" : 0 , "LAST_ACK" : 0 , "LISTEN" : 0 , "CLOSING" : 0 , "UNKNOWN" : 0 }

            for line in all_connections.splitlines():
                #print line
                if line.find("ESTABLISHED") != -1:
                    #print "ESTABLISHED"
                    connection_list["ESTABLISHED"]+=1

                elif line.find("SYN_SENT") != -1:
                    #print "SYN_SENT"
                    connection_list["SYN_SENT"]+=1

                elif line.find("SYN_RECV") != -1:
                    #print "SYN_RECV"
                    connection_list["SYN_RECV"]+=1

                elif line.find("FIN_WAIT1") != -1:
                    #print "FIN_WAIT1"
                    connection_list["FIN_WAIT1"]+=1

                elif line.find("FIN_WAIT2") != -1:
                    #print "FIN_WAIT2"
                    connection_list["FIN_WAIT2"]+=1

                elif line.find("TIME_WAIT") != -1:
                    #print "TIME_WAIT"
                    connection_list["TIME_WAIT"]+=1

                elif line.find("CLOSE") != -1:
                    #print "CLOSE"
                    connection_list["CLOSE"]+=1

                elif line.find("CLOSE_WAIT") != -1:
                    #print "CLOSE_WAIT"
                    connection_list["CLOSE_WAIT"]+=1

                elif line.find("LAST_ACK") != -1:
                    #print "LAST_ACK"
                    connection_list["LAST_ACK"]+=1

                elif line.find("LISTEN") != -1:
                    #print "LISTEN"
                    connection_list["LISTEN"]+=1

                elif line.find("CLOSING") != -1:
                    #print "CLOSING"
                    connection_list["CLOSING"]+=1

                elif line.find("UNKNOWN") != -1:
                    #print "UNKNOWN"
                    connection_list["UNKNOWN"]+=1

                # PUSH METRICS
                self.publish("ESTABLISHED" , connection_list["ESTABLISHED"])
                self.publish("SYN_SENT"    , connection_list["SYN_SENT"]   )
                self.publish("SYN_RECV"    , connection_list["SYN_RECV"]   )
                self.publish("FIN_WAIT1"   , connection_list["FIN_WAIT1"]  )
                self.publish("FIN_WAIT2"   , connection_list["FIN_WAIT2"]  )
                self.publish("TIME_WAIT"   , connection_list["TIME_WAIT"]  )
                self.publish("CLOSE"       , connection_list["CLOSE"]      )
                self.publish("CLOSE_WAIT"  , connection_list["CLOSE_WAIT"] )
                self.publish("LAST_ACK"    , connection_list["LAST_ACK"]   )
                self.publish("LISTEN"      , connection_list["LISTEN"]     )
                self.publish("CLOSING"     , connection_list["CLOSING"]    )
                self.publish("UNKNOWN"     , connection_list["UNKNOWN"]    )

What do you mean by "one trade 100% for 20 seconds"? Are you saying that diamond occasionally takes 20 seconds? My guess is the netstat -ant is taking a long time. How many connections are you typically working with?

Also please note that development of diamond has moved to python-diamond/Diamond

Im executing this script it takes 2 sec
When i'm putting same same code to dimond class it using CPU a lot
#!/usr/bin/python
from decimal import *
import commands

import diamond.collector

all_connections = commands.getoutput("netstat -ant")

connection_list = {"ESTABLISHED" : 0 , "SYN_SENT" : 0 ,  "SYN_RECV" : 0 ,  "FIN_WAIT1" : 0 ,  "FIN_WAIT2" : 0 ,  "TIME_WAIT" : 0 , "CLOSE" : 0 , "CLOSE_WAIT" : 0 , "LAST_ACK" : 0 , "LISTEN" : 0 , "CLOSING" : 0 , "UNKNOWN" : 0 }

for line in all_connections.splitlines():
    #print line
    if line.find("ESTABLISHED") != -1:
        #print "ESTABLISHED"
        connection_list["ESTABLISHED"]+=1

    elif line.find("SYN_SENT") != -1:
        #print "SYN_SENT"
        connection_list["SYN_SENT"]+=1

    elif line.find("SYN_RECV") != -1:
        #print "SYN_RECV"
        connection_list["SYN_RECV"]+=1

    elif line.find("FIN_WAIT1") != -1:
        #print "FIN_WAIT1"
        connection_list["FIN_WAIT1"]+=1

    elif line.find("FIN_WAIT2") != -1:
        #print "FIN_WAIT2"
        connection_list["FIN_WAIT2"]+=1

    elif line.find("TIME_WAIT") != -1:
        #print "TIME_WAIT"
        connection_list["TIME_WAIT"]+=1

    elif line.find("CLOSE") != -1:
        #print "CLOSE"
        connection_list["CLOSE"]+=1

    elif line.find("CLOSE_WAIT") != -1:
        #print "CLOSE_WAIT"
        connection_list["CLOSE_WAIT"]+=1

    elif line.find("LAST_ACK") != -1:
        #print "LAST_ACK"
        connection_list["LAST_ACK"]+=1

    elif line.find("LISTEN") != -1:
        #print "LISTEN"
        connection_list["LISTEN"]+=1

    elif line.find("CLOSING") != -1:
        #print "CLOSING"
        connection_list["CLOSING"]+=1

    elif line.find("UNKNOWN") != -1:
        #print "UNKNOWN"
        connection_list["UNKNOWN"]+=1

print "ESTABLISHED : " , connection_list["ESTABLISHED"]
print "SYN_SENT    : " , connection_list["SYN_SENT"]
print "SYN_RECV    : " , connection_list["SYN_RECV"]
print "FIN_WAIT1   : " , connection_list["FIN_WAIT1"]
print "FIN_WAIT2   : " , connection_list["FIN_WAIT2"]
print "TIME_WAIT   : " , connection_list["TIME_WAIT"]
print "CLOSE       : " , connection_list["CLOSE"]
print "CLOSE_WAIT  : " , connection_list["CLOSE_WAIT"]
print "LAST_ACK    : " , connection_list["LAST_ACK"]
print "LISTEN      : " , connection_list["LISTEN"]
print "CLOSING     : " , connection_list["CLOSING"]
print "UNKNOWN     : " , connection_list["UNKNOWN"]

@rubenpapovyan there really shouldn't be any reason why diamond would use more resources than a standalone script. You might have to paste your entire config for a better understanding. How are you integrating your script? As a custom collector or as a script in the UserScriptCollector?

This repo has moved to https://github.com/python-diamond/Diamond
Please open a new ticket there if this issue is not resolved with the current code there.
Thanks!


i cant compile the game

Are you trying to code on Source Code (Haxe) or on the Downloaded Build (Lua)?
Source Code
Show an screenshot/video of your problem.

this is android
download pc version ;p

i want to port my mod on android
thats why i downloaded this

Kviks he meant that android can't compile so he have to use pc to compile because making a android.yml is hard for me and some people

You literally have to use lime test Android for it to work lol

You CAN'T compile the mobile version for pc

You can lol I literally tried that on my laptop it works 💀

You CAN'T compile the mobile version for pc
You can lol I literally tried that on my laptop it works 💀


Updating boilerplate to 2.3.2 to include FIPS and registry changes

What type of PR is this?
(bug/feature/refactor)
What this PR does / why we need it?
This PR adds boilerplate support for FIPS, rebuilt registry image with minimal size to reduce CVE and support for latest operator-sdk versions.
Which Jira/Github issue(s) this PR fixes?
Fixes # OSD-10494
Special notes for your reviewer:

Only involves boilerplate changes

/approve
/lgtm


Add reference to gRPC (and other) types in javadoc

Not sure if this bug should go in googleapis/toolkit instead, but logging this issue here for reference.
When looking at the JavaDoc of a specific GAPIC generated class, we should be able to access the underlying types (e.g. when clicking on the parameters or return values of a specific method).

The work for this is probably between googleapis/packman (the build logic to generate the docs), googleapis/artman (the packaging logic to drive the whole process), googleapis/googleapis (the location where the docs are hosted), and GoogleCloudPlatform/google-cloud-java (the location that references the javadocs). This repo (gax-java) would not be touched.

Okay - that's fine by me. I'll let you define and drive the implementation details. But can we fix the gRPC and protocol buffer types in the vkit JavaDoc? That's basically the requirement. Feel free to close this issue and open other ones to track this work more accurately if you prefer.

This has been done.


[KAG-1627] Feat: Incorporate Cloudsmith

Summary
Discrete details in: https://github.com/Kong/kong-ee/pull/5863
Checklist

[na] The Pull Request has tests
[na] There's an entry in the CHANGELOG
[na] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Full changelog

[Implement ...]

Issue reference

Fix #KAG-1627

we don't need to backport in CE, we have decided to not release patch releases ; )


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 491

Questions ?
Please refer to the Backport tool documentation


The way to make activeadmin-axlsx work with newest ActiveAdmin 1.0 Rails4 (Tested)

first download it from github to change something.
git clone https://github.com/randym/activeadmin-axlsx
git clone https://github.com/ywencn/active_admin
make path correct.
gem 'activeadmin-axlsx', path: '../activeadmin-axlsx'
gem 'activeadmin', path: '../activeadmin'
change all below:
for undefined method `xlsx' for #ActiveAdmin::ResourceDSL:0x (NoMethodError)
yourproject/config/environments/production.rb
set
config.eager_load = false
for `require': cannot load such file -- activeadmin/axlsx (LoadError)
activeadmin-axlsx/activeadmin-axlsx.gemspec
s.add_runtime_dependency 'activeadmin', "~> 0.6.0"
to
s.add_runtime_dependency 'activeadmin', "> 0.6.0"
for ArgumentError (wrong number of arguments (1 for 0)):
activeadmin/lib/active_admin/resource_controller/streaming.rb:11:in `index'
Change line 11
def index
to
def index(arg=nil)
for undefined local variable or method max_csv_records': activeadmin-axlsx/lib/active_admin/axlsx/resource_controller_extension.rb:11:inper_page_with_xlsx'
add max_csv_records = 1000 # some num which result in db query as limit 1000 in the end of select * query.
  def per_page_with_xlsx
      max_csv_records = 1000   #add
      if request.format ==  Mime::Type.lookup_by_extension(:xlsx)
        return max_csv_records
      end
      per_page_without_xlsx
  end

Yeah! You are great!


Add missing tags & Fix problematic role name

Added missing tags for some resources
Modified cluster autoscaler role name to be cluster specific

If two clusters with autoscaling would be deployed with the old configuration, the name of the role would overlap

Review by checking the modified resources in AWS, this is deployed in "test-cluster"

The autoscaler seems to be in CrashLoopBackOff:
F0111 15:06:25.412938       1 aws_cloud_provider.go:369] Failed to generate AWS EC2 Instance Types: WebIdentityErr: failed to retrieve credentials
caused by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity

The autoscaler seems to be in CrashLoopBackOff:
F0111 15:06:25.412938       1 aws_cloud_provider.go:369] Failed to generate AWS EC2 Instance Types: WebIdentityErr: failed to retrieve credentials
caused by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity

Didn't manage to replicate this, but did get errors inside the autoscaler pod. It seems that the autoscaler pod doesn't initiate itself properly after changing the IAM role name, which causes the autoscaler to error. This can be fixed by simply deleting the pod and letting it recreate itself. As the name will basically never be updated as it's tied to the cluster name, this will not cause problems in the actual deployments of the module apart from updates from v1.3.0/v1.4.0 to v1.4.1 that will be the release after this one. Our environments are running v1.2.0 so no problems should happen when those are upgraded to v1.4.1


Move dblwhole to head.shape

This moves dblwhole back to head.shape and extends data.NOTEHEADMODIFIER.pat to allow solmization syllables.
Compare the SMuFL ranges
https://w3c.github.io/smufl/latest/tables/note-name-noteheads.html
https://w3c.github.io/smufl/latest/tables/note-name-noteheads-supplement.html

@music-encoding/maintainers please review

Are there any issues describing these changes? Particularly the extension to the note heads?

Allowing the solmization syllables as text in the notehead seemed to be missing, as pitch names were already allowed.
Also this allows some semantics over using just SMuFL code points for these noteheads (which can also get quite messy regarding different durations).

I have so many questions -- not particularly on this change, but on this section of the spec in general:

What does .pat stand for? (Helpful for understanding what this is trying to do...)
What is the centertext bit at the beginning of the pattern? Is this a literal string, or is it some sort of formatting?
What types of values is this pattern checking: (H(s|♯)?

I have so many questions -- not particularly on this change, but on this section of the spec in general:
1. What does `.pat` stand for? (Helpful for understanding what this is trying to do...)

data.NOTEHEADMODIFIER references 2 other datatypes: data.NOTEHEADMODIFER.list, which allows a closed list of values, and data.NOTEHEADMODIFIER.pat (where 'pat' is shorthand for 'pattern'), which allows values matching regex patterns.  The objective is to permit either a value from the closed list or a value that matches one of the patterns defined in data.NOTEHEADMODIFER.pat.

2. What is the `centertext` bit at the beginning of the pattern? Is this a literal string, or is it some sort of formatting?

It's a literal string. The value is expected to look like "centertext()", where the text that will appear in the notehead is inside the parentheses.  I'm not completely convinced it's necessary because the description of the datatype says "Captures text rendered in the center of the notehead."  Also, "centered-ness" is implied in the definition/description of data.NOTHEADMODIFIER.list.  It seems better to me to leave it to a renderer to decide whether the modifying symbol or text will actually be centered.

3. What types of values is this pattern checking: `(H(s|♯)`?

This allows "H", which is the designation for B natural in German-speaking regions.

@ahankinson @pe-ro What's the status of this? Does this PR need more discussion, or is it safe to start a review?

It's fine with me to provide a double whole value in head.shape.  However, I don't recommend removing the value "dblwhole" from data.NOTEHEADMODIFIER.list.  I would rename it to "fences" instead.  The idea is to separate the head shape from the presence of the fences, thereby allowing any shape to have fences or not.

Just because there is no reference to the original ticket (I think?) that motivated this change:
https://github.com/music-encoding/music-encoding/issues/865
(A further appeal to please reference issues in pull requests, otherwise we lose track of what we're trying to fix.)

Actually, there was a reference to #865 in the original PR description (see edited version). Somehow it got lost, maybe because the discussion in 865 developed into a more broader direction? But be it as it may, thanks for the reminder and re-reference.

Could someone (@kepper) provide an example of how you might encode a note with this plan?

Pinging @rettinghaus and @bwbohl to add some additional comments.

MEI Development Meeting, 25/05/2023: Closing this pull request in favor of addressing #865 with a new pull request.


Tick updates are lost

With the current implementation of FakeClock updates are lost if more than one is generated at a time.
If, for example, one has a ticker that fires every five minutes and advances the FakeClock by one hour they will get one tick of five minutes.
This is due to the implementation relying on a lossy channel that is 1-buffered.
My proposal here would be to change this implementation to schedule all needed updates with an unbounded queue.
Simulating time in tests should behave as time should in the actual lifecycle of a program and FakeClock currently does not (during real execution the code has time to consume the messages, they don't get sent all at once)
One other possibility would be to allow users to specify a buffer size for tickers when the fake clock is constructed (it's reasonable to assume who is writing the test might know an approximation of the amount of ticks they expect).
Note: In case you are interested in such a change I can send a PR for it.

Thanks for opening an issue @empijei !
Do you have any practical examples in mind where this would be a problem?
Theoretically, you are right, but are there practical use cases for calling Advance concurrently?

Thanks for opening an issue @empijei !
Do you have any practical examples in mind where this would be a problem?
Theoretically, you are right, but are there practical use cases for calling Advance concurrently?

In my case I had a self updating cache that was scheduled to perform some operations every 15' and then check for the time received from the ticker. If an hour was passed since the last update it would also run an update (so more or less once every 4 ticks).
In my tests I would start the server and advance time by an hour, then wait for the cache to emit the "updated" event, which never happened because the last updates would be lost due to this issue.
Would you say this is an intended use for this clockwork?

In my case I had a self updating cache that was scheduled to perform some operations every 15' and then check for the time received from the ticker. If an hour was passed since the last update it would also run an update (so more or less once every 4 ticks).
In my tests I would start the server and advance time by an hour, then wait for the cache to emit the "updated" event, which never happened because the last updates would be lost due to this issue.
Would you say this is an intended use for this clockwork?

Oh, I think I misunderstood your issue. So you are not after multiple simultaneous updates of the FakeClock, but receiving all ticks your timer is interested in.
I'd say that's not how clockwork was designed. I mean, what you really want to test is that your code is called every 15 minutes, not that it's called four times in an hour.
But I can see how supporting something like that would be useful.
I'm not actually sure that we can use an unbuffered channel in this case. At least, I'm not sure how that select with the default works in this case. Setting the buffer size sounds like an acceptable solution to me. Probably as a functional option?

Oh, I think I misunderstood your issue. So you are not after multiple simultaneous updates of the FakeClock, but receiving all ticks your timer is interested in.
I'd say that's not how clockwork was designed. I mean, what you really want to test is that your code is called every 15 minutes, not that it's called four times in an hour.
But I can see how supporting something like that would be useful.
I'm not actually sure that we can use an unbuffered channel in this case. At least, I'm not sure how that select with the default works in this case. Setting the buffer size sounds like an acceptable solution to me. Probably as a functional option?


Separate out rendering from emitters in glue

Currently the design is you attach an EmitterDrawableBatch to an entity and tell it which logic class to use.  This means that each individual EmitterDrawableBatch is in charge of it's own rendering.
Issue #20 is meant to alleviate render breaks so that emitters can be grouped together by the engine.
To achieve this, we need to separate these concepts into two different concepts

A DrawableBatch that's used to track what emitters are being used and render them out.  This acts as a layer to combine all particles that should be rendered on that specific layer together.  This is not attached to an object but may be added to a screen and have it's Z value set to determine render order.
A PositionedObject that contains the emitter and is directly attached to an entity.  When added to an entity the user will select which drawable batch (layer) they want the emitter to be rendered by.

FRB integration refactored as part of 11d1fbe95d41dd49c235461bb85b88e92f377a34


Remove Publish button from the toolbar

Summary
Remove the publish button from the toolbar and fix any failing tests.
Links to related discussion
Documentation is not publicly available.
Proposed changes in this pull request
Removed the call to create the button.
Removed the method that adds the publish button to the toolbar.
Removed two tests that check for the toolbar publish button.
Removed redundant import statements due to removal of code.
Documentation checklist

[ ] I have updated CHANGELOG.txt if appropriate
[ ] I have updated the release notes document if appropriate, with:

[ ] general notes
[ ] bug-fixes
[ ] improvements/new features
[ ] backwards-incompatible changes
[ ] required upgrade steps
[ ] names of contributors

[ ] I have updated other documentation
[ ] I have added my name to the AUTHORS file
[ ] This PR's documentation has been approved by Daniele Procida

HI @vxsx,
Can you help me get the FE tests passing in this pull request please. I have added yourself and @czpython as collaborators to my forked repository.
Thank you,
Andrew

Coverage remained the same at 78.18% when pulling c224a7825c3ad974e3cd0a2b199509c58a65774d on Aiky30:publish-button into 899a3d8cff3eed984b1038b555da64c4d4a7e316 on divio:develop.

@Aiky30 all the test depends in some way on publishing pages, it will take some time to adapt them and the djangocms-casper-helpers library (especially since more changes to publishing will come, so to speak) so for now we decided to allow them to fail. I will likely have time next week to look deeper into them, but for now I've rebased the branch on top of latest release/4.0.x that has https://github.com/divio/django-cms/pull/6415 in.


The link to the technical page on the Calico website in the README is broken

Specifically, this paragraph:

Calico can provide networking in a Docker environment. Each container gets its own IP, there is no encapsulation and it can support massive scale. For more details see http://www.projectcalico.org/technical/

I get a 404 if I try to visit that page. I assume it got moved around in the website redesign.
I don't know what (if any) is a suitable replacement link. I'd guess http://www.projectcalico.org/learn/, but I'm not totally sure.
(For comparison, the old page is in Google's cache)

Good spot - see pull request #45.

I've merged pull request #45, so this is fixed.


Difference between Firefox and Chromium upload timestamp

Description
Hello.
I noticed a difference between the two browsers.
I have a system Ubuntu 17.10 (64).
Steps to reproduce
In the browser Chromium, everything works perfectly.
But an error in the Firefox browser when loading chunks
Results
Expected
Should have loaded 4 pieces of 500 kB each.

Actual
Upload timestamp error:
Only the first 313 bytes of the first piece are loaded.

Error output
[Data] => Array
    (
        [name] =>
        [type] =>
        [tmp_name] =>
        [error] => 4
        [size] => 0
    )

Additional Information
JS:
var player = videojs("myVideo", {
    controls: true,
    width: 430,
    height: 240,
    fluid: false,
    plugins: {
        record: {
            audio: true,
            video: true,
            maxLength: 10,
            debug: true,
            // fire the timestamp event every 2 seconds
            timeSlice: 2000
        }
    }
}, function () {
    // print version information at startup
    videojs.log('Using video.js', videojs.VERSION,
        'with videojs-record', videojs.getPluginVersion('record'),
        'and recordrtc', RecordRTC.version);
});

var segmentNumber = 0;

player.on('timestamp', function() {
    if (player.recordedData && player.recordedData.length > 0) {
        var binaryData = player.recordedData[player.recordedData.length - 1];
        segmentNumber++;
        var formData = new FormData();
        formData.append('SegmentNumber', segmentNumber);
        formData.append('Data', binaryData);
        $.ajax({
            url: 'https://api.vide.me/rec/savem/',
            method: 'POST',
            data: formData,
            cache: false,
            processData: false,
            contentType: false,
            success: function (res) {
                console.log("segment: " + segmentNumber);
                $("#result-new-video").append("<p>" + res + "</p>");
            }
        });
    } else {
            console.log("No video: " + player.recordedData);
    }
});

PHP:
$fileName = $_POST["SegmentNumber"];
$uploadDirectory = '/tmp/' . $fileName;
if (!move_uploaded_file($_FILES["Data"]["tmp_name"], $uploadDirectory)) { // Work!
    echo("tmp_name problem moving uploaded file");
}

versions
videojs
VIDEOJS: Using video.js 6.6.2 with videojs-record 2.1.0 and recordrtc 5.4.7
browsers
Firefox 58.0.2 (64)
OSes
Ubuntu 17.10 64

@SergeyKozlov check the content of player.recordedData in each browser, they probably differ.

player.recordedData

At Firefox:

At Chromium:

I'm not sure what to say without Javascript error messages (I'm not familiar with php).

http://php.net/manual/en/features.file-upload.errors.php
UPLOAD_ERR_NO_FILE
Value: 4; No file was uploaded.

The console of Firefox has no Javascript errors:

I discovered a key difference.
The Firefox does not have a field filename = ""

And the Chromium has a complete description of the field filename = "blob"

Yes, if you substitute this field filename manually, then everything works as it should.

@SergeyKozlov thanks for the research. This is the method that inject the file metadata: https://github.com/collab-project/videojs-record/blob/master/src/js/engine/record-engine.js#L54
Can you add some console.log calls there and see if it get's called everytime?

@SergeyKozlov found the bug and will open a pull request.

I added output to the console in a file videojs.record.js:
    key: 'addFileInfo',
    value: function addFileInfo(fileObj) {
        console.log("addFileInfo: " + JSON.stringify(fileObj));
        var now = new Date();
        fileObj.lastModifiedDate = now;

        // guess extension name from mime type, e.g. audio/ogg, but
        // any extension is valid here. Chrome also accepts extended
        // mime types like video/webm;codecs=h264,vp9,opus
        var fileExtension = '.' + fileObj.type.split('/')[1];
        if (fileExtension.indexOf(';') > -1) {
            fileExtension = fileExtension.split(';')[0];
        }

        // use timestamp in filename, e.g.<PHONE_NUMBER>326.ogg
        fileObj.name = now.getTime() + fileExtension;
    }

    /**
     * Invoked when recording is stopped and resulting stream is available.
     *
     * @param {blob} data - Reference to the recorded Blob.
     */

But there is only one addFileInfo call are empty:
Firefox:

Chromium:

Can you test pull request #207?


rm Salt grains.master_ip

This appears in the Salt documentation, is set by Vagrant, but has no
consumers. Remove vestigial references.

I'm sure Derek loves being my Vagrant Salt guinea pig.

This used to be used.  I need to go back and see when I no longer required it.  It was probably after the Kubelet stopped going direct to etcd

I'm mainly just doing some house-cleaning. I was walkign through salt.md trying to figure out the inputs to our existing SaltStack and was scratching my head at some of these. (Will put a PR later with doc changes, of course.)

Did my own grep for master_ip and looks like its usage was removed.
LGTM


Switch to poetry

Since pygfx is a pure python library, we can easily switch to poetry. Would you be open to it @almarklein ? I can handle changing over CI etc but I'm not sure how thrilled you are about this. :)
It's probably also more accessible for guest contributors since it's quickly becoming the standard environment & dependency management tool in the python ecosystem.

I've only played with poetry a bit so far. What would switching imply? E.g. what changes for CI?

Well, first you drop setup.py and instead use pyproject.toml.
Then you use poetry lock to create a poetry.lock file.
Finally you create your virtual env and run things with poetry. So, poetry install creates a virtualenv using the lockfile. Commands are run using poetry run flake8, etc.
Creating a wheel is poetry build (puts it in a dist folder).
So in CI you start with pip install poetry and then you use the above commands to do things as you usually would. That's it really.

My only worry is that we'd be forcing poetry on everybody how wants to contribute to pygfx (is it?). It may be simpler, but its another thing to learn for newcomers.
(My dirty little secret is that I run (almost) all my projects in a single Python env, haha)
Anyways, open to giving it a shot.

And that is exactly why poetry would be a Good Idea (tm) ;)

I don't think this is needed. The pyproject should be enough to set dependencies, pin them as needed, and downstream libs or end-users can install/pin pygfx with whatever package manager they want ...