Lightcurve plotter not working complaining about missing WebGL support in broswer

The lightcurve plotter fails to make a plot on some objects (but not others) complaining about missing WebGL support in my browser.
URL of the object that fails to plot: https://ztf.snad.space/dr8/view/774116300006409
(the search coordinates were 00:47:36.25 +57:27:02.9)
Browser: Firefox 95.0.1 (64 bit)
More system info:
System:    Kernel: 5.11.8-gentoo-r1-x86_64 x86_64 (64 bit) Desktop: Fluxbox 1.3.7-gentoo-r4
           Distro: Gentoo Base System release 2.7
Machine:   System: FUJITSU product: LIFEBOOK E744 v:<PHONE_NUMBER>3
           Mobo: FUJITSU model: FJNB26F v: L3 Bios: FUJITSU // Phoenix v: Version 1.08 date: 03/10/2014
CPU:       Quad core Intel Core i7-4702MQ (-HT-MCP-) cache: 6144 KB
           clock speeds: max: 3200 MHz 1: 800 MHz 2: 800 MHz 3: 1000 MHz 4: 1985 MHz 5: 900 MHz 6: 800 MHz
           7: 800 MHz 8: 900 MHz
Info:      Processes: 269 Uptime: 1 day Memory: 6235.1/7839.1MB Client: Shell (bash) inxi: 2.2.19

# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)

The behavior is affected by firefox about:config setting webgl.min_capability_mode: when changed to false, the misisng WebGL error message disappears and the plot is produced, but it seems to get rendered improperly (some colors are missing).

Thank you for the report! Plotly uses WebGL backend for plots having > 1000 points. We can disable it globally or conditionally (see https://get.webgl.org/ for an example of WebGL support detection) via render_mode='svg' (Plotly docs for this)

@kirxkirx  Please review a fix #256 at http://pr256.ztf.snad.space/dr13/view/774116300006409

Yes, the fix is working!
In the mean time I've upgraded to Firefox 107.0 and can report the problem was present with this version of the browser (link to the production version in the first post)

and is fixed now (link to the test version)


Excessive power-consumption for threads waiting to acquire mutex

I completed my journey learning Codon.
Something I observed are threads in a busy CPU loop waiting to acquire the lock. To reproduce, the C and Codon demonstrations live inside the examples folder. To diagnose, run primes1, 2 or primes3, 4 and monitor top. Also, wattage if you can. The power-consumption wasted is greater than 100 watts on a big box, simply for threads waiting their turn.
This is merely a demonstration to elevate the needle in the hay stack. Typically, just few threads are enough to print primes. Be sure to direct output to /dev/null.  Pressing Ctrl-C will end the process.
# C demo  Top reports 176%
OMP_NUM_THREADS=64 primes1 1e10 -p >/dev/null   # 207 watts

# Codon demo   Top reports 6374%
OMP_NUM_THREADS=64 primes2 1e10 -p >/dev/null   # 315 watts :(

The behavior is correct for the C/OpenMP demonstration with regards to low CPU utilization and power consumption. Threads wait their turn to print primes, serially and orderly. One should not see 6400% CPU utilization for this use case.
Simulation: Imagine a large data center using Codon to run parallel on thousands of compute nodes. Why do threads involve busy CPU loop while waiting to acquire the lock? The C OpenMP demonstration shows that it's possible for threads to wait without the busy CPU loop.

The following is a tiny example. Seeing high CPU utilization for threads simply waiting their turn to enter critical or ordered function is not okay.  The CPU utilization is 700% initially, after 4 seconds 600%, after 4 seconds 500%, ... until all threads have run. The same behavior is seen for @omp.ordered.
import openmp as omp
from time import sleep

@omp.critical
def task(i):
    print(i)
    sleep(4)

@par(schedule='static', chunk_size=1, num_threads=8)
for i in range(8):
    task(i)

This issue appears to be LLVM. I imported omp_init_lock, omp_destroy_lock, omp_set_lock, and omp_unset_lock. The same behavior is observed.
class struct_omp_lock:
    _lk: Ptr[cobj]

from C import omp_init_lock(struct_omp_lock) -> None
from C import omp_destroy_lock(struct_omp_lock) -> None
from C import omp_set_lock(struct_omp_lock) -> None
from C import omp_unset_lock(struct_omp_lock) -> None

from time import sleep

def task(i):
    print(i)
    sleep(4)

writelock = struct_omp_lock()
omp_init_lock(writelock)

@par(schedule='static', chunk_size=1, num_threads=8)
for i in range(8):
    omp_set_lock(writelock)
    task(i)
    omp_unset_lock(writelock)

omp_destroy_lock(writelock)

Back to the primes demonstration, I compared gcc and clang. The busy CPU behavior is seen with clang. Here, threads output primes orderly, one thread at a time.
gcc -o primes3 -O3 -fopenmp primes3.c -lprimesieve -lm
OMP_NUM_THREADS=4 ./primes3 1e10 -p >/dev/null    # 102% CPU

clang -o primes3 -O3 -fopenmp primes3.c -lprimesieve -lm
OMP_NUM_THREADS=4 ./primes3 1e10 -p >/dev/null    # 401% CPU

Note: primes3.c resides in the examples folder. Missing libprimesieve? Build primes1.c instead.

Closing this issue. Not a Codon bug.


Add account link

When we are not connect, it will be easier to have a connect link in pop-up

same #72


Guard was failing because it couldn't find the fixtures.

This changes the path, and should mean we can run all of the specs through guard.

Cool, Guardfile fixes this by setting the test folder explicitly for minitest, but this fix will guarantee the problem doesn't pop up when running both suites in other ways. merging


Paragraph bold true doesn't seem to work while styles work

I have a tabel cell that looks like this:
docx.style { id 'NormalBold'; name 'NormalBold'; font 'Arial'; bold true }

cell = Caracal::Core::Models::TableCellModel.new do
  p('This is bold') { style 'NormalBold' }
  p('This is not bold') { bold true }
end

i.e the the style works, but setting bold on the paragraph does not.

Yep, this is a bug.
The paragraph model isn't handling block attributes correctly.  As a temporary workaround, you can simply convert to the alternate syntax and provide your configurations via options, like so:
  p 'This is bold', bold: true

I'll post a correction later today.

Version 1.0.6 of Caracal fixes this issue.  Syntax flexibility is now restored for paragraphs.


Build fails on armv7

===>  Building for phonopy-2.16.1
[  7% 2/13] /usr/bin/cc -Dphpy_EXPORTS  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -O2 -fPIC NOTFOUND -MD -MT CMakeFiles/phpy.dir/c/phonopy.c.o -MF CMakeFiles/phpy.dir/c/phonopy.c.o.d -o CMakeFiles/phpy.dir/c/phonopy.c.o -c /wrkdirs/usr/ports/science/phonopy/work/phonopy-2.16.1/c/phonopy.c
FAILED: CMakeFiles/phpy.dir/c/phonopy.c.o
/usr/bin/cc -Dphpy_EXPORTS  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -O2 -fPIC NOTFOUND -MD -MT CMakeFiles/phpy.dir/c/phonopy.c.o -MF CMakeFiles/phpy.dir/c/phonopy.c.o.d -o CMakeFiles/phpy.dir/c/phonopy.c.o -c /wrkdirs/usr/ports/science/phonopy/work/phonopy-2.16.1/c/phonopy.c
cc: error: no such file or directory: 'NOTFOUND'
[ 15% 2/13] /usr/bin/cc -Dphpy_EXPORTS  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -O2 -fPIC NOTFOUND -MD -MT CMakeFiles/phpy.dir/c/dynmat.c.o -MF CMakeFiles/phpy.dir/c/dynmat.c.o.d -o CMakeFiles/phpy.dir/c/dynmat.c.o -c /wrkdirs/usr/ports/science/phonopy/work/phonopy-2.16.1/c/dynmat.c
FAILED: CMakeFiles/phpy.dir/c/dynmat.c.o
/usr/bin/cc -Dphpy_EXPORTS  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -O2 -fPIC NOTFOUND -MD -MT CMakeFiles/phpy.dir/c/dynmat.c.o -MF CMakeFiles/phpy.dir/c/dynmat.c.o.d -o CMakeFiles/phpy.dir/c/dynmat.c.o -c /wrkdirs/usr/ports/science/phonopy/work/phonopy-2.16.1/c/dynmat.c
cc: error: no such file or directory: 'NOTFOUND'

clang-14
OS: FreeBSD 13.1

Could you give more detailed information?

Here is a complete log: 2022-09-29T00:25:31.log

Thanks. The case when OpenMP library is not found was not considered. I think this commit https://github.com/phonopy/phonopy/commit/ce8db957a0cb58a6f953b192056d03107eeecdaf fix it.

Thanks for a quick fix.
I've updated the FreeBSD port.
Will reopen the issue if the problem persists.


Performance

Loading a file from the BlenderNC node-tree and trying to reproduce the same example that I've been extensively using in the past the performance is much slower than what was before and it takes more than 15 seconds to load a single frame. I achieved more than 24fps with it so the slowdown is O(100).

Wow, I've lost performance, but it's in the O(2). I will explore this issue in the next couple of days. Can you provide me some information on the system?

So far the only idea I have for such performance lost is that the netCDF range is been computed at each frame. Could you please test if update_range is getting updated, in other words:
var_metadata['max_value']==None
var_metadata['min_value']==None

Refer to lines:
https://github.com/blendernc/blendernc/blob/a3342f55025abb3c8dd58db9b2e09ebf0f48227f/blendernc/python_functions.py#L249
and
https://github.com/blendernc/blendernc/blob/a3342f55025abb3c8dd58db9b2e09ebf0f48227f/blendernc/python_functions.py#L153-L154

#14 Closes this issue. Additionally, animated text performance has been solved accordingly with:
blender.stackexchange.com


MVP-731 Posting decision letter

We need to tell users that their decision letter will be posted to them, as we do not yet have an end to end digital journey in place.
Attached is screenshot of "Application submitted" page content for review.  We would mirror this in the Notify email that is sent to users.

Thanks John, this looks ok content wise.

Content changed to make new sentence more readable

John,
Do you need to remove the 3rd bullet point?
And shoot me down if you want but what about - We will send our decision letter by post.
Julie
From: johnkane1<EMAIL_ADDRESS>Sent: 27 February 2019 15:00
To: CriminalInjuriesCompensationAuthority/apply-for-compensation-prototype<EMAIL_ADDRESS>Cc: Julie Allan<EMAIL_ADDRESS>Review requested<EMAIL_ADDRESS>Subject: Re: [CriminalInjuriesCompensationAuthority/apply-for-compensation-prototype] MVP-731 Posting decision letter (#227)
Content changed to make new sentence more readable
[mvp-731 application submitted page v2 0]https://user-images.githubusercontent.com/34911484/53499500-5e225f00-3aa0-11e9-9ba2-3a33886043cb.png
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHubhttps://github.com/CriminalInjuriesCompensationAuthority/apply-for-compensation-prototype/pull/227#issuecomment-467894716, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Apjtg2gTXTbn99ZVg0TZMIq2CSYQ0Qosks5vRp16gaJpZM4bUlNB.

CICA LEGAL NOTICE
This email and any files transmitted with it are private and intended solely for the use of the individual or entity to whom they are addressed.
If you have received this email in error please return it to the address it came from telling them it is not for you and then delete it from your system.
As part of conducting its business, the Criminal Injuries Compensation Authority may monitor and record incoming and outgoing emails and their content.
This email message has been swept for computer viruses.

@Julieallan good point about the 3rd bullet.  We could include the new sentence as that bullet instead, and your suggestion has a good readability score 👍

Yeah, that makes sense John.

Changes discussed implemented. Also moved the email message into the panel
screenshot below


Sergkanz/netstandardtests

Fix #453 and #247
Infrastructure pieces mostly

Codecov Report

Merging #601 into develop will decrease coverage by 0.29%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           develop    #601     +/-   ##
=========================================
- Coverage    84.49%   84.2%   -0.3%
=========================================
  Files          147     148      +1
  Lines         6341    6369     +28
  Branches       939     948      +9
=========================================
+ Hits          5358    5363      +5
- Misses         607     633     +26
+ Partials       376     373      -3

Impacted Files
Coverage Δ

...Core/Managed/Shared/Channel/InMemoryTransmitter.cs
97.01% <ø> (ø)
:arrow_up:

.../Implementation/Platform/PlatformImplementation.cs
0% <0%> (ø)

...ed/Extensibility/Implementation/SdkVersionUtils.cs
66.66% <0%> (-11.12%)
:arrow_down:

...ementation/Tracing/PortalDiagnosticsQueueSender.cs
88.88% <0%> (-11.12%)
:arrow_down:

...tensibility/Implementation/TelemetryDebugWriter.cs
47.36% <0%> (-5.58%)
:arrow_down:

src/Core/Managed/Shared/Channel/Transmission.cs
83.07% <0%> (-5.45%)
:arrow_down:

src/Core/Managed/Shared/Utils.cs
80.76% <0%> (-3.24%)
:arrow_down:

...ty/Implementation/TelemetryConfigurationFactory.cs
91.05% <0%> (+0.04%)
:arrow_up:

...ared/Implementation/TelemetryChannelEventSource.cs
62.77% <0%> (+0.2%)
:arrow_up:

... and 3 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 c98d2fa...9937524. Read the comment docs.


error in serialization after commit 994aceeec09cee78378fd5e172aafde5c13d4800

I recently pulled the latest commits from cereal repo and suddently one of my classes stopped serializing like it used to do before. The error message is this one:
Some problem serializing the file: Trying to save an unregistered polymorphic type [...]

after some bisecting the commit "introducing this error" is this one: 994aceeec09cee78378fd5e172aafde5c13d4800
the class failing serialization is build i a solib, its a polymorphyc type and it used to serialize perfectly before this commit. I though some cereal change was trying to force me to use CEREAL_REGISTER_DYNAMIC_INIT and CEREAL_FORCE_DYNAMIC_INIT to force instantiate my class but I did not had too much success in using them, maybe cause it is not compeltely clear to me where these should be placed (do I need to place them both?)
I am registering my polymorphic types in the source file associated with the class's header.
any help on this topic?
many thanks

ADD 1: the failing class has a splitted load/save serialization function with versioning. Other classes, which does not use splitted load/save couple serialize just fine after that commit. Maybe the changes in
- create_bindings<Archive,T>::save( std::is_base_of<detail::OutputArchiveBase, Archive>() );
+ create_bindings<Archive,T>::save( std::integral_constant<bool,
+ std::is_base_of<detail::OutputArchiveBase, Archive>::value &&
+ traits::is_output_serializable<T, Archive>::value>{} );
- create_bindings<Archive,T>::load( std::is_base_of<detail::InputArchiveBase, Archive>() );
+ create_bindings<Archive,T>::load( std::integral_constant<bool,
+ std::is_base_of<detail::InputArchiveBase, Archive>::value &&
+ traits::is_input_serializable<T, Archive>::value>{} );

could be responsable (?)

For the archive type you are using (e.g. binary, xml, etc), have you included its header prior to performing the registration?  The safest place to do this include would be in the source file where you perform the registration.
The change made it so that registration would fail silently if a specific archive type was not compatible with a type but work otherwise.  Can you tell me the output of cereal::traits::is_output_serializable<T, Archive>::value for the type/archive combination?  Also cereal::traits::is_input_serializable<T, Archive>::value.

my base class uses a serialize() method. the derived one is specialized with load/save couple. The strange thing is that the class is serialized ok when I switch to the serialize method only also for the derived class. In both cases I am using a call to CEREAL_SPECIALIZE_FOR_ALL_ARCHIVES
Yes I  am including my archive types hpp before registering the class.  You can have a look at my registration here:
https://github.com/luca-penasa/spc/blob/master/spc/elements/SelectionRubberband.cpp
Sure! I'll try. But I am convinced it evaluates to FALSE. because if I change
create_bindings<Archive,T>::load( std::integral_constant<bool,
 std::is_base_of<detail::InputArchiveBase, Archive>::value &&
 traits::is_input_serializable<T, Archive>::value>{} );

with
create_bindings<Archive,T>::load( std::is_base_of<detail::InputArchiveBase, Archive>() );

(and the same for save)
everything works fine. So i must be a problem of is_input_serializable
Maybe the count_input_serializers not summing to one??

In fact the output of:
	std::cout << cereal::traits::is_input_serializable< spc::SelectionRubberband, cereal::BinaryOutputArchive>::value << std::endl;

	std::cout << cereal::traits::detail::count_output_serializers<spc::SelectionRubberband, cereal::BinaryOutputArchive>::value << std::endl;

is :
0
2

Thus it is counting to 2! Shouldnt cereal warn about that??

Notice that I am specializing with:
CEREAL_SPECIALIZE_FOR_ALL_ARCHIVES( spc::SelectionRubberband, cereal::specialization::member_load_save )

I'll try and make a small test case of this, it looks like there might be a problem with the count and specialization.

test code here https://github.com/luca-penasa/cereal-test
reproduces the error

Should be all good to go now!


Align jitter_en functionality between test-ROM and ROM

Align jitter_en functionality as discussed in this thread here https://github.com/lowRISC/opentitan/pull/15781#discussion_r1024651031
CC @alphan @weicaiyang @moidx @timothytrippel

Also related: #15189

Seems more aligned to ROM work and so should be moved to ROM milestones.
@moidx - please consider whether @cfrantz or @timothytrippel will be able to take this on.

Also cc'ing @luismarques for awareness.

We have a mechanism to enable jitter via OTP settings in the real ROM. This issue is to update the TLT test cases that use the real ROM to be able to handle this configuration via +plusargs.

Leaving at M5 for now, but I think it can be handled in either M5 or ROM milestones as this is mainly a DV change.

@cfrantz / @timothytrippel - any items to raise from the ROM / ROM_EXT side?
To be discussed at triage meeting.

Just discussed in triage, agreed to move to M6 as P2 because this is not broken in DV (and certainly not in RTL), just a cleanup on the DV side.


[HTTP] 100-Continue, 101 Switching Protocols status

At the moment transport does not support this. We need to implement this.

This has been addressed in ballerina 0.95.5.


How to add a server to the federation?

Hi, how to let a server choose which server will be part of a federation or not? I mean, how to allow a server to choose add a connection with another server with the api? I could not understand that.

I'm sorry I don't get the question. Could you try to be more specific?


Add ignoreOverridden option for TooManyFunctions rule - #1411

closes #1411

Codecov Report

Merging #1488 into master will increase coverage by <.01%.
The diff coverage is 50%.

@@             Coverage Diff              @@
##             master    #1488      +/-   ##
============================================
+ Coverage     74.74%   74.75%   +<.01%
- Complexity     1732     1734       +2
============================================
  Files           328      328
  Lines          5270     5272       +2
  Branches        957      958       +1
============================================
+ Hits           3939     3941       +2
  Misses          805      805
  Partials        526      526

Impacted Files
Coverage Δ
Complexity Δ

...rbosch/detekt/rules/complexity/TooManyFunctions.kt
94.82% <50%> (+0.18%)
24 <0> (+2)
: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 7025536...2b33c92. Read the comment docs.


Support for PhpRedis?

PHPRedis is the C extension for PHP to work with Redis which should give much better performance compared to Predis.
The code is rather simple, I can take the responsibility of writing it and send PR if necessary?

@yellow1912 a PR would be very welcome!

@yellow1912 I have a cache adapter that bridges to the illuminate cache component, which supports redis as part of my laravel bridge if you need something quick.

@GrahamCampbell actually I already have it working I think. But looks like we are already supporting Stash which in turns also supports PhpRedis so I'm thinking it's not necessary to add support to PhpRedis directly?

Better close this then. :)


issue with setUserImage on serverpod_auth_client module

Describe the bug
When hitting the client.modules.auth.user.setUserImage(image), a 400 error is being returned.
To Reproduce
Steps to reproduce the behavior:

Add the serverpod_auth_client module
Convert an image to bytes
Use the client.modules.auth.user.setUserImage(image) function

Expected behavior
200 Success (with a boolean of true or false coming back)
Serverpod versions

CLI Version: 2.0.0
Library version: 2.0.0

Platform information
I've tried on iOS and web with the same results.
Additional context
I believe this could be related to server.dart in the core framework. See the block starting at line 269. At 287, there is a null override (!) on the value body, but body can technically be null if await _readBody(request); comes back null.
This likely isn't the root of the problem but something I identified while stepping through.
Additionally, I'll add, I have tried this with both the built in storage AND the S3 module.
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: ServerpodClientException: , statusCode = 400
#0      ServerpodClient.callServerEndpoint (package:serverpod_client/src/serverpod_client_io.dart:73:9)
<asynchronous suspension>
#1      _SettingsScreenState.build.<anonymous closure>.<anonymous closure> (package:spmc_flutter/src/screens/settings_screen.dart:96:45)
<asynchronous suspension>

Hey @tylersavery!
Thanks for the report.
What logs are you getting from the Server when processing this request?
If you run the server with --logging=verbose, do you get any additional information printed then as well?
Please post the server logs if possible :)


Supertt adapter v2

Hi So this is a very great project. I spend lot of time to find out those unit and overall only 1 place in china did do it. But it do heat up to the point to burn. quite special.  Is yours, based on the ref design get any heat issues ?
And did you have working prototype of your v2 version ? or made multiple..
thanks in advance

Also, is the hid usb1 do transfert too ?


Add a refresh when adding a tag or uasage category

when adding a category, a tag or a usage, they are not taken into account by the filters.
You have to save and reopen the file.
It would be nice to be able to take advantage of the addition immediately.

do you press the button "FILTER" again, after changing filter-options?


Map not loading

Hello now I have been trying out this library
however it seems to not be working?

The logs do show that the tileset image has been loaded successfully
I decided to dig into the code a little
and it seems that there is a problem with this if statement

and the tile hash id actually returns 0 which is why the if is returning a False?

Yeah, likely need to change how the tilesets are found across layers 🤔


Bump proc macros 2 module to latest version

Bug report :
There was a recent change in proc macros 1.2 API that made some breaking changes. It broke proc macros 2 with version 0.3.8 on some projects. So I tried running this project against latest nightly and it works which should have caused an error during compilation of proc macros 2 module.
Upstream rustc issue reference : https://github.com/rust-lang/rust/pull/50473#issue-186182501
Upstream proc macros 2 PR (merged) : https://github.com/alexcrichton/proc-macro2/pull/90
Successful Nightly build with 0.3.8 compilation : https://travis-ci.org/tirkarthi/num-derive/jobs/382026352
Failure of proc macros 0.3.8 compilation in Rocket : https://travis-ci.org/SergioBenitez/Rocket/jobs/381529609#L527
proc macros 2 v0.4.3 released with the changes. Ref : https://github.com/alexcrichton/proc-macro2/tree/0.4.3
Feel free to close this if it's irrelevant or I am missing something.
Thanks

I suspect those changes are only a problem if you enable nightly/unstable features in proc-macro2.  Since we don't do that here, it's still building fine.  Regardless, I'll look into updating syn/quote/proc-macro2 to their latest releases.


Spider: Allegheny County Authority for Improvements in Municipalities

Spider Name:
alle_improvements
Website:
https://www.county.allegheny.pa.us/economic-development/authorities/meetings-reports/aim/meetings.aspx

I'll try this one.

Hey @eneilly , are you still working on this?

As this one seems abandoned, I'll claim it.

Fulfilled by this PR


fix: Schema.filter error reporting

Type

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description
When I have schema like MySchema.pipe(Schema.filter(..., { message: (value) => 'filter message' })) and the decoding fails because of MySchema and not because of the filter, it currently reports the 'filter message' anyway.
Additionally, the value within { message: (value) => 'filter message' } is typed as A of the MySchema which is not correct because it receives whatever is the input value because the parsing of MySchema might have failed.

Hmm 🤔 , I understand the override is useful in case of a filter over "small" schemas (like constrained numbers, strings, etc). But in case of the schema being constrained describes a more complicated structure and I'm imposing an additional constraint on the structure then I'd really want to have separate validation errors depending on what part of the schema ast failed.
The current behaviour gave us hard times recently in our team. We have a filter handling a dependency between some fields within quite a complex object and we were staring at the error message wondering how could the filter condition not be satisfied and we needed to do a laborious investigation to find out there was an empty string deep down in the object that should have been non-empty.

Yes, I understand the use case, but we need to establish a clear rule to manage custom messages so that it's clear what happens. At the moment, the rule is simple: the custom message set by the user closest to the source of the error is used; otherwise, a default message is generated.
const schema = S.string.pipe(
  S.message(() => "invalid string"),
  S.nonEmpty({ message: () => "should be non empty" })
)
await Util.expectDecodeUnknownFailure(schema, null, `invalid string`) // because of S.message(() => "invalid string")
await Util.expectDecodeUnknownFailure(schema, "", `should be non empty`) // because of message: () => "should be non empty"


License Text

Currently the only indicator of the license is in the README.md, but it is best to include the license text in the root directory by adding a file named LICENSE and adding the MIT Expat text to there. The MIT Expat License text are in https://opensource.org/licenses/MIT.

Fixed by https://github.com/SCOTT-HAMILTON/Trollslate/commit/734523f251830b53ad74f93e8c6e76508ea35f22, thanks !


Produce design shortlist

There are a few general patterns I noticed and which we could choose to follow as a paradigm. I also included some other sites (adidas, ZARA, and Opening Ceremony) which don't fall into these categories and show other options.
Simple designs
These are pretty basic and minimalistic in their styling. A good option if we want to keep things very clean and simple.

Goodfight
Chivichivi

Two panel block designs
Have a design where the product image takes up one half of the screen and the description takes up the other half. Superfluid uses some pretty interesting animations and it's worth taking a look at their site

Superfluid
JACQUEMUS
Won Hundred

Designs with borders
Greater use of borders to separate sections. Balenciaga also does this, but to an even greater degree.

Senteurs d' Ailleurs
Unrun

Full width image
Product image takes up the full width of the screen with the description super imposed. Might not work as well with the kinds of product images we'll have.

PHAEDIS

At first, I like the Chivichivi in terms of the style. But I am thinking the red font is a little bit too much, but just like it. Then I am thinking adidas and zara are good in terms of related products, probably because I like adidas itself and zara is kind of concise and clean.

I like the Adidas one as well, nice that it has a reviews section to look at as most don't. I'm pretty open to any of them though

OK, sounds good. Let's go with adidas as our base. I also liked the red font from Chivichivi. I had concerns about accessibility though. Turns out it doesn't satisfy accessibility standards.

I'll go ahead and close this issue and we can continue further design discussions in #5.


lttng-modules: 2.6.2-1-g7a88f8b -> 2.6.3

This also drops the assertion about kernel.version - we don't have
anything older than 3.4 in nixpkgs anyway.
This is a cherry-pick from https://github.com/NixOS/nixpkgs/pull/9816

Build tested with default kernel (linuxPackages.lttng-modules). Pushed to master (135fc6a76964afbf6f0cb6a52df05303828a9dac). Thanks!

Cherry-picked to release-15.09 (1b83abb27b759827fd385b29810cce0b4a8504a5).


Upgrade ANP client to v0.1.1.

Signed-off-by: xuezhaojun<EMAIL_ADDRESS>Fixes: https://issues.redhat.com/browse/ACM-2840

/assign @skeeey

/lgtm


More bazel tests

Blocked on https://github.com/angular/angular-cli/pull/17304, which should contain the first half of the work here but in a more manageable review chunk.

@googlebot I consent.

From slack.
Ok. Figured a few things out.

There is a linker bug when running outside of the sandbox on osx & linux so "local" breaks things but the "no-remote-exec" tag is better anyway as then it runs locally in the sandbox
2 The "workspaces" in the root package.json breaks the linker since it creates symlinks under the root node_modules to the source code (which is why I was seeing index.ts instead of index.js)

Caretaker: the required CI jobs need to change when merging this PR.
The following checks need to be added as required:

ci/circleci: integration

The following checks need to be removed:

ci/circleci: build-bazel
ci/circleci: test-large
ci/circleci: test-large-ve

These three were all folded into ci/circleci: test and run with Bazel.

@filipesilva can you also please update https://github.com/angular/angular-cli/blob/master/.github/angular-robot.yml#L43-L58 with the new CI tasks.

Per https://github.com/angular/angular-cli/pull/16976#issuecomment-617075895 merged despite the pending statuses for removed checks.
Also updated status checks to drop test-large, test-large-ve, and build-bazel and added integration as suggested. I'll rebase existing PRs and verify they pick up the new settings.

🎉 Nice work @filipesilva

@gregmagolan you know a lot of it was you :D


extend schema for console and error log

make console and error log size, rotation, and keep configurable in riak.conf
Currently these are hardcoded in the schema. Advanced.config requires
specifying a full handlers block that includes all settings for all log
files in order to modify them.
Add 6 configuration points:
log.console.size
log.console.rotation
log.console.rotation.keep
log.error.size
log.error.rotation
log.error.rotation.keep

Absolutely correct, that should have been mapped to lager.handlers.  The way it was, if it were the only setting specified, it may be been ignored.  The tests passed because the translation functions pull the settings by the riak.conf name, not their mapped name.

+1


Bad error message on syntax error in custom header

Steps:

Seed Generator, Start from scratch
"Add custom header", enter thiserrors
"Save"

Expected Result:
Seedgen returns this error, it should be displayed:
Error generating seed: Error in header Anonymous Header:
Invalid Expression: Unknown ExpressionIdentKind thiserrors
line 1: thiserrors
        ^^^^^^^^^^

Actual Result:
"Error: Request failed with Status code 500"

Fixed


PdfViewer porting

Any plan to port PdfViewer? I'm desperately looking for that.....

Found that you have implemented PDFRenderer and PageDrawer classes and I tried following to get and display page image in an ImageView but it just displays a blank white screen
mRenderer = new PDFRenderer(mPDDoc);
pageBitmap = mRenderer.renderImage(pageNum);
ImageView imageView = (ImageView)findViewById(R.id.pageImageView);
imageView.setImageBitmap(pageBitmap);
is the image conversion implementation completed or am I missing anything?

Nope, that code looks right. I haven't finished the renderImage code yet.

Closed as duplicate


Support chaincode calling chaincode emitting event

Ensure that the gateway's logic for gathering the correct endorsements works for the scenario where a chaincode calls another chaincode which just sets an event (no RW set).  The correct endorsements must be gathered for the event to be emitted on validation.
This might just involve adding a test for this scenario, but if necessary, code changes may be needed.

According to the current docs, this can't be done.
https://hyperledger-fabric.readthedocs.io/en/release-2.2/developapps/transactioncontext.html#stub
(scroll down to Event APIs)

@andrew-coleman could you triage and determine what needs to be documented before closing this one.

Looks like this limitation is well documented in the main docs:
https://github.com/hyperledger/fabric/pull/1652
And in the Go shim API docs:
https://github.com/hyperledger/fabric-chaincode-go/blob/main/shim/interfaces.go#L353
However, there is no mention of this limitation in the Node or Java shim API docs:
https://hyperledger.github.io/fabric-chaincode-node/release-2.2/api/fabric-shim.ChaincodeStub.html#setEvent__anchor
https://hyperledger.github.io/fabric-chaincode-java/release-2.2/api/org/hyperledger/fabric/shim/ChaincodeStub.html#setEvent(java.lang.String,byte[])
@mbwhite do you think we should add these doc comments?

@andrew-coleman yes certainly; this isn't a well known fact.
Is this guaranteed to hold in all cases?  Can't recall where but sure I read in the docs that invokingChaincode (on the same channel or was it same chaincode ) makes the invoked code part of the same transaction. In that case I don't quite follow why the 'outer setEvent' would be the 'winner'

Because the invokeChaincode function returns the chaincode Response proto message (status/message/payload) which doesn't contain the ChaincodeEvent proto message.  The ChaincodeEvent is embedded in the ChaincodeAction which is in the ProposalResponsePayload that gets returned by the outer chaincode only.

ah that explains it thanks @andrew-coleman  - admit it sounds like a bit of design flaw. But it is what it is...


Client cancellations aren't propagated to the server

When I close a streaming client request with an exception I would expect the corresponding server receive channel to throw an exception upon calling receive (or iterating the channel) but it doesn't seem to do so - am I doing something wrong?
Client:
call.requestChannel.close(Exception("Testing Exception"))

Server:
try {
    for (request in requestChannel) {
        logger.info("Iterating")
    }
    logger.info("Closed normally")
} catch (e: Exception){
    logger.error("Caught exception", e)
}

What you’re describing is the expected behavior. If you’re experiencing something unexpected then it might be a bug. Could you provide a little more detail for your example? This way I can try to reproduce it.
What Kroto+ version are you using?
What type of method does this occur with?
Client Streaming or BiDirectional?
Thanks again for submitting an issue!

Hi Marco - thanks for the response (and the library).
I've replicated the issue I'm seeing in this repo: https://github.com/jebbench/kotlin-coroutines-gRPC-template
If you need anything else let me know.

I can confirm this is a bug. I think it was introduced when outbound flow control was reworked. It is actually addressed in the streaming machinery rewrite that is currently in progress. Since that rewrite is still in alpha stages, I'll get a fix out for this bug in the very next release. The release is expected to occur on this up coming Monday. Ill get a PR opened tonight and tag you for visibility.

Brilliant thanks!

I've retested this using 0.6.0-SNAPSHOT and unfortunately I'm getting the same problem.
Received name: First
Client Streaming Response: message: "Completed without receiving an Exception"

Process finished with exit code 0

I looked into this and it turns out that the snapshot wasnt updated with the most recent changes from PR#95.
If you're still having issues please let me know.

I've just tried again, I've tried forcing Gradle to re-download dependencies with both the --refresh-dependencies flag and by deleting the cache directory - neither seem to have worked and I'm still getting the same error.

So I tested your branch and you're correct. It is still not propagating cancellation but this time it seems to be due to a race condition.
Using the following example the expected behavior is observed.
suspend fun performClientStreamingCall(stub: GreeterCoroutineGrpc.GreeterCoroutineStub) = coroutineScope {

    // Client Streaming RPC
    val (requestChannel, response) = stub.sayHelloClientStreaming()

    launch {
        println("Client Streaming Response: ${response.await().toString().trim()}")
    }
    requestChannel.send { name = "First" }
    requestChannel.close(Exception("This is an exception!"))

}

Im currently working on tracking down the source of the race condition in order to resolve this bug.

Tested the latest SNAPSHOT against your example project and everything seems to behave as expected now.

Version 0.6.0 resolves this for me.
Many thanks for your help!


Intercept communicator calls to accept/turn them

Currently communicator calls are ignored.  If the user manually answer the call by pressing (C), then the call dialog will be processed by the addon and accepted/turned accordingly.  The feature will treat calls like talking to an NPC, with no further interaction needed, unless quest provides a reward.

Since the easy part is to intercept new calls, that's what will be implemented first, later will add to process ignored (aka old) calls.


Nuru/valid time

Hi,
FF and safari have issue with invalidDates and time hence the failure/error reported here https://trello.com/c/jLKYQwhV/23-firefox-and-safari-parameters-of-the-trading-will-be-reset-if-user-modify-the-start-time .

Coverage increased (+0.7%) to 67.658% when pulling dde184e47d6cca490e4f7571d14eaca4af5af348 on nuruddeensalihu:nuru/validTime into 7607a208fbd86d6045dab73f4d058b1ccd35f54f on binary-com:master.


Add Dependabot integration

At first this will open a ton of pull requests. Once those are merged, this will work with less noise. We need to merge the CI checks in #299 first to make sure PRs are not breaking tests.

Thank you a lot.
You are awesome :3

@JSMonk you need to turn on the Depenadbot integration via the admin page of this repo.
https://app.dependabot.com/accounts/JSMonk/add


Do not add empty tags to avoid reported NPE in tracers

fix for #44

Pull Request Test Coverage Report for Build 157

7 of 7 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 44.82%

Totals

Change from base Build 155:
0.1%

Covered Lines:
385

Relevant Lines:
859

💛  - Coveralls


Argus 2 Support

Hi Thank you so much for all the hard work you have put in, much appreciated. I have Argus 2 and tried your code.
Its working however the stream is lagging a bit and not very smooth. Also after some time the video will go dark and comes back good. Probably it stops the stream for few seconds and starts back again. And when I put all 4 cameras it makes it even more worse. Is there any solution to this problem.
Thanks

I recommend to check out this fork and branch: https://github.com/vherrlein/camera_proxy/tree/develop
It seems ahead of this repo.


[ZEPPELIN-6051] Skip the hidden files in notebook listing (reopen)

What is this PR for?
This PR reopens #4789. It was accidentally closed while resolving conflicts. @Reamer
This PR modifies the notebook listing logic to exclude hidden files that start with ..
This is because showing non-executable files, such as meta files, could confuse users, as seen in this issue ZEPPELIN-6051.
Additionally I have enhanced the error popup message to be more specific, which appears when a user opens a notebook with parsing errors. I think it would be more helpful for users to recognize and resolve the issues on their own.
What type of PR is it?

Improvement

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-6051

How should this be tested?

Create a notebook that can't be parsed and try to open it.

Screenshots (if appropriate)
as-is

to-be

to-be

Questions:

Does the license files need to update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

If no further comments are received, I will merge this pull request on Thursday.


cmd/trace: The time of "GC pause" column in the User-defined regions table is too large

What version of Go are you using (go version)?

$ go version
go version go1.21.0 darwin/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/Users/admin/Library/Caches/go-build'
GOENV='/Users/admin/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/admin/code/gopath/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/admin/code/gopath'
GOPRIVATE='*.poizon.com'
GOPROXY='https://goproxy.cn,direct'
GOROOT='/usr/local/opt/go/libexec'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/opt/go/libexec/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.21.0'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='cc'
CXX='c++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/yq/ybt11j913mq3ppqx5tdl2phm0000gn/T/go-build920501220=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?

Use go tool trace's custom region to track function execution time.
Test Code: https://go.dev/play/p/idO-4ycK41K
$ GODEBUG='gctrace=1' go test -bench=BenchmarkGoTrace -benchtime=1000x -run=NONE -trace=trace.out

cpu: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
BenchmarkGoTrace-8          1000      22500692 ns/op

gc 2259 @26.566s 5%: 0.24+3.9+0.44 ms clock, 1.9+0.35/1.3/0+3.5 ms cpu, 128->156->47 MB, 145 MB goal, 0 MB stacks, 0 MB globals, 8 P
gc 2260 @26.574s 5%: 0.21+8.1+0.088 ms clock, 1.6+4.3/6.7/0+0.71 ms cpu, 85->100->85 MB, 95 MB goal, 0 MB stacks, 0 MB globals, 8 P
gc 2261 @26.595s 5%: 0.19+2.5+0.094 ms clock, 1.5+0.032/0.85/0+0.75 ms cpu, 149->163->47 MB, 171 MB goal, 0 MB stacks, 0 MB globals, 8 P

$ go tool trace trace.out

What did you expect to see?
The actual pause time of goroutine due to GC.
What did you see instead?
The GC pause time is extremely large and does not match the time output by GODEBUG='gctrace=1'.
"GC pasue" uses the GCTime field, which corresponds to the GCDone event. It seems that this is the total GC time, and it is calculated for each goroutine.
cmd/trace/goroutines.go#L298

 GC sweeping
 GC pause

{{range .GList}}

     {{prettyDuration .SweepTime}} {{percent .SweepTime .TotalTime}}
     {{prettyDuration .GCTime}} {{percent .GCTime .TotalTime}}

{{end}}

internal/trace/goroutines.go#L275
const (
	EvGCStart           = 7  // GC start [timestamp, seq, stack id]
	EvGCDone            = 8  // GC done [timestamp]
	EvSTWStart          = 9  // GC mark termination start [timestamp, kind]
	EvSTWDone           = 10 // GC mark termination done [timestamp]
	EvGCSweepStart      = 11 // GC sweep start [timestamp, stack id]
	EvGCSweepDone       = 12 // GC sweep done [timestamp, swept, reclaimed]
)

func GoroutineStats() {
	// ...

	case EvGCStart:
		gcStartTime = ev.Ts
	case EvGCDone:
		for _, g := range gs {
			if g.EndTime != 0 {
				continue
			}
			if gcStartTime < g.CreationTime {
				g.GCTime += ev.Ts - g.CreationTime
			} else {
				g.GCTime += ev.Ts - gcStartTime
			}
		}
		gcStartTime = 0 // indicates gc is inactive.
}

I agree that the title of "GC pause" doesn't entirely match the calculation for that column.
The commit message of 61f92ee56abbc6c6af317e4b867b4214c31ae4c7, when the calculation was last edited (during the Go 1.11 cycle), says "Goroutine analysis reports the sum of all overlapping GC intervals as the GCTime of a goroutine."
It looks like the calculation would make sense when running with a STW / non-concurrent garbage collector — but both the execution tracer and the concurrent GC were introduced in Go 1.5.
The calculation for the "GC sweeping" column does seem to be focused on the actual slowdowns to this particular goroutine: https://github.com/golang/go/blob/go1.21.0/src/internal/trace/goroutines.go#L262
		case EvGCSweepStart:
			g := gs[ev.G]
			if g != nil {
				// Sweep can happen during GC on system goroutine.
				g.blockSweepTime = ev.Ts
			}
		case EvGCSweepDone:
			g := gs[ev.G]
			if g != nil && g.blockSweepTime != 0 {
				g.SweepTime += ev.Ts - g.blockSweepTime
				g.blockSweepTime = 0
			}

Maybe the calculation for the "GC pause" column should instead be the sum of the GC-related STW pauses, plus any time in GCAssist? Plus time in the assist queue, for unsatisfied assists?
There's already a column for "Scheduler wait". In my experience, high levels of GC assist can lead to scheduler wait time for other goroutines — but maybe listing a non-zero value in the "GC pause" column would be enough to hint at that additional contributor to CPU starvation.
CC @mknyszek (and @golang/runtime ?)


ci: Also check via podman

It turns out that podman adds default mounts in /run which means there's a behavior difference here.
But we want to cross check with both on general principle.  I was just using docker because I thought podman might not be installed on the stock GH action runner, but it apparently is.

error: Device or resource busy (os error 16)

OK cool, new podman test successfully reproduced the problem; added the fix.


kas: wait for etcd client service name before allowing startup

What this PR does / why we need it:
Before this commit, KAS was allowed to launch in parallel with etcd, leading to
a race between the KAS etcd client timeout and etcd initialization. When KAS
loses the race, the KAS container restarts, incurring a backoff/startup time
penalty and tripping the crashing pod detector in the e2e suite.
This commit improves startup reliability by adding an init container to KAS
which waits for the etcd client service name to resolve (via nslookup) to
prevent useless restarts when etcd isn't ready yet.
Checklist

[x] Subject and description added to both, commit and PR.
[x] ~Relevant issues have been referenced.~
[x] ~This change includes docs.~
[x] ~This change includes unit tests.~

/lgtm

/hold

I think this techincally needs to be more generic or this container needs to not be deployed in the "unmanaged" etcd path

Great catch, thank you! We should find a good way to cover unmanaged etcd in the e2e...

I think this techincally needs to be more generic or this container needs to not be deployed in the "unmanaged" etcd path

Okay, I pushed a fix for this and added a comment with the rationale/behavior. As noted in the comment, I decided to simply make no assumptions for the unmanaged path (effectively the same behavior as before the commit). We can always revisit the behavior for unmanaged if there's some feedback to drive it. Thank you!

/hold
Maybe I should extract the host part of etcdURL and do it generically regardless of etcd management type? Could be generally useful?

/hold cancel
talked with @relyt0925 and we want to think about it more, easy to change later.

/lgtm


Multiple Handlers listening on same queue?

Hi,
I've started using MiniBus as it looked like it would save me a lot of time dealing with MSMQ infrastructure setup, which it has! Thanks!
I'm trying to setup multiple message handlers on the same bus / queue instance and I am having issues with it determining which handler to fire if different messages are added to the same queue. Is this currently possible? If so, how would I go about setting up RegisterHandler / ReceiveAsync combination?
Cheers

Hi Adam,
I'm not sure what you mean by "if different messages are added to the same queue". When you say different messages do you mean different message types? Queues are always declared for specific type.
Anyway, I've just pushed a commit with a new scenario in the sample program showing multiple handlers all being invoked for each message received. Maybe you can look at that and see if it helps?
Cheers
Steve

Hi Steve,
The scenario I am looking at is setting up the following:
My message is:
    public class MyMessage<T>
    {
        public string Action { get; set; }
        public Guid Reference { get; set; }

        public T Payload { get; set; }
    }

And using it, currently, with either a string as T or a simple example POCO DTO ....
public class MyDtoPayload
    {
        public Guid MyGuid { get; set; } = Guid.NewGuid();

        public string MyAction { get; set; } = "MyAction";
    }

.... and sending it to the queue configured as below:
 var simplebus = new BusBuilder()
                 .InstallMsmqIfNeeded()
                 .DefineErrorQueue("errors")
                 .DefineReadQueue("messages")
                 .CreateLocalQueuesAutomatically()
                 .EnlistInAmbientTransactions()
                 .JsonSerialization()
                 .NumberOfRetries(3)
                 .CreateBus();

With the handlers and receiving setup as:
            simplebus.RegisterHandler(new MyMessageHandler());
            simplebus.RegisterHandler(new MyGenericHandler());

            simplebus.ReceiveAsync<MyMessage<string>>();
            simplebus.ReceiveAsync<MyMessage<MyDtoPayload>>();

The message handlers are:
class MyMessageHandler : IHandleMessage<MyMessage<string>>
    {

        public void Handle(MyMessage<string> p)
        {
            // do stuff with a string payload
        }
    }

    class MyGenericHandler : IHandleMessage<MyMessage<MyDtoPayload>>
    {
        public void Handle(MyMessage<MyDtoPayload> p)
        {
            // do stuff with a DTO payload
        }
    }

Then the message construction and Sending is similar to:
        var msg2 = new MyMessage<string>()
        {
            Action = $"Action: {count++}",
            Reference = Guid.NewGuid(),
            Payload = "this is the payload"
        };
        _bus.Send(msg2);

        var msg3 = new MyMessage<MyDtoPayload>()
        {
            Action = $"My T msg",
            Reference = Guid.NewGuid(),
            Payload = new MyDtoPayload()
        };
        _bus.Send(msg3);

Does that make sense?
Cheers

Hi Adam,
No, I don't think that's ever going to work. ReceiveAsync under the hood will peek messages off the queue and send them to every registered handler so your string handler would fire for the generic message as well as it's own and vice versa. When I said the queues are always declared for a specific type what you are effectively doing is attempting to bypass that "restriction" as a MyMessage is not the same type as a MyMessage.
It's not a use-case I ever considered and personally I would just declare two queues and have two bus instances each receiving off their own queue. Sorry! :)
Steve

Hi Steve,
Thanks for the quick response!
Would it be possible to extend the ReceiveAsync to be cleverer with which handlers it sends it to? I'm starting to look at the code, and if I can get working make a pull request, but want to make sure I've understood the architecture correctly before making too many changes.
If not, then I think the multi queue will work for now :-)
Cheers

Right now the honest answer is I don't know. It's been a few years since I had my head buried deep in it so I'd have to spend time getting back up to speed but I feel like it should be possible. As with most things, it's finding the time. I'll certainly try at some point to find some time to have a go because it does feel like a nice enhancement but you are of course welcome to give it a go too! :)
Steve

Tried a couple of different ways but none successful yet.
Nice layout of the code; I like the AOP style build up of the configured "pipeline" for handling messages :-)

Thanks! I am a big fan of the pipeline approach. A few years back I wrote about how I use it in normal, everyday enterprise apps. It's evolved/improved quite a bit since then but the premise is the same. If you're interested you can read it here ;)
[(https://eventuallyconsistent.net/2013/08/12/messaging-as-a-programming-model-part-1/)]
As for MiniBus, I too have been having a go today. The biggest problem I'm running into at the moment is the invocation of ReceiveAsync twice (once for each message type) which looks to expose a race condition as both compete for the same messages. This is to be expected as they are on the same queue but at the same time it does make me question if this is actually the right thing to be pursuing. I'll give it some more thought though. Not giving up just yet :)

Sounds like you're running into the same issues as I have been experiencing!
The other ways I've been thinking about but not got working yet are ...

Have one RecieveAsync(), none generic, method and then inside that try and work out what the type is. This is the current headache with this approach, struggling how to determine the type of the message body at run time.

Have multiple RecieveAsync() methods and in the ReceiveMessageHandler try and determine which handler to run by type of parameter

        public void Handle(Message msg)
        {
            T payload = GetPayload(msg);
            _logger.Log(string.Format("Message: {0} - Payload: {1}", msg.Label, msg.Body));

            foreach (var action in _handlers.Where(x => x.Method.GetParameters()[0].ParameterType == typeof(T)))
            {
                _logger.Log(string.Format("Message: {0} - Invoking registered handler", msg.Label));
                ((Action<T>)action)(payload);
            }
        }

However this is the race condition issue which sounds like you're experiencing as well.
The other option, which I'm just starting to put together to see if it works, will be to have a ReceiveAsync() method which takes a params of Type of message body types it can handle, eg
_bus.ReceiveAsync(typeof(int), typeof(string));
Will see how far I get and let you know :-)


style(frontend): BTC logo is no fully round circle. Update logo from figma

Motivation
The btc logo svg is no fully round circle. This leads to styling issues when adding a ring in a logo
Changes
Use logo from figma
Tests
Issue is perfectly visible when placing the BTC logo using the logo component and a ring above a background.

Width/height does not match!

Changed logo:

https://www.figma.com/design/dUNegIE5geiWu7916IC07c/6.-OISY---Theme-library?node-id=2143-14549&m=dev


Fix/Fixed wrong parameter name

Fixed wrong parameter name for historical candles request payload

Review this issue was fixed in this PR:

PR:


fixed bucket domain name

Issue #, if available:
Description of changes:
Changed the DomainName for the CloudFront distribution to reference the RegionalDomainName instead. My cloudfront distribution wouldn't work for my bucket deployed in ap-southeast-1 unless I made this change. Suspect that current setup only works in us-east-1. This new change should get it to work in other regions as well.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thank you!


Specify maximum active tokens per user per client

In order to comply with https://web.nvd.nist.gov/view/800-53/Rev4/control?controlName=AC-10, we would like to be able to control the maximum number of active tokens per user per client, such that old tokens are automatically invalidated when the limit is exceeded. An example interface might look like this:
properties:
  uaa:
    clients:
      my-client:
        max-active-tokens: 2

From slack:

@jmcarp We are currently working on features along those lines. Starting with only 1 active refresh token per client/user combo

cc @rememberlenny @cnelson @mogul

Bumping to join notifications.

@fhanik mentioned that this work is already underway. @fhanik and @sreetummidi: do you have an estimate of when this might be ready?

@jmcarp We added support for token uniqueness where in only refresh token can be outstanding  per user and client combination. Please check UAA 3.12.0

@sreetummidi I've asked this to be opened so we could have a discussion about compliance needs, which are currently more than we offer with refresh token uniqueness

@fhanik @sreetummidi How can we continue this discussion / move this feature request forward?
Our ask as outlined above is still what we are looking for, has their been any thoughts on your side about expanding your token limits beyond refresh tokens?

@fhanik @sreetummidi Could we please get some type of formal response to this issue?
We're happy to try to figure this out and submit a PR, but would like some sort of confirmation that there hasn't been movement internally on your side, or that something like this would be welcome.

@jmcarp @LinuxBozo We will add this support in the upcoming version of UAA.

👍

@jmcarp UAA supports two token formats JWT and Opaque.
Are you referring to limiting the Access Tokens or Refresh Tokens per User and Client combination?
Also, I think this feature makes sense when tokens are stateful as in they are revocable because we store the state in the UAA DB

@jmcarp We can't get started on this story if we don't have a clarification.
I am leaning towards only limiting the number of outstanding refresh tokens. Access tokens will be restricted only when the token format is opaque.

Yes, what we're looking for a global restriction on the number of refresh tokens regardless of user/client combo.

sounds good

@sreetummidi would you consider also number of tokens limit for client credentials flow as well. We are looking for limited number of tokens clients (one time use OAuth client) or limited TTL clients (deleted after expiration). That might be related to OAuth Dynamic Client Registration Protocol: https://tools.ietf.org/html/rfc7591 Thoughts?

Is this something that should be configured on the client? Or on the zone?

I would configure it on a client, not zone

Seeing this is still tagged scheduled: Any idea when we might see it?

Is there any update on this?

Is there any update on this?

Is there an update here? This has been 📆  for a while now, and implementation would close a compliance concern we're addressing.

Is there any way to log or track number of currently active tokens, or the IPs they're associated with? The ability to flag anomalous behavior here would be a compensating control.

:wave: to all the old homies who got notified by this ancient thread ✌

I see there is bigger interesst on this topic.
Currently UAA only has 1 or infinit.... so something like n inbetween is useful.
Could someone from the watchers list propose a PR ?

I hope everyone had a good 2021! How do things look for getting this addressed in 2021?
Also to quote @cnelson:

👋 to all the old homies who got notified by this ancient thread ✌

@pburkholder If you would provide a PR then this would be a good starting point .
I know that this is a compliant issue, where all the bigger orgs should have interesst to have it
@torsten-sap  FYI


Add App Engine Managed VM Deployment support

Closed by https://github.com/GoogleCloudPlatform/gcloud-intellij/issues?q=milestone%3A0.9.3-beta+is%3Aclosed


Recommend buildSrc over script plugins

Context
As discussed recommend buildSrc over script plugins and add more details.

buildSrc is a (included) build not a project. I wonder if calling it a project could be misleading for users. It is to me. Getting the terminology straight now might help when we start recommending included builds.

@eskatos I know that we have been talking about treating buildSrc as part of a composite build in the past but has this actually become reality yet?

I wonder if calling it a project could be misleading for users. It is to me.

Can you explain why you find it misleading? At least from a user's perspective you see that another project with the path :buildSrc is executed. The console output simply looks similar to what you'd expect in a multi-project build.

Both included builds and sub-projects are displayed in a similar way in the console output, respectively ":${includedBuild.rootProject.name}:task" or ":${subproject.name}:task". This might be the misleading part.
buildSrc is already a "special included build", not a "special project". It can have a settings file for example.

@eskatos Thanks for clarifying. I will change it.


Is there a similar client impletation for Lean 4?

I'm trying to work on a project with Lean 4, which requires communicating to lean4 process (maybe via LSP) and stands alone from vscode or web or React.
However, the current clients I've found in the project are somehow highly nested with those platforms and I've struggled but failed to pick them out.
So I'd like to ask if you have any suggestion of how to implement one like this in Lean 4 or instruction of extracting one from existing project?

This project isn't much more than a thin python wrapper around the Lean 3 JSON-based language server.  The most important thing it does is properly handle the async communication via the trio library.  (It also makes the API into some data classes, but that isn't necessary, nor is it perfect since, for example, the widgets API is not properly supported.)
Lean 4 has a similar JSON-based language server.  It wouldn't be hard for you to modify this code (forgetting about the tests and data classes) to use that language server.  (The Lean 4 language server is also an LSP server, so you may even be able to find an LSP Python client.)
Moreover, I'm not sure of your use case, but note that there are many ways to interact with Lean 4 from Python.  The language server is just one way.  You can also use Lean metaprogramming (the fastest way) or just call Lean from the command line (the simplest way). It might be worth having a discussion about your aims at leanprover.zulipchat.com


Installation instructions

Thought I'd add some installation instructions to the docs for beginners.

Oh wow, I can't believe I've missed this! Haha, thanks for adding this 👍

No worries! I'll contribute more as I get more familiar with the codebase if you don't mind

@charafmrah Wouldn't mind at all! To the contrary - would love to have some support on this package!


problem to get encoded URL as a query param

I have to redirect the previous location with some logic. so I came up to pass ReturnUrl as a query param.
for eg:

/users/edit/4?returnurl=/users/list
FlowRouter.getQueryParam('returnurl');  "/users/list" works fine
/users/edit/4?returnurl=/users/list?page=10
FlowRouter.getQueryParam('returnurl');  "/users/list?page=10" works fine
/users/edit/4?returnurl=/users/list?page=10&sort=new
FlowRouter.getQueryParam('returnurl');  "/users/list?page=10" failed

so I have tried to encode the url.

/users/edit/4?returnurl=%2Fusers%2Flist%3Fpage%3D10%26sort%3Dnew
FlowRouter.getQueryParam('returnurl');  "/users/list?page=10" again failed

Is there a way to fix this issue?

I am also having issues with encoded parameters not working, here is my example which has an encoded & (%26):
URL is: http://localhost:3000/files?path=%2FDAN14-223%20BR%20R%26P%20Gearing%20Brochure%20FR
The queryParams object is being stored as:
Object {path: "/DAN14-223 BR R", P Gearing Brochure FR: ""}
Seems like the url must be being decoded before creating the parameter object.

My issue with this was resolved when using kadira:flow-router-ssr

Yes. We fixed some issues.

This is definitely a bug and it still doesn't fully work. Iron Router correctly decodes the query string. After changing my router to Flow Router only because it is now the officially-endorsed router, the query string decoding stopped working.
e.g. here is original data before encoding into the query string:
U2FsdGVkX1/3na5R9vbwHri1NrxdrwtwpGu9BOg+YcGik//DIUJSikPjG6n3rTWj44yxRuGsqMVqFCWun21m+/En
Here is data after encoding to query string and ready to use in URL:
U2FsdGVkX1%2F3na5R9vbwHri1NrxdrwtwpGu9BOg%2BYcGik%2F%2FDIUJSikPjG6n3rTWj44yxRuGsqMVqFCWun21m%2B%2FEn
Here is the data returned by FlowRouter.getQueryParam("data"):
U2FsdGVkX1/3na5R9vbwHri1NrxdrwtwpGu9BOg YcGik//DIUJSikPjG6n3rTWj44yxRuGsqMVqFCWun21m /En
It appears that the plus characters (+) became space characters.
It's quite a serious bug as we can't have data becoming corrupted when it is transmitted via query strings.
Please fix this as soon as possible.
Thank you.

How is the fix to this issue progressing?

It appears that the plus characters (+) became space characters.
+1

FlowRouter.setQueryParams({test:'foo+bar'})
true

FlowRouter.getQueryParam('test')
"foo bar"

The issue is not fixed yet... How is the fix to this issue progressing please?
Thanks

you need to it manually with npm query-string :
const queryString = require('query-string');
const search = FlowRouter.current().path.split('?')[1];
console.log(queryString.parse(search));

The workaround that fixed it for is using %252B to represent + on the path.

This is an old issue, but I recently fixed this in the flow-router-extra package, and maybe it could be applied here as well. This package from Kadira hasn't been updated in almost 5 years, so I'm not going to bother submitting a PR for it, but here is the fix in flow-router-extra for anyone who's interested:
https://github.com/veliovgroup/flow-router/pull/92

Thanks @michaelcbrook great contribution!


Directive doesn't work with module names

I am using webpack in my project implementing the code splitting feature. I have configured it to load a module named 'panel' on demand via the require.ensure logic.
I also have a directive in my app belonging to the module that I load on demand. I have attached the oc-lazy-load directive to the parent div of the loaded module directive where I specify the name of the 'panel' module:
<div oc-lazy-load="panel">
    <side-panel></side-panel>
</div>

When I run my application even before clicking to load the panel module on demand I receive two errors stating:

File type could not be determined. panel(anonymous function)
Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.

I have read the documentation and looked at the oc-lazy-load source. It states that you can either provide a file path, multiple file paths, objects or the name of the module that I want to load. The directive doesn't seem to work in this way.

Just changed the complex application in the examples directory to follow the same logic and it is also throwing the same error. I did the following:

Removed the gridModule, module declaration from the config block.
Added the js/gridModule.js file to the list of files loaded when the modal button is clicked.

It seems that the call to angular.isDefined returns true regardless of whether the module is actually loaded. I made some changes to see if I could get it working, I did the following:

Removed the watch.
Replaced the watch with an event watcher, watching for the module loaded event.
I added logic so that if the module name matched gridModule, I executed the $animate and  $compile logic.

This worked to a certain extent. The contents of the div were displayed when I clicked the modal button and the controller was available to the scope providing the grid config values. However, the inner div that uses the ui-grid directive was not rendered. The use of the class "gridStyle" styles the div to the expected size and border but the contents was not displayed.
I am not sure whether there is something extra we need to do to attach the module directives to the inner $scope?


Stereo mode error

Stereo mode doesn't work on the compute module with two cameras.
This minimal piece of code fails :
import picamera
import sys
import traceback

try :
   camera = picamera.PiCamera(stereo_mode='side-by-side')
   camera.start_preview()
   # Camera warm-up time
    time.sleep(2)
    camera.capture('foo.jpg')
except Exception as e:
    print "Error:"
    print "############"
    print e
    print "############"
    traceback.print_exc(file=sys.stdout)

It gives the following output :
pi@computePI ~/stream $ python test_stereo.py
Error:
############
Unable to set stereoscopic mode on output 0: Argument is invalid
############
Traceback (most recent call last):
  File "test_stereo.py", line 7, in <module>
    picamera.PiCamera(stereo_mode='side-by-side')
  File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 419, in __init__
    self.STEREO_MODES[stereo_mode], stereo_decimate)
  File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 525, in _init_camera
    prefix="Unable to set stereoscopic mode on output %d" % p)
  File "/usr/lib/python2.7/dist-packages/picamera/exc.py", line 133, in mmal_check
    raise PiCameraMMALError(status, prefix)

Here are some information on my system :
pi@compute ~ $ uname -a
Linux compute 3.18.13+ #784 PREEMPT Sat May 9 15:49:42 BST 2015 armv6l GNU/Linux

pi@compute ~ $ vcgencmd version
May 13 2015 14:58:12
Copyright (c) 2012 Broadcom
version 8e0e0dbfe92be77d6355082451280d32f5bf0ff3 (clean) (release)

Also, the latest version of raspistill/raspivid do provide a working support for stereo through the -3d option

Sorry I haven't had much time to look at picamera tickets lately! Stereo mode's especially tricky given I don't have the hardware to test on. That said I can certainly compare exactly what raspistill/vid do and what picamera does and I'll try and do this before the next release to ensure picamera does effectively the same thing when stereo_mode gets set in the constructor

Thanks Dave,
If I can be of any help let me know. I do have the hardware and I'm more than willing to test any modification you would like to try.

Daft as it sounds, I suspect it is because you've set the camera number at https://github.com/waveform80/picamera/blob/master/picamera/camera.py#L534 before setting the stereoscopic mode at line 583.
Setting the camera number triggers the loading and opening of the selected camera driver as a startup optimisation (some things had to wait for numbers to be available from the camera driver, so if the loading of that can be triggered early, then you save time. That's also why a parameter changed event can be triggered off the camera number - it triggers when the camera number has been changed and that driver is loaded and available).
Selecting stereoscopic mode needs a different set of parameters when opening that driver - specifying that you want to channels and two camera drivers being the main things. If it's already open when you try to select stereo mode, then it throws an error.

Following 6by9 comment I came up with this solution (see above) that fixes the issue for the stereo mode. Now I can access synchronized streams on my compute module.
Maybe the stereo part of the documentation could be made clearer. Especially this part :

If the stereo_decimate parameter is True, the resolution of the two cameras will be halved so that the resulting image has the same dimensions as if stereoscopic mode were not being used.

The resolution of the image we get from stereoscopic mode is the same as the given (or default) resolution parameter, and if a regular 4/3 ratio is given, the two images will be halved so that their combination fits into a 4/3 image.
For example, to get one stereo image with two full (480x320) images inside, I have to use something like this :
camera = picamera.PiCamera(stereo_mode='side-by-side', resolution=(960,320), stereo_decimate=False)

Well, I've now got hold of a compute module dev-kit - yay! Unfortunately I've only got a single camera adapter at the moment (as it only comes with one...). I'll see if I can borrow another one next week to finally test this!

Got a spare camera adapter (generously lent by @lesp!), and got it all set up with both cameras working under raspivid/still ... but my god, I'd forgotten how long it took to compile numpy on a Pi 1 (the Pi2/3 has ruined me ;) ... an hour in and it's still going. Think I'll leave this overnight.

but my god, I'd forgotten how long it took to compile numpy on a Pi 1

:-) I had the same when doing some V4L2 development for multiple cameras the other week. I now have CM3 working though :-o

Grrr! Definitely need to get my hands on one (or more) of those (my slice would definitely appreciate one!).
Started having a play with stereoscopic support - definitely a fair amount I need to fix up here. @guyver2's patch is a start but doesn't permit selection of the primary camera (probably not that important, but nice to support if we can). Then there's the issue that picamera constantly runs the preview at the full camera resolution which simply won't work with a stereoscopic full resolution still capture (out-of-mem when initializating with res 5184x1944 - hardly surprising :), so I need to have a bit of a think about how to separate out camera and preview resolution without breaking the API and keeping things relatively simple. And I ought to add the swap-eyes feature. Hmmm.
(unfortunately the only two spare cameras I had lying around were a regular and a noir ... which makes for some amusingly unbalanced stereo captures given one camera does the exposure/awb sampling :)

A better fix would be to move the section (line 581)
             port = self._camera[0].output[p]
             # Don't attempt to set this if stereo mode isn't requested as it'll
             # break compatibility on older firmwares
             if stereo_mode != mmal.MMAL_STEREOSCOPIC_MODE_NONE:
                 mp = mmal.MMAL_PARAMETER_STEREOSCOPIC_MODE_T(
                     mmal.MMAL_PARAMETER_HEADER_T(
                         mmal.MMAL_PARAMETER_STEREOSCOPIC_MODE,
                         ct.sizeof(mmal.MMAL_PARAMETER_STEREOSCOPIC_MODE_T),
                     ),
                     mode=stereo_mode,
                     decimate=stereo_decimate,
                     swap_eyes=False,
                     )
                 mmal_check(
                     mmal.mmal_port_parameter_set(port, mp.hdr),
                     prefix="Unable to set stereoscopic mode on output %d" % p)

to before setting MMAL_PARAMETER_CAMERA_NUM, but still set CAMERA_NUM. That would give you selection of primary camera via camera_num.
Memory use should be controllable, but depends on where you can make use of OPAQUE buffers - I seem to recall a brief exchange over pipeline architecture a fair while back.
Another potential nasty: not all components may respect the stereoscopic representation.
camera, video_encode, image_encode, and video_render all do. I fixed a bug with the MJPEG codec the other week where it didn't understand the signalling. resize or video_splitter being presented with opaque buffers may well result in dropping the second image. Let me know if so and I'll try to fix it.

A better fix would be to move the section (line 581) ... to before setting MMAL_PARAMETER_CAMERA_NUM, but still set CAMERA_NUM. That would give you selection of primary camera via camera_num.

Yup - done that in my test clone on the CM - works nicely.

Memory use should be controllable, but depends on where you can make use of OPAQUE buffers - I seem to recall a brief exchange over pipeline architecture a fair while back.

Yeah - I'm just re-acquainting myself with all this (been so long since I looked at it!). I vaguely recall there's a difference in the video pipeline (picamera uses I420) because I couldn't get the splitter working with OPQV way back when. I should have a go at doing that though, as it sounds vastly more efficient than throwing around whole copies of YUV data.
I think the still port defaults to I420 as well, but that was purely a temporary work-around for the buffer-size issues which were fixed ages ago, and it switches to OPQV when doing anything encoded like JPEG/PNG. Still, I should probably change the default to OPQV instead.
Still pondering the separation of preview and camera resolution at the moment though...

Okay, partly for my own reference -still encoding's a little more complex:

I420 is the default (mostly likely for historical reasons relating to buffer allocation)
When an encoded output format (JPEG/PNG/GIF/BMP) is requested for capture from the still port, without resizing in the pipeline, still port switches to OPQV
When an unencoded output (YUV/RGB) is requested or encoded+resizer, I420 is used (resizer doesn't work with OPQV perhaps?)
Starting a recording forces still port to I420 as well - not quite sure why yet - maybe simultaneous capture+record doesn't work with OPQV still encoding?

Ah, I see now - the video port is set to I420 because of the resizer functionality. With the existing picamera API it's valid for someone to start an unresized recording, then request to start another resized recording on another splitter port (in fact, it's explicitly listed in the recipes).
Now, given that:

Resizer only works with I420 encoding, not OPQV
All splitter ports share a format
Changing splitter port format requires stopping all existing processes using those ports

If the splitter started out in OPQV, the second recording would require us to shut down the first recording, reconfigure the splitter, then restart it (i.e. break the first recording). Alternatively, I could require users that wish to do this to start the resized recording first (giving us the hint that the video splitter needs to be running in I420) and start their other recordings after. It's technically an API break - but I'm rather tempted by it as it allows OPQV encoding on the splitter+video port.

https://github.com/raspberrypi/firmware/issues/440 added supporting opaque into resize, although it seems it never got tested in anger.
I do have another largely untested patch on my firmware tree for "video_splitter: support format conversion on buffer in and out - previously it would only convert on opaque in, buffers out". I'm not sure if that helps you out or not.
Video_splitter output ports should all be independent for format, at least if it is opaque in.
So it sounds like you're after:
camera->splitter->(resize)->dest1
                ->(resize)->dest2
                ->video_encode->dest3
                ->dest4

So:

opaque camera->splitter
opaque splitter->resize,
chosen format resize->dest
chosen format splitter->dest4

should work.

Oooh - very interesting stuff, thanks! I'll have a play with that and see what I can come up with. On the downside that means this is probably going to become a rather large patch as it'll involve a fair bit of re-plumbing but it looks like picamera's rather overdue for that anyway if we want to take advantage of all the new firmware goodies.

And yes, the pipeline you've outlined is an extreme but nonetheless plausible use-case in picamera's API.


Test class name as part of outputFileFormat opts

Currently: According to the readme, there is an option to customize the output file format. The options available to customize this is just the runner id and the capabilities. These are not very readable.
Would you entertain the possibility of making more details about the test available while specifying the test file format?
Ideally it would be nice to have the test class name, so that we can include it in the name.
If this sounds reasonable, then I can make the change and send a PR with some guidance. :)

Please do , thanks

@christian-bromann can I get some guidance on what I need to change for this? I see the config passed into the function on this line. Shouldn't the test class names already be accessible then? https://github.com/kaushlakers/wdio-junit-reporter/blob/master/lib/reporter.js#L135

What do you think is reasonable to expose? I just realized I can customize quite easily for my use case, where I need just the suite name, since the reporter generates 1 file per suite.

Not sure which data is available to you?

I found a work around for my specific use case and I don't think it makes sense to push that change here. Closing this. Thanks! 😄


Debug gate cloning

My local results don't show any improvement with gate cloning on but don't show degradation either. The artificial testcase does show improvement.

ORFS testing results should be available here:
https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/1196

The description says this is a draft pr for testing. Are you planning to merge this?

Fixed. This is ready for merge. ORFS shows no issues (see link above).


add custom dataset styling for ebird

ebird aggregates data from many publishing countries. this is now exposed in the occurrence index. The ebird dataset page should have a list of contributing countries.
This is a special case and should be a hardcoded key that add a special rule for this specific dataset. If more like these exists something more genereic should be implemented.
relates to https://github.com/gbif/occurrence/commit/de6c413cc41bf9a654f6bcef0d690f8fedb998a2

closed by https://github.com/gbif/portal16/commit/9ccdb469ee6a67fe0a85221c7143c8df04029775


Duration: 0?

Is there a way to instantly scroll, without an animation/transition? Currently have this:
      scroll.toElement(element, { duration: 0 });

But doesn't seem to work. 👎

why not just change the Element.scrollTop property?
FWIW, the original goal of this package was to fill gaps in the spec in regards to scrolling elements--not necessarily to provide functionality that is already supported.
FYI, depending on the browsers you need to support, a lot of what this package does (i.e. scroll(), scrollTo()), are already natively supported by evergreen browsers.

After reviewing code though, it wouldn't hurt to implement a fix for this situation. Specifying a 0 duration should work. I'll submit a fix in a bit for it.

We were using this library as a cross-browser solution, as we prefer to abstract non-standard (Internet Explorer) code out so it doesn't 'clutter' our code. We are using this library for across several UI components and it's all working well for us, was just a little stumped as to why zero duration didn't work. Thanks for the fix though.

Got ya, almost done with the fix. will open a pr and up the patch version once done. 👍

Hey @thejamespower opened a PR with the fix

Hey @thejamespower to clarify, there is really no fix for this because I tested passing duration:0 and it actually works. Not sure why it's not working for you. Do you mind pasting an example of your use case?

going to close this since I could not reproduce. if you're still having problems, feel free to comment in this thread.

Thanks @mkay581, I'll investigate further our end.


Error 400 policty violation

Every two or three pages the program stop giving me this error.

I use chatgpt 4o and translate from Spanish to Italian but it behaves like this with all the others. It seems to confuse these letters with captcha's to solve.

If I delete them manually the program works but it is 700 pages it would be too long.How can it be solved?thanks

Download and try again. should be resolved now

It always gives me the same error even the new version, Error 400 policty violation

I've just updated the app. There is now a new checkbox setting called "Provide Image to LLMs as context". It's ticked on by default. Untick it and see if the error is now gone.


ESP IDF MQTT SSL  (IDFGH-2824)

hi,
i want to use IDF Framework "esp-idf\examples\protocols\mqtt\ssl_mutual_auth" exemple, so  without certificat its work  well :D  , and when i try to use ssl connection, add 3 certificat in my raspberry broker (ca.cert server.crt and server.key)  and enable  require_certificate, that   not work :(
in esp32 code   if i add or not certificat in  esp_mqtt_client_config_t i have the same result in terminal  :
I (692579) MQTT_CLIENT: Error MQTT Connected
I (692579) MQTTS_EXAMPLE: MQTT_EVENT_DISCONNECTED
I (702589) MQTTS_EXAMPLE: Other event id:7
I (702589) MQTT_CLIENT: Sending MQTT CONNECT message, type: 1, id: 0000
E (702599) MQTT_CLIENT: mqtt_message_receive: transport_read() error: errno=104
E (702599) MQTT_CLIENT: esp_mqtt_connect: mqtt_message_receive() returned -1
that mean its connected with broker but cant send and receive data
so eclipes or esp32 code  doesn't use those certificate.
i dont know what i put in  .cert_len  ( If the certificate is not null-terminated then cert_len should also be set )
if i try .cert_len = 2048 i have in terminal :
Explicit cert-/key-len is not available in IDF version v4.0
what is len available in IDF V4.0 ????????

ESP32
ECLIPSE
ESP IDF V4.0

Hi @SERIDJ
esp-mqtt on v4.0 could only process PEM formatted certificates (which are text based and zero terminated), so please use the PEM format and set the .cert_len = 0 or leave it undefined.
It seems that the ESP could not connect to the broker on mqtt level. To find out more please enable debug log level in menuconfig and check the mosquitto log on your raspberry.

hi @david-cermak
thaks for ur replay,
i dont thins esp coulad not connect to the broker bcs when i stop sever in raspberry  with sudo service mosquitto stop  eclipse change error in terminal and show :

that mean esp32 can detect a correct server with host and port and cant send data ... i will chek with menuconfig

for cerficat i use openssl
ca:
openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
server :
openssl genrsa -out server.key 2048
openssl req -new -out server.csr -key server.key
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 360
client :
client:
openssl genrsa -out client.key 2048
openssl req -new -out client.csr -key client.key
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key  -CAcreateserial -out client.crt -days 360

No need to null-terminate the certificate, it's added to the binary as a string so this already contains the terminator (after the END CERTIFICATE --- marker).
This looks okay from the log, otherwise you'd see an error in parsing the certificate.
What the logs from the broker and debug logs from the ESP say?

@david-cermak  yes yes that generat ca.crt.S, client.crt.S and client.key.S
i add  in config file raspberry those command :
log_type all
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
but i dont have anny logs when esp32 is connect or not
when i stop broker pi that change logs in eclipse that mean esp is connected to broker and cant send data

i dont have anny logs from brokrer pi, i use : **sudo mosquitto -p 1883 -v
**

for ca cert i modified Component.mk and CMakeList.txt is that all and correct

the probleme is here

@SERIDJ Seems to me like you haven't set up MQTT to use SSL. Try adding .transport = MQTT_TRANSPORT_OVER_SSL, to your mqtt_cfg init struct.

hi @ESP-Marius
yes yes that true but i  have another problem i try to fix it ...

@ESP-Marius  yes yes that  true, but i have another problem that work without ca.crt so when i add ca.crt i have error :

iam sure its the same ca.cert in eclipse and raspberry broker

my second question how i can hide those certificat in esp32, i can put them in flash encryption or smth more secure ?

MbedTLS (the TLS library we use) expects the hostname to match the common name, which it doesnt seem to do in your case (hostname would be the ip you are connecting to,  CN=MASTERCA)

MbedTLS do not support TLSv1.3

Mosquitto supports it, but there is no functionality in ESP-IDF for it.

Yes, you could use flash encryption to hide them.

@ESP-Marius thanks for ur replay,
for the 1st question i dont understand well :
i know MbedTLS   expects the hostname to match the common name 👍  👍 👍  that what i did

In the mqtt_cfg you specify the host with an ip address, and this will be used as the hostname for the TLS connection. So mbedtls compares the ip with the common name and find that they do not match.

hi  @david-cermak @ESP-Marius I hope you are well.
so i want to encrypt my certificat and keys in esp32 what is the best thing encrypt all flash or encrypt one partition table or only key.
i try to enable encryption flash using idf.py menuconfig but i have error : esptool write_flash : error : argument  : detected at adress : 0x8000 for file : partition_table/partition-table.bin  that mean when i enabled encryption flash  bootloader app binary bootloader.bin exceed the default bootloader size limit (28672 bytes) and when i try to Set partition table offset to a higher value than 0x8000 i need to update  partition table too , i dont know how i can do that from menuconfig of manualy in file csv in file ESP-IDF ....

@SERIDJ Thanks for reporting, for how questions and third party questions/issues, please help raise a post on our forum at https://esp32.com. Thanks.

@Alvin1Zhang  oky thanks

Hi every body,
I had faced this problem and I solved it by add (s) to the broker URI
char *uri_mqtt_Raspberry_server = "mqtts://<IP_ADDRESS>:8883";
exactly mqtts not mqtt
then maybe it will ask to check CN in certificates.
and every think works well.


Looks like tasty-discover doesn't respect hedgehog's withTests

I'm using Hedgehog with tasty-discover and have written a simple class that implements Square 2D coordinates/vectors. I've then written the following test. It runs extremely quickly when I ask for a billion test runs, leading me to believe there's a problem here.
module Spec where

import Test.Tasty
import Hedgehog
import Hedgehog.Checkers
import qualified Hedgehog.Gen          as Gen
import qualified Hedgehog.Range        as Range
import Lib

make2D :: a -> a -> Point2D a
make2D x y = Point2D { _x = x, _y = y }

point2DGen :: (Gen a) -> Gen (Point2D a)
point2DGen g = make2D <$> g <*> g

small2DGen :: Gen (Point2D Int)
small2DGen = point2DGen . Gen.integral $ Range.linearFrom (0 :: Int) (0-10) 10

hprop_SquareMonoid :: Property
hprop_SquareMonoid = withTests<PHONE_NUMBER> . property . monoid $ Square <$> small2DGen

I've posted a question relating to this on Stack Overflow link: https://stackoverflow.com/questions/50591978/hedgehog-not-respecting-withtest

Hmmm, I see. As noted in the SO answer, did the output of --debug (usage described here) give any further insight?
I'm not using hedgehog at all, so not really sure. I know that @minad was the one to push the hedgehog integration (and therefore, should be using it!?), perhaps he has some ideas?
We're using the following code to generate the runner for hedgehog tests, perhaps it is worth looking at: https://github.com/lwm/tasty-discover/blob/55e342e3005e17ce1a832543bdba7aceca03ad86/library/Test/Tasty/Generator.hs#L89-L95
To be clear, the test case is being discovered and run? It is shown in the output of the test run result?
Any other information you can provide?

I'm the person who posted the comment on the SO question.
I'll share what I have and how I configured it.
This is the test-suite section of my project's .cabal file:
test-suite testing-test
  type: exitcode-stdio-1.0
  main-is: Driver.hs
  hs-source-dirs:
      test
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , testing
    , tasty
    , tasty-discover
    , tasty-hedgehog
    , hedgehog
  other-modules:
      Paths_testing
    , Spec
  default-language: Haskell2010

Note that I have set the main-is field to Driver.hs,
which is in the project's test directory. Its contents are:
{-# OPTIONS_GHC -F -pgmF tasty-discover -optF --debug #-}

Then, I put the following code in a file called Spec.hs,
again in the project's test directory:
{-# LANGUAGE TemplateHaskell #-}

module Spec where

import Control.Monad.IO.Class
import Hedgehog
import qualified Hedgehog.Gen   as Gen
import qualified Hedgehog.Range as Range

hprop_reverse :: Property
hprop_reverse = (withTests (1 :: TestLimit)) (property $ do
  xs <- forAll (Gen.list (Range.linear 1 100) Gen.alpha)
  liftIO (putStrLn xs)
  reverse (reverse xs) === xs)

I then ran stack test > notes/debug.txt 2>&1 in my project's directory.
Just to clarify, I made a folder called notes in the directory to store
the steps I took to reproduce the problem, along with any other details.
The debug.txt file looks like this:
Warning: WARNING: "PATH REMOVED FOR PRIVACY"/testing/testing.cabal was
         modified manually. Ignoring package.yaml in favor of cabal file. If you want to use
         package.yaml instead of the cabal file, then please delete the cabal file.
testing-<IP_ADDRESS>: unregistering (local file changes: test/Spec.hs)
testing-<IP_ADDRESS>: build (lib + exe + test)
Preprocessing library for testing-<IP_ADDRESS>..
Building library for testing-<IP_ADDRESS>..
Preprocessing test suite 'testing-test' for testing-<IP_ADDRESS>..
Building test suite 'testing-test' for testing-<IP_ADDRESS>..
{-# LINE 1 "test/Driver.hs" #-}
{-# LANGUAGE FlexibleInstances #-}
module Main (main, ingredients, tests) where
import Prelude
import qualified System.Environment as E
import qualified Test.Tasty as T
import qualified Test.Tasty.Ingredients as T
import qualified Test.Tasty.Hedgehog as H

import qualified Spec

tests :: IO T.TestTree
tests = do
  t0 <- pure $ H.testProperty "reverse" Spec.hprop_reverse

  pure $ T.testGroup "test/Driver.hs" [t0]
ingredients :: [T.Ingredient]
ingredients = T.defaultIngredients
main :: IO ()
main = do
  args <- E.getArgs
  E.withArgs ([] ++ args) $    tests >>= T.defaultMainWithIngredients ingredients

[2 of 3] Compiling Spec             ( test/Spec.hs, .stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS>/build/testing-test/testing-test-tmp/Spec.o )
[3 of 3] Compiling Main             ( test/Driver.hs, .stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS>/build/testing-test/testing-test-tmp/Main.o ) [Spec changed]
{-# LINE 1 "test/Driver.hs" #-}
{-# LANGUAGE FlexibleInstances #-}
module Main (main, ingredients, tests) where
import Prelude
import qualified System.Environment as E
import qualified Test.Tasty as T
import qualified Test.Tasty.Ingredients as T
import qualified Test.Tasty.Hedgehog as H

import qualified Spec

tests :: IO T.TestTree
tests = do
  t0 <- pure $ H.testProperty "reverse" Spec.hprop_reverse

  pure $ T.testGroup "test/Driver.hs" [t0]
ingredients :: [T.Ingredient]
ingredients = T.defaultIngredients
main :: IO ()
main = do
  args <- E.getArgs
  E.withArgs ([] ++ args) $    tests >>= T.defaultMainWithIngredients ingredients

Linking .stack-work/dist/x86_64-osx/Cabal-<IP_ADDRESS>/build/testing-test/testing-test ...
Preprocessing executable 'testing-exe' for testing-<IP_ADDRESS>..
Building executable 'testing-exe' for testing-<IP_ADDRESS>..
testing-<IP_ADDRESS>: copy/register
Installing library in /Users/kartiksabharwal/Documents/Haskell/StackStuff/testing/.stack-work/install/x86_64-osx/lts-11.11/8.2.2/lib/x86_64-osx-ghc-8.2.2/testing-<IP_ADDRESS>-5jPEkkzThbm6eqEiGuwsU4
Installing executable testing-exe in /Users/kartiksabharwal/Documents/Haskell/StackStuff/testing/.stack-work/install/x86_64-osx/lts-11.11/8.2.2/bin
Registering library for testing-<IP_ADDRESS>..
testing-<IP_ADDRESS>: test (suite: testing-test)

test/Driver.hs
  reverse: s
W
xeN
cu
pt
J
mDaOuY
Cme
eJP
dCg
uzNBdnb
UMuMPepeyR
RMXazLD
gaUhrTOmoHtf
NlfasFSFOREvl
XZSSo
nwfNbFiw
NcNOxXyrKnIkM
SXdJievxNcPI
ZSekD
cSPSfTMhGsmpoo
xJlByGpHIg
kNTPDTLMtQooNwNBLZzQchP
fBYSAXnpYJAWNVo
cYePIpHYoXarVzAaDThYlW
zxvJO
EFWFBUmTcXSEatFYVX
LGHWBklJffvyWcrgkRNsf
OcqvUwkPBilpeKN
QlZXnsHffvrQLZE
rDEu
AEMaiyqYWAUsdydfJdEFrNTLTwqmoS
wFQcrsENlExrIaNlBENNfRZIPVCFah
QPtWuwqwN
rRCtUwiDbxHnFtQLcvyIlzpPau
rWXTgBnw
hArRsgOHgDbXSYFfARMpgfQEEsgggQumfpuJf
DHNOLyzrSFticUHwK
fTsuhbVownZEpMKNnyC
VHDWbGmRTstwQoNB
iVRhNLrCsHTfbgOehclWExvIqevO
gEBKXQiRLYmILUzSkzDzt
GtfTsMSAIOyeuaKVRJoONROlaa
vTovPOEXkvoJulxRNPUSowcAWLSpIhmMS
wAYBuUoVnxMCgTCCwUrzPI
WgnsRqCNPWbsdzPkepye
RUiTFlhEayGtGORzwNlB
GHBZrGampQo
iMLENBmRTcAhfTRGyNtNScd
zeLTcEaOQtzpHRriJvVtLbiFCnMfHNmWafHxhZfvuCFNCRyA
YuogJnhRuOXymzstdupynwSdTOayXfadTOGu
NJcYWdWYXuSxqLsTBgEtohYSdADnNN
iLToRmHuCmdoVqUzyayNQprwlYrLkxccSsUHrq
oCgtNrwHKKEnXMQp
Va
GYaWGGYXcgxLysnPbzDNBkgmUXHHfdIAZmZsgBwBbghNxKOz
xfqIKKAYVqGhOdWXKvwq
IBARORZJ
kidQxwXmQNx
YabmKKksTpUWFDbd
hPrDQuslJNgTUrPzpxGVUoVcXBLTdztGuISgGMukMXi
SfJCDXJfFgymezOJCbHmGPEtmwkqOPNJkQW
PWnYskowmIxXCwYUfiTSlFcJzWNOMwe
dtpNFrRpQooesZ
RrINbnRuBxWNbViFlHsvXExHAfzCwHlSBaMavDJRITbcYEYQXnevrrT
mBSyrNfqKQGMtyoErBmIFQlCwwCDqYMvVVWLWgCeObHXSJiLLOMmyOchRHYEGtU
JyrpQoWDhW
RISsNkDJTysQiBucPovunPcUgpbHr
ennhdkrCXLGhdehzyOXhEuWuucZTofTfQKdwdAPElWoJJesNlnNXfc
mXnaZeHPFoBvbVZiXWRrwneW
PWVLIKKTCEpMJnqogLWTVCqANUrMlzbBzaJyYmJaJmWshSZPPYAqvNnAeksyAgoxHSvP
hnTEgOQeXbKcYozbFJOfeUSrEDwRcgWrHKluWCTggqlPnhsQvkeDNNHy
greWgYBBG
Y
vgolPGfiZFwHqBHZtXGCMMKcnIhhXBIuicQtXQLuJdpIlUB
fstTAxJJleCvIceMksZYGguZOdZmqRZhdNlczyHYCWtOKHxUPVuDgQUiGbLemSyQwDQZgw
AuNxolxHxCyqqyvdzeyRBBbxEPEtCVRxAcPNFbOvGoDdEUatZRNcDNxsZFbRYxtvTu
qthQEIKomfuoFaipBveaWGzHpyCpWrcUakrVYXwUNkBVuZZEYKwTFdJmYkGKmFi
VfFwTHJLUqPPtUwfHQhiIG
GGEPymEqLMnpaPpITQpVkGiUUtwbAJozWXzdlqy
DzAFxphobgCCZQrCvpMfvKPPioZiqRnSbWLRSDmHxCeInmpWoLqsMrfyRbGJFnolWKCziDNSYAgek
SfRbRzDOUbZlQiSJNUizhKLKTPIqmvNSL
Vle
DoFCWgVhdKhhExWGCrvcHYrnOGOooWlkkIDoeMAZG
NzFLRGlZtiYOxzeIgdiFMxDFN
XiPwryAkInmdasTUAhgVqRTJyLAJhOZck
aDpMBWXMXsOtkrerDhFNPGtEuSJVNyAXFczaRgeqVYyJrxKbXuYuQk
TlBhiVvTERWaHlFKlvnX
IEZIBxJbeSEmkbVeZnHrZwCVIavyzphwQYGbdcOFwuFPw
BxDbMDBltwKTaiOawGKOYXdCrvCJJTNlNsuvoQonWfaCLqYavvnyLhTxywFSWHrabWXztLsICzHAkapFgrvokT
VczVvrRLqZcXhnoFBftOwoPRpHmloBfIncRRLbm
PRKgrZ
csKASNTaKWqYvgxnOaKySLnACt
QS
SKLZpLqUoNvnobmmdIqyIYeRZFUxKRCKktXSbtSpqFSuwMmscFEQBKaJobVoQfxyRh
lNViOwRyPUwqUUDHpgNYLETGWVrHXHZCAmsnZxRzprwUPIrGxeQtkikk
PgMJqBURAmMTvSbxNlJC
rGR
ORINDzPPTqZpaEZirLnouDurDbtfTJuNceYMnJAEhlipOsUwQKqXAuI
RCPzVivNosFDUZSgbTnJruiIioCxtMLQxLCFvkthwYDfPlopreaHZbbWyGLLYhlQYnGNgIptcLzQzUseMArWhzVmVcXDXQZAJkt
OK (0.02s)
    OK

All 1 tests passed (0.02s)

testing-<IP_ADDRESS>: Test suite testing-test passed
Completed 2 action(s).

It looks like 100 test cases are being generated and executed.
This doesn't change even when I change the value I'm passing to the
withTests function in my Spec.hs file.
I tried to spend time looking at the contents of the code included
in debug.txt but I just couldn't pin down the line that's telling it
to generate 100 tests.
I'm willing to provide more information if you need it. In the meantime I'll
start looking at the hedgehogPropertyGenerator function you mentioned.

Migrated to https://git.coop/lwm/tasty-discover/issues/153.


Create Comment System For People Pages

Create a comment system using php and a mySQL database. Display this on each people page.

No longer in plans