Consider changing the download location and version of the JetBrains Mono font

🚀 Feature Proposal

This Ansible role uses the font "JetBrains Mono", downloading it from jetbrains.com.  Since this font is open source on GitHub, do we want to download the font assets from there instead?
Note that the font is currently quite a few versions ahead of what we are downloading in this Ansible role.  Should we be using the newer version?

Assigning to @felddy so he can determine if we should make changes.  @felddy - feel free to reassign to @jsf9k and/or @mcdonnnj if changes are desired.


Training detection with tags threw me an out of bounds error

Discussed in https://github.com/mindee/doctr/discussions/1144

Originally posted by AbrahamIES February  9, 2023
Hi everyone, I was trying to train  db_resnet50 using tags on polygons. I create the train an val files as they suggest
{   "/resources/detection/images/77223.tif": {     "img_dimensions": [       1586,       1857     ],     "img_hash":<PHONE_NUMBER>780605387,     "polygons": {       "fechaInscripcion": [         [           [             1048,             96           ],           [             1120,             161           ]         ]        ]
but when run the training script i get this error
/home/ml/anaconda3/envs/ocr/lib/python3.10/site-packages/weasyprint/text/fonts.py:63: UserWarning: No fonts configured in FontConfig. Expect ugly output.   warn('No fonts configured in FontConfig.  Namespace(train_path='/home/ml/proyectos/rnec/ML/resources/detection/', arch='db_resnet50', name=None, epochs=10, batch_size=1, device=None, input_size=1024, lr=0.001, weight_decay=0, workers=0, resume=None, test_only=False, freeze_backbone=False, show_samples=False, wb=False, push_to_hub=False, pretrained=False, rotation=False, eval_straight=False, sched='cosine', amp=False, find_lr=False) Validation set loaded in 0.04063s (106 samples in 106 batches) /home/ml/anaconda3/envs/ocr/lib/python3.10/site-packages/torchvision/models/_utils.py:135: UserWarning: Using 'weights' as positional parameter(s) is deprecated since 0.13 and may be removed in the future. Please use keyword parameter(s) instead.   warnings.warn( /home/ml/anaconda3/envs/ocr/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or Nonefor 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passingweights=None.   warnings.warn(msg) Train set loaded in 0.0585s (564 samples in 564 batches) Traceback (most recent call last):--------------------------------------------------------------------------------| 0.00% [0/564 00:00<?]   File "/home/ml/proyectos/rnec/ML/resources/references/detection/train_pytorch.py", line 453, in <module>     main(args)   File "/home/ml/proyectos/rnec/ML/resources/references/detection/train_pytorch.py", line 371, in main     fit_one_epoch(model, train_loader, batch_transforms, optimizer, scheduler, mb, amp=args.amp)   File "/home/ml/proyectos/rnec/ML/resources/references/detection/train_pytorch.py", line 129, in fit_one_epoch     train_loss = model(images, targets)["loss"]   File "/home/ml/anaconda3/envs/ocr/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl     return forward_call(*input, **kwargs)   File "/home/ml/proyectos/rnec/ML/resources/references/detection/doctr/models/detection/differentiable_binarization/pytorch.py", line 222, in forward     loss = self.compute_loss(logits, thresh_map, target)   File "/home/ml/proyectos/rnec/ML/resources/references/detection/doctr/models/detection/differentiable_binarization/pytorch.py", line 243, in compute_loss     targets = self.build_target(target, prob_map.shape, False)  # type: ignore[arg-type]   File "/home/ml/proyectos/rnec/ML/resources/references/detection/doctr/models/detection/differentiable_binarization/base.py", line 346, in build_target     cv2.fillPoly(seg_target[idx, class_idx], [shrinked.astype(np.int32)], 1) IndexError: index 1 is out of bounds for axis 1 with size 1
do you know what is the problem?
Thanks

The problem I think, is that I first started with a version of doctr that does not support multiclass detection training. Then I downloaded the doctr repo and I tried to use it as module without installing it and throws me that error. I made a fresh developer installation with the repo and the scripts ran well.


The Plugin is mindblowing but it isnt working with Arc Browser

if there could be any solution about it then please solve the issue! thank you soo much
hey, here’s an invite to Arc, the browser I was telling you about! - it is mac only browser it isnt based on bookmark based
https://arc.net/gift/694f6ca5

if there could be any solution about it then please solve the issue! thank you soo much
hey, here’s an invite to Arc, the browser I was telling you about! - it is mac only browser it isnt based on bookmark based
https://arc.net/gift/694f6ca5

I Had Asked Developers  about the issue but if you can fix it than it would be great

Arc doesn't currently support bookmarklets. That being said, I currently use Arc and I used this site to turn the bookmarklet generated from the plugin to an extension.
I am going to work on just generating a chrome extension as part of the plugin as well.
Thanks for the feedback.

Hi John, I also use Arc and would be interested to use your extension.
You say you turned he bookmarklet generated from the plugin to an extension: how is the bookmarklet generated? Should I just install the current Chrome extension? If so, whereabouts will I be able to find the bookmarklet?

So I can't solve this within Obsidian, but I have an idea to make this more user friendly.
I am going to develop a web service to go along with this plugin that will generate browser extensions for a vault. There will be a link in the plugin settings that when clicked will call the service and download a .zip file of supported browsers. I will include instructions on how to enable the local browser extension.

I just wanted to add an update on this. I am pretty close to getting this out. This will provide a link in the app to generate and download a Chrome-based browser extension that would work just like the bookmarklet.

aye cheers thank you soo much love you :)

There is now a button to click that will generate a link to download a .zip file. This .zip file needs to be expanded. Then you can use Manage Extensions in Arc (or any Chrome-based browser), click the developer mode toggle in the top right, click the Load unpacked button, and select the unzipped folder.
Still need to work on a better icon.

damn man this is freaking insane assfuck :) loving it using 👍 ;)


Service account tokens

Description & motivation
This is a 1st draft of changes to Service account tokens.
To-do before merge

Pre-release docs
Is this change related to an unreleased version of dbt?

[ ] Yes: please

update the base branch to next
add Changelog components: <Changelog>[New/Changed] in v0.x.0</Changelog>
add links to the "New and changed documentation" section of the latest Migration Guide

[x] No: please ensure the base branch is current
[ ] Unsure: we'll let you know!

Checklist
If you added new pages (delete if not applicable):

[ ] The page has been added to website/sidebars.js
[ ] The new page has a unique filename

If you removed existing pages (delete if not applicable):

[ ] The page has been removed from website/sidebars.js
[ ] An entry has been added to _redirects

@runleonarun  - there are a few changes but nothing too crazy:

We should fork and a section for "Teams" plan and one for "Enterprise"
For Enterprise, what we have is good.
For Teams, we should add a new line saying they will be getting a "Job Admin" role in addition to their existing Metadata Admin and Owner role.
We should make the changes that Drew mentioned. Permission sets/roles should be applied to service tokens, not the other way around.

I made some quick changes to this doc to show what this could look like: https://docs.google.com/document/d/1LpS228RXuruUqwNlFRtKo6qaT77CdgD-w3A0pVyjXyE/edit

For Teams, we should add a new line saying they will be getting a "Job Admin" role in addition to their existing Metadata Admin and Owner role.

(Copying this over from the Slack thread so it doesn't get lost) - As implemented, after the recent change the list of permissions available for Teams is:

Account Admin
Member
Job Admin
Metadata Only
Read-Only - Read-only and Stakeholder have identical permissions, but Read-Only seems to be how we usually display the permission set on non-Enterprise plans


Missing Formatter property for DonutLabelTotal class

Hello,
I noticed that the Formatter property is missing from the DonutLabelTotal class, but it seems to be supported by ApexCharts.

Do you plan to include it?
Thank you for your wonderful work!

Hello,
I'll try to fix this asap.
Thank you!

https://apexcharts.github.io/Blazor-ApexCharts/donut-charts#total
please note not yet released.

Fixed in  v0.9.21-beta


ExAws.request! doesn't seem to work in Mix.Tasks (Phoenix).

Hey, so I try to run a simple task like delete_dynamo_table "table" or list_dynamo_tables and I get an ETS-lookup error (only when actually sending the request with ExAws.request!). Perhaps ETS isn't running yet when running a mix task? Any suggestion (other than just use "iex -S mix" to run directly)?
Example code:
defmodule Mix.Tasks.Aws.Delete do
use Mix.Task
def run([table | _]) do
...
ExAws.Dynamo.delete_table(table) |> ExAws.request!
...
end
end
Example input: (bash in project root)
mix aws.delete "table"
Example error:
** (ArgumentError) argument error
(stdlib) :ets.lookup(ExAws.Config.AuthCache, :awscli)
lib/ex_aws/config/auth_cache.ex:19: ExAws.Config.AuthCache.get/2
lib/ex_aws/config.ex:71: ExAws.Config.retrieve_runtime_value/2
(elixir) lib/stream.ex:490: anonymous fn/4 in Stream.map/2
(elixir) lib/enum.ex:2843: Enumerable.List.reduce/3
(elixir) lib/stream.ex:1284: Enumerable.Stream.do_each/4
(elixir) lib/enum.ex:839: Enum.find/3
lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
(stdlib) lists.erl:1263: :lists.foldl/3
lib/ex_aws/config.ex:30: ExAws.Config.new/2
lib/ex_aws.ex:29: ExAws.request/2
lib/ex_aws.ex:41: ExAws.request!/2
(mix) lib/mix/task.ex:296: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2
(elixir) lib/code.ex:363: Code.require_file/2

Hey! Custom mix tasks don't start your application by default, which means ExAws has not been started. You either need to explicitly start ExAws specifically via Application.ensure_all_started(:ex_aws) along with any related dependencies (like :hackney), or start your full application stack by doing Mix.run("app.start", []).

thanks :) worked (...ensure_all_started for :ex_aws and for :hackney)


Use a single beep command instead of multiple for fluidity

Due to the delay caused by executed a lot of beep commands, the original script does not produce always fluid sound. This diff invokes single beep command with the arguments being generated by loop instead of running the command multiple times.

Summary by CodeRabbit

Refactor

Improved the phasor script to dynamically construct and execute the beep command using an eval statement for more efficient command generation.

@ericpruitt Thank you for your contribution!


ABIDES 3rd party PR

Please fix your markdown: look at this website preview: https://gym-docs-git-fork-selimamrouni-patch-1-farama.vercel.app/environments/third_party_environments/

Please fix your markdown: look at this website preview: https://gym-docs-git-fork-selimamrouni-patch-1-farama.vercel.app/environments/third_party_environments/

Thank you, I updated the markdown to correct it.


reporter: Show the repository configuration in the static HTML report

Show the used repository configuration at the bottom of the static HTML
report. Use https://highlightjs.org/ for syntax highlighting, which is
licensed under BSD-3-Clause.

This change is

I just checked the YAML syntax highlighting in the generated HTML:

That's not actually very much colored, with only two colors. Also, "excludes" is red for some reason, which might even make sense here, but is a coincidence, I guess. Long story short, does syntax highlighting really add value here, or should we drop it for simplicity? Also, previously the report was usable offline, but now it requires an online connection for highlight.js.

That's not actually very much colored, with only two colors.

How many colors would you expect for YAML? :)

Also, "excludes" is red for some reason, which might even make sense here, but is a coincidence, I guess.

I think this was because the default build of highlight.js does not include YAML, so some other language was auto-detected.

Long story short, does syntax highlighting really add value here, or should we drop it for simplicity?

I think the integration is still simple and it's even though it's only two colors it still looks much better than black on white.

Also, previously the report was usable offline, but now it requires an online connection for highlight.js.

I have embedded this now to make it work offline, and switched to PrismJS because it is a bit smaller.


Add ssr option in hook

Can you explain the intention of this a little more? For SSR we recommend people use the methods documented in our README.

In the README solution, we rigidly set the screen resolution (using headers). I propose another solution (like react-media https://github.com/ReactTraining/react-media/pull/96 by advice https://github.com/facebook/react/issues/8017#issuecomment-256351955 and https://github.com/facebook/react/issues/10591#issuecomment-327254514), render a tree with the same values and asynchronously change the screen resolution to the next. In this case, we get an extra render, but at the same time we give the user the opportunity to rely on the actual screen size.

@utftufutukgyftryidytftuv Did you try using the documented method? If you use it with SSR it only sets it during the server render, then when the user loads the page it uses the actual values - the functionality should end up being the same as this PR, but with a better chance of needing no additional work if the values you guessed are correct. If not we should look into that + adding more tests since that is the intention.

Closing, haven't received a response in 2+ yrs


Major version selection for non-xDS services

Currently, we only support major version selection for xDS transport/resource versions. Other services have hardcoded service endpoints, e.g. envoy.service.accesslog.v2.AccessLogService.StreamAccessLogs.
These services are (at least):

gRPC access logs
ext_authz
rate limiting
tracing
TAP
metrics
LRS
HDS

We should plumb appropriate service selection configuration for each gRPC service, scrub newer fields when sending to older versions, and audit to ensure that the older deprecated fields remain set (and are scrubbed when sent to newer versions that no longer support them).
See also the thread in https://github.com/envoyproxy/envoy/issues/10355#issuecomment-606625462
CC @yuval-k @envoyproxy/api-shepherds

Tagging for collection in https://github.com/envoyproxy/envoy/issues/10943


cmp solution does not work --> SyntaxError

http://python-future.org/compatible_idioms.html?highlight=cmp#cmp recommends
cmp = lambda(x, y): (x > y) - (x < y) but that is a SyntaxError in Python 3.6...
python3 -c 'cmp = lambda(x, y): (x > y) - (x < y)'  # --> SyntaxError
What is the correct approach?

Remove the first parentheses: python3 -c 'cmp = lambda x, y: (x > y) - (x < y)'

Can we get the webpage changed to match?

I've merged it in and will update the website on the next release cut.


Full testing failed on Mac OS X build

On Mac OS X, during make precommit, full testing with run-test-pass.sh was failed.
> make precommit
          .
          .
          .

./tools/runners/run-unittests.sh ./build/bin/unittests || \
         (echo "Unit tests run failed. See ./build/bin/unittests/unit_tests_run.log for details."; exit 1;)
Running ./build/bin/unittests/unit-test-api... OK
Running ./build/bin/unittests/unit-test-date-helpers... OK
Running ./build/bin/unittests/unit-test-heap... OK
Running ./build/bin/unittests/unit-test-literal-storage... OK
Running ./build/bin/unittests/unit-test-longjmp... OK
Running ./build/bin/unittests/unit-test-number-to-integer... OK
Running ./build/bin/unittests/unit-test-number-to-string... OK
Running ./build/bin/unittests/unit-test-parser... OK
Running ./build/bin/unittests/unit-test-poolman... OK
Running ./build/bin/unittests/unit-test-recordset... OK
Running ./build/bin/unittests/unit-test-string-to-number... OK
Running ./build/bin/unittests/unit-test-strings... OK

Unit tests completed successfully. Starting full testing.

./tools/runners/run-test-pass.sh: line 79: 37641 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 38571 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./build/bin/release.darwin/jerry testing failed
See log in ./build/bin/release.darwin/check/0 directory for details.
./build/bin/debug.darwin/jerry testing failed
See log in ./build/bin/debug.darwin/check/0 directory for details.
./tools/runners/run-test-pass.sh: line 79: 48914 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48959 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48965 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48971 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48977 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48983 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48989 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./tools/runners/run-test-pass.sh: line 79: 48995 Segmentation fault: 11  ${ENGINE} ${JERRY_ARGS} ${test} >&$JERRY_TEMP
./build/bin/release.darwin/jerry testing failed
See log in ./build/bin/release.darwin/check/1 directory for details.
./build/bin/debug.darwin/jerry testing failed
See log in ./build/bin/debug.darwin/check/1 directory for details.
make: *** [precommit] Error 1

./build/bin/debug.darwin/check/0/jerry.error
139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry/math-pow.js
============================================
============================================

./build/bin/debug.darwin/check/1/jerry.error
139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-010.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-011.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-012.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-013.js
============================================
============================================

./build/bin/release.darwin/check/0/jerry.error
139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry/math-pow.js
============================================
============================================

./build/bin/release.darwin/check/1/jerry.error
139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-010.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-011.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-012.js
============================================
============================================

139: /Users/sjlee/Workspace/harmony/jerryscript/./tests/jerry-test-suite/15/15.08/15.08.02/<IP_ADDRESS>/<IP_ADDRESS>-013.js
============================================
============================================

With the landing of #1269, all tests run correctly on OS X.


Folder renaming

okay, done.

Have you deleted the dublicates and renamed folders?

Thank you!

@Moulick hi mate, is there a chance you can me a pull request with a hard reset to 434414fb48c82427deddc70e210aeb8bb0269eff commit

@ummahusla  I got a mail regarding "hard reset to 434414fb48c82427deddc70e210aeb8bb0269eff commit". Can't find it anywhere on the github web interface. What Would you like me to do ?

Hi @moulick, it's because I've fixed it and deleted the comment in order not to confuse you. Thanks

@ummahusla  oh, okay, No problem


Unclear error log message

Hi,
I see a bunch of these in my log file:
LogPython: Error: Checking 0 delegates
The first one is after this line (Which seems to run during the unreal map check, but maybe it's a coincidence):
LogPython: Warning: Python AActor<PHONE_NUMBER>9C4100 (mapped to<PHONE_NUMBER>000000) wrapper XDECREF'ed
There are also a few of them after shutdown after this line:
LogPython: Warning: Destroying ue_PyUObject<PHONE_NUMBER>8F0C30 mapped to UObject<PHONE_NUMBER>289600
I guess this check is being called when an object is not initialized (either on startup or shutdown).
My Python scripts do execute properly.
Concluding
1: Can you perhaps fix this with a check so that this error is no longer logged?
Note: Perhaps it's my fault and forgot a configuration somewhere, if so what did I miss.
2: Make the log message more clear, for example what object does it do this delegate check

Hi, very probably you are using an untagged code base with debug features enabled (those messages are from the new GC). You can update your code or disable the debugging here:
https://github.com/20tab/UnrealEnginePython/blob/master/Source/UnrealEnginePython/Private/UnrealEnginePythonPrivatePCH.h#L5

My code is up to date, since I'm using the latest (well yesterday) 'release' branch of Epic's Unreal Engine in combination with latest 'master' branch of UnrealEnginePython.
Anyway I added a note to change the flag when I package my game, since I'm still in process of developemnt I'd like to see all debug messages.

Ah I see the 'problem'.
I thought I was having errors, since the message logged an error.
However, the message just logs information that its going to garbage collect delegates.
So should actually just be an info message, since nothing is going wrong.
File \Plugins\UnrealEnginePython\Source\UnrealEnginePython\Public\PythonHouseKeeper.h
Line 180: 	UE_LOG(LogPython, Error, TEXT("Checking %d delegates"), PyDelegatesTracker.Num());
Should be:
UE_LOG(LogPython, Display, TEXT("Garbase collecting %d delegates."), PyDelegatesTracker.Num());


Add maximum volume to ChemMaster buffer

About the PR
Add a maximum volume to the ChemMaster buffer and make transferring solutions respect the maximum volume. The initial proposed volume limit is 300u.
Why / Balance
No solution container should have an infinite capacity. That the ChemMaster has an infinite buffer capacity has led to unreasonable meta-strategies that:

Discourages making pills and bottles, which is the point of the chem master, to be a glorified chemical holding tank
Discourages using the actual mechanics that are designed to separate chemicals, including electrolysis and centrifuging (https://github.com/space-wizards/space-station-14/pull/22517)
Having one chemist hoarding all of the round-start base chemicals in their own buffer

The infinite buffer is a placeholder mechanic that isn't supposed to be there.
300u is an arbitrary limit that is designed to be larger than buckets and the largest obtainable beaker, but small enough to discourage ChemMaster-storing from coming back. Well-justified arguments for a different proposed volume limit welcome.
Media
https://github.com/space-wizards/space-station-14/assets/3229565/f2426d37-eb35-4fd7-913d-34e2ecb20129

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

Breaking changes
None
Changelog
:cl: notafet

tweak: ChemMasters now have a limited buffer capacity.

this kills nukie chem since thats 1 and a half jugs, unusable

Discourages making pills and bottles, which is the point of the chem master, to be a glorified chemical holding tank

Unless I'm misunderstanding (could easily be the case) I feel like this should really be solved by having a separate buffer for pills rather than just nerffing the chemmaster. Feels like it just "solves" the solution by the chemmaster not being used which is kind of silly. (Your other points are fair though)

Limited buffer would discourage me even more frankly, at 300u it could let antags have way easier time making pill bombs but at higher it could possibly make it even harder than it is now if chemmasters have to be specialized, and trust me, pill specialization will be very low on that list for non-antags.
Bottles are already very strong, usually they are not used because doctors do not care to be better at their job or medbay simply have no glass. If you take both bottle and vial boxes, its only enough for a single chemist to bottle med and even then they will want few extra bottles for some niche meds. There are some epi bottles too but I would not drain them all into jug and deny them from fellow coworkers.
It would discourage using electrolyze as much because you will need to bother cargo for all the buckets to store recycling products should buffers be too low. Electrolyze is in pretty great spot frankly but atmos pretty much never have any idea how to work with chemists and latter will have to ask captain for access or let them in and set the pipes in LRP. If MRP atmos are clueless you are just boned because you can't work on pipes.
Centrifuge is underused because its terribly bad, 3/10 input compared to electrolyze with large beakers(BSBs make it 3/100, good luck beating THAT should salvs have presents) and take like 3-4 time to complete while only working with vials that are expensive and can't be printed in medbay should they get destroyed. I also do not recall any centrifuge interaction worth doing that electrolysis won't have covered. Right now its best disassembled so you can construct another electrolysis or cryo pod.
So the real question is, how low will be buffer set to punish farming resources with centrifuge and if it will be enough to force chemists into different chemmaster/discarding resources. Keep in mind some maps have as little as single chemmaster so it can be annoying real fast if you have shitsci denying you more of them there.
Low buffer = Chemists will have loads and loads of buckets from harvesting resources everywhere just to function.
Medium buffer = Mix of low and possibly having to get more chemmasters, infighting who gets to work where.
Large buffer = Buffer is added but single chemist can work on single buffer whole shift, nothing really changes except you will want extra chemmasters for mass harvesting electrolyze.

Limited buffer would discourage...

A lot of these issues would be resolved by providing more materials to medbay and their medical techfab, which can print many bottles and whatnot, and the items that are missing could simply be added.

I do think we'll also need to revisit the chemmaster using material to create pills and bottles, there's already been a pr that gave pills a material cost, and it's very likely you could just reuse that, but with glass, to allow bottles to be created at the station, rather than needing to keep placing a new bottle inside the machine or filling bottles by hand.

this kills nukie chem since thats 1 and a half jugs, unusable

make a valid chemmaster that has 2000 unit storage

Let it be emag interaction too 😄

Discourages using the actual mechanics that are designed to separate chemicals, including electrolysis and centrifuging (Electrolysis and Centrifuge #22517)

i'm pretty sure that neither the electrolysis or centrifuge can separate chemicals. a workaround to this would be to add a separatory funnel or something

I meant it in sense of using it as much, electrolysis gives you industrial amounts of reagents but then you need loads and loads of buchets/jugs to store them should you want to keep harvesting and buffer is small.
Plastic production with small buffer will truly be hellish if you do not have BSB.

good change this needed to happen forever ago but now is as good a time as any

I meant it in sense of using it as much, electrolysis gives you industrial amounts of reagents but then you need loads and loads of buckets/jugs to store them should you want to keep harvesting and buffer is small.
Plastic production with small buffer will truly be hellish if you do not have BSB.

You should elaborate on this more, because maybe it's not so bad to nerf both these productions too if they're that impressive

this kills nukie chem since thats 1 and a half jugs, unusable

A real chemists doesn't use machines

Honestly just remove the machines. Doing chemistry with just jugs and beakers is faster and less annoying.

Since Nukies also have their own variant, this should be balanced around both or make a separate machine for nukies with a higher capacity.
300 seems also a little low. It's a static machine so arguably it should be equal or greater than a bluespace beaker.

Could you suggest a number that you feel would be balanced for both?

BSBs are 1000 and it should be plenty for both crew and nukies... I suppose chemist on Reach will need to maintain condenser/electrolyze locker from now but it won't be sadistic to newbie chemists.

The UI might want to show the buffer limit, like it shows the limit for containers.

Could you suggest a number that you feel would be balanced for both?

1000 should be fine, to match a bluespace beaker.

why do nukies need a bigger buffer?

Chemmasters being able to hold infinite buffer is breaking the balance of the game how? I'm sorry to be blunt, but if you want pills and bottles to be used in med more then make them more accessible or easier to use.
Bottles aren't being used because its annoying to get enough for all the doctors, which is why people use the accessible jugs.
Pills aren't being made because its annoying to dedicate a whole Chemmaster just to the production of pills.
If these options want to see more use then make them more accessible. Let Chemmasters have a second buffer to make pills. Give med more roundstart bottles. Don't make what is currently being used less accessible, because you're going to kill the fun of the game that way.
Over in the Science department, mechanics are being tweaked to make the department more accessible and more rewarding. Recently, Anomalies got a huge overhaul to make their point gain worth the risk, and now Artifacts have their best upgrade available round start. This makes science more accessible and Scientists have more fun as they spend less time doing tedious tasks to get to the good parts of Sci.
Balance changes should make things more fun. I do not see how any Chemist is going to have more fun with this change, and can only see how it becomes more annoying and frustrating.

You want to fix the chem master being an infinite chemistry buffer? Make it so the alternative is as least as good as it is in SS13 instead of forcing people to juts suffer.

Bottles shouldn't even cost glass because that just makes inventory management harder and it's another dumb "wow I didn't get materials I guess I can't do my job" pinch that does not balance the game in any way. In SS13 they're just magic free

Bottles shouldn't even cost glass because that just makes inventory management harder and it's another dumb "wow I didn't get materials I guess I can't do my job" pinch that does not balance the game in any way. In SS13 they're just magic free

Free bottles?! Damn those Nanotrasen budget cuts on the 14th are driving me crazy now.

Bottles shouldn't even cost glass because that just makes inventory management harder and it's another dumb "wow I didn't get materials I guess I can't do my job" pinch that does not balance the game in any way. In SS13 they're just magic free

I don't disagree but someone else merged that in https://github.com/space-wizards/space-station-14/pull/11207 and I'm not going to revert that here.

You want to fix the chem master being an infinite chemistry buffer? Make it so the alternative is as least as good as it is in SS13 instead of forcing people to juts suffer.

This is sort of a "when someone codes this" (or rather, when someone reverts this) issue.

I do not see how this change achieves any of the 3 bulleted problems listed.

Discourages making pills and bottles, which is the point of the chem master, to be a glorified chemical holding tank

The ChemMaster buffer being large is not at all why pills and bottles are not made. You will not see any more pills or bottles after this change as you would before it.

Discourages using the actual mechanics that are designed to separate chemicals, including electrolysis and centrifuging

They do not perform the same function at all, I am not even sure what point you are making here? The ChemMaster buffer has zero relation to the usage of electrolysis and centrifuging. These are machines that provide unique interactions to turn reagents into other reagents.

Having one chemist hoarding all of the round-start base chemicals in their own buffer

I have not seen this happen at all, it is not a "meta" strategy, it's really bad to do, actually. Aluminum and Iodine tend to get dumped here and are the only base chemicals this consistently happens for (and that's because it gives you extra empty jugs and these reagents are entirely useless).
I am not really convinced this change has any positive impact whatsoever, given the listed ones do not seem to be actually correlated at all, and just seems to be adding an extra point of frustration to Chemist gameplay for not much reason. Overall agree with PJB's assessment.

for example, the infinite buffer is being cited as a reason that #27304 cannot work

Infinite buffer and having to use buckets or middleman container do not really affect eachother much other than chemists having to go for more buckets or discard chems like iodine/aluminium/nitrogen/sodium/fluorine so they can have more jugs to pour meds into.
Most jugs you take out and dump into buffer will be used to store meds made from reagents you just dumped, with some water stealing some of that space as drawing from sinks does not give you any extra containers and cryo meds use dexalin which expands in size by 50% on creation.

I feel that for any chemist who isn't power-gaming, 1000u is "practically infinite". Ultimately though, I'll leave this as a PM/wizard decision. Feel free to merge/close as you see fit.

While I agree 1k+ is enough to basically make all medical needs, even if not at same pace as before nerf, is using sink, condenser and electrolyzer really powergaming? I thought its part of chemist job to keep medbay supplied and harvest reagents so it can continue to be supplied with least strain on other departments if possible.

I Kind of see the point to limiting the chemmaster but at the same time, we need better ways to store chems other then leaving jugs on the floor first, I know we have lockers on some maps, but having to look through a list full of jugs of possibly unlabelled chems, would not be fun and would make learning chem even worse.

(for example, the infinite buffer is being cited as a reason that https://github.com/space-wizards/space-station-14/pull/27304 cannot work)

Since I am the one who suggested limiting the buffer in that PR I would like to clarify my statement:

Alternative suggestion to make pills more viable:

Allow the chemmaster to select reagents from the buffer when making pills/filling bottles
Allow more than one pill bottle to be inserted, so you can make more than 10 pills at a time
Limit the buffer to something reasonable like 1000u

I think these changes should be made at the same time so that chemistry does not become unneccesarily tedious in the meantime. However, the buffer definitely should get limited at some point. My personal opinion is that using jugs, bottles and pills should be all equally viable and easy to use from an UI-perspective. The choice is then up to the player and we would see more variation of playstyles instead of one meta strategy.

If you have a design doc that explains what "the actual fix would be to improve the systems" looks like, that could help.

Take a look on how it's implemented in SS13, hop on a private server or play a live game.
Now it may be implemented different per server, try a few different ones out, TG, Citadel, VG, etc. See what works, what doesn't.
Also PJB's comment summarizes it.

Bottle production is simply taking a jug of medicine and pouring it in. Praise bottlemed.
Pill production been pain since limted chems start even more than usually, only map with enough chemmasters was Barratry because there was only a single chem dispenser. I would love dedicated pillmaker, yes.

My well adjusted argument is for a common factor of 180 and 100, of which the only sensible ones without getting egregious are 900 (my preferred) or 1800.
The reason for this is 90u is the common mix size for most base meds including bicard, inaprov, derma, and dylo. 180u is the size of a fully filled pill canister at 20u*9 = 180u, and 100u is the size of large beaker.

Bottles shouldn't even cost glass because that just makes inventory management harder and it's another dumb "wow I didn't get materials I guess I can't do my job" pinch that does not balance the game in any way. In SS13 they're just magic free

They would need to also not drop shards or you have an infinite glass machine.

Limiting the volume of the chem master to 1k doesn't even change anything. You want to really fix the powercreep? Make it so it isn't a stasis beaker.
Ahem
I've thought about this topic for the past hour again and here are my thoughts on the whole matter.
 Never have to worry again.
Chem dispenser 2: Some reagents like Benzene are common to need for other chemical reactions, so you end up needing to mass-produce these. Hell, a competent chemistry lab has the hotplate running immediately at round start, just so they can use various chemicals later immediately. These are then accessed later in the same way the regular chem dispenser's buttons are.
I need an extra jug: In our current meta where medicine is provided to doctors in the form of jugs, chemistry does not start with enough jugs round start to provide all the chemicals they should. So they need more jugs. This is achieved by just dumping a jug directly into the chem master so you can empty it and use it for something else, without even losing the reagent because the chem master has infinite buffer. Trust me though, if it didn't people would just start flushing some useless jugs down the drain instead.
 I have some ideas:
Improvements
Fix the smart fridge: The smart fridge in SS14 is basically not implemented at all. In SS13 it allows you to store and index bulk amounts of pills, bottles, and so on. This is great.
Fix bottle production: Bottles should be free and infinite so you can use them as cold storage for garbage you don't care about (what even was the ash for when you produce insuzine?) Then dump them into the smart fridge for cold-storage access later.
Chem dispenser upgrade: Make chem dispensers start out with like 10 slots of free jugs that can be transferred into by chem masters. The idea here is that you get a "transfer to chem dispenser" button right in your chem master, so you can dump stuff like the aforementioned benzene into the chem dispenser. This allows the chem dispenser to replace the use cases of second-stage reagents storage.
Maybe add the ability to transfer directly into a jug or other container: Another idea I had is that you can have an "out-only" slot in the chem master that can fit jugs. So you can transfer from a beaker into a jug, inside the chem master UI.
Make the UI not dogshit: Seriously this UI needs work, especially to make the last point work.
By the way, it should probably be noted that in SS13 you can upgrade the chem master's internal buffer. On TG the default size is only 100 units, but it can be upgraded to 600 with bluespace beakers.

Chem dispenser 2: Some reagents like Benzene are common to need for other chemical reactions, so you end up needing to mass-produce these. Hell, a competent chemistry lab has the hotplate running immediately at round start, just so they can use various chemicals later immediately. These are then accessed later in the same way the regular chem dispenser's buttons are.

There is another layer to this as chem dispensers will cool down your beakers preventing you from hotmixing, though I think beaker needs to be empty for it to happen? I jug/masterchem so much I frankly would have to check if mixes coold own to... Either way, using the dispenser slows down your production a lot if you require heat to make many hot mixes in a row.

chem dispensers will cool down your beakers

this is false

chem dispensers will cool down your beakers

this is false

Actually, it is correct. Any amount of any chem will reset temperature if container is empty, it will dillute it otherwise.

thats a bug it should use the source solution temperature if adding to an empty container

thats a bug it should use the source solution temperature if adding to an empty container

Just tested this, the beaker temperature is set to the solution's temperature.
Tested this by heating up the jug before trying to reset the beaker temperature. Now it's "reset" to the same temperature as the solution inside the jug

If we're going to make a change as drastic as this, the system that replaces it needs to be just as good or better to use. We can't just make a change that will make people hate playing the role because "now its balanced". A role being fun and feeling good to play should always take priority, even if its at the cost of things being imbalanced for it. I'm just going to parrot PJB's comment, incentivize people to use pills and bottles instead of removing what's currently available.
However, we need to keep med as is until new med gets finalized, because everything we know about how med works is going to change fundamentally. Changes like this and the syringes not working on jugs just seem like screwing chem and med players over for no good reason.

See PJB's comment that we should work on the problem not the symptoms.


3D Path in TripsLayer

I want to render flying particle on the map which move along a 3D trajectory (such as arcs). In my understanding, the trip-layer is build on path-layer and render segements' color. So I'm thinking to create 3D path (lat, log, altitude) and create particle effects.
How can I deal with that? I tryed to modify shaders vertex.glsl but failed. Who can give some advice? Thanks.
One possible look is:
https://armsglobe.chromeexperiments.com/

you can take a look at our ArcLayer as a start

Creating your own custom layer is the way to go. If you share your custom shader we may be able to help you troubleshoot.

related: https://github.com/uber/deck.gl/issues/2857#issue-426897218

The PathLayer is already 3D.
For the particle effect, creating your own custom layer is the way to go. If you share your custom shader we may be able to help you troubleshoot.

In my understaning, the Trip-layer is (x, y, time) version of Path-layer (x, y, height). The thrid dimension of path-layer is replaced by time in trip-layer. I hope to create a (x, y, height, time) trip-layer. Is that possible?

@YuhangGu You will need to extend the PathLayer, not the TripLayer. See developer guide regarding custom layers.

I tryed to modify shaders vertex.glsl but failed.

Without you providing your code sample, all we can give you is abstract advice.

Would I be right in assuming one would also need to extend the Tesselator layer so the position values can accept 4 values?

@SymbolixAU I would suggest adding a new attribute. This is not hard to do from where I stand - the main reason it was not implemented was backward compatibility. Maybe in 7.1 we can add a new prop getTimestamps to this layer:
TripLayer({
  getPath: ... // returns array of [x, y, z]
  getTimestamps: ... // returns array of timestamps
});

And if getTimestamps is not provided, we interpret the results from getPath as [x, y, timestamp].

Is there any chance this could be implemented any time soon? It would be an extremely useful feature

@harisbal We are working on releasing 7.1.0 this week which will include https://github.com/uber/deck.gl/pull/3140, a prerequisite for rendering arbitrary 3D paths. We will be able to work on this feature after the release.

@Pessimistress - great work in https://github.com/uber/deck.gl/pull/3192 - this is a great feature

The getTimestamps API is now available in TripsLayer as of 7.1.1

@Pessimistress  thank you so much :)

@Pessimistress thank you so much for the efforts!


[PKG xyz Request] How to request your favorite tools/pkgs to be included in hysp-pkgs [Guide]

Check if it's already included, using dbin list AND dbin search

If PKG xyz doesn't exist
Create an issue at: Azathothas/Toolpacks
Use this template:
Title : [PKG REQUEST] $Package_Name for $AARCH
# Example: [PKG REQUEST] fzf for x86_64 Linux
Body :
- Repo : Include Link to Source Code (Github/Gitlab etc)
- Description : A brief description about the pkg, what it is about/does etc.
- Binary Releases : Whethere pre-compiled binaries are provided, if they are then `Yes` else `No`
   - If Binaries are already provided, download/extract it & include output for `file $PKG` & `ldd $PKG`
   - #Example : https://github.com/metis-os/hysp-pkgs/issues/2
- Needs to compile : If Releases are not provided,, or they are dynamic, write `Yes` else `No`
- Compile Instructions : If $PKG needs to be compiled & you know how to make it static, please include the build description.

Note: Your PKG xyz must be able to be compiled statically (Usually go/rust) or have their static binaries published as Releases.
An attempt will be made to compile PKG xyz, but if it's always dynamic, PKG xyz wont be added to hysp-pkgs

For more details, refer to: https://github.com/Azathothas/Toolpacks/tree/main/Docs#how-to-add-request-a-new-a-pkgtool

Thanks!
The title needs to replace hysp-pkgs with dbin
And then this comment (mine) needs to be deleted.
And then this issue needs to be pinned &  locked

Thanks! The title needs to replace hysp-pkgs with dbin And then this comment (mine) needs to be deleted. And then this issue needs to be pinned & locked

I didn't realize, thank you for everything <3


Difference "Engineering Strain" and "Percentage Extension"

In this case, they are used synonymously. According to the standard (DIN EN ISO 6892-1):

removed duplicate


Fixed typo scalar as vector

@ludwigbothmann, this should be migrated to the new lecture_sl repo

migrated to lecture_sl


Unable to Invite a User Multiple Times to Different Organizations

Hello!
I'm facing an issue with using devise_invitable in a multi-tenant application where users can belong to multiple organizations (through memberships). Specifically, I want to invite a user multiple times to different organizations. However, since devise_invitable stores all invitation information directly in the User model, a user can only be invited once, preventing them from receiving multiple invitations.
Would it be possible to enhance devise_invitable to support multiple invitations for a single user, perhaps by decoupling invitation data from the User model? Any guidance or suggestions on how to handle this within the current framework would also be appreciated.
Thank you!

You can use ros_appartment gem. It makes Multitenancy for Rails and ActiveRecord. That was for each tenant you have different db schema.


Need a little help getting this working…

I really appreciate the work you put into this and I'm hoping I can get it working in Obsidian. I posted in Discussions for the Shell Command plugin which has most of the context here: https://github.com/Taitava/obsidian-shellcommands/discussions/411#discussion-6687873
I think there is some issue with my version of Python not being seen the Shell Commands PATH. You mentioned that you explicitly point to your version of Python but I wasn't sure where you did that. Any insight would be greatly appreciated. Thanks for your help.

@benjaminwelch Sorry for the delay, I wasn't near my computer yesterday.
All I meant by that was that I included the full path to Python in the command I've setup in the Shell Commands plugin. The full command for executing the script that works for me is, for example:
/opt/homebrew/bin/python3 ~/Development/things2md/things2md.py --today

That solved the issue. No worries about the delay. The help is much appreciated!


additionalProperties doesn't serialize properly

The keyword additionalProperties always serializes to the empty schema {} regardless of what it is actually set to.
I believe the following code is missing from keywords_object.go, but I'm a go newbie so I'm not sure...
// MarshalJSON implements the json.Marshaler interface for AdditionalProperties
func (ap AdditionalProperties) MarshalJSON() ([]byte, error) {
	return json.Marshal(Schema(ap))
}

should be covered now by https://github.com/qri-io/jsonschema/pull/123


Questions about deploying coco yolox

I trained the coco dataset according to the Yolox model in the Model zoo. During the deployment, I found that there was a problem with the output bbox. When I wanted to check the specific code of post-processing, I only traced to this side, no specific implementation function was found

How do I solve it?

@jzymessi https://github.com/Xilinx/Vitis-AI/blob/master/src/Vitis-AI-Library/xnnpp/src/yolovx.cpp#L69

@zz002 ：
thanks, I modified some code in master/src/Vitis-AI-Library/ .then run ./cmake.sh --clean compile .so.
But it does't work, how to slove it?

Closing since no activity for more than 2 weeks, please reopen if you still have question, thanks


Fix Expr::Then span in nano_rust example

This sets the Expr::Then span correctly, resolving the only TODO in nano_rust.
Fixes TODO in nano_rust #231

Thanks! Any chance you could add a comment explaining that it's creating a span that converts the entire group of statements?

Much appreciated :)


Exception during close causes hang at "Dumping the backtrace."

Godot version
v4.2.dev.mono.custom_build.fe5b1c8d4, v4.1.1
System information
Arch linux, AMD Ryzen 7 5800X3D x86_64, Radeon RX 6950 XT
Issue description
When closing godot-mono via a GetTree().Quit() or by alt-f4ing, occasionally (once every five runs), a SIGSEV exception gets thrown (caught via debugger):
__cxxabiv1::__dynamic_cast(const void *, const __cxxabiv1::__class_type_info *, const __cxxabiv1::__class_type_info *, ptrdiff_t) (@__dynamic_cast:18)
RefCounted* Object::cast_to<RefCounted>(Object*) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/object.h:774)
CSharpLanguage::_instance_binding_reference_callback(void*, void*, unsigned char) (/home/naelstrof/projects/godot-mono/src/godot-mono/modules/mono/csharp_script.cpp:1370)
Object::_instance_binding_reference(bool) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/object.h:670)
RefCounted::unreference() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.cpp:89)
Ref<InputEvent>::unref() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.h:209)
Ref<InputEvent>::~Ref() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.h:222)
HashSet<Ref<InputEvent>, HashMapHasherDefault, HashMapComparatorDefault<Ref<InputEvent>>>::clear() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/templates/hash_set.h:248)
HashSet<Ref<InputEvent>, HashMapHasherDefault, HashMapComparatorDefault<Ref<InputEvent>>>::~HashSet() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/templates/hash_set.h:465)
Input::~Input() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/input/input.cpp:1623)
void memdelete<Input>(Input*) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/os/memory.h:109)
Main::cleanup(bool) (/home/naelstrof/projects/godot-mono/src/godot-mono/main/main.cpp:3739)
main (/home/naelstrof/projects/godot-mono/src/godot-mono/platform/linuxbsd/godot_linuxbsd.cpp:76)
___lldb_unnamed_symbol3190 (@___lldb_unnamed_symbol3190:29)
__libc_start_main (@__libc_start_main:44)
_start (@_start:15)

No big deal, you'd think the crash handler would catch it and give a backtrace. But it gets to here... then immediately throws another SIGSEV exception (also caught via debugger):
OS_Unix::execute(String const&, List<String, DefaultAllocator> const&, String*, int*, bool, MutexImpl<std::recursive_mutex>*, bool) (/home/naelstrof/projects/godot-mono/src/godot-mono/drivers/unix/os_unix.cpp:480)
handle_crash(int) (/home/naelstrof/projects/godot-mono/src/godot-mono/platform/linuxbsd/crash_handler_linuxbsd.cpp:104)
___lldb_unnamed_symbol15378 (@___lldb_unnamed_symbol15378:35)
___lldb_unnamed_symbol15368 (@___lldb_unnamed_symbol15368:114)
___lldb_unnamed_symbol3300 (@___lldb_unnamed_symbol3300:4)
__cxxabiv1::__dynamic_cast(const void *, const __cxxabiv1::__class_type_info *, const __cxxabiv1::__class_type_info *, ptrdiff_t) (@__dynamic_cast:15)
RefCounted* Object::cast_to<RefCounted>(Object*) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/object.h:774)
CSharpLanguage::_instance_binding_reference_callback(void*, void*, unsigned char) (/home/naelstrof/projects/godot-mono/src/godot-mono/modules/mono/csharp_script.cpp:1370)
Object::_instance_binding_reference(bool) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/object.h:670)
RefCounted::unreference() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.cpp:89)
Ref<InputEvent>::unref() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.h:209)
Ref<InputEvent>::~Ref() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/object/ref_counted.h:222)
HashSet<Ref<InputEvent>, HashMapHasherDefault, HashMapComparatorDefault<Ref<InputEvent>>>::clear() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/templates/hash_set.h:248)
HashSet<Ref<InputEvent>, HashMapHasherDefault, HashMapComparatorDefault<Ref<InputEvent>>>::~HashSet() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/templates/hash_set.h:465)
Input::~Input() (/home/naelstrof/projects/godot-mono/src/godot-mono/core/input/input.cpp:1623)
void memdelete<Input>(Input*) (/home/naelstrof/projects/godot-mono/src/godot-mono/core/os/memory.h:109)
Main::cleanup(bool) (/home/naelstrof/projects/godot-mono/src/godot-mono/main/main.cpp:3739)
main (/home/naelstrof/projects/godot-mono/src/godot-mono/platform/linuxbsd/godot_linuxbsd.cpp:76)
___lldb_unnamed_symbol3190 (@___lldb_unnamed_symbol3190:29)
__libc_start_main (@__libc_start_main:44)

From here it just permanently hangs at "Dumping the backtrace", taking 100% CPU and being unresponsive. I'm figuring the exception handler is just looping-- my debugger can't follow it, something causes my debugger to detach when it starts looping.

Happens on stable as well, I think during cleanup, some of the machinery that the exception handler uses is cleaned up already so it fails to give a stack trace. I'm not sure though.
Forces me to close it via a TERM or KILL signal via my task manager, which is very hurtful to my iteration speeds.
Steps to reproduce
Repeatedly open the project while mashing the Esc key, it will hang when it fails.
The crash was surprisingly consistent, yet random. Sometimes taking 10 tries or so.
I couldn't find a 100% consistent way to crash. I also couldn't get the crash to happen on a blank project, so I must be doing something strange in the project that I've included. I shrunk it down the best I could.
Minimal reproduction project
It was 45mb, so it didn't fit on github, here's a few mirrors:
https://drive.google.com/file/d/1OIefwglUPwOiieQhzDBxWgs6vwCWJ-QS/view?usp=sharing
https://cdn.discordapp.com/attachments/437504631577509899/1154695790212689971/MRP.zip

It appears as though the second exception is because the ->execute virtual function is pointing to reclaimed memory space during the crash. This explains the randomness of the crash as well, since reclaimed memory can still be owned by the process by chance.
I think it's due to the OS singleton running a variety of cleanup commands before the crash happens.
Here's a variety of solutions I can think of, but they all seem to have drawbacks:

OS could be cleaned up as late as possible, just in case other cleanup code crashes. Though reordering cleanup sounds horrifying as I have no idea what the dependencies look like.
Crash handlers can check to see if the OS has been cleaned up, and simply abort. This seems unfavorable as now godot CTD's without a stack trace during cleanup.
Crash handlers could avoid using OS virtual singleton commands just in case they're not available during the crash. This would cause a bit of code duplication and be more difficult to maintain.

As a workaround, you can disable the crash handler by running Godot with the --disable-crash-handler command line argument.

I've learned that signal is heavily implementation specific. According to the cppreference docs:

When signal handler is set to a function and a signal occurs, it is implementation defined whether signal(sig, SIG_DFL) will be executed immediately before the start of signal handler. Also, the implementation can prevent some implementation-defined set of signals from occurring while the signal handler runs.

This means that we won't know if further exceptions during crash handling will  be ignored, cause loops, lockups, or crashes since it's completely implementation specific.
It also states

POSIX recommends sigaction instead of signal, due to its underspecified behavior and significant implementation variations, regarding signal delivery while a signal handler is executed.

I'm not sure if sigaction is a good fit for godot, since godot is multi-platform and sigaction is not. And it's nice keeping the crash handlers somewhat similar in design when possible.
So now for my proposed solution: a very simple fix is to enforce the behavior of signal by starting the crash handler with
static void handle_crash(int sig) {
    signal(SIGSEGV, SIG_DFL);
    signal(SIGFPE,  SIG_DFL);
    signal(SIGILL,  SIG_DFL);
...

This prevents further fatal errors from initiating patty-cake with the kernel for most implementations. The trade-off being that we still won't know if the implementation is currently ignoring any of the signals.
I think making it work for all implementations would require a reassessment for using sigaction.
Regardless, this change should make the crash handlers more sane without being complicated. Tested it and it works okay:

Pull request to follow soon.


Benchmark results should automatically populate the README

Each benchmark runs in parallel to populate a results.yml file within each folder.  Then we use https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds to make a final job which will concatenate the YAML files and paste in a codeblock.

the steps that run in parallel need to produce artifacts - https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts

https://github.com/actuarialopensource/benchmarks/pull/11


Command aggregate failed: a collection 'XXX_Database_Name.hangfire.mongo.jobQueue.8.migrationbackup' already exists

I have .net core web api project (.Net 6) (dockerized)
i have added service like this :
services.AddHangfire(configuration => configuration
        .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
        .UseSimpleAssemblyNameTypeSerializer()
        .UseRecommendedSerializerSettings()
        .UseMongoStorage(mongoClient, mongoUrlBuilder.DatabaseName, new MongoStorageOptions
        {
            MigrationOptions = new MongoMigrationOptions
            {
                MigrationStrategy = new MigrateMongoMigrationStrategy(),
                BackupStrategy = new CollectionMongoBackupStrategy()
            },
            Prefix = "hangfire.mongo",
            CheckConnection = true
        })
    );
services.AddHangfireServer(options => { options.Queues = new[] { "default", "RecurringJobQueue" }; });

I have Azure App Service resource that running 3 instances
it works local development machine.
I register all jobs at startup with addorupdatejob method.
i deploy my webapi app to app service and at the startup it gives the following error :
Unhandled exception. MongoDB.Driver.MongoCommandException: Command aggregate failed: a collection 'Database_Name.hangfire.mongo.jobQueue.8.migrationbackup' already exists.
any advice appreciated
Thanks.

@paratoner,
Same as #326, please try to use "UseCosmosStorage"
Hope this helps.
Thanks


Bump golangci-lint to v1.49.0

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This also fixes new reported lints and enables further linters.
Which issue(s) this PR fixes:

None
Does this PR have test?
None

Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

Codecov Report

Merging #1116 (eab99bd) into main (682c69c) will decrease coverage by 0.05%.
The diff coverage is 0.00%.

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

@@            Coverage Diff             @@
##             main    #1116      +/-   ##
==========================================
- Coverage   50.68%   50.63%   -0.06%
==========================================
  Files          42       42
  Lines        4735     4740       +5
==========================================
  Hits         2400     2400
- Misses       2259     2264       +5
  Partials       76       76

/retest


persistent vloume

#1

Why did you close it?

Why did you close it?

Needs to be modified.

You need to give permission to docker to access the folder you want to mount, thats unrelated to your PR

You need to give permission to docker to access the folder you want to mount, thats unrelated to your PR

Ok, I've solved it.


steam buddy: Installation game/app causes "Error: 500 Internal Server Error"

Hi,
installation of any game or application through steam buddy client (opening gameros.local on my laptop browser) creates following error "Error: 500 Internal Server Error".
Restart of steam: didn't resolve the issue
Restart of the system: didn't help either :-/
Please help.

What were you trying to install exactly? A flatpak app or ROM?

Install of TuxKart or Install of MarioKart64 for example.
But I'm facing problems with my sata controller apparently - read write errors. Once I fixed that I will report back if the problem still persists.


Running gulp serve gives "ERR_SSL_PROTOCOL_ERROR" error

I have recently installed new SharePoint framework 1.3.4. Now when i scaffold a new SPFx react solution and run gulp serve (https://localhost:4321/temp/workbench.html), it gives "ERR_SSL_PROTOCOL_ERROR" error.
Category

[ ] Question
[x ] Bug
[ ] Enhancement

Expected or Desired Behavior
Ability to scaffold SPFx project and run it on HTTPS
Observed Behavior
If i change the serve.json to serve it on http instead of https than it is working but i couldn't load on the https://[domain].sharepoint.com/_layouts/15/workbench.aspx.
Environment Configuration

NodeJs - (version 8.9.0)
NPM (version 5.5.1)
Gulp (version 3.9.1)
YO (version 2.0.0)
SPFx framework (version 1.3.4)
Typescript (version 2.6.1)

Steps to Reproduce

Run SharePoint Yeoman generator to create a new SPFx solution using react framework
Run gulp serve
When it serve to the browser, you will see the following error

This site can’t provide a secure connection
localhost sent an invalid response.
Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR

Thank you
Mugilan

Hi everyone,
I found another similar issue been raised under sp-dev-docs ( https://github.com/SharePoint/sp-dev-docs/issues/1013 and https://github.com/SharePoint/sp-dev-docs/issues/1002).
I seems that, the issue is with NodeJs 8.9.0. I have revert back to NodeJs 6.11.5 and i can run gulp serve without any problem.

@muges01 have you tried applying the workaround mentioned in https://github.com/SharePoint/sp-dev-docs/issues/1002?

Hi @waldekmastykarz, sorry for the late reply, i didn't see your message until today. I was expecting to receive an email notification when someone comment here.
However, i just tried the workaround by setting the NO_NODE_HTTP2 environment variable to 1 and it's worked. Thank you.

Great to hear you got it to work @muges01

I made NO_NODE_HTTP2 environment variable to 1. but it is not working.
I am using SPFx framework 1.8 and Node 10.16.2

For me this doesnt fix the issue as well as like for @vasavidurgaprasad ...


fix double source code license prompt - fixes #3

This PR fixes double prompt for source code license when generating dual licenses.

Fixes #3

Coverage remained the same at 100.0% when pulling b9ba8a39a8d4b4a78fb21e0d3e7edb8d2aeff3ad on fix-double-prompt into 8a5ebf94d8a3c50de8d57df536258e4f90e7b5d3 on master.

Coverage remained the same at 100.0% when pulling b9ba8a39a8d4b4a78fb21e0d3e7edb8d2aeff3ad on fix-double-prompt into 8a5ebf94d8a3c50de8d57df536258e4f90e7b5d3 on master.

Coverage remained the same at 100.0% when pulling 1fb570bb38f39f3e1a44a580ad48c80e3025bf5b on fix-double-prompt into 8a5ebf94d8a3c50de8d57df536258e4f90e7b5d3 on master.

Coverage remained the same at 100.0% when pulling 1fb570bb38f39f3e1a44a580ad48c80e3025bf5b on fix-double-prompt into 8a5ebf94d8a3c50de8d57df536258e4f90e7b5d3 on master.


Model-point dependent projection horizon

Currently we set projection horizon as T_MAX_CALCULATION setting.
It's worth considering projection horizon to be model point dependent.
Then there could be less calculations and also no need to a lot of if-statements in variables.

Perhaps a way to do it is as follows.
Generally cashflower uses T_MAX_CALCULATION but if the user specifies a variable with the given name e.g.
@variable()
def t_max_calculation():
    return main.get("remaining_term")

then this variable overrides the setting.
OR maybe it shouldn't be a variable but something else? Like system... something... like a separate class.
But in fact it might be the easiest to use a normal model variable (a constant one).


Fastaq header parsing incorrect

https://github.com/rmcolq/pandora/blob/7609f5ffdc3cc57f590fca1e2a4808a11be5201d/src/fastaq_handler.cpp#L48-L53
If my header is >10001-12000 max_nest=5 min_match=7 then pandora says the sequence name is 10001-12000 max_nest=5 min_match=7 when it should be 10001-12000 (title) and the rest is considered description - see https://academic.oup.com/nar/article/38/6/1767/3112533.

@leoisl have you done any work on this (you assigned yourself)?
I am going to work on fixing it if not as this is pressing for me.
There are two fixes here:

Create a member variable comment on the Fastaq class and split the header on the first space into name and comment
Switch fastaq parsing to a robust library (as discussed previously in #74)


Drag-And-Drop Question Preview loads forever on empty background image

Describe the bug
The preview of Drag-And-Drop questions in quiz exercises loads forever if no background image is set.
To Reproduce

As an instructor

Go to 'Course Management' > 'Exercises' > 'Quiz Exercises'
Create a new quiz exercise
Add a Drag-And-Drop question
Open the preview of this question by clicking the 'Preview' button.

Expected behavior

The 'Preview' button should be disabled with a tooltip similar to "A background image must be set before a preview can be generated"
Screenshots

Environment

 - OS: Windows 10 Pro
 - Browser: Google Chrome
 - Version  81.0.4044.129

The picture is not available then. I don't consider this as a real bug, but we should probably show a warning here that the preview only works if the image was uploaded before.
Another alternative would be to only display the Preview button if the image was uploaded before


Additional themes for natlas

This isn't going to be associated with a milestone because it's a dream. But I'd really like to make cooler styled ways to view some hosts. Such as http://augmented-ui.com/
(TheComputerInside - Deus Natlas)

Also consider a material design approach - https://materializecss.com/about.html. Expand our horizons a little beyond bootstrap.


core: async masking

Introduces a feature similar to uninterruptible in other effect systems. It's a mechanism similar to IO.ensure but encoded in the async execution.

I've just pushed additional changes:

Introduce fiber.onInterrupt to be used for the new zio/cats-effect integrations
Rename IOPromise.onResult back to onComplete since https://github.com/getkyo/kyo/pull/693 will make bugs like https://github.com/getkyo/kyo/pull/685 become compile-time warnings and I couldn't think of an alternative name for IOPromise.onInterrupt.
Remove Flat requirement from fromFuture methods. It's not necessary since the method doesn't handle effects


[boost] Add version constraints

Fix https://github.com/microsoft/vcpkg/discussions/26582 (aka https://github.com/microsoft/vcpkg/issues/26548) by adding version constraints to boost ports.
Cc @horenmar

Huh? With this manifest:
{
  "name": "super-duper-boost-test",
  "builtin-baseline":"96ec7fb25da25e0463446e552d59715a47c95e73",
  "dependencies": [
    {
      "name": "boost-modular-build-helper",
      "version>=": "1.80.0#2"
    }
  ]
}

vcpkg install --dry-run
Error: Cannot resolve a minimum constraint for dependency vcpkg-cmake-get-vars from boost-modular-build-helper:x86-windows.
The dependency was not found in the baseline, indicating that the package did not exist at that time. This may be fixed by providing an explicit override version via the "overrides" field or by updating the baseline.
See `vcpkg help versioning` for more information.

Oh, vcpkg-cmake-get-vars has been introduced after baseline 96ec7fb25da25e0463446e552d59715a47c95e73 so it's not found. Should a port look for its baseline if its dependency was not found? @BillyONeal

Oh, vcpkg-cmake-get-vars has been introduced after baseline 96ec7fb25da25e0463446e552d59715a47c95e73 so it's not found. Should a port look for its baseline if its dependency was not found? @BillyONeal

In the current design, the user asked us to use the port as it is in 96ec7fb25da25e0463446e552d59715a47c95e73. If it does not exist there then they asked to use something that doesn't exist. However, I agree this can be somewhat unfortunate in this cease. I don't have great answers though; there's not an obviously correct version to use here. (We don't have a way to go from a port version to a baseline, only the other way around)

If I understand the behaviour correctly, if the boost-modular-build-helper port asked for a specific version of vcpkg-cmake-get-vars, then it would be able to resolve it, but currently it asks for whatever version is in the baseline, and, well, there is none.
This is basically why I said in the original issue that basically all ports with dependencies are affected. vcpkg relies on baseline to resolve versions of transitive dependencies, and at the same time the behaviour of baseline constraints is such that e.g. my place wants to keep old baselines for as long as we can.

Maybe add requires:vcpkg-team-review?

This PR is a rescue for our team, we need a easy and clean way to use partial of newer boost library while keeping the baseline pinned to a old version. Other wise we have to manually write constraints for hundreds of boost libraries.

Please resolve the file conflicts.
Thanks.

I've also added a note to generated files:
"$comment": "When changing this file also update and run scripts/boost/generate-ports.ps1",
https://github.com/microsoft/vcpkg/pull/26918#discussion_r977308883


TypeError: Cannot read property 'JWT' of undefined

Line 25: TypeError: Cannot read property 'JWT' of undefined
Looking at the google object, this path to JWT does not exist. Instead it requires:
jwtClient = new google.google.auth.JWT

@Ether0x nice catch!  I noticed that the pattern shown by the googleapis docs is:
var {google} = require('googleapis');

// ...

google.auth.JWT

So I went with that.

I am getting this same error but have tried both ways above and the one outlined here: https://firebase.google.com/docs/database/rest/auth.
I had been doing it this way with no trouble but redeployed (without changing anything) this function for the first time in a bit later and now this is crashing with the error above:
var google = require("googleapis");
// Load the service account key JSON file.
var serviceAccount = require("path/to/serviceAccountKey.json");
// Define the required scopes.
var scopes = [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/firebase.database"
];
// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
serviceAccount.client_email,
null,
serviceAccount.private_key,
scopes
);
Any ideas what could be causing this issue? 🙏

@samtstern I think you are actually right. There is a good thread here.
From Justin's comment:

Make sure you didn't npm install google-auth-library. If you did, delete it from your package.json, and run npm install again.

Import the library using const {google} = require('googleapis');, notice the {} around google.

In your callback, instead of looking for response.items, use response.data.items. This will be required in any of the callbacks coming from the API.

@rbar2 you needs to be add var {google} = require("googleapis"); instead of var google = require("googleapis");

google's docs should reflect their intended usage
https://firebase.google.com/docs/reference/dynamic-links/analytics#api_authorization

@ThomasGHenry thanks for catching that, I will get it updated.


Finish CAE implementation work

The current continuous access evaluation implementation returns an error when presented with a challenge, and will never be presented with a challenge to begin with. This is because of gaps in the azure identity library at the moment.
https://github.com/microsoft/kiota/issues/1179
TODO:

[ ] update azure core reference when dependencies are unblocked
[ ] update https://github.com/microsoft/kiota-authentication-azure-go/blob/765fdf15e7094d997e70cf356deee2d82f26569d/azure_identity_access_token_provider.go#L79
[ ] end to end testing
[ ] release

#12

@baywet am I right to assume this is completed?

no, it looks like we're unblocked from Azure Identity's side, but we've never completed the work here.
https://github.com/Azure/azure-sdk-for-go/issues/14931


Allow for command line arguments

Created a simple README.md that explains how to run the generate_polices code

@yangminzhu


Keep original source folder name

I'm trying to use this for Dynaframe and i was wondering if there is a way to keep the source album name? What's happening is once synced i get an image and video folder instead of the album name. I'm no good at editing scripts. Any help would be appreciated.

Do I understand you correctly and you do not want the files to be split up again into the subfolders Images/Video, but rather all files to be located directly within the folder named after the album?
This should be an easy task, but I need to find the time, which will take some time

Do I understand you correctly and you do not want the files to be split up again into the subfolders Images/Video, but rather all files to be located directly within the folder named after the album?
This should be an easy task, but I need to find the time, which will take some time

Spot on, that's correct...keep the folder named after the album. No problem, whenever you get some time. Thank you so much!

Latest version pushed to repository is 1.1.0


[15.0.x] ISPN-15916 Certificate reloading

https://issues.redhat.com/browse/ISPN-15916

Image pushed for Jenkins build #3:
quay.io/infinispan-test/server:PR-12642

Hm, there is a weird jgroups failure ? Was it introduced by a jgroups upgrade ? I don't see it on the 15.0.x builds.

I'm marking this as "On Hold" as upgrading to JGroups 5.3.7 or higher introduces an incompatibility with metrics. I'm meeting with Bela tomorrow to try to figure out a solution going forward.

Image pushed for Jenkins build #4:
quay.io/infinispan-test/server:PR-12642

I noticed this PR introduced a new runtime dependency org.wildfly.security:wildfly-elytron-keystore to org.infinispan:infinispan-commons, is this by design or should this have been scoped as a test only dependency?

Good spot @cmuchinsky. I think this dependency is a leftover from an earlier version of the solution that was missed on the PR review. I've created https://github.com/infinispan/infinispan/pull/12723 to remove this dependency and I'll make sure this is backported for 15.0.8.Final.


Real-time database entry

hello , i've tried making connection with MySql database ...and everything seems fine ...mysql seems to fetch the data (people_in , people_out, end_time, people_inside) ... but the only problem is ...the data is transfered once the video is terminated (when pressed q) .. is there any way to make the data entry real-time...each time people x(people_inside) is changed ..it is transfered to Db without me having to close the video.  It will be really helpful if u could provide ur help
This is the alteration that i have done for Db connection and data entry.
from mylib.centroidtracker import CentroidTracker
from mylib.trackableobject import TrackableObject
from imutils.video import VideoStream
from imutils.video import FPS
from mylib.mailer import Mailer
from mylib import config, thread
import time
import schedule
import csv
import numpy as np
import argparse
import imutils
import time
import dlib
import cv2
import datetime
from itertools import zip_longest
import mysql.connector
t0 = time.time()
conn = mysql.connector.connect(
host="localhost",
user="admin",
password="abcd1234",
database="crowd"
)
mycursor = conn.cursor()
def run():
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
# ap.add_argument("-p", "--prototxt", required=False,
#	help="path to Caffe 'deploy' prototxt file")
# ap.add_argument("-m", "--model", required=True,
#	help="path to Caffe pre-trained model")
ap.add_argument("-i", "--input", type=str,
help="path to optional input video file")
ap.add_argument("-o", "--output", type=str,
help="path to optional output video file")
# confidence default 0.4
ap.add_argument("-c", "--confidence", type=float, default=0.4,
help="minimum probability to filter weak detections")
ap.add_argument("-s", "--skip-frames", type=int, default=30,
help="# of skip frames between detections")
args = vars(ap.parse_args())
# initialize the list of class labels MobileNet SSD was trained to
# detect
CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat",
           "bottle", "bus", "car", "cat", "chair", "cow", "diningtable",
           "dog", "horse", "motorbike", "person", "pottedplant", "sheep",
           "sofa", "train", "tvmonitor"]

# load our serialized model from disk
net = cv2.dnn.readNetFromCaffe(
    'mobilenet_ssd/MobileNetSSD_deploy.prototxt', 'mobilenet_ssd/MobileNetSSD_deploy.caffemodel')

# if a video path was not supplied, grab a reference to the ip camera
if not args.get("input", False):
    print("[INFO] Starting the live stream..")
    vs = VideoStream(config.url).start()
    time.sleep(2.0)

# otherwise, grab a reference to the video file
else:
    print("[INFO] Starting the video..")
    vs = cv2.VideoCapture(args["input"])

# initialize the video writer (we'll instantiate later if need be)
writer = None

# initialize the frame dimensions (we'll set them as soon as we read
# the first frame from the video)
W = None
H = None

# instantiate our centroid tracker, then initialize a list to store
# each of our dlib correlation trackers, followed by a dictionary to
# map each unique object ID to a TrackableObject
ct = CentroidTracker(maxDisappeared=40, maxDistance=50)
trackers = []
trackableObjects = {}

# initialize the total number of frames processed thus far, along
# with the total number of objects that have moved either up or down
totalFrames = 0
totalDown = 0
totalUp = 0
x = []
empty = []
empty1 = []

# start the frames per second throughput estimator
fps = FPS().start()

if config.Thread:
    vs = thread.ThreadingClass(config.url)

# loop over frames from the video stream
while True:
    # grab the next frame and handle if we are reading from either
    # VideoCapture or VideoStream
    frame = vs.read()
    frame = frame[1] if args.get("input", False) else frame

    # if we are viewing a video and we did not grab a frame then we
    # have reached the end of the video
    if args["input"] is not None and frame is None:
        break

    # resize the frame to have a maximum width of 500 pixels (the
    # less data we have, the faster we can process it), then convert
    # the frame from BGR to RGB for dlib
    frame = imutils.resize(frame, width=500)
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    # if the frame dimensions are empty, set them
    if W is None or H is None:
        (H, W) = frame.shape[:2]

    # if we are supposed to be writing a video to disk, initialize
    # the writer
    if args["output"] is not None and writer is None:
        fourcc = cv2.VideoWriter_fourcc(*"mp4v")
        writer = cv2.VideoWriter(args["output"], fourcc, 30,
                                 (W, H), True)

    # initialize the current status along with our list of bounding
    # box rectangles returned by either (1) our object detector or
    # (2) the correlation trackers
    status = "Waiting"
    rects = []

    # check to see if we should run a more computationally expensive
    # object detection method to aid our tracker
    if totalFrames % args["skip_frames"] == 0:
        # set the status and initialize our new set of object trackers
        status = "Detecting"
        trackers = []

        # convert the frame to a blob and pass the blob through the
        # network and obtain the detections
        blob = cv2.dnn.blobFromImage(frame, 0.007843, (W, H), 127.5)
        net.setInput(blob)
        detections = net.forward()

        # loop over the detections
        for i in np.arange(0, detections.shape[2]):
            # extract the confidence (i.e., probability) associated
            # with the prediction
            confidence = detections[0, 0, i, 2]

            # filter out weak detections by requiring a minimum
            # confidence
            if confidence > args["confidence"]:
                # extract the index of the class label from the
                # detections list
                idx = int(detections[0, 0, i, 1])

                # if the class label is not a person, ignore it
                if CLASSES[idx] != "person":
                    continue

                # compute the (x, y)-coordinates of the bounding box
                # for the object
                box = detections[0, 0, i, 3:7] * np.array([W, H, W, H])
                (startX, startY, endX, endY) = box.astype("int")

                # construct a dlib rectangle object from the bounding
                # box coordinates and then start the dlib correlation
                # tracker
                tracker = dlib.correlation_tracker()
                rect = dlib.rectangle(startX, startY, endX, endY)
                tracker.start_track(rgb, rect)

                # add the tracker to our list of trackers so we can
                # utilize it during skip frames
                trackers.append(tracker)

    # otherwise, we should utilize our object *trackers* rather than
    # object *detectors* to obtain a higher frame processing throughput
    else:
        # loop over the trackers
        for tracker in trackers:
            # set the status of our system to be 'tracking' rather
            # than 'waiting' or 'detecting'
            status = "Tracking"

            # update the tracker and grab the updated position
            tracker.update(rgb)
            pos = tracker.get_position()

            # unpack the position object
            startX = int(pos.left())
            startY = int(pos.top())
            endX = int(pos.right())
            endY = int(pos.bottom())

            # add the bounding box coordinates to the rectangles list
            rects.append((startX, startY, endX, endY))

    # draw a horizontal line in the center of the frame -- once an
    # object crosses this line we will determine whether they were
    # moving 'up' or 'down'
    cv2.line(frame, (0, H // 2), (W, H // 2), (0, 0, 0), 3)
    cv2.putText(frame, "-Prediction border - Entrance-", (10, H - ((i * 20) + 200)),
                cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1)

    # use the centroid tracker to associate the (1) old object
    # centroids with (2) the newly computed object centroids
    objects = ct.update(rects)

    # loop over the tracked objects
    for (objectID, centroid) in objects.items():
        # check to see if a trackable object exists for the current
        # object ID
        to = trackableObjects.get(objectID, None)

        # if there is no existing trackable object, create one
        if to is None:
            to = TrackableObject(objectID, centroid)

        # otherwise, there is a trackable object so we can utilize it
        # to determine direction
        else:
            # the difference between the y-coordinate of the *current*
            # centroid and the mean of *previous* centroids will tell
            # us in which direction the object is moving (negative for
            # 'up' and positive for 'down')
            y = [c[1] for c in to.centroids]
            direction = centroid[1] - np.mean(y)
            to.centroids.append(centroid)

            # check to see if the object has been counted or not
            if not to.counted:
                # if the direction is negative (indicating the object
                # is moving up) AND the centroid is above the center
                # line, count the object
                if direction < 0 and centroid[1] < H // 2:
                    totalUp += 1
                    empty.append(totalUp)
                    to.counted = True

                # if the direction is positive (indicating the object
                # is moving down) AND the centroid is below the
                # center line, count the object
                elif direction > 0 and centroid[1] > H // 2:
                    totalDown += 1
                    empty1.append(totalDown)
                    # print(empty1[-1])
                    # if the people limit exceeds over threshold, send an email alert
                    if sum(x) >= config.Threshold:
                        cv2.putText(frame, "-ALERT: People limit exceeded-", (10, frame.shape[0] - 80),
                                    cv2.FONT_HERSHEY_COMPLEX, 0.5, (0, 0, 255), 2)
                        if config.ALERT:
                            print("[INFO] Sending email alert..")
                            Mailer().send(config.MAIL)
                            print("[INFO] Alert sent")

                    to.counted = True

                x = []
                # compute the sum of total people inside
                x.append(len(empty1)-len(empty))
                # print("Total people inside:", x)

        # store the trackable object in our dictionary
        trackableObjects[objectID] = to

        # draw both the ID of the object and the centroid of the
        # object on the output frame
        text = "ID {}".format(objectID)
        cv2.putText(frame, text, (centroid[0] - 10, centroid[1] - 10),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)
        cv2.circle(
            frame, (centroid[0], centroid[1]), 4, (255, 255, 255), -1)

    # construct a tuple of information we will be displaying on the
    info = [
        ("Exit", totalUp),
        ("Enter", totalDown),
        ("Status", status),

    ]

    info2 = [
        ("Total people inside", x),
    ]

    # Display the output
    for (i, (k, v)) in enumerate(info):
        text = "{}: {}".format(k, v)
        cv2.putText(frame, text, (10, H - ((i * 20) + 20)),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 0), 2)

    for (i, (k, v)) in enumerate(info2):
        text = "{}: {}".format(k, v)
        cv2.putText(frame, text, (265, H - ((i * 20) + 60)),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)

    # Initiate a simple log to save data at end of the day
    if config.Log:
        datetimee = [datetime.datetime.now()]
        d = [datetimee, empty1, empty, x]
        export_data = zip_longest(*d, fillvalue='')

        with open('Log.csv', 'w', newline='') as myfile:
            wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
            wr.writerow(("End Time", "In", "Out", "Total Inside"))
            wr.writerows(export_data)

    # check to see if we should write the frame to disk
    if writer is not None:
        writer.write(frame)

    # show the output frame
    cv2.imshow("Real-Time Monitoring/Analysis Window", frame)
    key = cv2.waitKey(1) & 0xFF

    # if the `q` key was pressed, break from the loop
    if key == ord("q"):
        break

    # increment the total number of frames processed thus far and
    # then update the FPS counter
    totalFrames += 1
    fps.update()

    if config.Timer:
        # Automatic timer to stop the live stream. Set to 8 hours (28800s).
        t1 = time.time()
        num_seconds = (t1-t0)
        if num_seconds > 28800:
            break

# stop the timer and display FPS information
fps.stop()
print("[INFO] elapsed time: {:.2f}".format(fps.elapsed()))
print("[INFO] approx. FPS: {:.2f}".format(fps.fps()))

x=(totalDown-totalUp)
insert_data(datetime.datetime.now().strftime(
    "%Y-%m-%d %H:%M:%S"), totalUp, totalDown, x )

# # if we are not using a video file, stop the camera video stream
# if not args.get("input", False):
# 	vs.stop()
#
# # otherwise, release the video file pointer
# else:
# 	vs.release()

# issue 15
if config.Thread:
    vs.release()

# close any open windows
cv2.destroyAllWindows()

def insert_data(end_time, people_out, people_in, people_inside):
sql = "INSERT INTO people (`end_time`, `people_out`, `people_in`,`people_inside`) VALUES (%s,%s,%s,%s)"
val = (end_time, people_out, people_in, people_inside )
mycursor.execute(sql, val)
conn.commit()
print(conn)

learn more about different schedules here: https://pypi.org/project/schedule/
if config.Scheduler:
# Runs for every 1 second
# schedule.every(1).seconds.do(run)
# Runs at every day (9:00 am). You can change it.
schedule.every().day.at("23:01").do(run)
while 1:
    schedule.run_pending()

else:
run()

Hi, I will look into this at free time, currently I am occupied

alright ..thanks ...I look forward to hearing from you


LoadGen: Move logging definitions out of header file.

This is a no-op patch that moves all non-templated and
non-trival definitions from the header file to the
implementation file.

@briandersn can ya take a peek at the conflict? Looks minor. But I don't have a build locally, so don't wanna risk breaking something.

Fixed the conflict.


install.sh missing dependency checks

install.sh is supposed to be the recipe for building a support module in the container environment.
However it is up to the Dockerfile to build dependencies before calling install.sh for a given module. This is fine, except that the install.sh should be able to give the developer information on the dependencies and check that they have been supplied.
I suggest:
ibek support check-dependencies Asyn busy ADCore
for example. How to check? We could just do it off of macros in global configure RELEASE or we could get more sophisticated and check that the module has actually been built. @coretl @GDYendell looking for suggestions of how to do this in a clean fashion.
This helps avoid unpicking build errors due to missing dependencies.

Would checking for /epics/support/<module> be sufficient?

Tom and I discussed this morning.
The checks will be:-

does the UCASE version of the module name exist in /epics/support/configure/RELEASE
does the folder with the module name exist in /epics/support and does it contain at least one of db dbd or lib


MAINT: fix readthedocs build issue, update numpy version specifier

Also fix a couple of very minor style issues.

It's actually not very clear from the ReadTheDocs build logs what was the issue, but it ended with installing numpy 1.8.1 in one case, while our version spec is >= 1.9.1

Codecov Report

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

@@           Coverage Diff           @@
##           master     #295   +/-   ##
=======================================
  Coverage   86.22%   86.22%
=======================================
  Files          21       21
  Lines        3092     3092
  Branches      535      535
=======================================
  Hits         2666     2666
  Misses        373      373
  Partials       53       53

Impacted Files
Coverage Δ

pywt/_multidim.py
97.77% <ø> (ø)
:white_check_mark:

Continue to review full report at Codecov.

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

thanks.  merging to see how it goes


Replace sh-script on wiping db with ansible

Removed @domdom82 as assignee (he is not an Apache committer for this poddling 😢). Assigned to @markusthoemmes instead.

PG2#1174 with the requested changes is running.

@ddragosd do these changes affect your deployment tools with docker compose?

Yes it does in the current master branch : https://github.com/openwhisk/openwhisk-devtools/blob/0326d39c7b76207815a5fb551846423d124d5d89/docker-compose/Makefile#L122
But we have a PR to use the ansible script to setup a DB in this PR: https://github.com/openwhisk/openwhisk-devtools/pull/10
Actually the more important PR is #1928 . If we could review this we're solving more problems.

PG3#386 is green.


How to install R-Bridge on ArcGIS for Servers 10.5? (Help Wanted)

I wanted to use this tool because R console couldn't run when called from Python Geoprocessing tool.

download latest arcgsbinding package from this location https://github.com/R-ArcGIS/r-bridge/releases/latest
Run RGui, click on application menu Packages->Install package(s) from local zip files...

pick arcgisbinding_1,0,0.128.zip and install the package.
Open user AppData folder, usually C:\Users\<USERNAME>\AppData\Local\ESRI. Create 'RIntergation.conf' file and and add one line: R_HOME=C:\Program Files\R\R-3.3.2 (adjust path if needed)
or execute this command line:

C:\> echo R_HOME=C:\Program Files\R\R-3.3.2 > %APPDATA%\..\Local\Esri\RIntergation.conf

Thank you very much for the help. Unfortunately, I couldn't run r scripts from my Python toolbox. I was using python subprocess.call() method to call some CMD commands calling and using r scripts. Is there a way of making this work? It works well in ArcGIS Desktop.

@wondie Could you share some details on how you're trying to execute R with the package? The two main deployment stories are:

Create an R script which takes inputs and outputs like any other Geoprocessing tool, and reference it within a toolbox.
Create R scripts which don't use the Geoprocessing framework, but include their inputs explicitly, and write the data back via the package.

Can you use either of these above patterns? If you do need to use subprocess calls, can you provide some details about what you're trying to do? If you just need to call R from Python, you should be able to make an R script tool, then execute it from Python by importing the toolbox and calling the tool as you would with any Python tool or ModelBuilder model. If you have other reasons to need subprocess calls, share a little more about what you're doing and we can take a look.

@scw what I am using is similar to the first option. I am happy to change subprocess.call() if there is a working alternative.
This is how it is used in the toolbox.

r_cmd = '"' + r_exe_path + '" --vanilla --slave --file="' + ras_temp_path + 'out_script.r"'  # r command

       arcpy.AddMessage("Running similarity analysis \n")
       # TODO Apply this change on desktop version
       CREATE_NO_WINDOW = 0x08000000
       # Open shell and run R command
       subprocess.call(shlex.split(r_cmd), shell=False, creationflags=CREATE_NO_WINDOW)

The out_script.r
contains the following command.
source("D:/mytool/R_Scripts/similarity_analysis.r");
similarityAnalysis(1,"D:/mytool/R_Scripts/readAscii.r","D:/mytool/R_Scripts/writeAscii.r","C:/Users/User/Documents/ArcGIS/scratch/Temp/")

The use of the R scripts is to create ASCII files for statistics Mahalanobis and Multivariate Environmental Similarity Surfaces (MESS).
The above approach works in Desktop but not in the server.

Is there anything wrong with my implementation?

@scw thank you!

Could incompatibility of Python 64 bit (For server) and 32 bit for R be the cause of the problem?

Can anyone please comment on ArcGIS Server unable to locate R-Brigde? I have both desktop and server on the same machine. I can run R in desktop but publishing it as a GP service always bring "R Bridge not installed" from the AGS service log.
Thanks!

@MichaelGGeoda Do you run Server as a different user than your personal user account? You will need to have a Rintergation.conf file in %LOCALAPPDATA%\ESRI for the Server user as well for it to find R, with the value of R_HOME set as @dpavlushko described above.

@MichaelGGeoda, it is also worth taking a look at the enterprise documentation for arcgisbinding

Closing this issue, the above documentation can be referenced for future folks trying to install on Server.


M3-159 list ticket replies

Purpose
When clicking on a ticket's id in the ticket list view, the user is taken to a detail page which displays the full text of the ticket and all of its replies, along with information about who opened each reply and when it was made.
Known Issues

Does not respond well on mobile
Scrolling to last reply behavior is weird with long lists
Would be better if we had a way of differentiating read from unread tickets
We should look into caching Gravatar requests (@rjstires) to cut down on repeated requests in long tickets.

Coverage decreased (-0.3%) to 27.271% when pulling d66c884edcd79fed4c56c2a0becdd2629feba98c on Jskobos:M3-159-list-ticket-messages into da83316088a66139beb3db133c4c8e60a824dc78 on linode:develop.