Supermatter Crystal (take 2)

regarding #28980 it shouldn't be copyrighted anymore 😄
About the PR

Added the supermatter crystal and things related to it.
Radiates everything around it, shoots lightning bolts every now and then, scales it's power depending on damage taken and gases it inhales, which can very quickly turn into a nightmare for engineering squad. Very brittle, takes damage from high temperatures, pressure, specific gases, etc. etc.
Quick note: until being collided with something or getting damaged, SM won't do anything to prevent early game station destructions.
Alerts fellow engineers at a certain point if constantly taking damage, making them do their job to secure the SM and not screw the entire station up :trollface:
And, after reaching a certain point, starts the final countdown™ and delaminates into a huge explosion, a tesla, a singularity or reconance cascade'ing and ending the round (unavailable due to me not having ideas on how to implement it's conditions since hypernob and antinob are not in the game yet)
Vaporizes whatever collides with it, except energy bolts which deal damage to it (emitter/disabler excluded).
Also added a new traitor objective that requires you to cut a sliver off of the crystal, which will greatly damage it and alert the crew, the sliver itself is highly radioactive so good luck keeping it safe :trollface:
Why / Balance

Technical details

even i don't 100% know how it works, i forgot half of the stuff while doing it 🤷♂
Media

in-game sprites

rat hate
https://github.com/space-wizards/space-station-14/assets/113782077/6c737074-4d33-467f-82a4-7563eabaec9e
automatic announcements

delamming (explosion)
https://github.com/space-wizards/space-station-14/assets/113782077/0fd5fbdb-2b84-4372-813d-8ef3576bd939

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

TODO

[ ] Implement the objective correctly.
[ ] Listen to people's opinions
[ ] A lot of testing
[ ] A lot of tweaking
[ ] A lot of cleanup
[ ] A lot of refactoring

Changelog

:cl:

add: Added the supermatter crystal!
add: Added new traitor objective: cut off a sliver from the supermatter crystal!
tweak: Singularity now needs to consume the supermatter crystal to reach level 6.

as is its incredibly unlikely we're going to accept SM as an engine in basically any capacity even with big changes, the previous PR should have been closed for this reason instead of having it be pending a rewrite but that is our bad for not doing so
has been ~general consensus for a while but essentially the only thing SM has going for it is its thematically pretty cool, as for its issues that we feel are pretty inherent

extremely opaque, interacts with atmos gases in a way that has zero parallels to anything people could build intuition from
extremely easy to mess up by accident in ways that are non obvious and completely detonate the station

extremely easy to sabotage in ways that are non obvious as a corollary

has 'complex' (not really, just unexplained and unintuitive) interactions but is incredibly hard and not very fun to actually experiment with inround due to the extreme danger of fucking it up
simply not very interesting. no maintenance or monitoring effectively required except to prevent sabotage, you basically just follow wiki directions to set it up and then its fine for the rest of the round
atmos-interacting engine is already done better design wise by the currently-existing TEG and having both do the same thing design wise is kind of pointless

obv you put a nontrivial amount of work into this (especially with the last pr) so apologies for just closing it outright. i would see if there are downstreams interested in having this implementation since it looks generally competent

zis is so sad

downstreams

oh well 🤷♂

Why was it even closed?

Ofc this gets closed but not that dubious APC resprite.

as is its incredibly unlikely we're going to accept SM as an engine in basically any capacity even with big changes, the previous PR should have been closed for this reason instead of having it be pending a rewrite but that is our bad for not doing so
has been ~general consensus for a while but essentially the only thing SM has going for it is its thematically pretty cool, as for its issues that we feel are pretty inherent

extremely opaque

extremely easy to mess up by accident in ways that are non obvious and completely detonate the station

extremely easy to sabotage in ways that are non obvious as a corollary

simply not very interesting. no maintenance or monitoring effectively required except to prevent sabotage, you basically just follow wiki directions to set it up and then its fine for the rest of the round

also i believe you just described the AME 😆

zis is so sad

Yeah, it's important to ask when planning contributions to see if your PR would be accepted in the first place
it's unfortunate you missed (not blaming you) previous discussions on why supermatter wasn't upstreamed on Discord, as well as outdated info still up suggesting SM is a requirement #20951

also i believe you just described the AME 😆

the only points i think are relevant to the AME are easy to sabotage (true, but significantly easier to fix than SM and not nearly as big of a deal) and AME is uninteresting (also true, but AME at least requires refueling, which is more than you can say for the SM)

also i believe you just described the AME 😆

the only points i think are relevant to the AME are easy to sabotage (true, but significantly easier to fix than SM and not nearly as big of a deal) and AME is uninteresting (also true, but AME at least requires refueling, which is more than you can say for the SM)

Refuelling like exchanging the plasma tanks on the collectors? If a battery change is the bare minimum for it to be considered maintenance then yes, the SM covers it too.
Also you're talking about SM's sabotage being too hard to fix when the Singulo and Tesla are in the game (You know, the two engines that are a guaranteed shuttle call every time they escape?
Seriously, the only engine in the game that meets the criteria that you just described is the TEG, and maybe the Turbine if anyone ever codes that.

also i believe you just described the AME 😆

We're already moving away from having the AME be the main power source on all but lowpop maps (which may not have a full engineering team to maintain it and thus needs to be simplistic), so I don't really see what the point is here.

you could ask DeltaV if you want to implement it there, although it would be a bit iffy since we're currently looking to port someone else's supermatter implementation too.

i'd like to have this open even if its not roundstart, perhaps as an orderable for cargo or something

That is, the reasons why SM is not added are:

"Very difficult" - guides inside the game or Wiki.   The author is no longer against making a service, which, if you so desire, can even be complicated or made more interesting.  If I'm not mistaken, there is such a console on the turbine, right?
The explosion radius is not as critical as that of a nuclear warhead, if I’m not mistaken, and the destruction is much less than 13. Since there is no severe radiation background that would make the entire department glow like a Christmas tree.   And at the moment we have engines that are much more evil and dangerous, that are really capable of destroying the ENTIRE station, and not a small part of it
we have TEG - diversity, more interactions and experiments, rather than collecting the same thing.  You would be tired of eating the same food over and over again, perhaps yes, just like the veteran engineers.
Sabotage - if I'm not mistaken, in 13 you can prevent sabotage, even at the very last moment - although you will have to do a lot and literally almost sacrifice yourself to normalize the crystal.  In addition, do not forget about the alerts that they shout at you when the integrity of the crystal decreases, if I’m not mistaken with 75%, which means that you have at least 15 minutes to fix everything

Sorry if I messed something up or noted something incorrectly

What`s wrong?

 Что не так?

Crystal do nothing


Issue with collision of STATIC and DYNAMIC Bodies

I have an issue that static and dynamic bodies do not collide as they should. You can try this by making the Box in the demo bodyTypes.html. STATIC.
The box will no longer move up an down, which is expected behavior, since static bodies only take into account their position (as stated in the docs).
However, the sphere will bounce a bit, slow down as it intersects with the box and then continue bouncing. This intersection should not happen, right?

I think it bounces because the code sets the velocity of the static box... and the sphere will believe that the box below it is moving even though it is not. I guess the bouncing stops if you don't modify the velocity?

Yeah, you're right. It stops bouncing. I would expect, though, that setting a velocity on a static body wouldn't make a difference under any circumstances.
Even with setting the velocity and angularVelocity to 0 in my application, there is still an issue with static bodies. Dynamic ones simply go through them with very little force applied. I'll debug it further and let you know when I have new insights.

Yeah, I guess static objects should not touch their velocity... But on the other hand, this "bug" actually lets you create conveyor belts :) try setting velocity along a horizontal axis :)

Ha, true 😃 Although that is also what kinematic bodies are for 😉
I still have my issue with changing the type. Seems that there is a difference between an object that is created static and one that is created dynamic and later set to static. I am setting the type and reset the velocity and angularVelocity to 0. Are there more properties that I should reset?

To change a body into static you need to also set the mass to zero and update the mass properties.
body.type = Body.STATIC;
body.mass = 0;
body.updateMassProperties();
body.aabbNeedsUpdate = true;
// ..there's probably something missing here..

Not sure if .updateMassProperties() is in the npm version. But in any case, the best way is just to create a new Body.

Yes, it is probably best to just create a new body. I tried it and it probably works. However, my objects are not solid, which is why the glitching happens. When one of them is static and cannot give way the two relatively thin objects will just tunnel.
Thanks for your help and I will regard this issue as solved. It might help others who want to change the body type dynamically.
Maybe we should change the title in order to reflect the subject of the discussion better.


LiteX

Litex

Hello @gayathri191855 , is there an issue, or is this acting as a bookmark for you?

what algorithm is used to develop a CNN accelerator using LiteX and what is approach to develop

@gayathri191855 , the CFU Playground uses the TensorFlow Lite for Microcontrollers framework, so it is assumed that we will be using a TFLite model to represent the neural network.   Then, you can add custom instructions to the CPU by designing your own Custom Function Unit (CFU), and modifing the TFLiteMicro kernels to use these new instructions to achieve accelerated performance.     This page shows an end-to-end example: https://cfu-playground.readthedocs.io/en/latest/step-by-step.html
This is just one of really unlimited ways that you could add a CNN accelerator to a LiteX SoC.   You could instead make a more independent accelerator that sits on the SoC bus.   Maybe it could perform DMA accesses to memory all by itself.   It could be controlled by the CPU using memory-mapped control registers.   But that  is outside of the scope of CFU Playground.

This is just one of really unlimited ways that you could add a CNN accelerator to a LiteX SoC. You could instead make a more independent accelerator that sits on the SoC bus. Maybe it could perform DMA accesses to memory all by itself. It could be controlled by the CPU using memory-mapped control registers. But that is outside of the scope of CFU Playground.

@tcal-x so ideally you suggest CFU playground project output could be configured (to create a Custom Function Unit (CFU)) and be included as part of Litex like lite-CFU something similar to litespi , litevideo as seen here https://github.com/orgs/litex-hub/repositories ?


Add protobuf-parser in the list of README crates

This crate, extracted from quick-protobuf, is new and is supposed to be used by both rust-protobuf and quick-protobuf.

Coverage remained the same at 88.248% when pulling 01ec0a6a7342b53045536f2fa2ba503af2ac40e8 on tafia:patch-1 into 9b794ff95f7de4b914fe24c991f22828a2c55b0b on Geal:master.

nice project :)


Switch to django-appconf

Basically a smaller changeset than the work done in django-1.11 branch.
My goal was to make the project testable via tox so I could assert if it is currently working with Django 1.11 or not and hopefully get things moving from there rather than "huge" breaking changes. This does break things if someone was crazy enough to try to patch django-axes configuration directly, but I do not think this should hold a release (say 2.4.0) for Django 1.11 support.

Coverage increased (+0.1%) to 91.755% when pulling 67edcad4321334ad5cea5c7184308264081657bc on EvaSDK:switch-django-appconf into 87731d180eba7c401c69e318c57c4dbb88d4d170 on jazzband:master.

Thank you. This was already done for the new version.


Add tests

:x: Build POC-dotnet-Asterisk 1.0.21 failed (commit https://github.com/GuilhermeStracini/POC-dotnet-Asterisk/commit/b13a74ea98 by @guibranco)

:x: Build POC-dotnet-Asterisk 1.0.25 failed (commit https://github.com/GuilhermeStracini/POC-dotnet-Asterisk/commit/b13a74ea98 by @guibranco)

:white_check_mark: Build POC-dotnet-Asterisk 1.0.27 completed (commit https://github.com/GuilhermeStracini/POC-dotnet-Asterisk/commit/948a14c74a by @guibranco)


CLI returning code: 'ERR_UNHANDLED_REJECTION'

When trying to use the cli with the command
rettiwt user timeline elonmusk
it returns
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "#<DataValidationError>".] code: 'ERR_UNHANDLED_REJECTION'} Node.js v20.11.0
But posting a tweet works.

A data validation has occured because you tried to fetch the timeline of a user using his username instead of ID. The ID is a numeric string which can be obtained by first fetching the details of the user using the command: rettiwt user details elonmusk. From the returned data, you can get the ID field.


Tabs Example 1 Missing Active Tab Function

Add tabButtonActive back to tabs example 1. this is needed for dynamic classnames to work.
Before:

Missing function console error
Text color isn't darker

After:

No console error
Text darker

Other Notes:

Think this was just accidentally a few weeks ago (https://github.com/thedevdojo/pines/commit/5c42b388cacf137a6d7a8b51b1fe44dcb8ab8dba#diff-68b08c735e1fdc2e5e02c8499cca0459d3199cee2e1f5645ed2a1da865bd9d86) 🤷♂
The active class list includes a class to make the tab background darker but the tabMarker itself has the darker background so there's some duplication a bit, but leaving as it isn't related to actual functionality

Awesome! Thanks man 🕺


feat(Button): add focus method

Fixes #1740.

Codecov Report

Merging #1764 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1764      +/-   ##
==========================================
+ Coverage   99.75%   99.75%   +<.01%
==========================================
  Files         142      142
  Lines        2466     2468       +2
==========================================
+ Hits         2460     2462       +2
  Misses          6        6

Impacted Files
Coverage Δ

src/elements/Button/Button.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Very clean, thanks once again!

Released in<EMAIL_ADDRESS>


Incorrect import in JS on NPM

Steps to reproduce:

npm install web-ifc-three
import {IFCLoader} from 'web-ifc-three/IFCLoader';

Expected: code compiles
Actual:
ERROR in ./node_modules/web-ifc-three/IFCLoader.js 8:9-30
"export 'mergeBufferGeometries' was not found in 'three/examples/jsm/utils/BufferGeometryUtils'

Solution - in IFCLoader.js:
- import { mergeBufferGeometries } from 'three/examples/jsm/utils/BufferGeometryUtils';
+ import { BufferGeometryUtils } from 'three/examples/jsm/utils/BufferGeometryUtils';

const IdAttrName = 'expressID';
const merge = (geoms, createGroups = false) => {
-  return mergeBufferGeometries(geoms, createGroups);
+  return BufferGeometryUtils.mergeBufferGeometries(geoms, createGroups);
};

I would make a PR but I don't know how this JS file is generated I'm sorry.

Hey, have you updated three.js? In the last version they changed the API and now the BufferGeometry API is like the current implementation of the library.


dictionary data structure and interface design

[ ] Task1. dictionary data structure design by go.
[ ] Task2. dictionary data operation interface by go, include save, remove, update, query. this is common interface.
[ ] Task3. dictionary data operation api design.

data structure base namespaces(application-name) + username design.

I will try this, pls assign to me


Fix Workflow Post-Release

Changes
Fixed Post-Release #1168

Removed wrong syntax in post_release.yaml
Fixed desynced release config

Just some small fix :)
Checklist

[x] An issue to be fixed by this PR is listed above.
[x] New tests are added to ensure new features are working. End-to-end tests are usually in the ./frb_example/pure_dart example, more specifically, rust/src/api.rs and dart/lib/main.dart.
[x] The code generator is run and the code is formatted (via just precommit).
[x] If this PR adds/changes features, documentations (in the ./book folder) are updated.
[x] CI is passing.

Good job!


BUG: Berkeley Submission Schema: Table doesn't show study name

I'm not sure where this bug lies... but
I made a study
Gave it a title
The title isn't appearing in the table?

Also seeing this, Montana made some studies and gave me editor or viewer permissions, they appear in my table but do not display the study name.

This has nothing to do with the Berkeley submission schema (https://github.com/microbiomedata/submission-schema/issues/220). It has nothing to do with the Berkeley refactor branch of nmdc-server at all.
I verified that you can see the same behavior on dev today. Based on a very brief assessment I would say that it is related to the changes in https://github.com/microbiomedata/nmdc-server/pull/1322. Since those changes have already gone to prod, I assume you would see the same behavior there, as well, but I haven't tested it specifically.

FWIW in prod its a mix of title and no title.


Extracting out tf.bin_values_fixed_width from tf.histogram_fixed_width.

Can one of the admins verify this patch?

I signed it!

Jenkins, test this please.

How can I visualize the jenkins logs remotely? All the tests pass locally (with both Python 3 and 2.7) so I need get access to the logs to determine why its failing via Jenkins.

https://ci.tensorflow.org/job/tensorflow-pull-requests-cpu/6999/console is an example of the link to the logs. I seem them in the review section below the comments on the PR.
Traceback (most recent call last):
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/contrib/metrics/python/kernel_tests/histogram_ops_test.py", line 117, in test_large_class_imbalance_still_ok
    num_updates=1000)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/contrib/metrics/python/kernel_tests/histogram_ops_test.py", line 162, in _check_auc
    labels, scores, score_range, nbins=nbins)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/contrib/metrics/python/ops/histogram_ops.py", line 88, in auc_using_histogram
    score_range, nbins)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/contrib/metrics/python/ops/histogram_ops.py", line 138, in _make_auc_histograms
    name='hist_true')
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/python/ops/histogram_ops.py", line 138, in histogram_fixed_width
    indices = bin_values_fixed_width(values, value_range, nbins, dtype, scope)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/python/ops/histogram_ops.py", line 96, in bin_values_fixed_width
    return array_ops.reshape(indices, shape)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/python/ops/gen_array_ops.py", line 3920, in reshape
    "Reshape", tensor=tensor, shape=shape, name=name)
  File "/var/lib/jenkins/workspace/tensorflow-pull-requests-cpu/bazel-ci_build-cache/.cache/bazel/_bazel_jenkins/eab0d61a99b6696edb3d2aff87b585e8/execroot/org_tensorflow/bazel-out/local-opt/bin/tensorflow/contrib/metrics/histogram_ops_test.runfiles/org_tensorflow/tensorflow/python/framework/op_def_library.py", line 528, in _apply_op_helper
    (input_name, err))
ValueError: Tried to convert 'shape' to a tensor and failed. Error: Cannot convert a partially known TensorShape to a Tensor: (?,)

Jenkins, test this please.

Jenkins, test this please

The only test that appears to be failing is the goldens tensorflow/tools/api/tests:api_compatibility_test which passes locally. As per the jenkins stdout, I ran:
    $ bazel build tensorflow/tools/api/tests:api_compatibility_test
    $ bazel-bin/tensorflow/tools/api/tests/api_compatibility_test \
          --update_goldens True

but this did not appear to alter any files.

Any thoughts on how to get the compatibility tests to pass?

The golden files should be updated as part of this pull request. The --update_goldens flag should update the goldens. @gunan might have some thoughts as to why it's not working.

You need to use python2 to update goldens.
Sorry, I meant to document this for a long time now, but keep forgetting.

Ran it locally using Python 2.7, no other files changed.

That is weird. Could you share the stdout when you run the following:
bazel-bin/tensorflow/tools/api/tests/api_compatibility_test --update_goldens True

Then you should check what git status outputs.

(tf) Nathans-MacBook-Pro:tensorflow nathansilberman$ bazel-bin/tensorflow/tools/api/tests/api_compatibility_test           --update_goldens True
s.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK (skipped=1)
(tf) Nathans-MacBook-Pro:tensorflow nathansilberman$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   tensorflow/python/ops/histogram_ops_test.py

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	.cache/
	tf/

no changes added to commit (use "git add" and/or "git commit -a")
(tf) Nathans-MacBook-Pro:tensorflow nathansilberman$ python --version
Python 2.7.10
(tf) Nathans-MacBook-Pro:tensorflow nathansilberman$

Note that the tf directory contains my virtual env and the histogram_ops_test.py change is a minor formatting change.

Is it possible in your local repository you have a commit not pushed to your remote branch?
Sorry for exploring possible issues on your end, I am also looking into why the test might be doing this.

From api-review: I think I prefer the name "tf.histogram_fixed_width_bins" more than "tf.bin_values_fixed_width", and it would clearly indicate the connection to "tf.histogram_fixed_width".

(otherwise fine for API review.)

Updated the files, still seeing no differences when running the api_compatibility_test with --update_goldens=True. I'm not sure how to proceed here.

I think the API test requires Python 2.

@josh11b I ran the tests using Python2:
(tf2) Nathans-MacBook-Pro:tf nathansilberman$ python --version
Python 2.7.10
(tf2) Nathans-MacBook-Pro:tf nathansilberman$ bazel-bin/tensorflow/tools/api/tests/api_compatibility_test           --update_goldens True
s.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK (skipped=1)

There is our problem:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/api/tests/api_compatibility_test.py#L194
Only runs on linux. I will check if we can enable this on other OSs.

Any update on this?

I did not have time to see if on macos we can run the api compatibility checks without any changes.
could you run and update the api goldens under an ubuntu docker image?
You should be able to use our devel docker images to make the update.
Once that is ready, we can get another final nod for api review and merge the change.

@gunan, can we run compatibility in MacOS? If still unknown, is finding out as simple as running them to see whether there are differences in file handling (I thought you already fixed those anyway)?

It should be as simple as that. Never quite found the time to look into it though.

@nathansilberman sorry the code has since changed, could you please pull rebase and push again?


Would you ever distribute SpatiaLite?

I'm curios if you'd ever consider packaging SpatiaLite as part of SQLitePCL.raw. I'm not looking for any .NET bindings or anything; just enough to enable a cross-platform workflow like this:
dotnet add package SQLitePCLRaw.ext.spatialite

SQLitePCL.raw.sqlite3_enable_load_extension(db, 1);

SELECT load_extension('spatialite');

Maaaaybe.
I don't know much about SpatiaLite, so it would seem silly at this point to either promise or refuse.

Digging into it, I don't think this belongs as part of this project. SpatiaLite has a lot of external dependencies.
I plan to create a NuGet package to make installation on Windows (x86 and x64) easier, but everywhere else, it probably makes more sense just to install it globally using APT/Homebrew/etc.


ESP32/ESP32-s3 crash Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1).

Hi,
I'm facing a Guru Meditation Error on my ESP32 Dev Module and ESP32-S3 Dev Module boards when trying to implement a basic code. The error occurs when sending the MIDI clock message, and it leads to a reboot with the following message:
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1).
Additionally, the backtrace shows corruption in the core 1 and core 0 register dumps.
Code:
#include "Arduino.h"
#include <HardwareSerial.h>
#include <MIDI.h>
#include <uClock.h>

#define TXD2 17
#define RXD2 18
#define LED 2

byte clockCounter = 0; // Count the MIDI clock pulses, 24 pulses per quarter note
bool midiClockLedOn = false;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI_Serial);

// The callback function which will be called by Clock each Pulse of 96PPQN clock resolution.
void ClockOut96PPQN(uint32_t tick)
{
    // Send MIDI_CLOCK to external gears
    HandleSendMIDIClock();
}

void setup()
{
    Serial.begin(115200); // setup HW serial for debug communication
    Serial2.begin(31250, SERIAL_8N1, RXD2, TXD2); // setup Serial2 for MIDI control

    pinMode(LED, OUTPUT); // set the LED pin as an output
    digitalWrite(LED, LOW); // turn off the LED

    MIDI_Serial.begin(MIDI_CHANNEL_OMNI); // Initiate MIDI_Serial communications, listen to all channels
    MIDI_Serial.turnThruOff();

    // Inits the clock
    uClock.init();
    // Set the callback function for the clock output to send MIDI Sync message.
    uClock.setClock96PPQNOutput(ClockOut96PPQN);
    // Set the clock BPM to 126 BPM
    uClock.setTempo(126);

    // Starts the clock, tick-tac-tick-tac...
    uClock.start();
};

void loop() {
    // Empty loop, no need to execute anything repeatedly.
};

void HandleSendMIDIClock()
{
    //MIDI_Serial.sendRealTime(midi::Clock); // <= crashes as soon commented out
    // Serial2.write(0xF8); <= tried also this, same crash

    // Increment the clock counter, wrap around after 24 pulses
    clockCounter = (clockCounter + 1) & 0x0F;

    handle_bpm_led(clockCounter); // leds work fine
}

void handle_bpm_led(uint32_t tick)
{
    // BPM led indicator
    if (tick == 0 || tick % 24 == 0) { // Each quarter note
        midiClockLedOn = true;
        digitalWrite(LED, HIGH);
    } else if (midiClockLedOn && tick % 24 == 6) { // Turn off the LED after 6 ticks (1/16th note duration)
        midiClockLedOn = false;
        digitalWrite(LED, LOW);
    }
}

Error:
Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1).

Libraries used: Arduino, HardwareSerial, MIDI, and uClock.
The backtrace shows corruption in core 1 and core 0 register dumps.

I was able once or twice to let the code run for 10 seconds on ESP32-S3 and the clock accuracy is perfect, 126 sent, 126 get. but suddenly it crashed over and over...
Has the library already been tested with these platforms?
Something that I have missed out?

Because HandleSendMIDIClock is called from interrupt so you can't MIDI_Serial.sendRealTime(midi::Clock);.
One of the best ways to fix this is to use xSemaphore. With your code that should be some things like this:
#include "Arduino.h"
#include <HardwareSerial.h>
#include <MIDI.h>
#include <uClock.h>
#include <freertos/semphr.h>

#define TXD2 17
#define RXD2 18
#define LED 2

static SemaphoreHandle_t xSemaphore = NULL;
static BaseType_t xHigherPriorityTaskWoken = pdFALSE;

byte clockCounter = 0; // Count the MIDI clock pulses, 24 pulses per quarter note
bool midiClockLedOn = false;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI_Serial);

// The callback function which will be called by Clock each Pulse of 96PPQN clock resolution.
void ClockOut96PPQN(uint32_t tick)
{
    // Send MIDI_CLOCK to external gears
    HandleSendMIDIClock();
}

void setup()
{
    xSemaphore = xSemaphoreCreateBinary();
    Serial.begin(115200);                         // setup HW serial for debug communication
    Serial2.begin(31250, SERIAL_8N1, RXD2, TXD2); // setup Serial2 for MIDI control

    pinMode(LED, OUTPUT);   // set the LED pin as an output
    digitalWrite(LED, LOW); // turn off the LED

    MIDI_Serial.begin(MIDI_CHANNEL_OMNI); // Initiate MIDI_Serial communications, listen to all channels
    MIDI_Serial.turnThruOff();

    // Inits the clock
    uClock.init();
    // Set the callback function for the clock output to send MIDI Sync message.
    uClock.setClock96PPQNOutput(ClockOut96PPQN);
    // Set the clock BPM to 126 BPM
    uClock.setTempo(126);

    // Starts the clock, tick-tac-tick-tac...
    uClock.start();
};

void loop()
{
    // Empty loop, no need to execute anything repeatedly.
    if (xSemaphoreTake(xSemaphore, portMAX_DELAY))
    {
        MIDI_Serial.sendRealTime(midi::Clock);
        xHigherPriorityTaskWoken = pdFALSE;
    }
};

void HandleSendMIDIClock()
{
    xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
    // Increment the clock counter, wrap around after 24 pulses
    clockCounter = (clockCounter + 1) & 0x0F;
    handle_bpm_led(clockCounter); // leds work fine
    portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}

void handle_bpm_led(uint32_t tick)
{
    // BPM led indicator
    if (tick == 0 || tick % 24 == 0)
    { // Each quarter note
        midiClockLedOn = true;
        digitalWrite(LED, HIGH);
    }
    else if (midiClockLedOn && tick % 24 == 6)
    { // Turn off the LED after 6 ticks (1/16th note duration)
        midiClockLedOn = false;
        digitalWrite(LED, LOW);
    }
}

@animevietsub just tested with your changes and it works pretty well out of the box, thanks alot!
But now I'm facing other backtrace now and then:
assert failed: xQueueSemaphoreTake queue.c:1554 (!( ( xTaskGetSchedulerState() == ( ( BaseType_t ) 0 ) ) && ( xTicksToWait != 0 ) ))

Backtrace: 0x403780d6:0x3fc9a990 0x40380595:0x3fc9a9b0 0x40386b25:0x3fc9a9d0 0x4038157e:0x3fc9ab00 0x42038cb3:0x3fc9ab40 0x42038c75:0x3fc9ab60 0x420383f2:0x3fc9abf0 0x420155b3:0x3fc9ac10 0x42002c59:0x3fc9ac30 0x42002c6b:0x3fc9ac50 0x42036715:0x3fc9ac70 0x420367a7:0x3fc9ac90 0x4037e66f:0x3fc9acb0 0x403761d8:0x3fc9acd0 0x4037962d:0x3fc9acf0 0x400559dd:0x3fceb920 |<-CORRUPTED

let's dig into this, but thanks again!

Can you send me your current code? Which ESP32 boards are you compiling?
I try in my ESP32 DEV KIT and it works.

The code I posted at the beginning was just a test sketch, the main code is actually much, much bigger, board is ESP32-S3, this is the related code now:
#include "Arduino.h"
#include <HardwareSerial.h>
#include <MIDI.h>
#include <freertos/semphr.h>
#include <uClock.h>

#define TXD2 17
#define RXD2 18
#define LED 2

int TapTempoBPM = 120;

static SemaphoreHandle_t xSemaphore = NULL;
static BaseType_t xHigherPriorityTaskWoken = pdFALSE;

byte clockCounter = 0; // Count the MIDI clock pulses, 24 pulses per quarter note
bool midiClockLedOn = false;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI_Serial);

// The callback function which will be called by Clock each Pulse of 96PPQN clock resolution.
void ClockOut96PPQN(uint32_t tick)
{
    // Send MIDI_CLOCK to external gears
    HandleSendMIDIClock();
}

void setup()
{
    xSemaphore = xSemaphoreCreateBinary();
    Serial.begin(115200); // setup HW serial for debug communication
    Serial2.begin(31250, SERIAL_8N1, RXD2, TXD2); // setup Serial2 for MIDI control

    pinMode(LED_BUILTIN, OUTPUT); // set the LED pin as an output
    digitalWrite(LED_BUILTIN, LOW); // turn off the LED

    MIDI.setHandleControlChange(handleControlChangeIN); // BLEMIDI CC Callback
    MIDI.setHandleProgramChange(handleProgramChangeIN); // BLEMIDI PC Callback
    MIDI.setHandleClock(handleMidiClockIn); // BLEMIDI Clock Callback
    MIDI.begin(MIDI_CHANNEL_OMNI); // Initiate BLEMIDI communications, listen to all channels

    MIDI_Serial.setHandleControlChange(handleControlChangeIN); // MIDI_Serial CC Callback
    MIDI_Serial.setHandleProgramChange(handleProgramChangeIN); // MIDI_Serial PC Callback
    MIDI_Serial.setHandleClock(handleMidiClockIn); // MIDI_Serial Clock Callback
    MIDI_Serial.begin(MIDI_CHANNEL_OMNI); // Initiate MIDI_Serial communications, listen to all channels
    MIDI_Serial.turnThruOff();

    // Inits the clock
    uClock.init();
    // Set the callback function for the clock output to send MIDI Sync message.
    uClock.setClock96PPQNOutput(ClockOut96PPQN);
    // Set the clock BPM to 126 BPM
    uClock.setTempo(126);

    // Starts the clock, tick-tac-tick-tac...
    uClock.start();
};

void loop()
{

/// ....other code
        //////MIDI CLOCK/////
        if (sendMidiClock) {
            uClock.setTempo(TapTempoBPM);
            if (xSemaphoreTake(xSemaphore, portMAX_DELAY)) {
                if (midiOutBleActive) // value can be set from APP
                {
                    MIDI.sendRealTime(midi::Clock);
                }

                // DIN SERIAL MIDI
                if (midiOutDINActive) {
                    MIDI_Serial.sendRealTime(midi::Clock);
                }

                xHigherPriorityTaskWoken = pdFALSE;
            }
        }

        /// ....other code
};

void HandleSendMIDIClock()
{
    xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
    // Increment the clock counter, wrap around after 24 pulses
    clockCounter = (clockCounter + 1) & 0x0F;
    handle_bpm_led(clockCounter); // leds work fine
    portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}

void handle_bpm_led(uint32_t tick)
{
    // BPM led indicator
    if (tick == 0 || tick % 24 == 0) { // Each quarter note
        midiClockLedOn = true;
        digitalWrite(LED_BUILTIN, HIGH);
    } else if (midiClockLedOn && tick % 24 == 6) { // Turn off the LED after 6 ticks (1/16th note duration)
        midiClockLedOn = false;
        digitalWrite(LED_BUILTIN, LOW);
    }
}

it actually works fine if no other tasks run in parallel, like sometimes it crashes when I update the tempo with:
uClock.setTempo(TapTempoBPM);
but is now pretty random

Trying now to import everything in PIO

@animevietsub I was able to decode the backtrace:
assert failed: xQueueSemaphoreTake queue.c:1554 (!( ( xTaskGetSchedulerState() == ( ( BaseType_t ) 0 ) ) && ( xTicksToWait != 0 ) ))

Backtrace: 0x40378122:0x3fc9a5b0 0x4037fc85:0x3fc9a5d0 0x403867d5:0x3fc9a5f0 0x40380c6e:0x3fc9a720 0x42037517:0x3fc9a760 0x420374d9:0x3fc9a780 0x42036c5a:0x3fc9a810 0x42015683:0x3fc9a830 0x42002d3d:0x3fc9a850 0x42002d4f:0x3fc9a870 0x4201f869:0x3fc9a890 0x4201f8fb:0x3fc9a8b0 0x4037dd73:0x3fc9a8d0 0x40376214:0x3fc9a8f0 0x403795a5:0x3fc9a910 0x400559dd:0x3fceba40 |<-CORRUPTED

  #0  0x40378122:0x3fc9a5b0 in panic_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/panic.c:408
  #1  0x4037fc85:0x3fc9a5d0 in esp_system_abort at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/esp_system.c:137
  #2  0x403867d5:0x3fc9a5f0 in __assert_func at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/newlib/assert.c:85
  #3  0x40380c6e:0x3fc9a720 in xQueueSemaphoreTake at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/queue.c:1549 (discriminator 1)
  #4  0x42037517:0x3fc9a760 in rmtWrite at /Users/cyberdevnet/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-rmt.c:384 (discriminator 1)
  #5  0x420374d9:0x3fc9a780 in neopixelWrite at /Users/cyberdevnet/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-rgb-led.c:46
  #6  0x42036c5a:0x3fc9a810 in __digitalWrite at /Users/cyberdevnet/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:141
      (inlined by) __digitalWrite at /Users/cyberdevnet/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:135
  #7  0x42015683:0x3fc9a830 in handle_bpm_led(unsigned int) at src/src/midi/MidiIN.cpp:446
      (inlined by) handle_bpm_led(unsigned int) at src/src/midi/MidiIN.cpp:438
  #8  0x42002d3d:0x3fc9a850 in HandleSendMIDIClock() at src/Medusa.ino:814
  #9  0x42002d4f:0x3fc9a870 in ClockOut96PPQN(unsigned int) at src/Medusa.ino:127
  #10 0x4201f869:0x3fc9a890 in umodular::clock::uClockClass::handleTimerInt() at /Users/cyberdevnet/Documents/Arduino/libraries/uClock/src/uClock.cpp:331
  #11 0x4201f8fb:0x3fc9a8b0 in uclockISR() at /Users/cyberdevnet/Documents/Arduino/libraries/uClock/src/uClock.cpp:427
  #12 0x4037dd73:0x3fc9a8d0 in timerFnWrapper at /Users/cyberdevnet/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-timer.c:218
  #13 0x40376214:0x3fc9a8f0 in timer_isr_default at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/driver/timer.c:208
      (inlined by) timer_isr_default at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/driver/timer.c:186
  #14 0x403795a5:0x3fc9a910 in _xt_lowint1 at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/port/xtensa/xtensa_vectors.S:1114
  #15 0x400559dd:0x3fceba40 in ?? ??:0

I decided to not implement this feature, a reliable clock should be provided by external source IMHO, but your code should be put in the Examples, as a Standalone works just fine!

If you still want to continue try to put:
handle_bpm_led(clockCounter); // leds work fine
before:
xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
so the total code should be:
#include "Arduino.h"
#include <HardwareSerial.h>
#include <MIDI.h>
#include <freertos/semphr.h>
#include <uClock.h>

#define TXD2 17
#define RXD2 18
#define LED 2

int TapTempoBPM = 120;

static SemaphoreHandle_t xSemaphore = NULL;
static BaseType_t xHigherPriorityTaskWoken = pdFALSE;

byte clockCounter = 0; // Count the MIDI clock pulses, 24 pulses per quarter note
bool midiClockLedOn = false;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI_Serial);

// The callback function which will be called by Clock each Pulse of 96PPQN clock resolution.
void ClockOut96PPQN(uint32_t tick)
{
    // Send MIDI_CLOCK to external gears
    HandleSendMIDIClock();
}

void setup()
{
    xSemaphore = xSemaphoreCreateBinary();
    Serial.begin(115200); // setup HW serial for debug communication
    Serial2.begin(31250, SERIAL_8N1, RXD2, TXD2); // setup Serial2 for MIDI control

    pinMode(LED_BUILTIN, OUTPUT); // set the LED pin as an output
    digitalWrite(LED_BUILTIN, LOW); // turn off the LED

    MIDI.setHandleControlChange(handleControlChangeIN); // BLEMIDI CC Callback
    MIDI.setHandleProgramChange(handleProgramChangeIN); // BLEMIDI PC Callback
    MIDI.setHandleClock(handleMidiClockIn); // BLEMIDI Clock Callback
    MIDI.begin(MIDI_CHANNEL_OMNI); // Initiate BLEMIDI communications, listen to all channels

    MIDI_Serial.setHandleControlChange(handleControlChangeIN); // MIDI_Serial CC Callback
    MIDI_Serial.setHandleProgramChange(handleProgramChangeIN); // MIDI_Serial PC Callback
    MIDI_Serial.setHandleClock(handleMidiClockIn); // MIDI_Serial Clock Callback
    MIDI_Serial.begin(MIDI_CHANNEL_OMNI); // Initiate MIDI_Serial communications, listen to all channels
    MIDI_Serial.turnThruOff();

    // Inits the clock
    uClock.init();
    // Set the callback function for the clock output to send MIDI Sync message.
    uClock.setClock96PPQNOutput(ClockOut96PPQN);
    // Set the clock BPM to 126 BPM
    uClock.setTempo(126);

    // Starts the clock, tick-tac-tick-tac...
    uClock.start();
};

void loop()
{

/// ....other code
        //////MIDI CLOCK/////
        if (sendMidiClock) {
            uClock.setTempo(TapTempoBPM);
            if (xSemaphoreTake(xSemaphore, portMAX_DELAY)) {
                if (midiOutBleActive) // value can be set from APP
                {
                    MIDI.sendRealTime(midi::Clock);
                }

                // DIN SERIAL MIDI
                if (midiOutDINActive) {
                    MIDI_Serial.sendRealTime(midi::Clock);
                }

            }
        }

        /// ....other code
};

void HandleSendMIDIClock()
{
    // Increment the clock counter, wrap around after 24 pulses
    clockCounter = (clockCounter + 1) & 0x0F;
    handle_bpm_led(clockCounter); // leds work fine
    xHigherPriorityTaskWoken = pdFALSE;
    xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
    portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}

void handle_bpm_led(uint32_t tick)
{
    // BPM led indicator
    if (tick == 0 || tick % 24 == 0) { // Each quarter note
        midiClockLedOn = true;
        digitalWrite(LED_BUILTIN, HIGH);
    } else if (midiClockLedOn && tick % 24 == 6) { // Turn off the LED after 6 ticks (1/16th note duration)
        midiClockLedOn = false;
        digitalWrite(LED_BUILTIN, LOW);
    }
}

Hi @cyberdevnet
Has the library already been tested with these platforms?
Since its was the latest platform ported for uClock, it wasn't fully tested over all boards, but it is using Hal library behind the scene wich kinda makes it work on every esp32(so far HAL library developers claims that).
But dual core architecture makes it a harder platform to code realtime systems, so depending on what you're planning to do with the clock signal you will need to handle shared resources over parallel execution for 2 different CPUs and a ISR interruption(mechanism for sync that uClock uses).
Probrably the best start point is to chose run Arduino in one core only, use the other for any other task not arduino then. But there are ways to use both too, this is just a suggestion as start point.
Something that I have missed out?
You can try this example as start point. Like @animevietsub has pointed out, you cant use serial in this context to send data, so you need to create mechanism to handle shared resourse like a midi incoming flag in the example above:
https://github.com/midilab/uClock/blob/main/examples/ESP32UartMasterMidiClock/ESP32UartMasterMidiClock.ino

@animevietsub I commented out the handle_bpm_led function and until now no crashes:
void HandleSendMIDIClock()
{
    // Increment the clock counter, wrap around after 24 pulses
    xHigherPriorityTaskWoken = pdFALSE;
    // clockCounter = (clockCounter + 1) & 0x0F;
    // handle_bpm_led(clockCounter); // leds work fine
    xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken);
    portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}

@midilab I'm gonna try your suggestion about using a separate task with freertos, I have just to learn how ^^.
I think we're very close :)

This is more or less my implementation (just a crop of the interesting code, not the whole running code).
#include "Arduino.h"
#include <MIDI.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <uClock.h>

int TapTempoBPM;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial2, MIDI_Serial);
BLEMIDI_CREATE_INSTANCE("MIDI_BLE", MIDI)

volatile bool _midi_clk_income = false;
TaskHandle_t midiClockTaskHandle;

// Internal clock handlers
void ClockOut96PPQN(uint32_t tick)
{
    // Send MIDI_CLOCK to external gears
    _midi_clk_income = true;
    // handle_bpm_led(tick);  => removed, crashes
}

// Task function to handle MIDI Clock
void HandleSendMIDIClockTask(void* pvParameters)
{
    while (true) {
        // watch for income signal from uClock to fire the clock over midi
        if (_midi_clk_income) {
            uClock.setTempo(TapTempoBPM);
            if (midiOutBleActive) // value can be set from APP
            {
                MIDI.sendRealTime(midi::Clock);
            }

            // DIN SERIAL MIDI
            if (midiOutDINActive) {
                MIDI_Serial.sendRealTime(midi::Clock);
            }
            _midi_clk_income = false;

            vTaskDelay(pdMS_TO_TICKS(1));
        }
    }
}

void setup() {
    Serial.begin(115200); // setup HW serial for debug communication
    Serial2.begin(31250, SERIAL_8N1, RXD2, TXD2); // setup Serial2 for MIDI control

    MIDI.setHandleControlChange(handleControlChangeIN); // BLEMIDI CC Callback
    MIDI.setHandleProgramChange(handleProgramChangeIN); // BLEMIDI PC Callback
    MIDI.setHandleClock(handleMidiClockIn); // BLEMIDI Clock Callback
    MIDI.begin(MIDI_CHANNEL_OMNI); // Initiate BLEMIDI communications, listen to all channels

    MIDI_Serial.setHandleControlChange(handleControlChangeIN); // MIDI_Serial CC Callback
    MIDI_Serial.setHandleProgramChange(handleProgramChangeIN); // MIDI_Serial PC Callback
    MIDI_Serial.setHandleClock(handleMidiClockIn); // MIDI_Serial Clock Callback
    MIDI_Serial.begin(MIDI_CHANNEL_OMNI); // Initiate MIDI_Serial communications, listen to all channels
    MIDI_Serial.turnThruOff();

    ////////////////////////////////////////////////////////////////////////////////////////////
    // Setup our clock system
    // Inits the clock
    uClock.init();
    // Set the callback function for the clock output to send MIDI Sync message.
    uClock.setClock96PPQNOutput(ClockOut96PPQN);
    // Set the clock BPM to 126 BPM
    uClock.setTempo(TapTempoBPM);
    // Starts the clock, tick-tac-tick-tac...
    uClock.start();

    // Create the HandleSendMIDIClock task on core 1
    xTaskCreatePinnedToCore(HandleSendMIDIClockTask, "midiClockTask",
        2048, // Stack size (adjust if needed)
        NULL,
        1, // Priority of the task
        &midiClockTaskHandle,
        1 // Core 1
    );

    ////////////////////////////////////////////////////////////////////////////////////////////
}

void loop() {

}

Everything is running pretty fine, except for the blinking LED that crashes occasionally (but I don't actually need it). Could you please take a look at it? Thanks!
By the way, I've noticed that when I change the tempo "live" with uClock.setTempo(TapTempoBPM), there's always a fluctuation of 2-3 seconds until the clock stabilizes. I think this is just a normal behavior, right?

Hi @cyberdevnet
Looking at your code i would make two changes:

Only change _midi_clk_income using between interrupts() and noInterrupts() just as the example i sent to you. otherwise you    can't garantee that the variable are being writing correctly(wich can lead to loss of timming accuracy).
Delays and realtime operations are not a good way to go. So i would take that delay function off. Why are you using it?

By the way, I've noticed that when I change the tempo "live" with uClock.setTempo(TapTempoBPM), there's always a fluctuation of 2-3 seconds until the clock stabilizes. I think this is just a normal behavior, right?
It depends on who is receiving the timming, or where you're seeing those fluctiations.

Hi @midilab
Thanks for your suggestions, this seems to work pretty fine, other tasks run smoothly and don't affect the Midi Clock
void HandleSendMIDIClockTask(void* pvParameters)
{
    TickType_t lastWakeTime = xTaskGetTickCount(); // Initialize the last wake time

    while (true) {
        // watch for income signal from uClock to fire the clock over MIDI
        if (_midi_clk_income) {
            uClock.setTempo(TapTempoBPM);
            if (midiOutBleActive) // value can be set from APP
            {
                MIDI.sendRealTime(midi::Clock);
            }

            // DIN SERIAL MIDI
            if (midiOutDINActive) {
                MIDI_Serial.sendRealTime(midi::Clock);
            }

            _midi_clk_income = false;
        }

        vTaskDelayUntil(&lastWakeTime, pdMS_TO_TICKS(1));
    }
}

I wasn't able to remove the while loop there...crash! 👯♂

closing due to inactivity

So after review the implementation(since i didn't know about the freertos integrated with esp32duino environment) i decide to code everything hidding those concurrency implementations from the user, so he can now use it the same way as other microcontorllers. you can pull the latest git commit to have access to it. also check the example for ESP32 to test it!


transforms.functional.resize broken for (h,w) tensors

🐛 Describe the bug
torchvision version: linux condaforge '0.13.1+cu113'
import torch
import torchvision

# Breaks
"""
ValueError: Input and output must have the same number of spatial dimensions, but got input with with spatial dimensions of [640] and output size of [960, 1280]. Please provide input tensor in (N, C, d1, d2, ...,dK) format and output size in (o1, o2, ...,oK) format.
"""
a = torch.zeros((480, 640))
a = torchvision.transforms.functional.resize(a, (2 * 480, 2 * 640))
print(a.shape)

# Works
b = torch.zeros((480, 640))
b = b.unsqueeze(0)
print(b.shape)
b = torchvision.transforms.functional.resize(b, (2 * 480, 2 * 640))
print(b.shape)

Versions
wget https://raw.githubusercontent.com/pytorch/pytorch/master/torch/utils/collect_env.py
For security purposes, please check the contents of collect_env.py before running it.
python collect_env.py
cc @vfdev-5

For reference, there is #6580 that tries to add full 2D support for transforms v2.


Help Wanted❗💰

A few things I need support with for this project and am likely willing to pay some small amount for meaningful assistance with:
High priority :

[ ] Website for browsing / installing plugins
[ ] Support on backend development (Firebase)

Medium priority :

[ ] Security improvements
[ ] Code cleanup / Refactoring

Low priority :

[ ] Translations

Done

[x] New more professional and cleaner icon set (Dock and menubar)

You can also check out the Projects page for a basic 1.0 roadmap.

Please tell me icons specifications you need, maybe i could assist for icons.

@kingtosh
For sizing:

https://iconhandbook.co.uk/reference/chart/osx/

For the menubar:

Preferably very similar or the same design as the main app icon

For the main app icon:

Vector image if possible
Preferably the logo would be inside a circular border with a gradient background similar to the app store icon or many other stock apps.

Preferably the logo would be simple with a minimal amount of complexity.
Preferably the image would be based around either

Forging something eg.

Or MacOS default KEXT icon

New icons have been acquired.

Hi! I am interested in helping out with cleanup and probably backed using Firebase.
I currently have some ideas on improving the app.  These are:

Fixing the remove bundle functionality (actually already have it on my branch)
Synchronisation problems between get / remove because get button doesn't wait until bundle has been installed and goes straight into enabling the remove and donate buttons.

@npyl
That's awesome, thanks! Agree that the app needs some refactoring as well.
I've applied all the changes in your branch as well as a few I had already made and I'll be pushing out an update soon.

Hey @w0lfschild
Thanks for merging my patches.
I just rebased and encountered a problem: MacForge starts up, prints a lot "hol up" messages and doesn't respond to Remove and Donate.

@npyl

Pretty sure I unlinked both the remove and donate button in the latest build. 😅
"hol up" was just me doing some testing as a few users were getting an error

Assertion failed: (c != nil), function +[MFInjectorProxy injectPID:::], file /Users/w0lf/GitHub/wb_MacForge/MacForge/MacForgeHelper/MFInjectorProxy.m, line 19

Just change this line to if (c == nil) {
https://github.com/w0lfschild/MacForge/blob/6a978fac7f79c7c138c489aaf2c315b883e32a82/MacForge/MacForgeHelper/MFInjectorProxy.m#L19

I had no problems setting up Firebase and getting user accounts set up. It's more of implementing backend features like

Star rating system + reviews
Linking purchases to accounts
Tracking downloads

I just don't really know much about databases and or web specific languages to be able to do that stuff myself.
Currently the code is commented out because adding Firebase to the project just increases compile time and adds like 30MB to the app size so until I have something more meaningful than logining in and out and setting a profile image I just removed the code and frameworks.
As for pay, I'm not really sure but probably a few hundred dollars ideally if someone could kind of teach me a bit about what they end up implementing. I'm also just not really sure of the difficulty of what I'm asking is. I'd honestly imagine it's not too hard if you know what you're doing.

Hey
Okay, at some point I realised it must have been a stale debugging thing so I changed != to ==. 😆
As for Firebase, I am still interested.  I myself am not very well versed with web stuff though I am willing to take a stub on it.
I will have a look at it these days, actually.
Oh, btw, happy holidays.

Hey,
I've been digging around, learning Firebase and checking-out the code and I have realised I have some questions. First:

How do you want the user-related views to work?

I think that the user shown on the sidebar on the left needs to be the one currently signed-in.
If nobody is signed in, then the name should be that of the current OS-user.
On this mindset, there need to be 2 kinds of views:

Account sign-in (with ability to register a new user)
Account sign-up (the view that implements the ability mentioned on previous bullet)

Is this how we want to do things?

I am a bit confused on how selection of views is implemented.  Which methods are used in for changing the selected view, in particular?
(I think I will understand sooner or later, anyway)

@npyl
Yeah as you probably noticed I had already made some basic sign in views.
If you actually go back a few versions of MacForge before I disabled the account tab you could already create / sign in and out / update an account but since it served no purpose not a single person did.
As I said earlier

Currently the code is commented out because adding Firebase to the project just increases compile time and adds like 30MB to the app size so until I have something more meaningful than logining in and out and setting a profile image I just removed the code and frameworks.

As for what you've done. It seems fine so far.

Trying to add a picture crashed the app if I cancelled and then I wasn't able to get back to that screen again.
The views don't seem to be lining up right

@w0lfschild Hope you don't mind if I piggyback off your conversation here. I am interested in helping with cleanup as a means to getting more familiar with obcj and swift. I'm not sure I could contribute anything terribly useful but there are a few GUI tweaks I have in mind. Mostly minor annoyances that I've come across, such as not being able to see the full description on the update tab.
I'm running into an issue trying to build the project after a clean clone:
error: Build input file cannot be found: '/Users/bermudalocket/git/MacForge/MacForge/MacForge/GoogleService-Info.plist' (in target 'MacForge' from project 'MacForge')
Unfortunately I'm not familiar with Firebase. A quick search led me to a Firebase documentation page mentioning that you have to sign in to your Firebase account to download said plist file... which can't be right? So now I'm here!

@bermudalocket
Removing the GoogleService-Info.plist should be fine.

@npyl
Just pushed out a commit that implements some of your stuff from your dev branch in the way I envision the account view working.

@w0lfschild
Ηey, I checked it out and I like your changes; I think we should keep them.
Some improvements:
One thing to mention, there is no way to set the username and the photo (photoURL) of the user.
This causes a crash on startup after creation of a user.
Other than that, it's pretty nice.
I am currently giving a look at Firestore.  It seems really easy and uses the NoSQL scheme.

@w0lfschild
Hey
I checked it out.
I liked the design but I think there needs to be some kind of changes related to user creation.
I find it more convenient to be able to directly set the username and user photo through the Αccount Sign In view.
I don't find it practical to have to go to User Info and then Update.
That's only an idea though.  :)

@npyl
I don't mind having user name a photo assigned at creation but they're also unnecessary and can just be the user profile name and icon by default.
Answer 1.1
I'm not sure about syncing functionality but certainly I think it would be nice to keep track of purchases and be able to download them from the account view.
Answer 2
Right now I don't think there is any reason to put in work relating to multiple users on one computer because the number of instances of that are probably close to or equal to 0.

Okay @w0lfschild ,
When it's done, I will send you a video showing the result.
Finally, If you decide that you like my work I will publish half of the end-project on Github (Ratings & Reviews support) and will expect a 50% payment of the reward.
I will publish the rest (and final) 50% (Purchases support) after the 1st payment.
I guess we could start talking about the reward when you see the video (?).
I will also provide support (without reward) for any problem that comes up with my code upon soon notice.
I am not sure if you like my terms; please tell me if anything better comes to mind, I'm generally open to proposals.
Thanks for the cooperation,
Nick

@npyl
Do you have discord or some other way of instant messaging instead of conversing through this issue?

@w0lfschild
Sure, my tag is npyl#8111

@w0lfschild So you ve now helped me, now its time i help you, i can probably be a part of this: Website for browsing / installing plugins

@w0lfschild i can probably also help a bit with this: Translations

Your website might be ready (ETA not known) I can make it at MacForge.github.io/Browse-Plugins/

Translations i know are: A bit of portuguese, a lot of english, and tons of spanish, i can also use google translate

Well thanks for the offers.
At the current time I'm not sure about translations until I get the majority of the 1.0 design squared away.
In terms of web-design though, yeah I could use help with that. Basically I'd like to have a page of all the plugins generated from https://github.com/MacEnhance/MacForgeRepo/blob/master/repo/packages.plist

sure, i will make a cool webpage hosted by: Github Pages im sorry if the repo will have an addres you dont want, i have a repo already with the name of: luixiuno.github.io for cydia, its beta, it almost always breaks cydia

Ok So That Package List Is SOOOOO long, ik what to do
i need a link to open the app so then, its like you go to my website then click redirect to package and then: open in MacForge

If you want a website hosted by me, you can just ask at github or at<EMAIL_ADDRESS>

Hey wolfgang, i might later have a pre-built version of the beta of MacForge, signed with paid macOS cert

im in such a big rush: luixiuno.github.io/Screen Recording 2020-07-30 at 18.37.30

theres a problem with a cocoa thing, put it on do not embeed to solve

how do i fix: Pods_com_macenhance_MacForge_Injector ld: framework not found Pods_com_macenhance_MacForge_Injector
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld /Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Products/Debug/com.macenhance.MacForge.Injector normal x86_64 (in target 'com.macenhance.MacForge.Injector' from project 'MacForge')
cd /Users/luixiuno/Documents/MacForge/MacForge
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target x86_64-apple-macos10.13 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -L/Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Products/Debug -F/Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Products/Debug -filelist /Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Intermediates.noindex/MacForge.build/Debug/com.macenhance.MacForge.Injector.build/Objects-normal/x86_64/com.macenhance.MacForge.Injector.LinkFileList -Xlinker -object_path_lto -Xlinker /Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Intermediates.noindex/MacForge.build/Debug/com.macenhance.MacForge.Injector.build/Objects-normal/x86_64/com.macenhance.MacForge.Injector_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fobjc-link-runtime -sectcreate __TEXT __info_plist MacForgeInjection/Injector-Info.plist -sectcreate __TEXT __launchd_plist MacForgeInjection/Injector-Launchd.plist -Wl -undefined dynamic_lookup -framework Carbon -framework Foundation -framework Pods_com_macenhance_MacForge_Injector -Xlinker -dependency_info -Xlinker /Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Intermediates.noindex/MacForge.build/Debug/com.macenhance.MacForge.Injector.build/Objects-normal/x86_64/com.macenhance.MacForge.Injector_dependency_info.dat -o /Users/luixiuno/Library/Developer/Xcode/DerivedData/MacForge-ailfjyjtznftnjbiiwqtdgwziirm/Build/Products/Debug/com.macenhance.MacForge.Injector

Ah yeah you'll need to open terminal and go
cd .../MacForge/MacForge
pod update

Replacing .../ with the path to MacForge source folder

Ah yeah you'll need to open terminal and go
cd ~/Documents/MacForge/MacForge
pod update

Ill Try That THANK YOU SO MUCH, I ALWAYS KNEW macOS big sur JAILBREAKING WAS POSSIBLE!

do i need to download CocoaPods?

If you want me to share the beta of MacForge the ETA might be 30/31 jul

Uh? where does xcode save the build?

Great :) , more errors

@luixiuno

If you want me to share the beta of MacForge the ETA might be 30/31 jul

No

Where does Xcode save the build?

Depends, you can set it up to build to anywhere. By default it saves to:
~/Library/Developer/Xcode/DerivedData/<ProjectName>-<RandomString>/Build/Products/Debug/<BuildName>

Great, more errors

Not sure what to say, looks like an issue with pods, you have to close and re-open the project after fetching pods. You might also get those issues from using the .xcodeproj, you should be opening the .workspace instead.

Why is there no beta downloads?

Because I'm not ready to release any...?

@wolfschild hw did you just build it but i cant, sorry but im just a kid, idk how to code swift, well, i can edit some .plists and make simple webpages, but im lost idk what to do.

im afraid that if i make too much tries and delete that Cocoa framework, maybe all my work in that would need to be started again

@luixiuno

If you want me to share the beta of MacForge the ETA might be 30/31 jul

No

Where does Xcode save the build?

Depends, you can set it up to build to anywhere. By default it saves to:
~/Library/Developer/Xcode/DerivedData/<ProjectName>-<RandomString>/Build/Products/Debug/<BuildName>

Great, more errors

Not sure what to say, looks like an issue with pods, you have to close and re-open the project after fetching pods. You might also get those issues from using the .xcodeproj, you should be opening the .workspace instead.

Why is there no beta downloads?

Because I'm not ready to release any...?

it looks like a missing file, or xcode doesnt have perms to enter the folder cause its system´s

OH MY, THE WORKSPACE HAS A LOT MORE OF THINGS it may work, thanks ;) !

i wish we could do a call or something but not in discord, thats grownup

English: MacForge an awesome package manager! Spanish: MacForge un administrador de paquetes increible!

i need answers

Is Wolfgang even online?

I truly appreciate your enthusiasm, I'm just not sure I can help you build it. It's hard to tell what's going on another persons computer.
Would you just like me to build a copy for you or are you more interested in building it yourself?

I’m interested to build it myself cause, I’m a genius boy and I never compiled a program :)

Maybe try this: https://stackoverflow.com/a/55086382

Yes, I’m tryna make my own version of brew.sh

Sorry if I’m flooding the chat but if people are wanting to compile and have errors then they watch this

ok i need a copy, if you could make a copy for me then put it in a link then after some secs delete the comment

Have you put the link?

Does The Webpage Have To Look Modern?

So, I need a copy for my Big Sur, not hackintosh

Anybody here?

You're loosing me here @luixiuno

Yes, I’m tryna make my own version of brew.sh plugin searcher, i changed my mind, imma ma ke a webpage like nito TV website, please give me a link like, Macforge://redirect-to-tweak name
here or tweak ID <-- EDIT please build this

I'm not sure what you mean?
You can already link to bundles in MacForge https://github.com/MacEnhance/MacForge/wiki/Bundles-:-Linking
What's nito.tv or brew.sh got to do with any of this?

Ok I need a copy, if you could make a copy for me then put it in a link then after some secs delete the comment

Are you asking for a copy of MacForge built for Big Sur?

Does The Webpage Have To Look Modern?

What does that even mean? If you're asking if I just want a webpage of plain .html with no styling then the answer is no. I'm not sure if you're aware but I already have my own website https://www.macenhance.com/

So, I need a copy for my Big Sur, not hackintosh

I don't know what this is referring to

Anybody here?

Please stop spamming, it wont make me respond any faster.

Deleted comments, I need a fresh copy of the app, that's all I will say, imma delete all

Did not mean to spam

MacForge.zip

THANKS A LOT THAT MEANS A LOT TO ME :)

I need help at disabling AMFI Apple Mobile File Integrity

OK CCDOCK IN MACOS 11.0 IT CORRUPTS DOCK, i fixed it but dont do it

Don't turn off AMFI.
Instead you should disable Library Validation.
Copy pasted from Discord:
Important message!
If you are currently using MacForge and have turned off Apple Mobile File Integrity (AMFI) using the command nvram boot-args="amfi_get_out_of_my_way=1"
You will not be able to add applications to System Preferences > Security & Privacy > Privacy. This can completely prevent some applications form functioning or break critical functionality.
In order to fix this issue, follow the steps below:
open terminal and run the commands
sudo nvram boot-args=""
sudo defaults write /Library/Preferences/com.apple.security.libraryvalidation.plist DisableLibraryValidation -bool true
reboot
An updated version of MacForge should hopefully be coming out soon™ with a built in warning and automation of these steps.

So I disabled everything but AMFI and I can enter the system tab, and the preference bundles don't load

What preference bundles?

I don't know, I can't enter system, mouse cape doesn't appear, idk if it has it, dockmate doesn't appear and WhosTyping also doesn't

What? I don't even know what you're saying.

You might actually never get help, this issue is lonely, and im out

@luixiuno No problem, nobody (including yourself) is obligated to help.
I'm well aware I likely won't ever get any meaningful support on the project and that's fine with me. This issue is 2 years old at this point after all.


Add LICENSE and README to pypi tarball

@bachp thanks!

No need to push for this. I'm happy if I get the change for the next release. :smile:


Multi Home Terraform Cloud

[x] move our state back to terraform cloud with local execution
[ ] provision more than one terra home

I had my Terraform Cloud set up for local execution from the start of the bootcamp so this task is not valid for me.


Update repository url in package.json

:warning: Make sure you are targeting microsoft/react-native-macos for your PR :warning:
(then delete these lines)

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[ ] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary:

Changelog:

Test Plan:

duplicates https://github.com/microsoft/react-native-macos/pull/2005


Thought-in-progress: better and finer-granularity layout assistance

Auto-layout covers two kinds of problems:

Shape of scopes/pods: Auto-shrink and auto-expand a scope when a pod is moved out and into the scope.
Placement of scopes/pods: Auto-shovel to push away pods/scopes when overlaps happen.

A bit history:

Auto-shrink and auto-expand were added for https://github.com/codepod-io/codepod/issues/151
Auto-shovel (without auto-retract) was added for https://github.com/codepod-io/codepod/issues/176

While 1 always makes life easier, 2 is not always as it sometimes breaks the manual placement of pods/scopes.
Idea 1: allowing users to enable and disable individual options under auto-layout. I feel life will very good with 1 enabled and 2 disabled and snapping enabled.
Idea 2: keeping the snapping relationship. For example, if two pods are snapped with their tops aligned, then the top of them should remained aligned in the future. If auto-shovel pushes one up, then both of them should be pushed up to remain top-aligned.
Idea 3: optional and needing additional thinking, is how to shovel pods/scopes to make space for a pod newly created or dragged that overlaps with existing pods. The force-based auto-layout is far from ideal. It could push aligned pods/scopes out of alignment. Alternatively, CodePod can ask the user what to do from 4 options: pushing the pods above/below/left/right away. This is like inserting cells into a spreadsheet.
Idea 4: allowing pods/scopes to be pinned at where they are.

In terms of auto-shrink and auto-expand (when moving a member out and into a scope), @senwang86's feedback is that auto-shrink is over-active that it "eats" away the empty space in a scope that he cleared out on purpose. Hence, I think we shall have an option to allow users to toggle auto-shrink per-scope. Auto-expand should always be there.

Regarding auto-shovel, this is @senwang86's comments "Inserting a pod between 2 pods makes overall layout messy"
Hence, @senwang86 please see my ideas 2 to 5 in post 1

Supplement some context regarding Dr. Bao's comments above.
I gave more tests upon importing a Jupyter notebook, and the recording here shows some improvement are needed regarding auto-layout,

Auto-layout resets my preferred scope size multiple times, which is annoying

Inserting a pod between 2 pods makes overall layout messy (04:58)

Auto-layout covers many actions. Do you mean auto-shrink?

Auto-layout resets my preferred scope size multiple times, which is annoying

I have seen the video. I feel part of the reason is how you use CodePod.  A scope is designed to tightly wrap pods. The way I use it to create pods inside of a scope and the scope will grow automatically. Similarly, it will grow as you move pods/scopes into a scope.

Inserting a pod between 2 pods makes overall layout messy (04:58)

I agree with this.


Add User Chat CRUD Logic

just focus on user stories 1,2, and 3
User Story 1: As a User, I want to be able to join a "chat", so that I can communicate with other users in real-time.
Acceptance Criteria:
I should be able to see a list of available "chats".
Upon selecting a chat room, I should be successfully joined to that room. (ie, see the previous chats)
~The chat room interface should provide real-time updates of messages from other users.~ (this will be implemented later with websockets)
User Story 2: As a User, I want to send messages in a chat room, so that I can communicate with other users.
Acceptance Criteria:
There should be a text input field in the chat room for typing messages.
~Messages sent by me should be displayed in real-time for all users in the chat room.~ (later with websockets)
Messages should display the sender's username, timestamp, and the content of the message.
User Story 3: As a User, I want the ability to edit or delete my own messages, so that I can correct mistakes or remove inappropriate content.
Acceptance Criteria:
There should be options available to edit or delete messages that I have sent.
Editing a message should update the message content ~in real-time~ for all users in the chat room.(later with ws)
Deleting a message should remove it from the chat room for all users ~in real-time~.
SKIP THIS
User Story 4: As a User, I want to see who is currently online in the chat room, so that I can know who I can communicate with.
Acceptance Criteria:
The chat room interface should display a list of users currently online.
The online user list should update in real-time as users join or leave the chat room.
SKIP THIS
User Story 5: As a User, I want to receive notifications for new messages when the chat room is not in focus, so that I don't miss any important conversations.
Acceptance Criteria:
When a new message is sent in the chat room, I should receive a notification.
The notification should include the sender's username and a preview of the message.
Clicking on the notification should bring me directly to the chat room.
TECHNICAL SPECS:
You may need to update the DB schema in order to accomadate any unforeseen additions to the functionality. The database is being generated by the .create_database.sh file, and you can update that as you make progress. it would be nice to have dummy data written in their upfront, but i can also do that later and isnt required.
most of your work will take place in the following files: ./routes.go ./handlers/...
you will need to make a new go file in /handlers/ to hold the logic for what you are writing
i would suggest running this on the front end through a simulator, since i haven't configured it to allow cors, or if you want, you could try to add that to the router.

user story 1 is completed by @7evan


16.1.2 + old config -> traffic shaper settings empty

Just upgraded to 16.1.2 and used a config file from 15.7.17. Now the traffic shaper settings are empty in the GUI although Traffic Shaper Status in the GUI shows the limiters in place and working. Also "ipfw list" on the command line pops up the old config. Also I can't setup a new Traffic Shaper setting in the GUI (can't select bandwidth Metric, mask -> dropdown list is empty).

This might be related to issue: https://github.com/opnsense/core/issues/761 ... API access unauthorized

Are you using root here? or another user with a different ACL set?

Thanks for the prompt reply! I was using root. When I log in now (~24h later), the Traffic Shaper settings of my old config are displayed and the API gives a HTTP Status 200 OK back in the Firefox debugger for a GET on the API.
When I try to change anything on the current settings or try to add a new dataset in there, it doesn't work. Nothing happens with the "Edit rule" popup, when I click on "Save changes".
The Firefox debugger shows again HTTP 200 for the POST, but the changes are not taken over. The browser is not using any add-ons or extensions, it's pretty much a plain Firefox 44 on Linux Mint 17.3.

Maybe that helps: I re-run the API URI shown in debugger and it brings back:
URI: https://opnsensebox/api/trafficshaper/settings/setPipe/3c84c489-2608-4e0c-b4fd-6a16daa2a50a
{"result":"failed"}

Thanks for your feedback, it's a regression in the last version caused by a change in the default "Required" model parameter.
This commit should fix it https://github.com/opnsense/core/commit/e342cd97e365b97a985db406fb6a9e720211e21f, if you want to test it out on your machine simply run:
curl -o /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml https://raw.githubusercontent.com/opnsense/core/master/src/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml


Add color to dimension column, is possible?

I guess yes. But need to implement and test it.

I think I will not implement this request because this would need a calculated dimension. Hence it will break a proper selection on that dimension column.


Fonts thingie

the

What does this change?

split the fonts into multiple echo's so its a bit easier to manage and change from preload to preconnect as google says so, also preload was giving some warnings c:

what do i even name this pr lol


🐞 [Bug]: Updating network with mycelium takes some time to reflect

Is there an existing issue for this?

[X] I have searched the existing issues

which package/s did you face the problem with?
grid_client
What happened?
deploying a vm on a network with mycelium on already existing network that doesn't have mycelium fails
Steps To Reproduce

Deploy a vm with NO mycelium
Deploy another vm with mycelium on the same network.

which network/s did you face the problem on?
Dev
version
2.3.0-rc4
Twin ID/s
No response
Node ID/s
No response
Farm ID/s
No response
Contract ID/s
No response
Relevant screenshots/screen records
https://github.com/threefoldtech/tfgrid-sdk-ts/actions/runs/8225652180/job/22490963393
Relevant log output
/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/high_level/twinDeploymentHandler.ts:86
      throw new GridClientErrors.Workloads.WorkloadDeployError(
            ^
WorkloadDeployError: WorkloadDeployError: Failed to deploy zmachine with name worker on node 11 due to: could not set up tap device: network resource does not support mycelium.
    at TwinDeploymentHandler.checkWorkload (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/high_level/twinDeploymentHandler.ts:86:13)
    at TwinDeploymentHandler.waitForDeployment (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/high_level/twinDeploymentHandler.ts:113:22)
    at async Promise.all (index 0)
    at async TwinDeploymentHandler.handle (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/high_level/twinDeploymentHandler.ts:[59](https://github.com/threefoldtech/tfgrid-sdk-ts/actions/runs/8225652180/job/22490963393#step:11:60)9:7)
    at async K8sModule.deploy (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/modules/k8s.ts:194:23)
    at async K8sModule.descriptor.value (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/modules/utils.ts:11:12)
    at async K8sModule.descriptor.value (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/src/helpers/validator.ts:22:12)
    at async deploy (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/scripts/kubernetes.ts:6:15)
    at async main (/home/runner/work/tfgrid-sdk-ts/tfgrid-sdk-ts/packages/grid_client/scripts/kubernetes.ts:88:3) {
  code: 1,
  module: 'tfGridWorkloads'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: Process completed with exit code 1.

adding some sleep between updating the network and deploying the VM makes it work


Bedrock allowlist

Todo 1.41
Allow for control of the bedrock allowlist from CRSS.

Note that this may be cancelled due to my immense difficulties with procuring an API key.

Completed


version supporting bootstrap 4?

hello there. I am a bit confused. at the time I am writing this comment, version number on the gem mentions 1.12.4 but apparently bootstrap 4 is supported after version 1.13. can we get the 2 in line? currently the select show disabled after gem installation so presumably the updated version to support bootstrap 4 is not yet pushed. Please advise.

hi guys. I know you are busy. would welcome your opinion though.

fixed by #37


add cfgrib to pangeo-notebook

replaces #105, trying out modified CI workflow

i didn't really understand what on pull_request_target was doing in the github action. seems it will always get the most recent master commit in this repo, rather than the PR commits. i'll try to restructure once more so that pangeo-bot automatically comments with the /condalock command


Script error!

Some time randomly I get this error. Please look into it.

Can you send me a repro? stackblitz, repo, etc

Can you send me a repro? stackblitz, repo, etc

Everything works perfectly fine for 99% of the time. Haven't gotten the error in the last 24 hours. I think it's fixed. I'll keep you posted if the error occurs again.

Alright!

Some time randomly I get this error. Please look into it.

Same here

Alright!

getting the same error on localhost. but working fine in production.

Is there more information in the console about this error? I can't reproduce so I would need more details

Is there more information in the console about this error? I can't reproduce so I would need more details

Hmm same error as in #28 , apparently their script changed again

I won't have a lot of time this week, so open for PR's!

If anyone could provide a codesandbox/stackblitz for a reproduction. I tried different components on my end in a vite project but can't seem to reproduce 😢

it happen one "TickerTape". If i add symbols in component, it will show error. otherwise, keep it as default symbols will fine.

Same here when I try to dynamically add new symbols to the component!


I want cars. I also want all rails (planes, trains, cable cars) to be transparent.

Cars must be reproduced on the current tracks, which are not realistic.
This will probably take as much effort as adding a plane, which can be slow.
I would also like to automate the cars and drive them manually.
Please.
(Perhaps we will need things like railroad tracks, so if we don't need those things, it is not a desire and we are fine with the status quo. But then, only certain rails, except when we have specific rails. It would be nice to have a setting to hide them. (This would apply to airplanes as well.)

At the very least, I would like to be able to make the tracks transparent.

Well, this one really will be refused.
Jonathan already said all requirements about new trains or other transportation tools will be rejected, unless you support him on Patreon.
Also, don’t send too many issue at same time. If Jonathan think you send too many spam content you may be banned from this GitHub repository.
Translate on Google:
うーん、これはさすがに断られますね。
ジョナサンは、Patreonで彼をサポートしない限り、新しい電車やその他の輸送ツールに関するすべての要件が拒否されるとすでに述べています.
また、同時に多くの問題を送信しないでください。 Jonathan がスパム コンテンツを送信しすぎると判断した場合、この GitHub リポジトリから禁止される可能性があります。

Well, this is definitely impossible.
Just think about why this mod is called Minecraft Transit Railway.
If you want tracks be hidden, please consider using resource pack.
Translated by Google:
うーん、これは絶対に無理です。
このモードが Minecraft Transit Railway と呼ばれる理由を考えてみてください。
トラックを非表示にしたい場合は、リソース パックの使用を検討してください。

We are very sorry.
I will delete your post.
Thank you very much.

Thank you very much.

As Said here, You must use a Resource Pack or modify the .jar to Hide the rails. And you can just bury the Rails underneath the road. And Jon has busses in the Works anyways

Thanks for letting me know.


Update required go vesion in readme

Just noticed, that Go version mentioned in readme is old and has to be updated.

Maybe this could be related to Docs as well ping : @jcstein

yes, thanks for flagging @nashqueue - will add to docs


Update TBB to use >= 2021.6 by default.

Updates buildscripts, source and docs in relation to TBB 2021.6.

Windows 32 bit doesn't have the parallel target enabled
so doesn't need TBB.
ppc64le and linux-aarch64 have suitable packages available but
these haven't been tested so exclude them for now.
Updates the TBB version checking code for 2021.6 as minimum.

This is a continuation of PR #8727 which in itself is a continuation of #7608.

BFID numba_smoketest_cpu_yaml_172


fixprevent be from crashing when cast function is not available

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.26 seconds
load time: 452 seconds
storage size:<PHONE_NUMBER>5 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221124054041_clickbench_pr_51918.html


Public key signature verification has failed.

~$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0
.32.1/install.sh | bash
=> Downloading nvm from git to '/home/tong/.nvm'
=> Cloning into '/home/tong/.nvm'...
fatal: unable to access 'https://github.com/creationix/nvm.git/': gnutls_handsha
ke() failed: Public key signature verification has failed.
Failed to clone nvm repo. Please report this!

I have no idea why there'd be any public key signature verification. Have you overridden git, or set any custom git configs that would require PGP signatures?

sudo apt-get remove libgnutls-deb0-28
resolves my problem.

Thanks for the followup!

To be honest I dont think removing a package (and specially libgnutls) should be a good solution.

@playmono agreed, the proper solution is disabling whatever key verification is interfering with normal git operations.


adding temp comment to trigger gh actions

What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 71.77%. Comparing base (a76c5ad) to head (a806c01).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #685   +/-   ##
=======================================
  Coverage   71.77%   71.77%
=======================================
  Files         271      271
  Lines       40992    40992
=======================================
  Hits        29422    29422
  Misses      11570    11570

Components
Coverage Δ

crashtracker
20.33% <ø> (ø)

crashtracker-ffi
9.07% <ø> (ø)

datadog-alloc
98.73% <ø> (ø)

data-pipeline
91.92% <ø> (ø)

data-pipeline-ffi
0.00% <ø> (ø)

ddcommon
82.73% <ø> (ø)

ddcommon-ffi
69.12% <ø> (ø)

ddtelemetry
59.10% <ø> (ø)

ddtelemetry-ffi
22.13% <ø> (ø)

dogstatsd
88.86% <ø> (ø)

dogstatsd-client
79.77% <ø> (ø)

ipc
82.65% <ø> (ø)

profiling
84.30% <ø> (ø)

profiling-ffi
77.46% <ø> (ø)

serverless
0.00% <ø> (ø)

sidecar
36.09% <ø> (ø)

sidecar-ffi
0.00% <ø> (ø)

spawn-worker
50.36% <ø> (ø)

tinybytes
94.77% <ø> (ø)

trace-mini-agent
72.45% <ø> (ø)

trace-normalization
98.25% <ø> (ø)

trace-obfuscation
95.73% <ø> (ø)

trace-protobuf
77.67% <ø> (ø)

trace-utils
93.08% <ø> (ø)


Fix typos: managament to management, maintenence to maintenance

Similar to https://github.com/rabbitmq/rabbitmq-website/pull/1916, I've found two more typos 🤣
managament -> management
maintenence -> maintenance

Thank you!


Documentation - Easy install path for small footprint / less dev inclined users

Hey,
I found this project through the much beloved, but now defunct dotjs project. I was looking for something for local dev, but also was trying to see if I could easily get this installed on another team member's machine with less dev know-how required to run some custom JS on a specific domain. The Chrome extension is a snap, but node toolchain...not so much. So, instead I:

Installed the chrome web server extension (https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb)
Pointed it at ~/witchcraft with a port of 3131

This only handles the simple case of serving up say a ~/witchcraft/js/localhost file, but this was sufficient for my needs in this case. May be worth mentioning this in the docs as a simple / easy path for anyone that either needs a smaller footprint install or wants to get some of the core functionality without the other moving parts.
Thanks for the software!

Nice! I'll check it out and thanks :)
On Sat, Jul 7, 2018, 8:28 PM Lucio Paiva<EMAIL_ADDRESS>wrote:

Hi @arimus https://github.com/arimus,
Thanks for your suggestion. I decided to take it one step further and
completely get rid of my custom server. After a bit of refactoring, the
Chrome extension can now function with any simple web server, like the one
you suggested. There's no need to install Node.js anymore :-)
There's a new version of my extension at the Chrome app store, in case you
want to try. Please follow instructions on how to configure it here:
http://luciopaiva.com/witchcraft.
Oh, and make sure to check the credits section in the README.md
https://github.com/luciopaiva/witchcraft file :-)
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/luciopaiva/witchcraft/issues/8#issuecomment-403259343,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAN8Kufy2ALRwPr0CVV_RllFjjNUGE7Qks5uEXxTgaJpZM4TXbRB
.


Make interface Type internal by @psalm-internal

https://psalm.dev/docs/annotating_code/supported_annotations/#psalm-internal

I know about this annotation, all internal classes in https://github.com/php-extended-type-system/type-reflection are marked with it. But unfortunately we cannot mark Type interface with @internal, because it will certainly be used in userland to accepts types as parameters in functons and methods, for instance. It just must not be implemented.


[FEATURE REQ] spring-data-cosmos paging without incurring cost of count query for custom query using paginationQuery method.

Is your feature request related to a problem? Please describe.
I want to page through a large result set using continuation tokens and the azure-spring-data-cosmos library method which will accept my query with return argument. However, CosmosTemplate repository methods(paginationQuery)  always issue a count query to populate the total elements in the page response, and when the query is complex and the result set is large, the count query can be very expensive.
Describe the solution you'd like
I would like to be able to use CosmosPageRequest to fetch a page of data with a continuation token without issuing a count query to populate the total elements. There is a private slice method in CosmosTemplate which is called from paginationQuery method after executing count query ,  would like a wrapper public method of that so that it can call directly to avoid count query .Existing private method private  Slice sliceQuery(SqlQuerySpec querySpec,Pageable pageable, Sort sort,Class returnType, String containerName)
Describe alternatives you've considered
Considered extending CosmosTemplate, but too many fields and methods are defined with private access modifiers.
Additional context
Add any other context or screenshots about the feature request here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[ ] Description Added
[ ] Expected solution specified

@backwind1233 @yiliuTo could you please take a look?

Hi, @kushagraThapar could you please take a look?

@anath-onetrust - I see that sliceQuery in CosmosTemplate is actually a public API. So that can be used if needed.
Also, this code snippet shows how to use slice query.
SliceQueriesUserRepository - https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-spring-data-cosmos/src/samples/java/com/azure/spring/data/cosmos/SliceQueriesUserRepository.java

@kushagraThapar  Yes there is a public sliceQuery method in CosmosTemplate but that does not meet our requirement .We need to pass a  return argument in sliceQuery which is not supported by public method but private method supports it .Sharing both method signature for reference .
private  Slice sliceQuery(SqlQuerySpec querySpec,
Pageable pageable, Sort sort,
Class returnType, String containerName)
public  Slice sliceQuery(CosmosQuery query, Class domainType, String containerName)

@anath-onetrust  - in the public API, domainType is the actual return type. So you should be able to use it.
See this for example -
final Slice<Person> slice = cosmosTemplate.sliceQuery(query, Person.class, containerName);
https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-spring-data-cosmos-test/src/test/java/com/azure/spring/data/cosmos/core/CosmosTemplateIT.java#L597

@kushagraThapar  I saw the API but here we have an issue to use existing public API since the API only supports CosmosQuery in query parameter  but our requirement is to pass SqlQuerySpec in API  call which is not supported .Is there any way to achieve this.
public  Slice sliceQuery(CosmosQuery query, Class domainType, String containerName)

@kushagraThapar Could you please update us we are waiting for it .

@anath-onetrust while we try to implement this in spring / or investigate the possibility of it, can you use cosmos java SDK client and query directly using java SDK instead of spring ?
For example, you can get the cosmosClient bean through applicationContext in spring data SDK, and then using that cosmosClient bean, you can directly query through cosmos java SDK using SqlQuerySpec

@anath-onetrust  - That seems like a possible solution for the time being. We can try it out and see how it works for you guys. Please raise a PR and I will look into it. Thank you!

@kushagraThapar I have raised a PR please let me know if I have missed anything .
https://github.com/Azure/azure-sdk-for-java/pull/24540

@anath-onetrust - Thanks for raising the PR, it looks good to me.
However my concern is that it might not support complete pagination APIs, like getTotalCount / getTotalPages / next / previous, etc.
Please read this github issue, where we are having the discussion on how to support pagination on spring data cosmos SDK - https://github.com/Azure/azure-sdk-for-java/issues/24262

@johnmannix @anath-onetrust - this has been done and will be released today. Thank you again for your contribution as always :)
Appreciate it!


Unit tests

Hello, guys.
I view and #149 issue about tests for tinymce and want to help you. I've started on basic test infrastructure. What was done:

Unit test for template tag
Unit test for get_language_config
Unit test for HTMLField
Make changes due to pep8
Add travis ci as building system
Refactor old-style % formatting to .format()

What need to be done:

Test for AdminWidget
Test for views

I have a question about views testing. How do I suppose to test textarea_js_view or preview? In docstring it is described, that they are just rendering templates, but there are no such templates...

@vanadium23 this is amazing, I will go through your PR today. Thanks a lot for starting this!

How do I suppose to test textarea_js_view or preview?

We can test that all the mandatory javascript files are loaded in the generated html content.
Here are the templates files we have: https://github.com/aljosa/django-tinymce/tree/master/tinymce/templates/tinymce
You are right tinymce_textareas doesn't seems to be used anywhere.
I propose that we simply remove that code that seems to be dead.

I propose to display the coverage report.

Add coverage report via coveralls.
Add tests for views and widget.
Compressor code seems to messy. I'll do it later in separate request.

Merge?

Yes I am definitely going to merge this. Please add yourself to the contributor file as well.
Really thanks a lot this is really great!

Add skip and contributors. Thank you for giving me a chance. (:

Thank you for giving me a chance.

You actually did a really great job here. Thank you for bringing tests to django-tinymce.