[wip] Message offset

I've opened this PR to facilitate discussion around the potential addition of a MessageOffset object that handles the more complex compressed message offset logic added in 0.10. See #694 for additional context.

Fair enough. As said earlier, this feels more reliable, but it does add considerable complexity. So I'm very much on the fence, probably closer to -0.2 or something!

Codecov Report

Merging #1 into master will decrease coverage by 1.36%.
The diff coverage is 96.87%.

@@            Coverage Diff             @@
##           master       #1      +/-   ##
==========================================
- Coverage   85.51%   84.14%   -1.37%
==========================================
  Files          25       25
  Lines        3320     3369      +49
  Branches      527      535       +8
==========================================
- Hits         2839     2835       -4
- Misses        339      389      +50
- Partials      142      145       +3

Impacted Files
Coverage Δ

pykafka/rdkafka/simple_consumer.py
93.26% <ø> (ø)
:arrow_up:

pykafka/cluster.py
69.13% <ø> (-2.18%)
:arrow_down:

pykafka/simpleconsumer.py
82.01% <100%> (-2.79%)
:arrow_down:

pykafka/broker.py
89.61% <100%> (-1.84%)
:arrow_down:

pykafka/protocol.py
96.77% <96.42%> (+0.07%)
:arrow_up:

pykafka/managedbalancedconsumer.py
79.16% <0%> (-13.2%)
:arrow_down:

pykafka/connection.py
76.34% <0%> (-3.23%)
:arrow_down:

pykafka/rdkafka/producer.py
87.22% <0%> (-2.5%)
:arrow_down:

... and 6 more

Continue to review full report at Codecov.

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


Add language Português

A good idea here would be to follow the same structure as for the related files in other languages (with comments).
Also, languages are add in the code of dropdown under settings management for now. It could be sensible to add it there too.


[Improve] [Connector-V2-Clickhouse] Improve Clickhouse Connector

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I had searched in the issues and found no similar issues.

Describe the proposal
Imporve clickhouse connector features & bugs
Task list
Clickhouse Source

[ ] #2806 @wuxizhi777
[ ] #2808 @wuxizhi777
[ ] #3014
[ ] #3057 @FWLamb
[ ] #2949 @FWLamb

Clickhouse Sink

[ ] Support write Geo type
[ ] #2949 @FWLamb

Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

please assign to me support Int128,Int256

Add sub task:  Add e2e testcase

please assign to me .

Random use host when config multi-host.
Support multi-split read.

please assign to me add e2e testcase

please assign to me add e2e testcase

Great! I assgined to you. Please track it on #2949

please assign to me support Int128,Int256

please assign to me support Int128,Int256

@FWLamb Please track it on #3057

please assign to me support Clickhouse Sink geo type ;

please assign to me support write Geo type.

Hi @wuxizhi777 Any new progress? If you need some help, please let us know. Thanks!


CFE crashes on deserialization

CFE crashes on deserialization of co19_2/Language/Statements/Labels/scope_t01 and co19_2/Language/Statements/Labels/scope_t07
Stack-trace seen from dart2js:
tests/co19_2/src/Language/Statements/Labels/scope_t07.dart:15:1:
Internal Error: The compiler crashed when compiling this element.
main() {
^
The compiler is broken.

When compiling the above element, the compiler crashed. It is not
possible to tell if this is caused by a problem in your program or
not. Regardless, the compiler should not crash.

The Dart team would greatly appreciate if you would take a moment to
report this problem at http://dartbug.com/new.

Please include the following information:

* the name and version of your operating system,

* the Dart SDK build number (build number could not be determined), and

* the entire message you see here (including the full stack trace
  below as well as the source location above).

The compiler crashed: RangeError (index): Invalid value: Valid value range is empty: 0
#0      List.[] (dart:core/runtime/libgrowable_array.dart:145:60)
#1      BinaryBuilder.readExpression (package:kernel/binary/ast_from_binary.dart:1374:45)
#2      BinaryBuilder.readStatement (package:kernel/binary/ast_from_binary.dart:1600:40)
#3      BinaryBuilder.readStatementList (package:kernel/binary/ast_from_binary.dart:1578:19)
#4      BinaryBuilder.readBlock (package:kernel/binary/ast_from_binary.dart:1745:16)
#5      BinaryBuilder.readStatement (package:kernel/binary/ast_from_binary.dart:1602:16)
#6      BinaryBuilder.readStatementOption (package:kernel/binary/ast_from_binary.dart:1593:38)
#7      BinaryBuilder._setLazyLoadFunction.<anonymous closure> (package:kernel/binary/ast_from_binary.dart:1288:21)
#8      FunctionNode._buildLazy (package:kernel/ast.dart:2017:23)
#9      FunctionNode.body (package:kernel/ast.dart:2022:5)
#10     CapturedScopeBuilder.visitFunctionNode (package:compiler/src/js_model/closure_visitors.dart:551:10)
#11     FunctionNode.accept (package:kernel/ast.dart:2077:30)
#12     Procedure.visitChildren (package:kernel/ast.dart:1746:15)
#13     CapturedScopeBuilder.visitInvokable.<anonymous closure> (package:compiler/src/js_model/closure_visitors.dart:413:12)
#14     CapturedScopeBuilder.enterNewScope (package:compiler/src/js_model/closure_visitors.dart:148:18)
#15     CapturedScopeBuilder.visitInvokable (package:compiler/src/js_model/closure_visitors.dart:412:5)
#16     CapturedScopeBuilder.visitProcedure (package:compiler/src/js_model/closure_visitors.dart:477:5)
#17     Procedure.accept (package:kernel/ast.dart:1739:32)
#18     KernelClosureAnalysis.computeScopeModel (package:compiler/src/js_model/closure.dart:59:12)
#19     KernelToElementMapImpl.computeScopeModel (package:compiler/src/kernel/element_map_impl.dart:1458:34)
#20     KernelWorkItem.run.<anonymous closure>.<anonymous closure> (package:compiler/src/kernel/kernel_strategy.dart:207:47)
#21     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#22     KernelWorkItem.run.<anonymous closure> (package:compiler/src/kernel/kernel_strategy.dart:206:21)
#23     CompilerTask.measure (package:compiler/src/common/tasks.dart:63:51)
#24     KernelWorkItem.run (package:compiler/src/kernel/kernel_strategy.dart:204:26)
#25     Compiler.emptyQueue.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:compiler/src/compiler.dart:449:70)
#26     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#27     Compiler.emptyQueue.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:compiler/src/compiler.dart:449:32)
#28     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#29     Compiler.emptyQueue.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:compiler/src/compiler.dart:447:28)
#30     CompilerDiagnosticReporter.withCurrentElement (package:compiler/src/compiler.dart:770:15)
#31     Compiler.emptyQueue.<anonymous closure>.<anonymous closure> (package:compiler/src/compiler.dart:445:18)
#32     ResolutionEnqueuer._forEach (package:compiler/src/enqueue.dart:417:12)
#33     ResolutionEnqueuer.forEach (package:compiler/src/enqueue.dart:432:5)
#34     Compiler.emptyQueue.<anonymous closure> (package:compiler/src/compiler.dart:441:16)
#35     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#36     Compiler.emptyQueue (package:compiler/src/compiler.dart:440:14)
#37     Compiler.processQueue.<anonymous closure> (package:compiler/src/compiler.dart:466:7)
#38     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#39     Compiler.processQueue (package:compiler/src/compiler.dart:459:14)
#40     Compiler.computeClosedWorld (package:compiler/src/compiler.dart:323:5)
#41     Compiler.compileLoadedLibraries.<anonymous closure> (package:compiler/src/compiler.dart:391:34)
#42     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#43     Compiler.compileLoadedLibraries (package:compiler/src/compiler.dart:390:14)
#44     Compiler.runInternal (package:compiler/src/compiler.dart:277:5)
<asynchronous suspension>
#45     Compiler.run.<anonymous closure>.<anonymous closure> (package:compiler/src/compiler.dart:217:38)
#46     new Future.sync (dart:async/future.dart:224:31)
#47     Compiler.run.<anonymous closure> (package:compiler/src/compiler.dart:217:20)
#48     CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:178:35)
#49     Compiler.run (package:compiler/src/compiler.dart:214:41)
#50     CompilerImpl.run.<anonymous closure>.<anonymous closure> (package:compiler/src/apiimpl.dart:148:22)
#51     _RootZone.runUnary (dart:async/zone.dart:1379:54)
#52     _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#53     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642:45)
#54     Future._propagateToListeners (dart:async/future_impl.dart:671:32)
#55     Future._completeWithValue (dart:async/future_impl.dart:486:5)
#56     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:516:7)
#57     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#58     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#59     _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:115:13)
#60     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:172:5)

The code is compiled to this:
static method main() → dynamic {
  {
    dynamic x;
  }
  x = self::foo();
[...]

meaning that when we deserialize the "var x;" line is deserialized in a block, and then the block ends we throw it away...


make config ready for zend-expressive and ZF

maybe someone has more ideas?

@prolic can you look at coveralls why it no longer posts status hare

can you look at coveralls why it no longer posts status hare

Seem it does...? >> "All checks have passed" https://coveralls.io/builds/23447128

ping @prolic


Check function signature

Checking the signature (and types of return values) of each function automatically makes it easy to debug type errors. There are three direction of design:

Simply add asserts to forward functions.
Use decorators.
Pass the type information to Function.__init__

It must follow DRY rule and should have flexibility to support "variadic" functions (such as concat).

We need to clarify the goal of this issue.
This is my idea:

for developers who implement Function

suport to implement correct Function

for users who make networks using Function

support to check correctness of network
support to know usage of Function


controlnet

the name is Stable-Diffusion-WebUI-TensorRT_controlnet ,but  there are no export contronet

the name is Stable-Diffusion-WebUI-TensorRT_controlnet ,but there are no export contronet

Is controlnet is enabled with tensorRT on stable diffusion webui?


POMDP belief representations vs solver/belief updater belief representations

Here is an issue with our current approach to belief management:

initial_belief() or create_belief() return a belief representation that's problem-specific (i.e. POMDP-specific). For the purposes of explanation, let's assume that initial_belief(my_pomdp) returns a 10-element vector of particles that is then stored in current_belief.

Now, in my [online] solver, I'd like to use a higher-fidelity 500-particle belief representation. Furthermore, I'd also like to use the same 500-particle representation for maintaining the belief state in the simulation loop (via our belief() function).

It would, obviously, be undesirable to try to convert back and forth between the 10-particle (POMDP) and 500-particle (solver/belief updater) representations.

Here are a few possible solutions:

During the first iteration of the simulation, the belief structure is converted from 10 to 500 particles inside action(), then, again, inside belief() (current_belief goes into belief() as a 10-particle vector, then comes out as a 500-particle updated_belief). Both current_belief and updated_belief then remain 500-particle vectors until the end of the simulation. Kind of ugly, especially since we'd have to ensure that conversions inside action() and belief() are done in an exactly the same way (alternatively, we need to return the converted belief vector from action() and pass it into belief()).

Use a wrapper type, like what Zach uses, and change the actual representation within that wrapper structure. This, to me, is not all that different from the first option and also requires the user to know about some MyBeliefWrapper type and construct an instance of it before calling action() and belief().

Add initial_belief() and create_belief() versions that take the solver and the belief updater as arguments and return a belief structure that's tailored to solver/belief updater needs from the very beginning. We would still retain the current versions of  initial_belief() and create_belief(), of course:

create_belief(pomdp::POMDP)
create_belief(pomdp::POMDP, solver::Solver, bu::BeliefUpdater)
initial_belief(pomdp::POMDP, belief = create_belief(pomdp))
initial_belief(pomdp::POMDP, solver::Solver, bu::BeliefUpdater, belief = create_belief(pomdp))
The third option is my preferred solution (assuming that we go ahead and implement the BeliefUpdater type, see #32), but I am open to other ideas, of course.

I think this is probably a good idea. I think that we need to create a new function for it though. For example, it could be
specialize_belief(pomdp::POMDP, belief::Belief, solver::Solver) = belief

(the = belief would just be the default implementation for the case when the solver doesn't need a modified belief). We can of course add the BeliefUpdater if we decide to add that to the interface.
The reason that this is necessary is that a user may need to specify an initial belief for a simulation that is different from the belief returned by initial_belief(pomdp), and if we overloaded create_belief and initial_belief as above, there would be no way to convert a belief that the user specified for use with the solver. specialize_belief could be called within simulate to automatically convert the belief for an arbitrary solver.

Actually, I think belief should be specialized based on the policy, not the solver. i.e.
specialize_belief(pomdp::POMDP, belief::Belief, policy::Policy) = belief

I'm starting to get a bit lost now. I think we are now discussing something that is specific to certain solvers, not about the general API. Right?

It is specific to a potentially large class of solvers, so I think it may be worth including in the API.
The basic problem is this: POMCP (and DESPOT from what I understand) are not just solvers, they also maintain an approximate belief representation*. In my opinion, the best way to implement this is to give the solver control over the belief. I think this is the most flexible way of standardizing it.

POMCP, for example, re-uses the tree simulations to update a particle filter
** it would be impossible to implement this only within solver code such as action() because the solver does not have access to the observations from the real world.

It would be great to be able to use POMCP and DESPOT as described in the literature interchangeably with something like value iteration, e.g.:
solvers = {DiscreteValueIteration(...), POMCP(...)}

problem = BabyPOMDP(...)

rewards = Array(Float64, length(solvers))
for i in 1:length(solvers)
    simulator = RolloutSimulator(rng=MersenneTwister(i), eps=0.001) # same rng to keep things fair
    rewards[i] = simulate(simulator, problem, solvers[i])
end

If we want to do this, we need a function like specialize_belief().
Side note: currently POMCP has a fallback mode, so it will work if used like this, but it will not use the particle filter and will not be able to reuse tree data from previous steps; it will use exact belief updates and will create a completely new tree at every step

Hmmm... Okay. Is specialize_belief the right name? It feels a little strange.

@zsunberg, I am thinking about this in, possibly, even more general terms. In the POMDP definition belief is represented as a distribution of type DistType1. In the solver being used to solve the POMDP (and possibly the belief updater) the implemented way of representing belief is DistType2. Going between DistType1 and DistType2 is ugly and/or lossy. So, my preference would be to use DistType2 from the start. I think this issue might crop up for most solvers, not just POMCP, DESPOT, and the like.

I am not opposed to introducing another function to the API (e.g. specialize_belief), but I still might not be fully understanding the need for one (as opposed to having a couple versions of create_belief() and initial_belief()). I think may be I need to read Zach's first comment again :-)

@ebalaban, in response to your first comment, if we want our solvers to work with arbitrary problems, we will have no choice but to do the lossy conversion. If I was to write initial_beilief(problem::POMDP, solver::POMCPSolver), I would use initial_belief(problem) inside my function so that I can get the initial distribution for any pomdp that someone might throw at me, then I would have to sample this belief to create particles for my filter.

MCVI is another example of a solver that would need this I think

Another potential use for this is when a user hand-specifies a simple policy that does not feed back on the belief that is default for the pomdp. For example, a policy for the crying baby problem that feeds the baby whenever it is crying depends only on the previous observation. It cannot use BabyStateDistribution as the belief that it feeds back on, but instead must get the previous observation through  the belief (I have implemented this as PreviousObservation in POMDPToolbox

@mykelk I haven't been able to think of a name better than specialize_belief. Perhaps it feels strange because this is not typically discussed in the literature or by researchers - people don't typically try to make offline solvers and online approximate solvers live in the same ecosystem as we are attempting. There definitely could be a better name though.

@zsunberg, after re-reading this thread this morning with a less tired brain, I think I understand what you hope to accomplish with specialize_belief() - anytime conversion from one belief representation to another. Am I right? What I had in mind is something slightly different (and, perhaps, less ambitious).
A problem writer may not give too much thought to belief state representation if he/she does not know which solvers will be used to solve the problem. On the other hand, if another user wants to be able to easily work with a particular solver, he/she can add a function that supplies belief state in the appropriate representation. Using a rover as my running example (no pun intended), what I envision happening is something like this:
I am too lazy to think about this, so let me just say that the rover state is
distributed normally in the default case and let others worry about everything else
initial_belief(pomdp::POMDP)
return GaussianBelief(50, 5)
end
Ok, well, I do want my problem to work well with DESPOT though, so I'll add a function that supplies DESPOT with its
preferred particle representation instead
initial_belief(pomdp::POMDP, solver::DESPOTSolver)
# create a bunch of particles here that describe where we think we are
return [Particle{Int64}(50, 0.5), Particle{Int64}(49, 0.2), Particle{Int64}(51, 0.2), Particle{Int64}(48, 0.05), Particle{Int64}(52, 0.05)]
end
Now, my adviser wants me to try some other solver that expects all states enumerated and probabilities
for them specified, even if the state is physically on the other side of the solar system from where
my rover is
initial_belief(pomdp::POMDP, solver::SomeOtherSolver)
return create_a_humongous_table_of_states_and_their_darn_probabilities(...)
end
So, if you need to tweak your belief state later on, before using it within your simulation, you'd just tweak it in one of the above representations, e.g. change the mean of the Gaussian representation to 49 and its standard deviation to 4. Note that the representation returned for DESPOT never existed as a Gaussian (and vice versa), so there is no "loss" to speak of - both representations just have their pluses and minuses. And yes, you'd still be able to try a bunch of different solvers with BabyPOMDP, you'd just need to call initial_belief() for each of the solvers to return the appropriate belief representation.
None of this precludes writing "lossy" converters from one type of belief representation to another, we just may want to keep them in POMDPToolbox and not in the API.
Does this make sense? I'll respond to the BeliefUpdater discussion a bit later.

Thank you for your example. I think these converters can live in POMDPToolbox or something like that.

Sorry you had trouble deciphering what I was saying - actually, I was not attempting to define an interface for "anytime" conversion between belief types with specialize_belief(), rather, I was trying to define a standard way to create a policy-specific belief structure with any arbitrary belief as the initial belief.
Before discussing this more, I think we should answer this question: Is the output of initial_belief() the only way of specifying the initial belief that we want to support? I.e. if we have a for loop that runs 50 simulations with 50 different initial beliefs, do we want to redefine initial_belief() (or alternatively change pomdp parameters to get initial_belief() to return something different) 50 times?

Yes, I'd say we either modify POMDP parameters and call initial_belief() again or tweak a previously-generated belief directly. What other options do you have in mind?

Ok, now I think I am seeing what you were proposing. You are trying to give a user (we'll call him the experimenter - it may or may not be the problem writer or the solver writer) more fine grain control of the belief. I was trying to propose a way to facilitate transparent policy interchangeability for simple problems (that is solving the problem that the experimenter would need to know about a policy-specific belief). I'll not discuss that in this issue any more.
I think the easiest and most flexible way to specify the initial belief for a simulation is to directly specify it to the simulator. For example, as the RolloutSimulator in POMDPToolbox is implemented now (don't get distracted by the word 'Rollout' - I'm not talking about rollout simulations, that is just the name of a simulator that has already been implemented), you could do
sim = RolloutSimulator(initial_belief=[Particle{Int64}(50, 0.5), Particle{Int64}(49, 0.2), Particle{Int64}(51, 0.2), Particle{Int64}(48, 0.05), Particle{Int64}(52, 0.05)])
simulate(sim, pomdp, policy)

where policy is a DESPOT policy.
I was under the impression that initial_belief() was just a convenience function so that an experimenter can generate an example initial belief for a problem without having to think about it too much. I personally think giving the initial belief to the simulator should be the preferred way to specify the initial belief, rather than redefining the initial_belief() function, especially since there may be calls to simulate() for rollouts deep inside an online policy and it would be awkward to redefine initial belief there. I suppose there is not really any big harm in adding the policy to the initial_belief() arguments, but I don't think it is necessarily needed either.
It is true that the more different/optional ways we provide for doing things, the more likely it is that a solver-writer or simulator-writer or problem-writer will decide not to support it at some point and the more times solvers/simulators/problems will be incompatible, the more frustrating using this thing will be.
I do see the point that you would need create_belief() to be aware of the policy (I think it should be the policy, not the solver, since policy is the argument to simulate()), so I do agree that should be changed.

What will happen though if
create_belief(::BabyPOMDP, ::Policy)

is defined in POMDPModels.jl and
create_belief(::POMDP, ::POMCPPolicy)

is defined in POMCP.jl. can julia distinguish those?

This should be fixed by #34, so we'll put this on hold until we get that all figured out

@ebalaban should we close this and move further discussion to #35?

Sure.


⚠ Bofrost.fr has degraded performance

In 0818248, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 2409 ms

Resolved: Bofrost.fr performance has improved in 2175179 after 15 minutes.


Users should be able to have a real name

Coverage remained the same at 79.344% when pulling fd37e1cecd23e42c8c645215c6b9d64350cfab4a on feature/user-realname into 417e8633cfddbfee52052c23c69f4217a1947709 on master.


Add Simplified Chinese.

Hey thanks for this! I'll let the checks run and it will be merged next update :)


[Help]: How to resolve Dask ValueError error in sbas.conncomp_main function in PyGMTSAR

Describe the problem you encountered
Provide a brief description of the issue you're facing.
Dear Mr. AlexeyPechnikov, I have a problem with processing data using the sbas.conncomp_main function of the PyGMTSAR library. When calling the function, I get a ValueError error related to Dask's multidimensional array chunking. I am not sure how to solve this problem.
OS and software version
Please specify your operating system and the version of PyGMTSAR you are using, if applicable.

OS:
PyGMTSAR version:

Steps to reproduce the problem
If possible, describe how the problem can be reproduced from scratch. Include any commands or steps you took leading up to the issue.
Log file
If you have a log file or terminal output related to the problem, please attach it here.
Screenshot
If applicable, attach a screenshot to help us better understand your situation.

Note

If you have a general question not directly related to PyGMTSAR, consider using the discussions page.

[For additional support, consider using the ChatGPT4-based InSAR AI Assistant at https://insar.dev/ai. It can provide guidance and help with understanding PyGMTSAR's capabilities and troubleshooting issues.]

You could omit this function call if you’re unsure about its usage. It’s typically employed to eliminate unconnected components in unwrapped phases, thereby preserving only the areas that are consistently unwrapped.

Thank you for your reply, Dear Mr. AlexeyPechnikov


Implement plugin configuration defaults

Many plugins might share configuration keys, and it's tedious to repeat their values. Thus, there should be some kind of plugin configuration defaults in the configuration file.
See https://groups.google.com/forum/?hl=es&fromgroups#!topic/robohydra/Bsf8Wo0efvE for background.

This should do the trick. I'm not sure when I'll make a new release (I'd like to try to get the proxy support in there, too), but for now you can use master.


keep release name same

Codecov Report

Merging #38 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master      #38   +/-   ##
=======================================
  Coverage   61.58%   61.58%
=======================================
  Files          14       14
  Lines         177      177
  Branches       26       26
=======================================
  Hits          109      109
  Misses         56       56
  Partials       12       12

Impacted Files
Coverage Δ

src/utils/sentry.ts
0% <0%> (ø)
: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 3f46a9d...fe95014. Read the comment docs.


PicoLIbc for Aarch64 gives missing limits.h header build error

While doing the build according to building-from-source.md, I cloned repos and applied all mentioned patches, started building using Ninja, and then I faced an issue related to PicoLibc and aarch64, it looks like, PicoLibc, which is selected by default, needs additional configuration definitions to be used under aarch64, or requires additional patches. However, I need only the ARM target architecture.
Env: Release Linux Mint 21.3 Virginia 64-bit, Kernel Linux 5.15.0-119-generic x86_64, MATE 1.26.0
Compiler: Clang-14.0.0 (default from apt repository installed on apt install clang).
RAM: 16GB
Disk: 72 GB free
To get build successful I had to modify cmake configure, limiting targets with only ARM target:
cmake .. -GNinja -DFETCHCONTENT_SOURCE_DIR_LLVMPROJECT=../repos/llvm-project -DLLVM_TARGETS_TO_BUILD=ARM -DFETCHCONTENT_SOURCE_DIR_PICOLIBC=../repos/picolibc
  142 | # include_next <limits.h>
      |                ^~~~~~~~~~
1 error generated.
[14/282] Building C object lib/builtin....builtins-aarch64.dir/comparetf2.c.obj
FAILED: lib/builtins/CMakeFiles/clang_rt.builtins-aarch64.dir/comparetf2.c.obj
/home/itxs/LLVM-embedded-toolchain-for-Arm/build/llvm/bin/clang --target=aarch64-none-elf -DHAS_ASM_LSE -DVISIBILITY_HIDDEN  --target=aarch64-none-elf -march=armv8-a -ffunction-sections -fdata-sections -fno-ident --sysroot /home/itxs/LLVM-embedded-toolchain-for-Arm/build/llvm/lib/clang-runtimes/aarch64-none-elf/aarch64_exn_rtti -Wall -Wno-unused-parameter -O3 -DNDEBUG -fno-lto -Werror=array-bounds -Werror=uninitialized -Werror=shadow -Werror=empty-body -Werror=sizeof-pointer-memaccess -Werror=sizeof-array-argument -Werror=suspicious-memaccess -Werror=builtin-memcpy-chk-size -Werror=array-bounds-pointer-arithmetic -Werror=return-stack-address -Werror=sizeof-array-decay -Werror=format-insufficient-args -Wformat -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -DCOMPILER_RT_HAS_FLOAT16 -MD -MT lib/builtins/CMakeFiles/clang_rt.builtins-aarch64.dir/comparetf2.c.obj -MF lib/builtins/CMakeFiles/clang_rt.builtins-aarch64.dir/comparetf2.c.obj.d -o lib/builtins/CMakeFiles/clang_rt.builtins-aarch64.dir/comparetf2.c.obj -c /home/itxs/LLVM-embedded-toolchain-for-Arm/repos/llvm-project/compiler-rt/lib/builtins/comparetf2.c
In file included from /home/itxs/LLVM-embedded-toolchain-for-Arm/repos/llvm-project/compiler-rt/lib/builtins/comparetf2.c:40:
In file included from /home/itxs/LLVM-embedded-toolchain-for-Arm/repos/llvm-project/compiler-rt/lib/builtins/fp_lib.h:23:
In file included from /home/itxs/LLVM-embedded-toolchain-for-Arm/repos/llvm-project/compiler-rt/lib/builtins/int_lib.h:93:
In file included from /home/itxs/LLVM-embedded-toolchain-for-Arm/build/llvm/lib/clang/20/include/limits.h:25:
/home/itxs/LLVM-embedded-toolchain-for-Arm/build/llvm/lib/clang-runtimes/aarch64-none-elf/aarch64_exn_rtti/include/limits.h:142:16: fatal error: 'limits.h' file not found
  142 | # include_next <limits.h>
      |                ^~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
[5/708] Performing install step for 'picolibc_aarch64'
FAILED: compiler-rt/aarch64_exn_rtti/src/compiler_rt_aarch64_exn_rtti-stamp/compiler_rt_aarch64_exn_rtti-build /home/itxs/LLVM-embedded-toolchain-for-Arm/build/compiler-rt/aarch64_exn_rtti/src/compiler_rt_aarch64_exn_rtti-stamp/compiler_rt_aarch64_exn_rtti-build
cd /home/itxs/LLVM-embedded-toolchain-for-Arm/build/compiler-rt/aarch64_exn_rtti/src/compiler_rt_aarch64_exn_rtti-build && /usr/bin/cmake --build .
[7/708] Performing install step for 'picolibc_aarch64'
ninja: Entering directory `/home/itxs/LLVM-embedded-toolchain-for-Arm/build/picolibc/aarch64/src/picolibc_aarch64-build'
ninja: no work to do.
ninja: build stopped: subcommand failed.

Hi Timur,
Hope you have pulled latest picolibc code, this issue has been fixed a couple of days earlier with: https://github.com/picolibc/picolibc/pull/810
After this fix, I feel you may also observe another unrelated issue of duplicate symbols. This also can be fixed by temporarily using older picolibc version: https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/pull/465
Regards,
Vrukesh

UPD: Thanks, I updated my picolibc and the issue gone


[FLINK-25867][docs] translate ChangelogBackend documentation to chinese

What is the purpose of the change
Translate ChangelogBackend documentation to chinese.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): yes (internal: flink-docs -> flink-dstl-dfs)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (see above)

Hi @curcur , can you help me review this pull request?

@zoltar9264 and @rkhachatryan
I will review this next week. Thanks for contribution @zoltar9264 !

Thanks @curcur !

@curcur remind ^_^

Thank for your review again @masteryhx , I hive fixed problems you mentioned.

Thank for your review again @masteryhx , I hive fixed problems you mentioned.

LGTM, @curcur Do you have any other inputs?

kindly ping @curcur

Thank you very much @Myasuka , your suggestion does look better, learn a lot !
I hive committed those change and squash them into first commit in this pr. (Last three commits are hotfix for other issue.)

Thanks @Myasuka , I have rebased with latest master.

@flinkbot run azure

@flinkbot run azure


Create LICENSE

Add a LICENSE file for added discoverability.

Please, up.
See mdeering/attribute_normalizer#41
And please, release new gem version for this change to have effect…

P.S. @dustyburwell, you could use [skip ci] for not triggering the CI
(as checks, failed for some other reasons, not related to your commits, makes your PR look like failing, while it obviously isn't).

New commit pushed with [skip ci]. Thanks


Content on "Customize-non-PHP_INI_SYSTEM directives" not correct for the PHP_INI_SCAN_DIR value

The following red box should be modified from "/home/site/wwwroot/ini." to ":/home/site/wwwroot/ini". Here is the reason:

/usr/local/etc/php/conf.d is the default directory where php.ini exists. If you would like to add the custom directory in which you'll add a custom .ini file. You separate the values with a ":"
The end of PHP_INI_SCAN_DIR value should not end with "."

Thank you

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: a3209bb1-99cd-9e32-ae48-2605831aee02
Version Independent ID: 743bc03e-d0d1-1e9e-acb1-52ae01daa0cc
Content: Configure PHP apps - Azure App Service
Content Source: articles/app-service/configure-language-php.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@yansyunchen
Thanks for your feedback! We will investigate and update as appropriate.


Improve DocTableInfo java docs

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@db1de0e). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master   #6248   +/-   ##
========================================
  Coverage          ?   83.3%
  Complexity        ?   12576
========================================
  Files             ?    1454
  Lines             ?   47535
  Branches          ?    5825
========================================
  Hits              ?   39600
  Misses            ?    5234
  Partials          ?    2701

Impacted Files
Coverage Δ
Complexity Δ

.../main/java/io/crate/metadata/doc/DocTableInfo.java
93.75% <ø> (ø)
54 <0> (?)

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 db1de0e...9cad004. Read the comment docs.

👍


php, php-mysql packages

It seems that "php" and "php-mysql" must to be install before executing db-sync.
I recommend that installation instruction is written on the README.

It easy to change to use it with postgresql?


Proxy value helper

Something that I find myself doing again and again is to join multiple inputs into a single value object. The value object acts as a proxy to the individual inputs.
It would be great to have such a helper as part of the library.
Example (demo):
function mergeInputs(inputs, target = {}) {
  const props = Object.fromEntries(Object.entries(inputs).map(([key, input]) => [key, {
    enumerable: true,
    configurable: true,
    get: () => input.value,
    set: value => input.value = value,
  }]));
  return Object.defineProperties(target, props);
}

viewof opts = {
  const inputs = {
    n: Range([1, 30], {value: 19, step: 1, label: "size" }),
    a: Range([0, 45], {value: 27.5, step:.1, label: "angle" }),
    x: Range([-100, 100], {value: 0, step: 1, label: "x offset" }),
    y: Range([-100, 100], {value: 0, step: 1, label: "y offset" }),
  };
  const view = html`<div>${Object.values(inputs)}`;
  view.value = mergeInputs(inputs);
  return view;
}

// opts
Object {n: 19, a: 27.5, x: 0, y: 0}

Thanks for the suggestion! I’d definitely like us to have a recommended approach for “compound” inputs, or denser layout of multiple inputs.
Here’s an alternative I’ve been considering. It doesn’t require any new machinery, and it lets you reference individual values reactively. The downside is you end up with some orphaned cells because the views are ripped out of their original cell and then inserted into the combining cell.
html`${[viewof n, viewof a, viewof x, viewof y]}`

viewof n = Range([1, 30], {value: 19, step: 1, label: "size" })

viewof a = Range([0, 45], {value: 27.5, step: 0.1, label: "angle" })

viewof x = Range([-100, 100], {value: 0, step: 1, label: "x offset" })

viewof y = Range([-100, 100], {value: 0, step: 1, label: "y offset" })

It should look like this:

I see the primary application for inputs which only make sense when used together (that is, you would combine them into an object or array anyway). In my opinion, having to splitting them up across multiple cells creates unnecessary mental overhead.
I also try to stay clear of reparenting, because I think it's confusing to viewers. At the very least the moved element could be replaced with a notice, e.g.:
function move(target) { return target.replaceWith(html`<em>This element has been moved.`), target }

md`Adjust here: ${move(viewof foo)}`

Other benefits of compound inputs: You can treat the input library (or really any view) as widgets and generate combinations of them dynamically (.e.g. options based on previous choices, array inputs, compound row inputs etc); inputs can be moved around as one cell, which makes a significant difference for large numbers of inputs.
tl;dr: I don't think reparenting is a suitable alternative. What would be your expectations and requirements for a compound widget or function, to accept it into the library?

To resolve the issues with reparenting, the Observable runtime could detect when the topmost DOM node is removed and replace it with a standard viewof x = HTMLElement { ... } inspector so there isn’t a blank spot left.

Nice idea, @j-f1. That would require a shallow mutation observer for every cell, but I think that’s doable.
That said, I do think it’s worthwhile to have an explicit construct for this, rather than the “one weird trick” of defining a DOM element in one cell and “stealing” it from another. If only because it means you only need one cell to declare your inputs. If we eventually support cell destructuring (https://talk.observablehq.com/t/feature-request-destructuring-assignment/1127) you get the best of both worlds.
If I knew what my requirements were, I would just build the thing. 😄 For now I’m interested in proposals, examples, and debate on various approaches.

Maybe having a built in function similar to https://observablehq.com/@mbostock/form-input would make sense ?

Maybe having a built in function similar to https://observablehq.com/@mbostock/form-input would make sense ?

This library's widgets are wrapped in individual form elements, creating two challenges:

Form elements cannot be nested, and relying on name attributes may no longer work in this context.
The form element acts as the actual input. Anything inside it should be considered internal.

The value object has to be constructed and maintained regardless, so it makes sense to start with a low-level function first. This function will then allow you to create opinionated solutions that rely on certain conventions.
While I was working on a spec, some questions came up:

How should values get assigned? Am I allowed to reassign individual properties, or am I required to assign the object as a whole (similar to mutable assignments)?
Should the value be detached from the inputs? I.e., would each change create a new object and set it as value of the compound view?

These examples are the cross product of n independent controls. Real composite controls are more complex with mixed concerns. Then it is much harder to write the "set" function and to avoid self triggering event loops.
I would argue that the fact you can decompose the function into distinct cells shows the composite is factorable, and maybe distinct cells is the right representation (except that it takes up too much vertical space and the DX is not so good). Factorable UIs are the easy case though, and not the case where expressivity is amplified.
I good composite control is like Unity with a treeview scene graph on the left and a 3d view in the middle. Both are projections of a common world, but one is optimised for spatial reasoning, one for list reasoning. The combination is strictly more powerful than either alone (e.g. selection is shared).
@mootari suggestion on https://observablehq.com/@tomlarkworthy/audio-inputs
"Alternatively: can start and length of the selection be hooked up to knobs?"
is an exact example of what is not covered here, but what should be covered here. What if "x" is constrained to be the sqrt of "a"
Also "@observablehq/inputs" provide examples of not factorable composite inputs (https://github.com/observablehq/inputs/blob/main/src/range.js#L42). For a Range, 1. if the number is updated change the slider. 2. If the slider updates update the number. I think the fact you can't replicate any of the controls in "@observablehq/inputs" is why this is not solving a hard enough problem yet.

As far as I understand, the inputs combine both model and view. What you're suggesting sounds more like a separate model with multiple views attached (which can be done e.g. through mutable). However, I have to wonder at what point we're just emulating the reactivity of the Runtime inside a cell.

I do think allowing "value" to be writable is a good standard which allows other code to reuse controls better. It's a mechanism in mergeInputs as part of this proposal but I think in general it's something most controls should do.
With writability a control becomes a read/write view not a read-only view. Given most viewof "own" the storage of the source of truth, making them mutable gets them closer to being a general purpose variable that happens to have a UI attached.

Here’s a variation of @mootari’s proposal that implements value assignment and also allows you to define an arbitrary structure for the compound value:
viewof options = {
  const n = Range([1, 30], {value: 19, step: 1, label: "size"});
  const a = Range([0, 45], {value: 27.5, step: 0.1, label: "angle"});
  const x = Range([-100, 100], {value: 0, step: 1, label: "x offset"});
  const y = Range([-100, 100], {value: 0, step: 1, label: "y offset"});
  return Object.defineProperty(html`${[n, a, x, y]}`, "value", {
    get() {
      return {
        n: n.value,
        a: a.value,
        p: [x.value, y.value]
      };
    },
    set({n: _n, a: _a, p: _p}) {
      if (_n !== undefined) n.value = _n;
      if (_a !== undefined) a.value = _a;
      if (_p !== undefined) [x.value, y.value] = _p;
    }
  });
}

One thing missing from the above implementation is that it’d be better if the value object were the same if the value hasn’t changed; currently viewof options.value === viewof options.value is false because the getter creates a new object on each get. It’s better to cache the last value and then clear it when there’s an input event. Another missing thing is that if any of the child inputs don’t emit input events, e.g. bare buttons, then it won’t work because Generators.input only listens for input events on the compound input. But maybe that’s fine, especially if this is intended primarily to compose other Observable Inputs.
I feel shorthand (convenience) is likely the main draw here, so here’s a more constrained take:
function Form(inputs) {
  let value; // lazily constructed
  const root = html`<div oninput=${() => value = undefined}>${Object.values(inputs)}`;
  return Object.defineProperty(root, "value", {
    get() {
      return value === undefined
        ? (value = Object.fromEntries(Object.entries(inputs).map(([name, input]) => [name, input.value])))
        : value;
    },
    set(v = {}) {
      value = undefined;
      for (const name in v) {
        if (name in inputs && v[name] !== undefined) {
          inputs[name].value = v[name];
        }
      }
    }
  });
}

Then you’d say:
viewof options = Form({
  n: Range([1, 30], {value: 19, step: 1, label: "size"}),
  a: Range([0, 45], {value: 27.5, step: 0.1, label: "angle"}),
  x: Range([-100, 100], {value: 0, step: 1, label: "x offset"}),
  y: Range([-100, 100], {value: 0, step: 1, label: "y offset"})
})

Live example: https://observablehq.com/d/0fa0562e1dbf9542
The idea being: the display is always a simple concatentation of the inputs, and the structure is always a flat object. (We could be a bit more flexible here with options, e.g. allowing a grid, or allowing the value to be an array instead of an object, and possibly even a nested structure.)

Oh, another thing I’d want here is an optional Submit button so that you can adjust the child inputs and then commit the value by clicking submit. I think that should be possible without much difficulty for the Form function (just tack a Submit button onto the end).

"it’d be better if the value object were the same if the value hasn’t changed"

This seems like a "design guidline", similar to how a views value should be mutable.
I collected them here: https://observablehq.com/d/8cf099730536c682
Note that cacheing the value is kinda tricky to square with letting events bubble.
I am also thinking that the ui "viewof" should communicate with "backend" value via state transfer not action driven function calls.
So instead of having a play() function that is called by the onclick of a button, you create a isPlaying state variable, and toggle that by writing to it.
onclick= () => {value.isPlaying = true}

This makes it simpler for downstream composite controls to automate their upstream dependancies. They can read state in the same way the write state. It's the same argument for resource orientated API design and can be made more robust against self triggering loops etc as it's an idempotent interface.

I am not sure if this is a bug or not, but when using the "set", an input event is not raised, so I can mutate the control so the UI changes, but any models listening to the UI don't hear and therefore don't update.

Here’s a variation of @mootari’s proposal that implements value assignment and also allows you to define an arbitrary structure for the compound value:
viewof options = {
  const n = Range([1, 30], {value: 19, step: 1, label: "size"});
  const a = Range([0, 45], {value: 27.5, step: 0.1, label: "angle"});
  const x = Range([-100, 100], {value: 0, step: 1, label: "x offset"});
  const y = Range([-100, 100], {value: 0, step: 1, label: "y offset"});
  return Object.defineProperty(html`${[n, a, x, y]}`, "value", {
    get() {
      return {
        n: n.value,
        a: a.value,
        p: [x.value, y.value]
      };
    },
    set({n: _n, a: _a, p: _p}) {
      if (_n !== undefined) n.value = _n;
      if (_a !== undefined) a.value = _a;
      if (_p !== undefined) [x.value, y.value] = _p;
    }
  });
}

Q: Should setting a view fire an input event?

I am not sure if this is a bug or not, but when using the "set", an input event is not raised

This is intentional and matches the behavior of native inputs. You have to dispatch an event explicitly if desired.

(We could be a bit more flexible here with options, e.g. allowing a grid, or allowing the value to be an array instead of an object, and possibly even a nested structure.)

Could it lead to the support of arbitrary layouts in the future ? Or should this still be considered a totally distinct concern ?
Just an example (live) :
function Form(layout, formatted = false) {
  let value; // lazily constructed
  const root = html`<div oninput=${() => value = undefined}>${formatted ? layout : Object.values(layout)}`;
  const inputs = formatted ? parse(layout) : layout;
  return Object.defineProperty(root, "value", {
    // ...
  });
}

This is intentional

Good to know! I added it.
Another thing I noticed, is that for controls wrapping primitive values, the writable property is defined on the ui container. So to actually mutate a value you would call it like:-
    viewof myView.value = "newVal"

But for mergeInputs, we are one level deeper, which is simpler to user
myview.value.field = "newFieldValue"

So It be nice syntactically nicer if we could drop the "viewof" and assign the value directly:
myView = "newValue"

But we get Syntax error for assigning to constant. Also we would be self trigger, so with that in mind, I kinda think the following should be possible
mutable myView = "newValue"

Anyway, thats a minor thing, my overall question is do we think the root composite object value should be writable? Or just the subfields? Or both?
Personally I think the root has to be writable, for symmetry with primitive controls (https://github.com/observablehq/inputs/blob/f72d22b4a8302922d1f86adb15fdfe6289950254/src/range.js#L47). However, thats the least ergonomic to use. If I want to flip a subfield through the setter of a composite I need to do
viewof myView.value = {...viewof myView.value, subfield: "newValue"}
Interestingly @mootari went for mutability on subfields, and @mbostock on the root.
I think a good composite needs to support both.

I'm trying to do something I think might be relevant to this issue.
I've been trying to use these inputs inline, a-la @mbostock/inline-inputs, to achieve something like this:

I find this can be a more engaging way of getting input from the user than a grid layout.
Unfortunately, since the input elements in this library come back wrapped in <form> they automatically get displayed as block elements. I can strip back the outer wrapping elements until I get the <input> and manually set the CSS on it, but it feels like I'm rather hacking the library!
It would be great if the solution for multi-value inputs would support more than just grid layouts.

I reconsidered supporting both types of mutation and think it only makes sense to support mutability of the root node, as that one is interesting as it sorta connects the two layers of a viewof (the UI bit and the data bit). I tried to write up the least contentious rules here: https://observablehq.com/@tomlarkworthy/ui-linter with some automated testing.
I am more interested in general reusability than just compound inputs. Maybe I do not have much to contribute on this narrower topic.

Hello everybody.
I’ve realized a parametric form, Panel, which has some of the features you are talking about.
I didn't know about this thread, thanks @mootari for signaling, so some aspect of my solution overlaps with something already discussed, sorry for that.
My Panel

initializes calling a function with a descriptor where each control has a name, for example:
  viewof ui = Panel ({
  	myFirstPar:  Range ([0, 11], {value: 5, label: "first val"}),
  	mySecondPar: Range ([0, 1000], {value: 5, label: "another val"}),
  	fruit:       Select(['apple','orange','lemon'], {label: "fruit"}),
  	myLastPar:   Toggle ({label: "this is a toggle"})
  })

uses @observablehq/inputs fields

all values can be extracted simultaneously through the expression ui.asObject which is updated every time a parameter is changed

each parameter can be extracted individually by name (eg: ui.myFirstPar). This value updates only when that parameter is changed

a subset of parameters can be extracted through the group function (eg: ui.group ('myFirstPar', 'myLastPar')). This function returns an object that is updated only when one of the subset parameters is changed.

the read function allows you to read the parameter values as an object immediately (ui.read())

the set function (example ui.set('myFirstPar', 10)) allows to set a value and triggers updates where needed

html rendering is automated, some little customization is possible.

You can find it, with some examples, at https://observablehq.com/@paoloandrenacci/panel/2, I would like very much to have some feedback and to know if it has been useful to you.

My entry into the composite view https://observablehq.com/@tomlarkworthy/view
This add a [key, DOM] special case to the hypertext literal. So you just write your compound view in HTML and it can assemble/disassemble on get/set .
viewof composite = view`

    ${["r1", Range([0, 10])]}

    ${["r2", Range([0, 3])]}

    ${[
      "text",
      Text({
        label: "Enter some text"
      })
    ]}

`


srt publish core dump bug

solve the core dump bug when srt publish.
Thanks Eric a lot for help to provide the machine.

Codecov Report

Merging #2429 (6c73277) into develop (a594678) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop    #2429      +/-   ##
===========================================
- Coverage    42.77%   42.77%   -0.01%
===========================================
  Files          101      101
  Lines        35944    35944
===========================================
- Hits         15376    15375       -1
- Misses       20568    20569       +1

Impacted Files
Coverage Δ

trunk/src/protocol/srs_service_utility.cpp
72.43% <0.00%> (-0.55%)
:arrow_down:

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 a594678...6c73277. Read the comment docs.


Implement animations

There are a number of nice animations possible with LED. Please check out this app and implement animations that work on real devices: https://play.google.com/store/apps/details?id=com.rooftopSpace.Led

@mariobehling  There are animations like Bounce , Rotate X , Rotate Y or Blink  which are still not in preview listv. Could I add these and work on these ?

@theLimitBreaker when you implement animations, make sure that they will appear on the device too.

@theLimitBreaker the hardware has support for 8 animations currently. It would be better if you could complete them

@adityastic  I don't understand the limit of animations being 8 . Could you please elaborate ?

@theLimitBreaker The hardware has support for 8 animations currently. Check the specifications of the hardware, it says compatible with 8 modes. Example, If we send 1 from bluetooth it sets the animation to 1, if we set 8 through bluetooth, it sets it to 8. There is no 9th option supported by the device.

@theLimitBreaker the preview just tries to mimic the exact animations those animations are not currently being sent to the hardware right now

@adityastic  I am unable to see the specifications on website mentioned in README.md . Where can i see these spefications of hardware

@iamareebjamal, I specified a way to achieve custom animations in my gsoc application which took an approach of sending 8 frame animations to the badge, as the badge only accepts 8 strings. If we send the perfect strings which act like an animation, we can create some amazing animations. Please give your thoughts on this sir

Let's simplify this and follow up here please: https://github.com/fossasia/badge-magic-android/issues/232


Use Node-provided path module for path concatenation

This PR just swaps custom code for using the Node-provided path module.

The path module is intended for file system paths and is not appropriate for URLs. Using path functions with URLs will break Windows users. URL.resolve() should be used for this instead.

URL.resolve() is for resolving URLs as an anchor tag would. It doesn't do the same thing as path.join.
In any case, good catch on path.join. I'll find an alternative.

URL#resolve

You are correct that url.resolve() does not meet the needs of this code. I misread the original code on the first pass. I did not mean to imply that path.join() and url.resolve() perform the same function. Thanks for the catch.

I don't think this is worth changing by itself. I'm just going to close the PR.


Offsets for Animated Lua Sprites

What is your question?
So I made a script a week or so ago which makes multiple characters able to sing at the same time without replacing girlfriend
here it is #3567
I'm wondering if there's anyway to add offsets to a lua animation so that it isn't all jittery
addAnimationByPrefix('gray', 'singLEFT', 'left', 24, false);
so here I would be able to put the x offset of the animation and the y offset of the animation
is this possible in any way?

setProperty('gray.offset.x', 10)


Engine: import thir: investigate Use ident

We're currently doing something hackish in the Use case in import_thir with Dummy.

Still relevant!


Update CALayer+ModalAlert.m

Fixes crash when using iOS 8 Webkit
Issue: https://github.com/lmcd/LMAlertView/issues/51

+1

well done


Add possibility to include pictures in pickup feedback

Requested by LMR Fürth.
At the moment they are examining the possibilities Karrot offers and may switch to it around Easter. It's not dependent on this and not decided upon.

Cool feature, I like it! Maybe just one picture in the beginning, to see how people adopt it?

Could be tackled as a starter task! :)

Sure! My last comment was of general nature, there's no need to implement it in near future.
For more backend tasks, I marked some as "help wanted" here: https://github.com/yunity/karrot-frontend/issues?utf8=✓&q=is%3Aopen+is%3Aissue+label%3Abackend+label%3Ahelp-wanted
For example, https://github.com/yunity/karrot-frontend/issues/1038 might be straightforward :)

Andrea from Solikyl Gothenburg requested that recently:

Possibility to upload photos to the pickup feedback

The goal is to give users the possibility to upload one or more pictures when giving feedback. From a backend perspective, there should be API endpoints to upload, change and retrieve pictures. We already have some infrastructure in place to handle picture upload.
The offers feature demonstrates it. There's a separate image model, the serializer has the logic to add, remove and reorder pictures. There's also a special parser for handling combined JSON+multipart requests, to allow one request that includes data and pictures. The tests should make it a bit clearer how the API can be used.
On to feedback! I guess it could be quite similar to offers.
That's so far for the backend. Frontend can be ignored for now.


Change how Traffic Router gets its connectivity to TrafficOps

Currently we store credentials in the traffic router's traffic_ops.properties file.  I'd like to see us add a new parameter to traffic_ops.properties for the TO API base URL similar to the rest of the TC components store that relationship.
Today, Traffic Router knows where to find TO by reading a field in the CRConfig generated by the url a user was using when performing a snapshot.  That CRConfig is handed off to Traffic Router by way of Traffic Monitor.  By storing the URL in the TR configs directly: you prevent connectivity issues derived from firewalls/dns-name differences at the client/TO relationship, reduce reliance on TM, and appear more consistent with the rest of Traffic Control.

+1, and ideally this could be alternatively influenced via environment variables for use with things like Docker.


Fully remove PartProvider and last remaining references

What problem are you trying to solve?
PartProvider has been deprecated for a while now; with the JavaTemplate as suggested replacement.
https://github.com/openrewrite/rewrite/blob/d0704ac91c0fc618542838fa3f1edaf04c8089ef/rewrite-java/src/main/java/org/openrewrite/java/PartProvider.java#L35
Describe the solution you'd like

[ ] Fully remove PartProvider in this repository
[ ] Remove from rewrite-spring AddRouteTrailingSlash
[ ] Remove from rewrite-spring ReplaceGlobalMethodSecurityWithMethodSecurity
[ ] Remove from rewrite-migrate-java MigrateCollectionsSingletonList
[ ] Remove from rewrite-static-analysis ReplaceStringBuilderWithString
[ ] Remove from rewrite-testing-frameworks AnyStringToNullable

Additional context

https://docs.openrewrite.org/concepts-explanations/javatemplate

I am open to working this issue if needed.

That would be much appreciated! Feel free to open a pull request against any of those projects and I'll see them through. Do you need any further assistance beyond what's covered in the docs about JavaTemplate?

I'll give it a read over and let you know. Thank you!

Is there any branch you would prefer I branch off of? I looked through the documents and did not find a preferred branch.

Just forking the main branch, and starting a branch on your end would work fine. Thanks again!

Sounds great, thank you!

I was able to start some work on your changes and the template documentation is mostly straightforward. However, I wanted to know how the code snippet fits in the new template. I have an example here of what I have so far:

Let me know how I should format the code snippet into the new template. Thank you!

Quick first reaction: you can drop lines 75, 76 & 77 when not using any dependencies such as here! :)

Figured pick up one of these just now to have an example: here's one of the five required changes above in https://github.com/openrewrite/rewrite-testing-frameworks/commit/e383281491aa96ed00a689233e4af41b2f80b34b

Thank you, the example helps a lot. I am resuming work on these changes.

Thanks a lot! Would be good to see this through, and thankful for the help!


Add instructions for how to run image in cloud

Signed-off-by: Andreas Karis<EMAIL_ADDRESS>

/retest

Thanks for the review, Dan and Jamo!

/hold
Waiting for a cloud to test the new version on

/hold-cancel

/help

/unhold

/lgtm

/approve


Ignore certain folders/files like node_modules or /bin folder

This extension is just awesome!
It would be great if we can ignore certain folders & files to keep the graph clean (without obvious calls like map, forEach, etc).
Thanks in advance

@carlos-xpln https://github.com/beicause/call-graph/issues/6
It's already possible to ignore some patterns

.callgraphignore doesn't work for me

seems to work for me. However, it doesn't ignore files like /bin/..../node_modules/... etc. Only files at the root of the project.


esp32s3 CVBS UVC - Negotiating streaming format failed (IDFGH-10548)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Hello
I'm trying to get the UVC Host Example working with a USB CVBS UVC converter. Unfortunately, it fails with the message Negotiating streaming format failed, trying again...
Is there something I can try to get past the negotiating? Or maybe a way to force it into a specific format?
Device: https://aliexpress.com/item/4000046160510.html
Full Log:
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3820,len:0x1718
load:0x403c9700,len:0x4
load:0x403c9704,len:0xc08
load:0x403cc700,len:0x2f08
entry 0x403c990c
I (27) boot: ESP-IDF v5.2-dev-1349-gcf7e743a9b 2nd stage bootloader
I (27) boot: compile time Jul  3 2023 10:59:23
I (28) boot: Multicore bootloader
I (32) boot: chip revision: v0.1
I (35) boot.esp32s3: Boot SPI Speed : 80MHz
I (40) boot.esp32s3: SPI Mode       : DIO
I (45) boot.esp32s3: SPI Flash Size : 2MB
I (50) boot: Enabling RNG early entropy source...
I (55) boot: Partition Table:
I (59) boot: ## Label            Usage          Type ST Offset   Length
I (66) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (73) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (81) boot:  2 factory          factory app      00 00 00010000 00100000
I (88) boot: End of partition table
I (93) esp_image: segment 0: paddr=00010020 vaddr=3c030020 size=0e320h ( 58144) map
I (111) esp_image: segment 1: paddr=0001e348 vaddr=3fc92d00 size=01cd0h (  7376) load
I (113) esp_image: segment 2: paddr=00020020 vaddr=42000020 size=259f4h (154100) map
I (146) esp_image: segment 3: paddr=00045a1c vaddr=3fc949d0 size=00f5ch (  3932) load
I (147) esp_image: segment 4: paddr=00046980 vaddr=40374000 size=0ec6ch ( 60524) load
I (171) boot: Loaded app from partition at offset 0x10000
I (171) boot: Disabling RNG early entropy source...
I (182) cpu_start: Multicore app
I (183) esp_psram: Found 2MB PSRAM device
I (183) esp_psram: Speed: 40MHz
I (184) cpu_start: Pro cpu up.
I (187) cpu_start: Starting app cpu, entry point is 0x403752d8
0x403752d8: call_start_cpu1 at /home/user/esp/esp-idf/components/esp_system/port/cpu_start.c:154

I (0) cpu_start: App cpu up.
I (613) esp_psram: SPI SRAM memory test OK
I (622) cpu_start: Pro cpu start user code
I (622) cpu_start: cpu freq: 160000000 Hz
I (622) cpu_start: Application information:
I (625) cpu_start: Project name:     usb-uvc
I (630) cpu_start: App version:      v5.2-dev-1349-gcf7e743a9b
I (637) cpu_start: Compile time:     Jul  3 2023 10:59:16
I (643) cpu_start: ELF file SHA256:  cec1f690b...
I (648) cpu_start: ESP-IDF:          v5.2-dev-1349-gcf7e743a9b
I (655) cpu_start: Min chip rev:     v0.0
I (659) cpu_start: Max chip rev:     v0.99
I (664) cpu_start: Chip rev:         v0.1
I (669) heap_init: Initializing. RAM available for dynamic allocation:
I (676) heap_init: At 3FC96208 len 00053508 (333 KiB): DRAM
I (682) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DRAM
I (689) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (695) heap_init: At 600FE010 len 00001FD8 (7 KiB): RTCRAM
I (702) esp_psram: Adding pool of 2048K of PSRAM memory to heap allocator
I (710) spi_flash: detected chip: generic
I (714) spi_flash: flash io: dio
W (718) spi_flash: Detected size(8192k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (731) sleep: Configure to isolate all GPIO pins in sleep state
I (738) sleep: Enable automatic switching of GPIO sleep configuration
I (745) app_start: Starting scheduler on CPU0
I (750) app_start: Starting scheduler on CPU1
I (750) main_task: Started on CPU0
I (760) esp_psram: Reserving pool of 146K of internal memory for DMA/internal allocations
I (770) main_task: Calling app_main()
I (770) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
Waiting for device
Device found
DEVICE CONFIGURATION (534d:0021/2) ---
Status: idle
VideoControl:
        bcdUVC: 0x0100
VideoStreaming(1):
        bEndpointAddress: 131
        Formats:
        MJPEGFormat(1)
                  bits per pixel: 0
                  GUID: 4d4a5047000000000000000000000000 (MJPG)
                  default frame: 2
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 00
                          size: 480x320
                          bit rate:<PHONE_NUMBER>08000
                          max frame size: 307200
                          default interval: 1/25
                          interval[0]: 1/25
                        FrameDescriptor(2)
                          capabilities: 00
                          size: 640x480
                          bit rate:<PHONE_NUMBER>08000
                          max frame size: 614400
                          default interval: 1/25
                          interval[0]: 1/25
                          interval[1]: 1/20
                          interval[2]: 1/15
                          interval[3]: 1/10
                        FrameDescriptor(3)
                          capabilities: 00
                          size: 720x480
                          bit rate:<PHONE_NUMBER>08000
                          max frame size: 691200
                          default interval: 1/25
                          interval[0]: 1/25
                          interval[1]: 1/20
                          interval[2]: 1/15
                          interval[3]: 1/10
        UncompressedFormat(2)
                  bits per pixel: 16
                  GUID:<PHONE_NUMBER>001000800000aa00389b71 (YUY2)
                  default frame: 1
                  aspect ratio: 0x0
                  interlace flags: 00
                  copy protect: 00
                        FrameDescriptor(1)
                          capabilities: 00
                          size: 480x320
                          bit rate: 36864000-36864000
                          max frame size: 307200
                          default interval: 1/25
                          interval[0]: 1/25
END DEVICE CONFIGURATION
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...
Negotiating streaming format failed, trying again...

Linux V4L2 report:
sudo v4l2-ctl --list-formats -d /dev/video2
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
        [1]: 'YUYV' (YUYV 4:2:2)

sudo v4l2-ctl --all -d /dev/video2
Driver Info:
        Driver name      : uvcvideo
        Card type        : AV TO USB2.0
        Bus info         : usb-0000:00:14.0-4.1.4
        Driver version   : 6.3.9
        Capabilities     : 0x84a00001
                Video Capture
                Metadata Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : AV TO USB2.0
        Serial           : 20150130
        Bus info         : usb-0000:00:14.0-4.1.4
        Media version    : 6.3.9
        Hardware revision: 0x00000121 (289)
        Driver version   : 6.3.9
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : AV TO USB2.0
        Function         : V4L2 I/O
        Flags            : default
        Pad 0x01000007   : 0: Sink
          Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 640/480
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 614400
        Colorspace        : sRGB
        Transfer Function : Rec. 709
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Default (maps to Full Range)
        Flags             :
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 640, Height 480
        Default     : Left 0, Top 0, Width 640, Height 480
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 640, Height 480, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 640, Height 480, Flags:
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0

User Controls

                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=32 value=32
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=132 value=148
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=160
                            hue 0x00980903 (int)    : min=0 max=127 step=1 default=0 value=0

Linux dmesg:
[ 8740.247257] usb 1-4.1.4: new high-speed USB device number 37 using xhci_hcd
[ 8740.338926] usb 1-4.1.4: New USB device found, idVendor=534d, idProduct=0021, bcdDevice= 1.21
[ 8740.338930] usb 1-4.1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8740.338931] usb 1-4.1.4: Product: AV TO USB2.0
[ 8740.338933] usb 1-4.1.4: Manufacturer: MACROSILICON
[ 8740.338933] usb 1-4.1.4: SerialNumber: 20150130
[ 8740.340373] usb 1-4.1.4: Found UVC 1.00 device AV TO USB2.0 (534d:0021)
[ 8740.340690] usb 1-4.1.4: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.

https://github.com/espressif/esp-idf/tree/master/examples/peripherals/usb/host/uvc
The USB cameras that can be used with this sample are very limited.
This might help.
https://github.com/nopnop2002/esp-idf-video-streaming

Hi @berkutta,
Sorry for such a long response with this issue also.
This is the same thing, as with the issue #11791.
The example tries to negotiate protocol with following parameters: 320x240, interval 1/30.
To be able to work with other cameras, choose the interval that your camera has.
You can find this intervals in the list during debug output of the example:
                    FrameDescriptor(1)
                      capabilities: 00
                      size: 480x320                           <--- size here
                      bit rate:<PHONE_NUMBER>08000
                      max frame size: 307200
                      default interval: 1/25                  <--- default interval here
                      interval[0]: 1/25
                    FrameDescriptor(2)
                      capabilities: 00
                      **size: 640x480**
                      bit rate:<PHONE_NUMBER>08000
                      max frame size: 614400
                      **default interval: 1/25**
                      interval[0]: 1/25
                      interval[1]: 1/20
                      interval[2]: 1/15
                      interval[3]: 1/10
                    FrameDescriptor(3)
                      capabilities: 00
                      **size: 720x480**
                      bit rate:<PHONE_NUMBER>08000
                      max frame size: 691200
                      **default interval: 1/25**
                      interval[0]: 1/25
                      interval[1]: 1/20
                      interval[2]: 1/15
                      interval[3]: 1/10

Feel free to choose any of available frame parameters (640x480 with the interval 1/5 should work well).


Not able to execute program

Getting this error when trying to run program
PS C:\WINDOWS\system32\transcribe> python main.py --api
Traceback (most recent call last):
File "C:\WINDOWS\system32\transcribe\main.py", line 10, in
from GPTResponder import GPTResponder
File "C:\WINDOWS\system32\transcribe\GPTResponder.py", line 5, in
import GlobalVars
File "C:\WINDOWS\system32\transcribe\GlobalVars.py", line 5, in
from audio_player import AudioPlayer
File "C:\WINDOWS\system32\transcribe\audio_player.py", line 9, in
import playsound
ModuleNotFoundError: No module named 'playsound'

I did these steps
git clone https://github.com/vivekuppal/transcribe.git
python -m venv venv
cd venv
Scripts\activate.bat
cd ..
pip install -r requirements.txt
python main.py --api

The user interface came up correctly and I was able to use the program.
This makes me believe there is an issue with the environment.
Please describe how you created the environment for transcribe.
Also please provide the output for the following command
pip list

I was able to use the program till yesterday, All I did was to update the transcribe repository with latest changes using git pull.  Since then , I am getting the error above.
pip list
Package                   Version

aiohttp                   3.8.5
aiosignal                 1.3.1
altgraph                  0.17.3
async-timeout             4.0.2
attrs                     23.1.0
certifi                   2023.7.22
cffi                      1.15.1
charset-normalizer        3.2.0
colorama                  0.4.6
customtkinter             5.1.3
darkdetect                0.8.0
ffmpeg-python             0.2.0
filelock                  3.12.2
frozenlist                1.4.0
future                    0.18.3
idna                      3.4
Jinja2                    3.1.2
llvmlite                  0.40.1
MarkupSafe                2.1.3
more-itertools            10.0.0
mpmath                    1.3.0
multidict                 6.0.4
networkx                  3.1
numba                     0.57.1
numpy                     1.24.3
openai                    0.27.6
openai-whisper            20230314
pefile                    2023.2.7
pip                       23.2.1
PyAudioWPatch             <IP_ADDRESS>
pycparser                 2.21
pyinstaller               5.13.0
pyinstaller-hooks-contrib 2023.6
pyperclip                 1.8.2
pywin32-ctypes            0.2.2
PyYAML                    6.0.1
regex                     2023.6.3
requests                  2.31.0
setuptools                65.5.0
soundfile                 0.12.1
sympy                     1.12
tiktoken                  0.3.1
torch                     2.0.1+cu117
tqdm                      4.65.0
typing_extensions         4.7.1
urllib3                   2.0.4
Wave                      0.0.2
yarl                      1.9.2

That explains the issue.
playsound library was introduced in the last couple of PRs.
Please do the following again and that should resolve the issue
pip install -r requirements.txt

Thanks, that helped.  But now I am not able to get continuous responses.  I get this error below when I click "Suggest Continuous Responses"
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\tkinter_init_.py", line 1948, in call
return self.func(*args)
^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\customtkinter\windows\widgets\ctk_button.py", line 553, in _clicked
self._command()
File "C:\WINDOWS\system32\transcribe\ui.py", line 46, in freeze_unfreeze
self.global_vars.freeze_button.configure(
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\customtkinter\windows\widgets\ctk_button.py", line 441, in configure
super().configure(require_redraw=require_redraw, **kwargs)
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\customtkinter\windows\widgets\core_widget_classes\ctk_base_class.py", line 133, in configure
check_kwargs_empty(kwargs, raise_error=True)
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\customtkinter\windows\widgets\utility\utility_functions.py", line 18, in check_kwargs_empty
raise ValueError(f"{list(kwargs_dict.keys())} are not supported arguments. Look at the documentation for supported arguments.")
ValueError: ['value'] are not supported arguments. Look at the documentation for supported arguments


generation is not good?

I run the code, and get the bad result. Is there something wrong with the code？

Thanks a lot for your attention!
It seems that the './checkpoints/face_planes_eg3d_sketch_new/pixel_nerf_latest' is not correctly loaded because the google drive automatically changes its name from 'pixel_nerf_latest' to 'pixel_nerf_latest.zip'.
You can try to delete the '.zip. And we will update the code to solve this issue.
Thanks!


Save last price in localStorage

Issue described in #68

nice PRs in general, i like them. Reviewing them

+5


Derivative of sinc is incorrect

Your derivative for sinc is off by a factor of pi
(np.cos(np.pi*x)*np.pi*x - np.sin(np.pi*x))/(np.pi*x**2)
should be
(np.cos(np.pi*x)*np.pi*x - np.sin(np.pi*x))/(np.pi*x)**2

no it isn't! ignore me! :)


Is there anyway to not to show code in redirect uri in address bar

Hi team,
When the first Api call  to authorization end point a code is sent to call back uri which appears in the address bar is there anyway to not to show the code in the address bar ?
Please help me on this

See: https://github.com/authts/react-oidc-context/blob/main/src/AuthProvider.tsx#L26-L40


Add a loading animation to the change state view when sending emails

Is your feature request related to a problem? Please describe.
When changing the states some emails notifications are sent to the related users and it takes a bit of time to send those emails. So It'll be nice to have some sort of a notification and a loading animation whilst emails are sent.
Describe the solution you'd like
Trigger a loading animation when the change button is clicked and switch it off once the task is done.

Another issue is created for the issue (#117)


Allow for a "backup" link text for related links

If the title for a related link cannot be retrieved, the extension returns a warning, which breaks the build. Make it possible to specify a backup link text for such cases.

We should still return a warning, since otherwise, our docs might be built inconsistently.
But with a backup text, we can choose to ignore the warning if needed.


How to play multiple sources with flutter video_player

How to play multiple sources just like html tag video with source tags?

Hi @ResQNetM
This platform is not meant for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this, you may also get some help if you post it on Stack Overflow. Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


Allow dynamically sized arrays on stack

Currently, there's no way to allocate a dynamically-sized array on the stack. i.e. let x = [0; y] where y is an arbitrary usize. There are issues with stack exhaustion here, but rust already checks for it, and LLVM already supports dynamic arrays through C99, so, it'd be a very useful feature to have for systems which do not have a heap.

This would be related to https://github.com/rust-lang/rfcs/issues/618 i'd imagine

Closing in favor of https://github.com/rust-lang/rust/issues/48055.


u will undo multiple editting if not pressing Enter

VSCode Version: 1.1.0
OS Version: Windows 10 (Insider Preview Build 14342)

It seems that pressing u will undo multiple editting, if each one is splitted by Esc rather than Enter.
For example, if I i something at one line, then Esc and go to another line, then i something, then pressing u, both the two editting will be undo, rather than the last one.
This behavior is different from GVim 7.4.977 on my computer and often destorys my work if I edit lots of lines without adding a new one.
This problem seems to be talked in #25 and I've checked Microsoft/vscode#4313. However, when I use Python: Sort Imports extension to test the issue, the Ctrl-Z works just as expected.
Since amVim has the same problem, I don't know whether the problem with Microsoft has been fixed.
Thanks!

After typing and Python: Sort Imports, I tried to push crtl-z, but both typing and sorted imports were reverted.

It seems that I cannot reproduce what occur to you. Whether I've installed
VimStyle or not, Ctrl-Z only reverse sorting first and another one
reverse editing (with VimStyle - a batch of editing, without it - one
edit)
I'm using Python Extension version 0.3.7 (
https://marketplace.visualstudio.com/items?itemName=donjayamanne.python) to
test with. The VSCode version and OS Version I've mention above.
74th (Atsushi Morimoto<EMAIL_ADDRESS>下午2:33写道：

After typing and Python: Sort Imports, I tried to push crtl-z, but both
typing and sorted imports were reverted.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/74th/vscode-vim/issues/33#issuecomment-219204055

It seems that I cannot reproduce what occur to you. Whether I've installed VimStyle or not, Ctrl-Z only reverse sorting first and another one reverse editing (with VimStyle - a batch of editing, without it - one edit)
I'm using Python Extension version 0.3.7 to test with. The VSCode version and OS Version I've mention above.

As you said, it seems well. I checked its code, it does nothing specially. Why?
https://github.com/DonJayamanne/pythonVSCode/blob/3c7e95527b85028de1d79d8705eb2a409ab3c723/src/client/sortImports.ts

I haven't done any VSCode extension or Typescript developments so I cannot figure out what the point is. But if you can find a version of Python: Sort Imports that can reproduce the problem (as you said above), maybe checking the difference between that version and the newest one will help.

I am not interested in this problem well.
I will wait for VSCode API support, or support vim undo on vscode.


Run Job once at time

Coverage decreased (-5.1%) to 94.872% when pulling 34e27410b0fb79be5f29e440b8836754785db95b on wmig:master into b4ac8ca65a3571060eb0ec0c8cb36b333c72afcd on dbader:master.

Coverage decreased (-5.1%) to 94.872% when pulling 34e27410b0fb79be5f29e440b8836754785db95b on wmig:master into b4ac8ca65a3571060eb0ec0c8cb36b333c72afcd on dbader:master.

Hi @wmig, thanks for your interest in this library and your willingness to contribute, I appreciate it a lot!
To run a job only once, and have it removed after finishing the first time, one can return schedule.CancelJob from the job like so:
import schedule
import time

def job_that_executes_once():
    # Do some work that only needs to happen once...
    return schedule.CancelJob

schedule.every().day.at('22:30').do(job_that_executes_once)

while True:
    schedule.run_pending()
    time.sleep(1)

I appreciate the PR but I think this would be better handled by the job function itself. That way we can keep the base functionality lean. Feel free to follow up (or make a separate issue) with more questions/discussion.
Linking #39 for future reference.


Lag in the collaboration mode

Items that are being hold by one user, sometimes fall for a split second before returning back to the correct position. This happens a few times in succession.


Medias inside Blocks get saved, but not loaded when using 'translated' => false,

Description
Whenever I create a block with a non-translateable medias-field in an environment, where I need translated medias in some other places, non-translated medias in blocks will get saved, but not displayed.
Thanks in advance!
Steps to reproduce
Create a block using a medias-field:
@twillBlockTitle('Video Slideshow')
@twillBlockIcon('slideshow')
@twillBlockGroup('app')

@formField('medias', [
    'name' => 'gallery_background',
    'label' => 'Hintergrundbild',
    'withVideoUrl' => false,
    'translated' => false,
])

    'block_editor'    => [
        'files' => ['category_icon'],
        'crops' => [
            'gallery_background' => [
                'default' => [
                    [
                        'name'  => 'default',
                        'ratio' => 16 / 9,
                    ],
                ],
            ],
        ],
    ],
    'media_library'   => [
        'translated_form_fields' => true,
    ],

Expected result
The image gets saved and loaded.
Actual result
The image gets saved over and over and over again, resulting in multiple Entries in the mediables-table.
Versions

Related to #483. At the moment enabling translated_form_fields is an all or nothing situation. The logic is made to fallback to the main language so that editors do not have to provide the same image for each language.

Closing in favor of #483 which has been added to the roadmap.


Add a new http fileserver support to support fallback

Signed-off-by: cwen0<EMAIL_ADDRESS>What problem does this PR solve?

Refer https://github.com/shurcooL/vfsgen/pull/82#issuecomment-650583868 suggestion，we add a new HTTP fileserver to supports fallback.

Codecov Report

Merging #656 into master will decrease coverage by 0.64%.
The diff coverage is 33.09%.

@@            Coverage Diff             @@
##           master     #656      +/-   ##
==========================================
- Coverage   55.78%   55.13%   -0.65%
==========================================
  Files          68       69       +1
  Lines        4383     4505     +122
==========================================
+ Hits         2445     2484      +39
- Misses       1768     1838      +70
- Partials      170      183      +13

Impacted Files
Coverage Δ

controllers/networkchaos/ipset/ipset.go
37.14% <0.00%> (ø)

pkg/store/experiment/experiment.go
32.20% <0.00%> (-6.58%)
:arrow_down:

pkg/utils/chaosdaemon.go
51.21% <0.00%> (ø)

pkg/utils/grpc.go
0.00% <0.00%> (ø)

pkg/httpfs/fs.go
31.48% <31.48%> (ø)

controllers/twophase/types.go
54.20% <40.00%> (-1.68%)
:arrow_down:

controllers/networkchaos/netem/types.go
47.27% <50.00%> (ø)

controllers/podchaos/containerkill/types.go
64.38% <100.00%> (ø)

controllers/timechaos/types.go
61.44% <100.00%> (ø)

pkg/webhook/config/watcher/config.go
100.00% <100.00%> (+58.33%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

/merge


Better handling of terraform validation failure in digger

Hi,
it looks like digger does not post comment when terraform resources are not correct
example of a pagerduty resource which is missing a rulle block
Acquiring state lock. This may take a few moments...
Error: Insufficient rule blocks
Basically, if terraform validate fails
run is marked as failed
comment is not update and keeps and remains
👷 The following projects are impacted
🕚 pagerduty: pending...
check is marked as failing (expected :slightly_smiling_face: ), do you think we can add, as details to the check, the runs links (the failing step would be event better)

Reported by user A.T.

I'm having the same issue. If for instance a terraform plan errors with, for instance, the role not having all of the correct IAM permissions for a plan, digger will never update its status or the comment on the PR.

I would like to vote this up, I encountered this today as well.

I can take a look at this, is there any steps that can help me reproduce this scenario? Its probably a case of digger bailing early but not updaing the reporter

Here is another one where the status does not get updated:
Error while fetching policy: unexpected response while fetching project policy:

<title>504 Gateway Time-out</title>

504 Gateway Time-out

 code 504
Warning: nil passed to plan result, sending empty
Failed to run commands. error checking policy: unexpected response while fetching project policy:

<title>504 Gateway Time-out</title>

504 Gateway Time-out

 code 504
Error: Job failed.

@motatoes, shouldn't the orchestrator have the id of the job running when it first marks it as pending? Then you don't necessarily need a heartbeat, but the orchestrator can check the job status every however long and if the job is finished with no status update it can mark it as failed.

@evanstachowiak in fact it does know the id of the job not when it first fires it (github api does not return the ID on workflow dispatch), we have to query the list of jobs running and cross-match on the ID that we sent as input. We could do that in the background after firing the job but now we actually only know the ID when the cli first reports back the first time


Initial LLVM Build Setup + Initial Example

Progress:

Setup the build file to compile files in the llvm/ dir with zig build -DExamples=true (similar setup to the submodule build.zig)
Added llvm/example.zig to lay groundwork for global stack manipulation
Compilation succeeds, but execution segfaults (likely global memory access issue, will resolve shortly)
Committing as an outline to spark discussion and provide an initial reference

Resolved the segfault + conflict, so will merge!

Ok, a problem. I just noticed that resolving the .gitignore conflict caused thousands of lines of code to change.
Unsure why, I need to do some digging. Will revert this PR for now.


Updated changelog with 4.6.x changes

refs https://github.com/rocketjob/semantic_logger/issues/146#issuecomment-590521234

First step/draft at "backporting" changelog updates

Issue # (if available)
#146
Description of changes
Changelog 4.6.x backports first step (draft)
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Greatly appreciate the help. :+1:


reason for opening: discourage competitors

I was just in a discussion about value of opening models.  Someone pointed out that others have realized that "openness discourage competitors".  If others can't build on your work, they will make competing work, which usually can be done easily.  Then you lose your leadership position.  You may not open right away, but eventually you will feel the pressure.
This is obvious, but I've never seen it said so clearly (in CR or otherwise).

Great point!


closing hotspot layer when clicking on image

Hi,
thank you so much for egjs-view360, it is a remarkable piece of code and it is great fun using it. I have added some hot spots to a panoviewer panorama, and I would like to have the layer closed once the user clicks on the layered jpeg. I cannot seem to find the right way to modify the onclick="closeLayer(event);" or place it right. Currently there is

but this means that you have to click next to the layered jpeg to close the layer. And if I just append the onclick directive to the  it does not work.
I am referring to this implementation example, any hints are appreciated. Thanks

Hello, @kls0e!
I think the easiest solution for this issue is adding pointer-events: none CSS to an img element.

But be careful that now the image element can't receive any click related events by setting that.
And the reason why the image element doesn't react even if it calls closeLayer is because of how that function is written.

So basically, you can remove the function's target checking to make an image onclick to work.
function closeLayer(e) {
- if (e.target === layer) {
    layer.style.display = "none";
- }
}

Dear WoodNeck,
many thanks for your elaborate help. I appreciate your support and both ways your provided are a perfect solution to my request. As I am making progress with my project, I have another three questions, perhaps I can ask them here, or should I create separate github issues?

I'd like to make the hotspot glasses less bouncy when moving around, can I somehow reduce their vertical movement? (Im using panorama view)

How can I place a div with (different) text under each image? I'm building a virtual gallery and would like to put the artists' name under the corresponding image. Can the onclick-event of the hotspot symbols maybe transport two variables, one for the img url, one for the div content? Or how do I approach this?

is there an option to show the current yaw and pitch of the cursor? currently I place them using trial and error while changing the coordinates in the code.

Best wishes, stay safe
Matthias

I think it's just okay to continue on here as it's all hotspot-related questions :)

Well, I know what you mean with those buoyancy movements of hotspots.
I didn't actually made this demo but here's why:
The demo's background image is tilted about 10 degrees, so there's a compensation script for it to work.
Remove the following lines to remove that compensation.

function setHotspotOffset(hotspot, viewer) {
        var oyaw = viewer.getYaw();
        var opitch = viewer.getPitch();
        var yaw = parseFloat(hotspot.getAttribute("data-yaw"));
        var pitch = parseFloat(hotspot.getAttribute("data-pitch"));
        var deltaYaw = yaw - oyaw;
        var deltaPitch = pitch - opitch;

        if (deltaYaw < -180) {
            deltaYaw += 360;
        } else if (deltaYaw > 180) {
            deltaYaw -= 360;
        }
        if (Math.abs(deltaYaw) > 90) {
            hotspot.style.transform = "translate(-200px, 0px)";
            return;
        }
        var radYaw = toRadian(deltaYaw);
        var radPitch = toRadian(deltaPitch);

        var fov = viewer.getFov();
        var hfov = getHFov(fov);

        var rx = Math.tan(toRadian(hfov) / 2);
        var ry = Math.tan(toRadian(fov) / 2);

        var point = [
            Math.tan(-radYaw) / rx,
            Math.tan(-radPitch) / ry,
        ];

        // Image rotation compensation
        // The original image is about 10 degrees tilted.
-       point = point.map(function (p) {
-           return p * Math.cos(15 / 180 * Math.PI);
-       });
-       point[1] = rotate(point, deltaYaw > 0 ? -10 : 10)[1];

        // point[0] /= 1.05;
        var left = viewer._width / 2 + point[0] * viewer._width / 2;
        var top = viewer._height / 2 + point[1] * viewer._height / 2;

        hotspot.style.transform = "translate(" + left + "px, " + top + "px) translate(-50%, -50%)";
}

That's simple, add the div element inside the element with class "layer" and modify it just like the image element.

First change the page content like this

+

Grab that element, and modify it whatever you like on openLayer().
var layer = document.querySelector(".layer");
+ var layerContent = document.querySelector(".layer-content");

-function openLayer(img) {
+function openLayer(img, content) {
  layer.querySelector("img").src = "./img/" + img;
  layer.style.display = "block";
+ layerContent.innerHTML = content;
}

And of course, you can transfer 2 variables at once.

Actually there's one that we use for the local development, which looks like this.

There's source code on here: https://github.com/naver/egjs-view360/blob/master/test/manual/PanoViewer/PanoViewer.html#L459
The point is on the render function so check that out :)
You can use either gridView(that grid with a red circle on it), the file's on here: https://github.com/naver/egjs-view360/blob/master/test/manual/js/GridView.js
or just render the value direct as innerHTML like at the render function's Line 471~473
And also, stay safe you too :3

this all is so beautiful and it works. I am grateful and your help means a lot to me. Will keep you posted when my project is done.

Wow, that's really cool. I love it :)
Thanks for making a great product with our component.
I'll close this issue for now.
Feel free to reopen it whenever you like.