Pass SP signing provider to AuthnRequestBuilder

If SP signing configuration is set, pass it to AuthnRequestBuilder so AuthnRequest is properly signed. Needs  lightsaml with pull request AlbertBrand/lightsaml@b6b80b2e7b71c36e69d10b11805c7e18c172ee81 applied.

LightSAML has a new version in lightsaml/lightsaml. No new features will be added to this old one.


Build fail, old boost

I made an attempt to packaging feather in opensuse.
i have a problem:
[   32s] /home/abuild/rpmbuild/BUILD/feather-2.6.7/monero/contrib/epee/include/storages/portable_storage_val_converters.h:63:49: error: ‘boost::numeric’ has not been declared

as i found in internet:
The Boost Numeric library was deprecated in Boost 1.34 and removed in Boost 1.55. The functionality has been moved to other libraries such as Boost.Math, Boost.Accumulators, and Boost.Statistics.

actual boost version in opensuse: 1.85 for tumbleweed and 1.66 for leap.
I'm asking for help, is it possible to make the necessary changes to the code (as far as I understand, this will have to be done in any case in the foreseeable future) so that feather can be built on more recent versions of boost?

Belatedly, I saw that the project already has a branch with the newer boost 1.83.0.
I guess I can take this as the answer to my question.
I would just like to clarify how close it is to readiness, can we expect a decision in the near future?

The master branch should build with Boost 1.85.0 now. Next tag expected in a few weeks.

The master branch should build with Boost 1.85.0 now. Next tag expected in a few weeks.

Thanks for the answer, I'll wait for the next tag.


Broken Link

Hi there,
I believe there is a mistake in the  link for the Yelp Dataset Challenge. The current link available in the repo is "Yelp Dataset Challenge". When you click on it, it shows an 404 error page.
I quickly googled about the Yelp Dataset Challenge and I guess the actual link would be "Yelp Dataset Challenge"
Thanks again for this great repo with so many useful and interesting information!

There's another broken link.
When we clink on the "IEEEXtreme" link available at the repo, this is what we get:

I don't know which link you wanted to show, but I googled about the competition, and apparently this is the official website of IEEEXtreme.
Thanks again for the great job in this repo!

Hey, @eliasmaia Thanks for pointing it out. If you like you can create a PR for the same.

Thank you! I'll do it! Glad you liked it!


Precompile libthrirdparty.a (or something to that extent) in the repo

Precompiling the commonly used 3P libraries will significantly speed up the compilation process, reducing the number of files that need to be compiled down to just a few. This can also be potentially done to the newlib and L0 folders as well, eliminating the need to recompile startup.cpp, interrupt.cpp and newlib.cpp ever single time.
Here is some data found from compiling with and without a libthirdparty.a file:
With libthirdparty.a

real    0m23.809s
user    0m52.381s
sys     0m7.710s

Without libthirdparty.a

real    0m33.820s
user    2m12.855s
sys     0m20.070s

Tested by using:
time make presubmit

NOTE: presubmit was edited to exit after building all of the projects.
Total time without = 92.925s (user + sys)
Total time with = 60.091 (user + sys)
With precompiled files compilation takes 64.67% the time to compile
Projects built:

HelloWorld Project
Hyperload Bootloader
Adc
Backtrace
Button
buzzer
CommandLine
Dac
Delay
FactoryTest
FileIO
FreeRTOS_Blinker
Gpio
GpioInterrupts
I2c
I2cDevice
LogLevelPrint
Oled
OledPrintf
Parallel_LCD
PeriodicScheduler
PinConfigure
PWM
SdCard
Spi
SystemClock
SystemTimer
TaskScheduler
Temperature
Timer
Uart

Testing again (but on another machine) with the whole library folder (ignoring libthridparty.a) becoming the libsjsudev2.a archive file. And got these results:

real    0m11.753s
user    0m9.733s
sys     0m2.732s

total time = 12.465

real    0m40.399s
user    1m35.896s
sys     0m17.801s

total time = 113.697
Which results in a 11% time to compile compared to without the pre-compiled libraries.

Resolved by #429


📢 Announcing our work on version 1.0

We (the core team) are currently working on a complete overhaul of Homarr. We are rewriting the entire application and have already done some necessary work. As we are focussing on version 1.0, we will not be adding any new features to the current version of Homarr and will only release bug fixes where necessary. We are not yet able to give you an estimated delivery date. However, we expect to deliver the first version before summer 2024.
Our aim is for version 1.0 to be largely in line with the current version. We will keep you regularly updated on version 1.0 in this issue.
We wish you a happy Easter! 🐇
Pull requests from other people are still welcome and will later be migrated to the new version

huge changes incoming !

Any idea when 1.0 will be released?

There is no time estimate for 1.0. We are working on this project in our free time next to a full time job in IT. It will released as soon as it's ready.

We have started an early adopter program in our Discord. We currently have some troubles building the image but should have a pre-alpha image, ready for testing and evaluation in non-productive systems only!!.
Furthermore, our team will meet up this week to discuss the next steps on how the breaking change to 1.0 will be performed.

We are now publishing testing images for our early adopters weekly.
Still not able to provide you any estimates, because we are waiting for bug fixes in upstream dependencies and some major features have not been copied from the old Homarr yet.

Question: Will it be possible to import the old, pre 1.0 dashboards?

Question: Will it be possible to import the old, pre 1.0 dashboards?

Yes, will be possible. However, it will not look exactly the same and we might be unable to convert all data. Join our early adopters program for more information.

Question: Will it be possible to import the old, pre 1.0 dashboards?

Yes, will be possible. However, it will not look exactly the same and we might be unable to convert all data. Join our early adopters program for more information.

Great to hear... How can I join your early adopters program?  I only got started with Homarr and already think it is a great tool

Hi All,
Quick question. Will there be mobile browser support on v1.0? As it is right know it sort of works but not completely like dash. widget wont load the grafs.
Also an android app would be amazing since I'm using homarr to simplify my life with my unraid server.
Lastly is there a link with more info on whats coming on v1.0?
Thank you for your amazing work, really love what you all have done!!!

Hi All,
Quick question. Will there be mobile browser support on v1.0? As it is right know it sort of works but not completely like dash. widget wont load the grafs.
Also an android app would be amazing since I'm using homarr to simplify my life with my unraid server.
Lastly is there a link with more info on whats coming on v1.0?
Thank you for your amazing work, really love what you all have done!!!

Hi,
<1.0 versions should already support mobile devices. If it doesn't work for you, check out https://homarr.dev/docs/advanced/customizations/board-customization#screen-sizes and play around with your apps & customization options.
We will never publish an Android or iPhone app as we don't see the value in them. Simply bookmark the page on your Android launcher / iPhone home screen and you can open it like a normal app. If the community does decide to make an app, we would be happy to have it as an official app and collaborate with them.
We have an open early adopters program on Discord. You can check for updates there. But let me give a short preview:

Overhauled system for fetching integration data using real time communication and a message bus
Rewritten versions of all widgets and integrations.
Completely new search that can find almost anything, including pages, apps, integrations, users, groups, actions and more.
Addition of groups and complex permission system
Configuration for adding permissions to each board to allow certain actions for only certain users or groups
Completely new logging system which log levels, more verbose logging and real time log viewing in your web browser - no need for the console.
Removal of some deprecated features (breaking changes will be documented soon)
Consolidation of the usenet and torrent widget into one single widget which can display multiple download clients at the same time. It looks beautiful and is much more performant while having more features
Complex tasks system to trigger workloads asynchronously
Overhauled OpenAPI integration for controlling Homarr via API - now also supports authentication and API keys
Improved UX and error handling
Added automatic testing for Integrations - will tell you whether you configured an integration correctly
Deeper integration with ldap - oidc servers
Improved the performance by a lot. Pages and data will load instantly in many places and the drag and drop performance has been improved significantly as well.

This list isn't complete and there are more changes which I didn't mention. Check our Discord for more information.
Please consider donating if you like Homarr and what we're doing. There is no ETA for 1.0 - we will release it as soon as it's done.
Cheers 👋

Hello Homarr users 👋,
I can share the following timeline with you:

We will soon start with an alpha version. That version is stable but not recommended for production use and may miss a few features from the final 1.0 release. The goal is to catch any big problems before we release publicly.
After that, we will release 1.0 and suspend all work on versions <1.0. This means we will not provide any support for <1.0 nor any updates will be released except a notice that you should migrate to the new version.

Looking forward to share more news with you soon. Cheers


Adds graph schemaextension set command

PR for issue #15

Coverage remained the same at 100.0% when pulling 8ca708dbc35a6cead664ed839083536838d237bc on ypcode:dev-schemaextension-update into f62e1ef8c7df7d30ab2e5898f036c4e999016f2b on pnp:dev.

Thanks @ypcode we will review shortly

Merged manually. Thank you! 👏


TST: fix GEOS 3.10.0dev by simplifying a normalized geometry

The input geometry is re-ordered to have a clockwise exterior linearring i.e. is normalized.
An alternative patch is to add .normalized() to the result(s) of simplify(...):
diff --git a/tests/test_operations.py b/tests/test_operations.py
index 23dfd08..b1d9d18 100644
--- a/tests/test_operations.py
+++ b/tests/test_operations.py
@@ -34,5 +34,5 @@ class OperationsTestCase(unittest.TestCase):
         expected = loads('POLYGON ((120 120, 140 199, 160 200, 180 199, '
                          '220 120, 120 120))')
-        s = p.simplify(10.0, preserve_topology=False)
+        s = p.simplify(10.0, preserve_topology=False).normalize()
         self.assertTrue(s.equals_exact(expected, 0.001))

See #1113

Coverage remained the same at 85.421% when pulling 9dad600097b54770d741e4a9f380e1856f02cf9b on mwtoews:tst-geos-3.10dev-simplify into d37eed96b95747481be3ca582f1028b2623508f6 on Toblerity:master.


Split channel into sending and receive end

Currently channels are defined as a single class which has both sending and receiving ability. We could view the current channel type as follows:
interface Publishable<T> {
  send(message: T): void;
}
type Channel<T> = Publishable<T> & Subscribable<T>

But what we'd really want is something like this:
function channel<T>(): [Publishable<T>, Subscribable<T>] {
  // ...
}

So that we can split up the sending and receiving end. This is useful because we often want to hand out one "end" of the channel to someone else, yet retain control of the other end of the channel. If we hand out both ends of the channel, someone else might end up e.g. sending messages to the channel, which could break internal invariants.
This also neatly opens up the possibility of duplex channels:
function duplexChannel<Tx, Rx>(): [Publishable<Tx> & Subscribable<Rx>, Publishable<Rx> & Subscribable<Tx>] {
  // ...
}

Handing out one end of a duplex channel could work similarly and would be very useful e.g. for our connection server.
It could also be an option to make Publishable a simple function interface, but this makes the duplex case a bit more challenging.
interface Publishable<T> {
  (message: T): void;
}

An open question is a good convention as to the naming of the variables that we'd assign:
let [???, ???] = channel();

Investigating this a bit further, we can think about three distinct types of channels:
type ClassicChannel<T> = Publishable<T> & Subscribable<T>;
type SplitChannel<T> = [Publishable<T>, Subscribable<T>];
type DuplexChannel<T, R> = Publishable<T> & Subscribable<R>;

IMO, all three of these are valid and have their usecases, so we should probably provide all three of them? The question is what to name them, specifically the first two? And what would an API to create these look like?
Another question is how to handle close. How would one close a split or duplex channel? Which end needs to be closed for a split channel, the sending or receiving end? Can both ends of a duplex channel be closed?

Let's try to enumerate use-cases.

 This is where we have a single publisher, multiple subscribers. This is our basic event emitter subscription. In this case,  you have you classic channel where single publisher broadcasts messages of a single type T

type Send<T> = (message: T) => void;

let [send, receiver]: [Send<T>, Subscribable<T>] = createBroadcast<T>();

You have two communication endpoints that serve as a primary connection between two different systems. This the case that we have in the Orchestrator/Agent relationship, or the Client/Orchestrator relationship. Each endpoint is created independently, but the type of the send/receive are completely different;

type Send<T> = (message: T) => void;
let [send, outgoing, receive, incoming]: [Send<S>,Subscribable<S>, Send<R>, Subscribable<R>] = createEndpoint<S,R>();

In this case, you would create the endpoint and then hand out the send() function and the incoming Subscribable<T> to code on your side of the end point, and then hold onto receive and outgoing to negotiate the communications with the other end. In other words, send() publishes to outgoing, and receive() publishes to incoming
Are there other use cases?


Kiosk: game name and descriptions now requested instead of defaults

When a user uploads a game, we want to use the name and description of their game if they provide one.
Also, we want users to know that the uploading of their game to the kiosk works. The user's game will now launch on the kiosk if the poll looking for the game is successful.
Closes https://github.com/microsoft/pxt-arcade/issues/5349
Closes https://github.com/microsoft/pxt-arcade/issues/5350

NOTE: There are not actually 9 files changed in this PR. This PR includes changes that I made from https://github.com/microsoft/pxt-arcade/pull/5333, check that one out first please 😄.


mtr 0.92 -> 0.93 breaks darwin build

The commit 32526e65bd94535194dd74a912dbdb71e3992712 by @peterhoeg introduces a dependency on a Linux-only library, libcap. The previous version was working fine on darwin, so at the very least should be offered if 0.93 no longer functions there.

Does overriding with libcap=null let you build 0.93?

Yeah, this isn't the first time I break stuff on Darwin - apologies.

Thanks, @peterhoeg! :)


streams & ringphp  is abandoned

guzzlehttp/streams and guzzlehttp/ringphp is abandoned
you should avoid using it. No replacement was suggested from composer.
How to recreate --
`root@storage01-diskover:/usr/local/diskover # git clone https://github.com/shirosaidev/diskover-web.git
Cloning into 'diskover-web'...
remote: Enumerating objects: 183, done.
remote: Counting objects: 100% (183/183), done.
remote: Compressing objects: 100% (118/118), done.
remote: Total 3153 (delta 117), reused 102 (delta 54), pack-reused 2970
Receiving objects: 100% (3153/3153), 47.54 MiB | 18.02 MiB/s, done.
Resolving deltas: 100% (2302/2302), done.
root@storage01-diskover:/usr/local/diskover # cd diskover-web/
root@storage01-diskover:/usr/local/diskover/diskover-web # composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals

Installing react/promise (v2.7.1): Downloading (100%)
Installing guzzlehttp/streams (3.0.0): Downloading (100%)
Installing guzzlehttp/ringphp (1.1.1): Downloading (100%)
Installing psr/log (1.1.3): Downloading (100%)
Installing elasticsearch/elasticsearch (v5.5.0): Downloading (100%)
elasticsearch/elasticsearch suggests installing monolog/monolog (Allows for client-level logging and tracing)
Package guzzlehttp/streams is abandoned, you should avoid using it. No replacement was suggested.
Package guzzlehttp/ringphp is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
root@storage01-diskover:/usr/local/diskover/diskover-web # `

Packages installed
php72 php72-curl php72-extensions php72-composer php72-gd php72-json

https://github.com/shirosaidev/diskover/wiki/Updating-diskover-to-latest-version
running composer update removes those packages

I just verified those are just warnings and doesn't affect the functionality of diskover-web.

Ok, I still get those warnings, still by running composer update
/a
On Thu, May 7, 2020 at 6:03 AM Chris Park<EMAIL_ADDRESS>wrote:

I just verified those are just warnings and doesn't affect the
functionality of diskover-web.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/shirosaidev/diskover-web/issues/27#issuecomment-625016516,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACYPGB2FHQLDYLGDFCK3OPDRQIXKBANCNFSM4M2HLCSA
.

--

Andreas Martin Aanerud, ing.
Cell: + 47 90978137
email<EMAIL_ADDRESS>

elasticsearch 5.5 php client still uses those, it doesn't seem to affect the functionality though...


Implement integration tests for dp orc8r service and dp in test runner

Using Domain Proxy test_runner service, implement integration tests that will test full flow between orchestrator's dp service and domain proxy application.

Bugs disovered during implementation will be fixed as part of this task. As such, the estimate cost will increase.


Internal issue: Cannot read properties of null (reading 'internal')

Hey all,
I just wanted to see if anyone has come across this issue. I started getting this error:

For some reason when I load the page, I get this 404 on the actual qwik form:

And if I interact with the form again, it resets. Then, originally where the files were 404'ing, it actually turns into a real file but it throws the following error:

It seems clear to me an internal working isn't behaving as expected.
Any pointers on how I can solve this problem?

Hey Fabian,
Unfortunately I can't reproduce it there.
But I only see it show up as a 404 on the list of requests:

Which version of Qwik and Modular Forms are you using?


fix(obstacle_avoidance_planner): suppress the osqp error about upper/lower bounds

Description
The current Autoware sometimes shows ERROR in osqp_update_lower_bound: upper bound must be greater than or equal to lower bound a lot from the obstacle_avoidance_planner, mainly around reaching the goal.
I checked those values by printing them, but nothing was wrong.
When I added this PR's change, which looks unnecessary though, the error disappeared.

Tests performed

psim
Effects on system behavior

nothing
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

https://github.com/autowarefoundation/autoware.universe/pull/6011 will solve the issue.


Allow configuration of MAX_UPLOAD_SIZE

Allow the image users (server operators) to define their own limit for the Maximal Documentation size.
This approach implements a new Environmental Variable, which can be used to overwrite the default maximum post size of 100MB. It was proposed with the same default to be backwards compatible and simple to setup.
With this change the operator can adapt the application better to their specific environment.

@fliiiix any idea why we are limiting the max body size at all? Or could we just remove the max body size and don't limit it?

but i mean that looks fair enough you could also just override the config via mount something we do in production to change different aspects of the config

Yes mounting and therefore overwriting the configuration in the container at runtime is also a possibility. But this comes with the drawback, that it overwrites the whole config, which then requires extra maintanance (from the operators) as the config also contains other settings.
For Example, if the internal setup changes (for example the python_backend port) this requires a change in the nginx config and this is only a nonbreaking change as long as operators do not overwrite internal files.

I think because it is best practice to limit that and if you have docs which are bigger that is 'interesting'
@tbuerli-komax is that an actual use-case you had?

Yes, exactly this was what triggered this pull request. Some of our Documentations are bigger than 100MB and if we use a suficcient storage backing the container it should work to serve even the bigger Documentations.
Since you have already aproved it, can you also merge it?
(FYI, as external Person I do not have the permission to merge it)


[PORT][Expression]Add lambda syntactic sugar

issue link:https://github.com/microsoft/botbuilder-dotnet/issues/3897
Support lambda style expression in foreach, select and where prebuilt functions.
For example, After the change, the expression could be:
foreach(items, u => json(u)) instead of foreach(items, u, json(u)), it is more readable.

Pull Request Test Coverage Report for Build 137167

10 of 10 (100.0%)  changed or added relevant lines in 1 file are covered.
9 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.06%) to 80.849%

Files with Coverage Reduction
New Missed Lines
%

libraries/botframework-streaming/src/webSocket/webSocketTransport.ts
2
80.65%

libraries/botframework-streaming/src/webSocket/webSocketServer.ts
7
66.67%

Totals

Change from base Build 137161:
-0.06%

Covered Lines:
12818

Relevant Lines:
15138

💛  - Coveralls


[BEAM-13616] Update vendored calcite 1.28.0 with protobuf 3.19.2

Testing: https://github.com/apache/beam/pull/16476
Linkage shows no new errors, ran unit and SQL postcommit on testing PR

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @lukecwik @TheNeuralBit


3D CNN with tf.nn.conv3d_transpose on CPU: 50-100 GB RAM free but segfault + "terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc"

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): YES
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04 (three machines) & Windows 10 Pro (two machines)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary; tensorflow-gpu2.0.0alpha0 (Windows machines), tensorflow/tensorflow:2.0.0a0-py3-jupyter docker image (Ubuntu 18.04 machines)
TensorFlow version (use command below): v1.12.0-9492-g2c319fb415 2.0.0-alpha0 (Windows)
Python version: 3.6.4 (Windows)
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): N/A
CUDA/cuDNN version: 10/7.4.1 (Windows); N/A (Ubuntu 18.04)
GPU model and memory: Titan RTX (Windows machine 1); GTX 1080 (Windows machine 2); CPU-only (Ubuntu 18.04 machines 1-3)

All machines specs:

CPUs: Dual socket, 8 cores each CPU (Xeon E5-2670, E5-2687w on the machine with the Titan RTX), 32 total logical processors.
RAM: 128 GB

Describe the current behavior
3D CNN with deconvolution (tf.nn.conv3d_transpose) to upsample 1 channel volumes x2 in all three dimensions. Training on GPU and using 64^3 image patches works fine. For inference I moved ops to the CPU in order to handle large volumes that wouldn't otherwise fit in GPU memory. But now I have run into the below errors:

Frequent crashes when using more than 50% of available CPU cores. On Ubuntu 18.04 it completely kills the node and I have to physically power cycle the machine. On Windows, I'm lucky if it doesn't freeze indefinitely at a blue screen.

Visual bug for inputs >~130^3 (generally whenever it gives me a warning that I'm allocating >10% of system memory) where the last slices of the volume converge to intensity ~ 0.39 (coincidentally, very close to a constant that the model adds to the output to correct for grayscale intensity). This get progressively worse with larger volumes (~130^3 < dims < ~175^3)

Segfault for inputs > ~175^3.
Example output:

On Windows:
2019-04-26 14:56:19.461143: W tensorflow/core/framework/allocator.cc:124] Allocation of<PHONE_NUMBER>8 exceeds 10% of system memory.
2019-04-26 14:58:23.532021: W tensorflow/core/framework/allocator.cc:124] Allocation of<PHONE_NUMBER>8 exceeds 10% of system memory.
2019-04-26 14:58:23.532021: W tensorflow/core/framework/allocator.cc:124] Allocation of<PHONE_NUMBER>8 exceeds 10% of system memory.
Segmentation Fault
Note: It once gave me a popup with an error of the form, "Instruction at 0xDED referenced memory at 0XBEEF. The memory could not be read".
**On Ubuntu 18.04: **
2019-05-01 02:29:47.571830: W tensorflow/core/framework/allocator.cc:116] Allocation of<PHONE_NUMBER>0 exceeds 10% of system memory.
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
Note: I generally still have 50-100 GB of free memory when these errors occur so it's not for lack of memory.
Note:: I have replicated this phenomenon across all machines using just CPU. On the Windows machines, I get the same results when I have attempted to move all ops to the GPU save for deconvolution (which will not fit on the GPU).
Describe the expected behavior
No crashing, processing large inputs if available resources allow.
Code to reproduce the issue
N/A
Other info / logs
N/A

Still experiencing this issue. Running same tests on an AWS instance (r4.4xlarge).  New error using the docker image (tensorflow/tensorflow:2.0.0a0-py3-jupyter): *** Error in `python': munmap_chunk(): invalid pointer: 0x00007fb8d4794040 *** (see attached log for a full stack trace top resource usage at time of crash
051519_AWS_docker_crash_stack_trace_TF_issues.txt

)

Update: tested both the pre-compiled binary (tensorflow2.0.0a0) and different versions of building from source (w & w/o XLA JIT support, --config=opt --config=numa, --config=numa, --config=opt) all with the same resource utilization and error as above.

Update: A _semi-_solution on the AWS instance involving compiling with the Intel MKL-DNN solves the gray issue as well as the crashing issue (in some cases; see below).
BUT it requires >5x the amount of RAM and is >2x slower. Additionally, memory is not deallocated immediately, causing crashes when there is a queue of input samples. The huge increase in required RAM usages causes crashes for larger inputs that a normal tensorflow build would theoretically have been able to handle if not for this bug.

Update: Now there is another bug where inference results are artifacted (see attached; should be completely black)

configs file for MKL-DNN & TF:
import os
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
threads = 64
sockets = 2
args =  tf.ConfigProto(
allow_soft_placement=True,
log_device_placement=False,
intra_op_parallelism_threads=threads,# Setting this equal to the number of physical cores is recommended. Setting the value to 0, which is the default, results in the value being set to the number of logical cores - this is an alternate option to try for some architectures. This value and OMP_NUM_THREADS should be equal.
inter_op_parallelism_threads=sockets, #Setting this equal to the number of sockets is recommended. Setting the value to 0, which is the default, results in the value being set to the number of logical cores.
gpu_options=(tf.GPUOptions(allow_growth=True)
))
os.environ["KMP_BLOCKTIME"] = '0'
os.environ["KMP_SETTINGS"] = '1'
os.environ["KMP_AFFINITY"]=  'granularity=fine,verbose,compact,1,0'
os.environ["OMP_NUM_THREADS"]= str(threads)

May be related to: #21637

Update:
XLA JIT compilation of the CPU deconvolution ops FIXES the problem altogether (no empty slices from the original bug, no checkerboard artifacts from the MKL-DNN bug) BUT is now an order of magnitude slower (~200 minutes vs. 4 minutes) and still allocates much more memory than a normal tensorflow inference, so this unfortunately not a feasible solution.

Any ideas on where to go next?

@jvishnuvardhan I don't have expertise on this thus unassigning myself.

Anyone?

@TeoZosa It looks like you are using an older Version of Tensorflow. Many bugs have been fixed in the latest version. Could you please execute your code using Latest Version 2.4.1 or 2.5 and let us know if the issue still persists? Thanks!


Make options not required (Fixes Issue #53)

Fixes issue #53
Checklist

[x] I have read the “Pull requests” section in the contributing guidelines.
[x] I agree to the terms within the code of conduct.

Cheers @marcosmartini ! 🚀


fourier: add quarterwave functions

Please take a look.
At this point the change of .*FFT -> .*Coefficients and .*IFFT -> .*Sequence methods names should make sense.

OK, this is ready. PTAL

ping

Next chunk done. Haven't found anything that would cause it to break with negative numbers sadly

The reporting of failures is pretty sparse, so it may just be a small delta on the expectation. I just have not had time to look into it.

PTAL

PTAL

Thanks for the review

Thanks for all the translation work! Another big chunk of functionality no longer missing!


Refactor Ledger::update_block_requests (2)

Builds on https://github.com/AleoHQ/snarkOS/pull/1459, only the last commit is new. Can probably be made a bit tidier, but in this shape it is already nearly completely compatible with #1372 (the tests will come in a later PR). As with the earlier PRs, there should be no functional difference from the current logic.
This is the 4th PR in the Ledger::update_block_requests refactoring series (#1456).

This is very nice, thank you @ljedrz . I will proceed to unify this with the minor changes I made.


Added slider to change theme on User Settings page

Umm? @divanov11 What do you prefer, from the drop down or user setting page?

@Mr-spShuvo I kinda like both. I like the drop down because its hard to miss but it also makes sense in the settings page. Unless there is an issue should we just do both?

Yeah we can do both. 😁


missing androidflutterjar

Steps to Reproduce

...so when im trying to start a flutter project i run into the problem that says i dont have androidflutterjar
...
...

Logs

![image](https://user-images.githubusercontent.com/65943941/82872802-d42ba500-9f33-11ea-8f22-f38511ac5cdc.png)

Probably it's solved here https://stackoverflow.com/questions/52946189/flutter-error-on-android-could-not-find-aapt2-proto-jar

Hi @johannes545
can you please provide your flutter doctor -v and flutter run --verbose?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

hey, so im very new to programing, only done basic apps in android studio with less than 100 lines of code.
so i dont know exactly how to adress it better. but il post the flutter doctor -v and the flutter run --verbose

Hi @johannes545
Can you please execute flutter create --verbose testapp  from your desktop folder and copy/paste all the logs, don't create project in user folder?
Thank you

not sure if its from my desktop folder. i have my flutter located at C:\src
my android studio is also located there

Hi @johannes545
Please refrain from posting pictures if not necessary.
Please copy/paste all the logs

C:\Users\Johannes>flutter create appniel
Creating project appniel...
appniel.gitignore (created)
appniel.idea\libraries\Dart_SDK.xml (created)
appniel.idea\libraries\Flutter_for_Android.xml (created)
Oops; flutter has exited unexpectedly: "Value was missing for variable tag: androidFlutterJar. (4:24)

^
".
A crash report has been written to C:\Users\Johannes\flutter_09.log.
This crash may already be reported. Check GitHub for similar crashes.
https://github.com/flutter/flutter/issues?q=is%3Aissue+Value+was+missing+for+variable+tag%3A+androidFlutterJar.+(4%3A24)
++++++<root+url%3D"jar%3A%2F%2F{{{androidFlutterJar}}}!%2F"+%2F>
+++++++++++++++++++++++^

To report your crash to the Flutter team, first read the guide to filing a bug.
https://flutter.dev/docs/resources/bug-reports
Create a new GitHub issue by pasting this link into your browser and completing the issue template. Thank you!
https://git.io/JfrtT
C:\Users\Johannes>flutter create --verbose testapp
[  +13 ms] executing: [C:\src\flutter\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +133 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +3 ms] 2738a1148ba6c9a6114df62358109407c3ef2553
[   +1 ms] executing: [C:\src\flutter\flutter/] git tag --contains HEAD
[ +320 ms] Exit code 0 from: git tag --contains HEAD
[   +2 ms] 1.18.0-11.1.pre
[  +16 ms] executing: [C:\src\flutter\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +98 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[   +1 ms] origin/beta
[        ] executing: [C:\src\flutter\flutter/] git ls-remote --get-url origin
[  +97 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] https://github.com/flutter/flutter.git
[ +157 ms] executing: [C:\src\flutter\flutter/] git rev-parse --abbrev-ref HEAD
[ +102 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +2 ms] beta
[  +99 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +9 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +55 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[  +64 ms] Creating project testapp...
[  +76 ms]   testapp.gitignore (created)
[  +21 ms]   testapp.idea\libraries\Dart_SDK.xml (created)
[  +18 ms]   testapp.idea\libraries\Flutter_for_Android.xml (created)
[  +20 ms] "flutter create" took 319ms.
Oops; flutter has exited unexpectedly: "Value was missing for variable tag: androidFlutterJar. (4:24)

^
".
[ +396 ms] executing: C:\src\android studio\jre\bin\java -version
[ +415 ms] Exit code 0 from: C:\src\android studio\jre\bin\java -version
[   +2 ms] openjdk version "1.8.0_212-release"
OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
[  +29 ms] executing: C:\src\android studio\jre\bin\java -version
[ +157 ms] Exit code 0 from: C:\src\android studio\jre\bin\java -version
[   +2 ms] openjdk version "1.8.0_212-release"
OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
[   +8 ms] executing: [C:\src\flutter\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%ar
[ +104 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%ar
[   +2 ms] 13 days ago
[ +252 ms] executing: C:\Users\Johannes\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
|[ +155 ms] List of devices attached
[   +6 ms] executing: C:\Users\Johannes\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +42 ms] executing: C:\Users\Johannes\AppData\Local\Android\sdk\cmdline-tools\latest\bin\sdkmanager.bat --licenses   /[  +42 ms] List of devices attached
A crash report has been written to C:\Users\Johannes\flutter_10.log.
This crash may already be reported. Check GitHub for similar crashes.
https://github.com/flutter/flutter/issues?q=is%3Aissue+Value+was+missing+for+variable+tag%3A+androidFlutterJar.+(4%3A24)
++++++<root+url%3D"jar%3A%2F%2F{{{androidFlutterJar}}}!%2F"+%2F>
+++++++++++++++++++++++^

To report your crash to the Flutter team, first read the guide to filing a bug.
https://flutter.dev/docs/resources/bug-reports
Create a new GitHub issue by pasting this link into your browser and completing the issue template. Thank you!
https://git.io/Jfr3i
alright this is the text

androidFlutterJar was removed from the template in https://github.com/flutter/flutter/pull/55353.  packages/flutter_tools/templates/app/.idea/libraries/Flutter_for_Android.xml.tmpl was removed from the template, but the .gitignore has .idea so the files aren't actually being removed on upgrade.
Workaround is to delete the following files from your Flutter install location:
packages/flutter_tools/templates/app/.idea/libraries/Flutter_for_Android.xml.tmpl
packages/flutter_tools/templates/module/common/.idea/libraries/Flutter_for_Android.xml.tmpl
packages/flutter_tools/templates/plugin/.idea/libraries/Flutter_for_Android.xml.tmpl

Fixed via https://github.com/flutter/flutter/pull/59706


Update slash-commands.rst

Updated a link. In reference to PR #4808

Summary

Ticket Link

Hello @Sayanta66,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Okay I will update the new one.


onpressbackground not get current time when set start and end prop

when set start=7 end end=5 hour ,on while clicking 7-8 between it returns 12:00.the issue will happens all other hours also
@howljs can you check and fix this?

It happens to me as well. I'd really like to have this working with time range.

It happens to me as well. I'd really like to have this working with time range.
But a temporary workaround to me was add the value of startHour to the date that comes from onPressBackground event, like this:
`
const onPressBackground = (date: string) => {
const start = dayjs(date).add(startHour, 'hours').toISOString()
const end = dayjs(start).add(1, 'h')
const newEvent: EventItem = {
  start,
  end: end.toISOString(),
  id: '1',
  title: 'Event',
  color: colors.purple500
}
setEvent(newEvent)

}
`

Hi @howljs How can I get start time and end time using the onPressBackground function? At the moment, I can get dateTime like this;
{"dateTime": "2024-12-09T20:55:00.000Z"}

Hi @howljs How can I get start time and end time using the onPressBackground function? At the moment, I can get only dateTime like this;
{"dateTime": "2024-12-09T20:55:00.000Z"}

You can calculate based on your duration


Issue-40 Reduce logging from Info to Debug when transitioning

https://github.com/oxo42/stateless4j/pull/42 is the preferred solution since it makes stateless4j un-opinionated about logging and leaves it to the application.  This alternative logs the debug message at debug level.

Implemented overrideable logging in PR #59


[Task] Implement GET /workspace-templates/{template_name}

Story: #138
Description
Implement GET /workspace-templates/{template_name}
Input
workspace template name
Output
404 if no workspace template exist in the db with this name
otherwise the workspace template (with this name) marked as current

In done column and PR merged. Closing.


Feature Request: Pick own bibliography style

Feature Requested
I love this workflow - thanks so much for the amazing work! Being able to paste the full bibliographic entry into emails is a very practical feature, however doing so in APA 6th has a big disadvantage for someone working in German : Capitalization in titles is not working. Can this be changed in the script (or a different bibliography style be chosen), and if yes, how so? Since I don't understand the whole workflow I don't want to temper with it...
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.

Thank you!

however doing so in APA 6th has a big disadvantage for someone working in German : Capitalization in titles is not working

Actually, that isn't a problem with APA 6th, and would occur with any other citation style as well. In the bibtex format, you needs curly braces {} to preserve capitalization.
So you rather need to adjust some setting for the tool you use to generate the bibtex file – this is unfortunately not something I can change on my end, sorry!

Hi Chris, thanks a lot - that's helpful (I wasn't aware, but it seems like
Bookends can do that). On another note: the pasting function using ⌘⌥ + ↵
has stopped working altogether for me, as of today... Did you change
anything else?
On Fri, May 20, 2022 at 9:05 AM pseudometa @.***> wrote:

Thank you!
however doing so in APA 6th has a big disadvantage for someone working in
German : Capitalization in titles is not working
Actually, that isn't a problem with APA 6th, and would occur with any
other citation style as well. In the bibtex format, you needs curly
braces {} to preserve capitalization. https://texfaq.org/FAQ-capbibtex
So you rather need to adjust some setting for the tool you use to generate
the bibtex file – this is unfortunately not something I can change on my
end, sorry!
—
Reply to this email directly, view it on GitHub
https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/7#issuecomment-1132547810,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXF7SEPJ2VKV6XS6AMTYD3VK42SBANCNFSM5VOGB2HQ
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

On another note: the pasting function using ⌘⌥ + ↵
has stopped working altogether for me, as of today... Did you change
anything else?

hmm, well I did push some updates today, but ⌘⌥ + ↵ works without any issue on my end? 🤔
Try updating / reinstalling the workflow, there have been a lot of smaller updates today. and if the issue still persists, open a bug report? (reason being that the bug report formula includes a lot of info on troubleshooting.)

Problem solved ! I updated but it was apparently due to a missing citekey,
as I learnt from the debugger. Thanks for the hint (hadn't used it before,
still very new to Alfred)
On Fri, May 20, 2022 at 2:21 PM pseudometa @.***> wrote:

On another note: the pasting function using ⌘⌥ + ↵
has stopped working altogether for me, as of today... Did you change
anything else?
hmm, well I did push some updates today, but ⌘⌥ + ↵ works without any
issue on my end? 🤔
Try updating / reinstalling the workflow, there have been a lot of smaller
updates today. and if the issue still persists, open a bug report? (reason
being that the bug report formula includes a lot of info on
troubleshooting.)
—
Reply to this email directly, view it on GitHub
https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/7#issuecomment-1132837582,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXF7SBMW36QFRJWGCC2ZD3VK57TFANCNFSM5VOGB2HQ
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

PS - sorry to bother you once more but I still have a question about
capitalization : Do you really think it's best for someone compiling a
bibliography in German to wrap all titles in double { } ? Since LaTeX
bibliography styles can handle capitalization independent of the bib file,
I'm hesitant to configure Bookends so that all my titles will be wrapped in
curly braces in the bib file, because that will limit the customizability I
have with bibliography styles... I am assuming Pandoc can't do that.  Is
that correct ?
On Fri, May 20, 2022 at 2:35 PM Leoni Linek @.***> wrote:

Problem solved ! I updated but it was apparently due to a missing citekey,
as I learnt from the debugger. Thanks for the hint (hadn't used it before,
still very new to Alfred)
On Fri, May 20, 2022 at 2:21 PM pseudometa @.***>
wrote:

On another note: the pasting function using ⌘⌥ + ↵
has stopped working altogether for me, as of today... Did you change
anything else?
hmm, well I did push some updates today, but ⌘⌥ + ↵ works without any
issue on my end? 🤔
Try updating / reinstalling the workflow, there have been a lot of
smaller updates today. and if the issue still persists, open a bug report?
(reason being that the bug report formula includes a lot of info on
troubleshooting.)
—
Reply to this email directly, view it on GitHub
https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/7#issuecomment-1132837582,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXF7SBMW36QFRJWGCC2ZD3VK57TFANCNFSM5VOGB2HQ
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

tbh, I have no idea about Latex, since I only use pandoc and as far as know, the curly braces do not matter for pandoc (except as information for capitalization)? 😕
sorry, I use pandoc and markdown exactly because latex is a bit over my head 🙈

Ha - I thought it was the opposite way around - LaTeX definitely being
easier than what you're doing. Thanks in any case !
On Fri, May 20, 2022 at 2:44 PM pseudometa @.***> wrote:

tbh, I have no idea about Latex, since I only use pandoc and as far as
know, the curly braces do not matter for pandoc (except as information for
capitalization)? 😕
sorry, I use pandoc and markdown exactly because latex is a bit over my
head 🙈
—
Reply to this email directly, view it on GitHub
https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/7#issuecomment-1132859021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXF7SCZT274LLCA4A3BS4LVK6CKBANCNFSM5VOGB2HQ
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


net/wireguard: require pubkey for endpoints

Closes #1850

It looks like this would break more than it fixes. Maybe we should simply omit writing to config configurations that don't have a pubkey to fix the same problem in a different way?

Maybe I didn't consider every use-case, but why would this break things?
If there is no value in there and you use the plugin it will crash. If there is no value and you update there it should not touch current setting?
Am I wrong here?

@mimugmail the problem lies in the configuration, let's say you have two illegal entries (lacking the public key),  you're not able to fix one of them since the other likely invalidates your model. There is a "work-around", although not very pretty, and that's to add a migration which puts some content in there to make clear it needs fixing, like "ENTER PUBLIC KEY HERE" (maybe followed by some random number to avoid a possible security issue).

OK, I will refactor templating when kids are asleep :)

@fichtner what do you think about this one?
P.S.: my install didn't crash without a pubkey on an endpoint

My point is a bit different: if you put a public key with the wrong format, it also break the tunnel. I opened a pull request before reading that here to solve this by checking the public key format (assuming it is indeed a base64 44 char string). I don't know if this should be include into this pull request or remain separated.
https://github.com/opnsense/plugins/pull/2056

I also put in a PR to also address this issue https://github.com/opnsense/plugins/pull/2174.  I just made the pubkey field required when creating the client.  I guess this method would allow you to save it without a pubkey, but not crash the service.  Will just need to decide which way you want to go about it as you probably want to chose one or the other.

I also put in a PR to also address this issue https://github.com/opnsense/plugins/pull/2174.  I just made the pubkey field required when creating the client.  I guess this method would allow you to save it without a pubkey, but not crash the service.  Will just need to decide which way you want to go about it as you probably want to chose one or the other.

Would be nice to add a wg genpsk feature into the gui as well.

Would be nice to add a wg genpsk feature into the gui as well.

I'm open for both, this one or #2174
@fichtner which one do you prefer?

I'm open for both, this one or #2174
@fichtner which one do you prefer?

@mimugmail leaning towards #2174 , ok?

@mimugmail leaning towards #2174 , ok?

PS let's not forget #2056 for the bas64 field use...

PS let's not forget #2056 for the bas64 field use...

Obsolete.

Obsolete.


option to disable HA notifications from Ocpp integration

This is not an operational problem, however it's quite frustrating that my ABB wall charger triggers "Security event notification received: SettingSystemTime" kind of notifications in Home Assistant on a daily basis.
I could not figure out how to mute these.
Can you add some sort of config options to the Ocpp integration to be able to mute these kind of notifications?
Thanks in advance :)

Simply create an automation eg
trigger:
  - platform: persistent_notification
    update_type:
      - added
    notification_id: ""
condition:
  - condition: template
    value_template: "{{ trigger.notification.title | lower == \"ocpp integration\" }}"
action:
  - delay:
      hours: 0
      minutes: 10
      seconds: 0
      milliseconds: 0
  - service: persistent_notification.dismiss
    data:
      notification_id: trigger.notification.notification_id
mode: single


Update adding_an_op.md

I am proposing several changes to this file.  I am a new user to TF, and used this documentation extensively while trying to put a together my custom activation function, since I wanted to explore how different activation functions might affect NN training and performace.  I eventually figured out everything I needed to know, but it took weeks because this documentation is lacking in several areas, so I have a good feel for how this documentation can be improved to make life easier for future new users.  Changes 1 and 2 are pretty clear and I expect to not be controversial.  Change 3 you will probably need to think about, and might want to do further work to make things more clear.

correct example.cc (221-228):
I added a REGISTER_OP macro to the "example" code.  The previous absence of these lines was clearly an omission in the documentaion - the example code does not work without this line.  This is the least controversial change I am making.

explain how to use Bazel to compile a CUDA op (1256-1272:
I eventually figured out how to do this on my own, but it sure would have been useful had this information been in this documentation.

explaining how the gradient actually works in TF (1293-1301):
Now that I know the answer, I can read the documentation and sort of parse what it means, but I found this extremely confusing when I was reading it for the first (and tenth) time.  I have a masters in physics, so I understand calculus, but it wasn't until I had implemented backpropagation twice by hand and spent a bunch of time trying to imagine how TF must be working under the hood before I got this.  So I was tempted to delete this entire section and start over.  But I am not sure I can win this battle, because a major portion of what makes this confusing for me is the way TF uses the word gradient.  The thing that all of the TF documentation refers to as "gradient" I would much prefer to refer to as "error".  But I doubt I am going to get everybody to change everything.

So I have opted to just append another paragraph to this section, which I hope will explain things better.  It might be nice to update the mathematical notation a little bit, but since I am currently making these edits in a simple text editor I don't want to wade too deeply into trying to figure out the notation.

Putting it all together (1467-1778):
I was able to find pieces of example code while googling, but somehow I wasn't really able to find a complete tutorial that documented all of the steps start to finish of designing and using a custom activation function.  So I think it might be useful to post a complete example here which is just complicated enough to demonstrate all the parts needed to write a custom activation function working together.  But you might decide that this belongs elsewhere.

Can one of the admins verify this patch?

I signed it!

@MarkDaoust can you take a look? Some significant new tutorial content.

Sorry about the delay.  I hesitated when you first requested this change, since I didn't really know what to do, and kind of forgot this until you reminded me.
Code files:  I am not quite sure what you want me to do, since I am new to open source collaboration, but I my guess is that you want me to create three files with the smoothReLu kernel source code hosted somewhere on github and include links to those files in the md.  But if this is correct, where is the correct place to host the files?  Should they be stored somewhere within the TensorFlow project directory or should I host them on my personal github account.
Testing:  I did some testing, though perhaps not enough, but I don't really know what standards you hold for how much testing is sufficient.  I did test the files to make sure they compile and load in python properly.  I believe I tested the activation function in an actual neural network, which isn't sufficient to prove that it is working completely as desired, but does demonstrate that it is at least most of the way there.  I don't believe I actually tested that the function returns the correct values, and I didn't try to test any edge cases / behavior with invalid inputs.

@martinwicke could you elaborate on the requested changes? It looks like @ecpoppenheimer needs more guidance.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @benoitsteiner: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

It has been 14 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.


added blocks to document template

1. Why is this change necessary?
More blocks the customize the document template. The more blocks, the better.
2. What does this change do, exactly?
Adds the following blocks to document template:
document_index_css
document_index_body
document_index_footer
3. Describe each step to reproduce the issue or behaviour.
4. Please link to the relevant issues (if any).
5. Which documentation changes (if any) need to be made because of this PR?
6. Checklist

[x] I have squashed any insignificant commits
[ ] I have written tests and verified that they fail without my change
[ ] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-20764
Please use this issue to track the state of your pull request.

Hi @buddhaCode! Yes, there is a chance. 😄 Thank you for your patience and your contribution! 💙


Fix for #912, Set authentication once to set in SecurityContextHolder and Principal in method parameter

Once we set the authentication, for example:
https://github.com/rest-assured/rest-assured/blob/d3a34e9a6bb72cd37f509e1dc12eafbd66642b71/modules/spring-mock-mvc/src/test/java/io/restassured/module/mockmvc/SecuredControllerTest.java#L72-L75
We should be able to retrieve it through:

SecurityContextHolder.getContext().getAuthentication()
@GetMapping public void someMethod(Principal principal)

no. 2 should automatically apply since Authentication extends Principal
Looking at the code, it appears we just need to change the "else if" to a separate "if" statement.
https://github.com/rest-assured/rest-assured/blob/d3a34e9a6bb72cd37f509e1dc12eafbd66642b71/modules/spring-mock-mvc/src/main/java/io/restassured/module/mockmvc/internal/MockMvcRequestSenderImpl.java#L181-L185
I can create a pull request and update some test, but the SecuredControllerTest seems to separate this out deliberately?
Perhaps @johanhaleby can comment?

Thanks for your help!


Inaccuracy

It seems like something is off in the algorithm. The hash is sometimes correct, but not always.
Test code:
package main

import (
    "os"
    "fmt"

    "github.com/jessevdk/go-flags"

    "github.com/haochi/blockhash-go"
    "github.com/dsoprea/go-logging"
)

type options struct {
    Filepath string `short:"f" long:"filepath" required:"true" description:"File-path of image"`
}

func main() {
    o := new(options)
    if _, err := flags.Parse(o); err != nil {
        os.Exit(1)
    }

    f, err := os.Open(o.Filepath)
    log.PanicIf(err)

    defer f.Close()

    h, err := blockhash.Blockhash(f, 16)
    log.PanicIf(err)

    digest := h.ToHex()
    fmt.Println(digest)
}

Using the Blockbash Python tool with four images (two valley scenes and two sizes of each, where one is full-sized and the other is scaled to 100-pixels wide):
$ python blockhash.py ~/Downloads/*jpg
1ffc3fff00fe000021ff7e3f0f8007c03fff1f8d0f9806003ffc3ff80f0400f0  /home/dustin/Downloads/20170618_155330.jpg
1ffc3fff00fe000031ff3e3f0f8007c03fff1f8d0f9806003ffc3ff80f0400f0  /home/dustin/Downloads/20170618_155330-small.jpg
7ff00fe00ff007e00ffd07f807f003f003fc07fa07f413f017f927e261cce0d8  /home/dustin/Downloads/amazing-mountain-valley-wallpaper-29910-30628-hd-wallpapers.jpg
7ff00fe00fe007f00ffd07f807f003f003fc07fa07f413f013f92fe261cce0d8  /home/dustin/Downloads/amazing-mountain-valley-wallpaper-29910-30628-hd-wallpapers-small.jpg

If I run the Go tool, I'l get:
$ go run blockhash-go-testing.go -f ~/Downloads/20170618_155330.jpg
1ffc3fff007e000021ff3e3f0f8007c03fff1f8c0f9806003ffc3ff80f0000f0
$ go run blockhash-go-testing.go -f ~/Downloads/20170618_155330-small.jpg
1ffc1fff007f000013ff3c3f0f8007c03ffa1f8e0f840e083ffc1ffc0fc00300
$ go run blockhash-go-testing.go -f ~/Downloads/amazing-mountain-valley-wallpaper-29910-30628-hd-wallpapers.jpg
7ff00fe00fe007e00ffd07f807f003e003fc03fa07f413f013f92fe261c4e0d8
$ go run blockhash-go-testing.go -f ~/Downloads/amazing-mountain-valley-wallpaper-29910-30628-hd-wallpapers-small.jpg
7ff00fe00fe007e007fc07f807f803f003fe03fe03f803f007fa1bf811f405e1

Notice that the full-size images have the same hashes as the Python tool, but the shrunk versions have a hash with a common-prefix (the first few characters are correct; the first seventeen characters in the first case and the first ten-characters in the other case) though the not all of the bytes match.

@dsoprea I do remember taking a shortcut when I implemented it. Feel free to file a pull request. I don't need to use this any more so I won't spend time to look into fixing it. Thanks.


N46: Tribes

Part of #1378

Hi! Thanks for the contribution though the way this newsletter works is by releasing "summaries" of a month when it ends - and atm the May issue in WIP (I'll hopefully release it today). I've already included your project into the draft of the June newsletter that we'll start working on in two weeks: https://hackmd.io/@gamedev-rs/n47.


[WIP]: IPAAS-273 Hide sensitive information

This pull requests modifies the ProjectGenerator to optionally (its configurable) mask secrets.
Masked secrets passed as placeholders in the URL wrapped around double squiggles, so that it can be replaced on runtime by spring-boot via spring-cloud-kubernetes-config.
TODO:

also mask data inside the database (?).

retest this please

retest this

add to whitelist

retest this

retest this

BTW I'm seeing the same test failure locally, so you probably want to address those.

@KurtStam, @rhuss: I think that this could go in now.

retest this


Adopt generic aggregation classes

Background
As of https://github.com/voxel51/fiftyone/pull/777, there are five core aggregation operations that we expose, which can be applied to fields of certain types:
# Fields

Countable types: (Bool, Int, String)
- field
- list field
- ``embedded.field``
- ``embedded.field`` within Label-list type

Numeric types: (Float, Int)
- numeric field
- numeric list field
- ``embedded.field`` (dict field or embedded doc field)
- ``embedded.field`` within Label-list type

# Operations

Generic fields
- count()

Countable fields
- distinct()
- count_values()

Numeric fields
- bounds()
- histogram_values()

We currently handle specific operations like counting labels (CountLabels) or computing the bounds of a confidence (ConfidenceBounds) via dedicated Aggregation classes. However, as we continue to add more types, the number of permutations grows. For example, when I added HistogramValues to https://github.com/voxel51/fiftyone/pull/777, our current pattern would indicate that I need to add a dedicated HistogramConfidenceValues class to handle building histograms for label confidences.
But, what if the user wants to compute an aggregation over a custom field they've added to their Label instances, for example?
This PR experiments with an alternative strategy where the core operation types are allowed to be applied via embedded.field.name syntax.
Pros

Deprecates the need for CountLabels() and ConfidenceBounds()
Allows for aggregations of arbitrary dynamic fields and things like the confidence of Label types, with no additional classes needing to be added

Neutral

Allows for unexpected new functionality to work, like bounds() will now work on strings (lexicographic order) and documents (using some definition of document comparison that MongoDB has defined...)
MongoDB tends to silently ignore unsupported data in aggregation pipelines, so if FiftyOne aggregations are run on non-sensical data, a result of some kind is returned without the user being alerted that they've done something strange

Cons

Syntax is a bit less clean: more of the functionality is captured by magic "embedded.field.name"  strings
Allows the user to aggregate over things that don't necessarily make sense, like calling count_values() on a float field
Inconsistent with ViewStages, which do expose dedicated classes like FilterLabels vs Match for performing operations specifically on Label fields

Example usage
import fiftyone as fo

dataset = fo.Dataset()

dataset.add_sample_field("list_field", fo.ListField)  # generic list field
dataset.add_samples(
    [
        fo.Sample(
            filepath="/path/to/image1.png",
            tags=["A"],
            list_field=[1, 2.0],
            countable_field="cat",
            countable_list_field=[1, 2, 3],
            numeric_field=1.0,
            numeric_list_field=[1.0, 2.0, 3.0],
            classification=fo.Classification(label="cat", confidence=None),
            detections=fo.Detections(
                detections=[
                    fo.Detection(label="fox", bounding_box=[0, 0, 1, 1], confidence=0.5),
                    fo.Detection(label="squirrel", bounding_box=[0.0, 0.0, 1.0, 1.0], confidence=0.7),
                ]
            ),
        ),
        fo.Sample(
            filepath="/path/to/image2.png",
            tags=["A", "B"],
            list_field=[3.0, 4],
            countable_field="dog",
            countable_list_field=[1, 2, 3],
            numeric_field=4.0,
            numeric_list_field=[1.5, 2.5],
            classification=fo.Classification(label="dog", confidence=0.9),
            detections=fo.Detections(
                detections=[
                    fo.Detection(label="cow", bounding_box=[0, 0, 1, 1], confidence=0.3),
                    fo.Detection(label="emu", bounding_box=[0.0, 0.0, 1.0, 1.0], confidence=None),
                ]
            ),
        ),
    ]
)

# bounds()
print(dataset.bounds("numeric_field"))
print(dataset.bounds("numeric_list_field"))
print(dataset.bounds("list_field"))
print(dataset.bounds("classification.confidence"))
print(dataset.bounds("detections.detections.confidence"))

# count()
print(dataset.count())
print(dataset.count("countable_field"))
print(dataset.count("countable_list_field"))
print(dataset.count("numeric_list_field"))
print(dataset.count("detections.detections"))

# count_values()
print(dataset.count_values("tags"))
print(dataset.count_values("countable_field"))
print(dataset.count_values("countable_list_field"))
print(dataset.count_values("numeric_field"))  # works but isn't meaningful
print(dataset.count_values("numeric_list_field"))  # works but isn't meaningful
print(dataset.count_values("classification.label"))
print(dataset.count_values("detections.detections.label"))

# distinct()
print(dataset.distinct("tags").values)
print(dataset.distinct("countable_field"))
print(dataset.distinct("countable_list_field"))
print(dataset.distinct("classification.label"))
print(dataset.distinct("detections.detections.label"))

# histogram_values()
print(dataset.histogram_values("numeric_field", bins=2))
print(dataset.histogram_values("numeric_list_field", bins=2))
print(dataset.histogram_values("classification.confidence", bins=2, range=(0, 1)))
print(dataset.histogram_values("detections.detections.confidence", bins=2, range=(0, 1)))

I am not opposed to this, even as things stand right now. I think replacing MongoEngine with MongoDB Shemas would really empower this way of thinking.
My one note is that embedded list field syntax, e.g. detections.detections.confidence is something we will have to own outside of MongoDB. Keeping an up to date MongoDB JSON schema will support this if/when it is added. Until then, arbitrary.list_field.number will be hard support.

I am not opposed to this, even as things stand right now. I think replacing MongoEngine with MongoDB Shemas would really empower this way of thinking.
My one note is that embedded list field syntax, e.g. detections.detections.confidence is something we will have to own outside of MongoDB. Keeping an up to date MongoDB JSON schema will support this if/when it is added. Until then, arbitrary.list_field.number will be hard support.

My one note is that embedded list field syntax, e.g. detections.detections.confidence is something we will have to own outside of MongoDB. Keeping an up to date MongoDB JSON schema will support this if/when it is added. Until then, arbitrary.list_field.number will be hard support.

Yeah I totally agree. Right now checks for list_field and detections.detections are hard-coded so that unwind can be applied as needed.
I did note that unwind can be applied to non-array fields, which means we could go nuclear and just split on . and unwind every part of the field, just in case. Although
MongoDB claims that pipeline optimization should add the appropriate $project calls if an aggregation only uses certain fields, but I haven't investigated to confirm is this happens for our aggregation stages, and lots of unwinding definitely is scary.

My one note is that embedded list field syntax, e.g. detections.detections.confidence is something we will have to own outside of MongoDB. Keeping an up to date MongoDB JSON schema will support this if/when it is added. Until then, arbitrary.list_field.number will be hard support.

Yeah I totally agree. Right now checks for list_field and detections.detections are hard-coded so that unwind can be applied as needed.
I did note that unwind can be applied to non-array fields, which means we could go nuclear and just split on . and unwind every part of the field, just in case. Although
MongoDB claims that pipeline optimization should add the appropriate $project calls if an aggregation only uses certain fields, but I haven't investigated to confirm is this happens for our aggregation stages, and lots of unwinding definitely is scary.

Working through some necessary changes, and then I'll approve.

Working through some necessary changes, and then I'll approve.

Ok, I have my made updates. All App statistics are now computed using aggregations. Video and image datasets are both working, but this could use a secondary tester.
If testing, the app will need to rebuilt and browser cache cleared:
cd ./app && yarn install && yarn build-web

Ok, I have my made updates. All App statistics are now computed using aggregations. Video and image datasets are both working, but this could use a secondary tester.
If testing, the app will need to rebuilt and browser cache cleared:
cd ./app && yarn install && yarn build-web

Still a couple bugs, actually. Will follow up.

Still a couple bugs, actually. Will follow up.

Ok, ready now.
import fiftyone as fo
import fiftyone.zoo as foz

quickstart, session = fo.quickstart()
# test App filtering and plots

cifar = foz.load_zoo_dataset("cifar10")
session.dataset = cifar
# test App filtering and plots

quickstart_video = foz.load_zoo_dataset("quickstart-video")
for idx, sample in enumerate(quickstart_video):
    if idx % 2 == 0:
        label = "even"
        confidence = 1.0
    else:
        label = "odd"
        confidence = None
    sample["classification"] = fo.Classification(label="one", confidence=confidence)
    sample.save()

session.dataset = quickstart_video
# test App filtering and plots

Ok, ready now.
import fiftyone as fo
import fiftyone.zoo as foz

quickstart, session = fo.quickstart()
# test App filtering and plots

cifar = foz.load_zoo_dataset("cifar10")
session.dataset = cifar
# test App filtering and plots

quickstart_video = foz.load_zoo_dataset("quickstart-video")
for idx, sample in enumerate(quickstart_video):
    if idx % 2 == 0:
        label = "even"
        confidence = 1.0
    else:
        label = "odd"
        confidence = None
    sample["classification"] = fo.Classification(label="one", confidence=confidence)
    sample.save()

session.dataset = quickstart_video
# test App filtering and plots

@benjaminpkane thanks for picking this PR up and finishing it!
Only one comment from me after testing: the scalar distribution graphs are now pretty spread out and hard to read. Can you recover something closer to the previous visual layout before we merge this?
Here's what I see with the quickstart dataset now:

And how it used to be:

@benjaminpkane thanks for picking this PR up and finishing it!
Only one comment from me after testing: the scalar distribution graphs are now pretty spread out and hard to read. Can you recover something closer to the previous visual layout before we merge this?
Here's what I see with the quickstart dataset now:

And how it used to be:

To clarify, there's two things about the current behavior that are undesirable for numeric graphs:

There's probably too many bins. It's better to be able to see the whole distribution without scrolling horizontally
It doesn't make sense to have tick labels on every bin for numeric distributions. Just a few is sufficient

To clarify, there's two things about the current behavior that are undesirable for numeric graphs:

There's probably too many bins. It's better to be able to see the whole distribution without scrolling horizontally
It doesn't make sense to have tick labels on every bin for numeric distributions. Just a few is sufficient

Comments addressed, including issue #796. 25 bins are now used for numeric histograms.
It is curios why there is 1 other value for uniqueness in the quickstart.

Comments addressed, including issue #796. 25 bins are now used for numeric histograms.
It is curios why there is 1 other value for uniqueness in the quickstart.

@benjaminpkane thanks for the updates! I know why there is one other. Annoyingly, mongodb uses [min, max) intervals for every bin, including the last bin. The largest uniqueness is always exactly 1, so you have to use bounds [0, 1 + eps) to cover everything.
More generally, since I believe you may be computing (min, max) = bounds() with a query, you'll have to use (min, max + eps) for all histograms to avoid this issue.

@benjaminpkane thanks for the updates! I know why there is one other. Annoyingly, mongodb uses [min, max) intervals for every bin, including the last bin. The largest uniqueness is always exactly 1, so you have to use bounds [0, 1 + eps) to cover everything.
More generally, since I believe you may be computing (min, max) = bounds() with a query, you'll have to use (min, max + eps) for all histograms to avoid this issue.


injectAuth function

Just a small change that provides an injectAuth function. This has two benefits over the current inject('auth')

users don't have to worry about typing the result of inject
users don't have to depend on a magic string

I also added vueAuthInjetionKey for users of the Options API so they don't have to depend on a magic string.

Hey @haydenbr, this feature looks good 👍🏽 good advantage and makes it easier to use. I left you one comment about missing using the injectionToken once.

Codecov Report

Merging #357 (9a5cb6a) into master (44d9aa2) will increase coverage by 0.13%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #357      +/-   ##
==========================================
+ Coverage   97.64%   97.77%   +0.13%
==========================================
  Files           3        3
  Lines          85       90       +5
  Branches        9        9
==========================================
+ Hits           83       88       +5
  Misses          2        2

Flag
Coverage Δ

unittests
97.77% <100.00%> (+0.13%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/index.ts
100.00% <100.00%> (ø)

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 44d9aa2...9a5cb6a. Read the comment docs.


Validating optional text inputs

Considering an optional email text input: from user perspective I think the appropriate validation for this would be z.string().email().optional() which allows either undefined or a valid email.
In React, these types of inputs are almost never undefined. In fact, optional fields are considered empty strings.
What is the common way to achieve validating these type of fields correctly with zod? I have tried things like z.union([z.string().email, z.literal('')]) or refine, which felt a little unintuitive for a simple, yet very common optional field value.
I was hoping for either a configurable optional type that could allow empty strings as well or a dedicated empty type for a string.
Anyway, thank you for this great validation library, happy to help in any way!

I'm facing the same challenges regarding form validations and came up with the following solution. It can be further abstracted as needed. Any thoughts?
import * as z from 'zod';

const createInputSchema = (schema: z.ZodString) =>
  z
    .union([z.string(), z.undefined()])
    .refine((val) => !val || schema.safeParse(val).success);

const emailInputSchema = createInputSchema(z.string().email());

const emails = [undefined, ""<EMAIL_ADDRESS>null, "foo", 12345];

const result = emails.map((email) => ({
  email,
  isValid: emailInputSchema.safeParse(email).success
}));
console.log(result);

// result
[
  {
    "email": undefined,
    "isValid": true
  },
  {
    "email": "",
    "isValid": true
  },
  {
    "email"<EMAIL_ADDRESS>    "isValid": true
  },
  {
    "email": null,
    "isValid": false
  },
  {
    "email": "foo",
    "isValid": false
  },
  {
    "email": 12345,
    "isValid": false
  }
]
});

This was driving me crazy, thanks @colinhacks, appending .or(z.literal('')) worked for me too 😄

If you want either the full string or undefined you can use this utility function:
import { z } from "zod"

const emptyStringToUndefined = z.literal("").transform(() => undefined)

export function asOptionalField<T extends z.ZodTypeAny>(schema: T) {
  return schema.optional().or(emptyStringToUndefined)
}

const form = createForm({
  schema: z.object({
    required: z.string().min(8),
    optional: asOptionalField(z.string().min(8))
  })
})

.or(z.literal('')) works for single .optional() but what about partial()? Does it mean it is completely unusable in React?

Was their ever a resolution for this?
We have a use case where optional isn't acting as it should (undefined or other value)
For example
export const fileLinkZod = z.object({
  url: z.string().url(),
  originalUrl: z.string().url().optional(),
  name: z.string().min(0).max(2024),
  mimeType: z.string().optional(),
});

The input originalUrl can be undefined or URL.
At the moment its not possible to define the class
export class FileLink {
  url!: string;
  originalUrl?: string;
  name!: string;
  mimeType?: string;
}

:-)
Not sure what to do here with Zod.

I am also encountering this issue. I love zod for it's conciseness.  It's confusing to encounter unexpected behaviour like this.

+1 to this. Maybe there could be another method .optionalWhenFalsy() as to not complicate .optional()A

Is z.string().email().optional().or(z.literal('')) still the way to go here?
optional({allowEmpty:true}) would be dope though :)

For me I use the length minimal: z.string().min(0)

Is z.string().email().optional().or(z.literal('')) still the way to go here?

This worked for me in setting a an optional URL url: z.string().min(0).url("Enter a URL").max(255).or(z.literal('')),

Currently having the same problem with optional urls

.optional().or(z.literal('')), is perfect! Thank you

How is this considered an edge-case?  The current implementation of optional() clearly isn't working as many users expect, regardless of the underlying reasons with the web standards.  At a bare minimum this should be highlighted on the docs if unwilling to amend or add an alternative optional() that covers this use case?

Was also confused by this. It looks like the whole .optional() is obsolete in this case:
logo: z.string().url().or(z.literal('')),

foo: z
  .string()
  .optional()
  .transform(value => value || undefined)
  .refine(
    value => {
      if (!value) return true
      // remaining validation
    },
    { message: 'lorem ipsum' }
  )

None of the solutions provided above seem to allow providing custom error messages.
For example, I wasn't able to make this validate as expected while allowing empty values with only zod library functions.
foo: z.number({         invalid_type_error: "must be a number",     }).min(1, { message: "must be over 1" })
I ended creating a "emptyOr" helper function that wraps the whole of it, such as:
foo: emptyOr(z.number({         invalid_type_error: "must be a number",     }).min(1, { message: "must be over 1" }))

@glennreyes I understand the feeling that this is strangely convoluted. But the source of that convolution is the messy, chaotic behavior of web forms. Zod provides a rigorous, consistent way of defining types, so it can be complex to represent weird edge cases like those surfaced by poorly designed web standards 🤷♂ I think implementing a new method or overloading .optional to allow for empty strings isn't necessary given that there are already multiple ways to implement this, but I understand the feeling.
Will some of the recent developments in TS surrounding tuples and rest parameters, it will shortly be possible to chain together calls to .or() that let you build up unions piece by piece. This isn't implemented yet but here's what it'll look like:
z.string().email().optional().or(z.literal(''))

Which I think looks and feels a lot nicer than the z.union or refinement approaches.
But for now the approaches described by you and @jasonadkison are the right way to go. Because Zod is composable, you only have to define that schema once, then you can import it wherever you're defining forms.

I love you

I think Colin mentioned on Twitter that Zod is supposed to be extensible via the prototype, we can extend the ZodString.prototype directly with an empty() function:
declare module 'zod' {
  interface ZodString {
    empty(): ZodUnion<[this, ZodLiteral<''>]>;
  }
}

z.ZodString.prototype.empty = function () {
  return this.or(z.literal(''));
};

// works
z.string().email().empty();

However, I didn't get it to work on a preceding .optional() like z.string().email().optional().empty();

I think Colin mentioned on Twitter that Zod is supposed to be extensible via the prototype, we can extend the ZodString.prototype directly with an empty() function:
declare module 'zod' {
  interface ZodString {
    empty(): ZodUnion<[this, ZodLiteral<''>]>;
  }
}

z.ZodString.prototype.empty = function () {
  return this.or(z.literal(''));
};

// works
z.string().email().empty();

However, I didn't get it to work on a preceding .optional() like z.string().email().optional().empty();

thx a lot ❤❤❤

Is this use case solved for in a less hacky way in the upcoming V4 release. This issue should not be closed IMO

Any update please? The solution or(z.literal('')) don't looks as a clean solution


Feature Request: Ability to render popup window based on an event

Is your feature request related to a problem? Please describe
We have a requirement to render pop a window similar to the shared image based on a button click for multiple use cases. Can we introduce a popup component to wave SDK?

Here is a sample UX design we have,
https://user-images.githubusercontent.com/112595851/220032595-918d5fec-c21b-4d87-8cbb-207720d0b62f.mov

How is it different from ui.dialog?

@vopani We don't have a searchable popup component. If we use ui.dialog we have to manually implement this search I guess. The requested popup dialog component is exactly similar when a user click on a dropdown with popup=always  option.

Here is a sample UX design we have,

I recommend avoiding rendering more than 1 popup at the same time.
From https://www.nngroup.com/articles/popups/:

Showing multiple popups one after another: Displaying multiple popups on top of each other makes your site look unprofessional, desperate, and disorganized. It also overwhelms users and forces them to spend effort to close each one. If your site uses many different types of popups, test the implementation to avoid presenting users with multiple popups at a time.

we have to manually implement this search

Since the search can have many different looks and needs, it's best when done by yourself. Wave should provide you with everything you need - dialog, textbox, items list.


Setting globe TerrainProvider doesn't set underlying surface property?

@kring or @bagnell you are probably best qualified to answer this.
I was investigating why changing the terrain provider doesn't seem to update terrain clamping.  I noticed in https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Globe.js#L94, we construct the default QuadtreePrimitive using the default terrainProvider instance.  However, in the set method for terrainProvder (https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Globe.js#L252) we don't appear to update the _surface instance.
Is this a bug?
I don't think it fixes the issue I was investigating, but it looked off enough to open an issue.

@mramato the terrain provider is passed through to the GlobeSurfaceTileProvider on render:
https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/Globe.js#L494
I don't know of any particular reason for this offhand.  It might just be left over from when we didn't use JavaScript properties.  In any case, I'm pretty sure this isn't a bug, so I'm closing it.


[AUTOPATCHER] Patches CVE-2022-25235 for expat

        Patches CVE-2022-25235 for expat.
        This patch and PR was automatically generated and needs human verification before merging.

Closing in favor of #2322, which upgrades expat to fix this CVE.


feat: Check for dead Nix code

Very limited nix knowledge but approving this

deadnix description:

Scan .nix files for dead code (unused variable bindings).

Basically, if I do something like
let
  foo = "bar";;
in
  [something that doesn't reference `foo` at all]

, then deadnix will complain about the unused foo.


Move-SqlDatabaseFile commited to development branch needs testing

Review #175 and test appropriately, probably just focus on any files changed which are shared etc.

Paging @ClaudioESSilva here's the existing issue for your cmdlet!

The subset of tests is repetead for each method of copy (Local, remote (UNC-PATHS) and full-remote (PSSession))
I have copy&pasted so you can check each one individualy.
Any other test that came to your mind please fell free. We can talk first if you want.

Run scritps local (same host than sql server instance) - This should use robocopy to copy the files, if not exists use Start-BitsTransfer

[ ] Only one file - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination. Will do an DBCC CHECKDB after database come online.

[ ] Two files - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination (with this method you only choose on destination for all files).

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -NoDbccCheckDb switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will less time than the examples before because no checkdb will be run on database.

[ ] Only one file with -DeleteSourceFiles switch - Execute command only with -SqlServer, one database and -DeleteSourceFiles. When all the process ends, the files no longer be available on the source.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -ExportDatabaseStructure and -OutFile ".csv" - Will generate a csv file with all database structure. A message must appear at the end saying which command you should run after change de csv in order to move files.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -MoveFromCSV and -InputFile ".csv" - Will move all files specified on csv with valid "DestinationFolderPath" values.

[ ] try to move a file with a size bigger than the existing freespace on the destination drive/lun

[ ] try to move a file to an folder where you don't have access

Run scritps remotely (outside the host of sql server instance) - This should use robocopy to copy the files, if not exists use Start-BitsTransfer

[ ] Only one file - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination. This should use Start-BitsTransfer to copy the files and do an DBCC CHECKDB after database came online.

[ ] Two files - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination (with this method you only choose on destination for all files).

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -NoDbccCheckDb switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will less time than the examples before because no checkdb will be run on database.

[ ] Only one file with -DeleteSourceFiles switch - Execute command only with -SqlServer, one database and -DeleteSourceFiles. When all the process ends, the files no longer be available on the source.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -ExportDatabaseStructure and -OutFile ".csv" - Will generate a csv file with all database structure. A message must appear at the end saying which command you should run after change de csv in order to move files.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -MoveFromCSV and -InputFile ".csv" - Will move all files specified on csv with valid "DestinationFolderPath" values.

[ ] try to move a file with a size bigger than the existing freespace on the destination drive/lun

[ ] try to move a file to an folder where you don't have access

Run scritps full-remote (outside the host of sql server instance and without access to UNC paths) - This should use robocopy to copy the files, but only if PSSession is available to be used

[ ] Only one file - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination. This should use Start-BitsTransfer to copy the files and do an DBCC CHECKDB after database came online.

[ ] Two files - Execute command only with -SqlServer and -Databases one database parameters. Choose one file, choose destination (with this method you only choose on destination for all files).

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -CheckFileHash switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will take longer than the example before because for each file choosed an hash will be generated for source and destination files to garantee that is the same.

[ ] Two files with -NoDbccCheckDb switch - Execute command only with -SqlServer, one database and -CheckFileHash. This will less time than the examples before because no checkdb will be run on database.

[ ] Only one file with -DeleteSourceFiles switch - Execute command only with -SqlServer, one database and -DeleteSourceFiles. When all the process ends, the files no longer be available on the source.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -ExportDatabaseStructure and -OutFile ".csv" - Will generate a csv file with all database structure. A message must appear at the end saying which command you should run after change de csv in order to move files.

[ ] Generate csv with file structure - Execute command with -SqlServer, one database, -MoveFromCSV and -InputFile ".csv" - Will move all files specified on csv with valid "DestinationFolderPath" values.

[ ] try to move a file with a size bigger than the existing freespace on the destination drive/lun

[ ] try to move a file to an folder where you don't have access

This is beautiful @ClaudioESSilva, exactly what I wanted :+1: :)

@ClaudioESSilva : sorry for pinging but  isn't this a "duplicate" of #250 ?

@niphlod no problem. Yes this one was the first. Those tests can be copied later for a new PR.
For now this can be closed.


Icons displaying as crossed out box on Android

I started using react-native-vector-icons v1.0.0 yesterday with RN v0.16.0 and have everything working perfectly with iOS.  However, when I went to check the Android equivalent this morning, it seems all the icons are displaying as a outlined box with a cross through the middle of it.

I'm using MaterialIcons but tested FontAwesome as well to make sure it wasn't just an issue with the one font.
I've copied all the fonts files into android/app/src/main/assets/fonts and also set up the getImageSource support just to check that didn't help.  I didn't previously have an assets folder so needed to create it.
My guess is that for whatever reason the fonts aren't getting bundled correctly as the same happens when the font files don't exist in the fonts directory.
Any ideas?  Is there something that might need to change in one of the build files to correctly pick up the assets/fonts directory?

Hi @chrisbianca,
Make sure the fonts folder is all lowercase. Does the example project work for you?

Hi @oblador,
The fonts folder is all lowercase.  The font files themselves don't need to be lowercase do they?
I just checked out the project and tried Examples/IconExplorer project as this seems to be the only one with Android support:
npm install
react-native run-android

But there is an error on startup as below:

However, having had a look at the folders that are output from the build for IconExplorer.  The fonts folder exists in /android/app/build/intermediates/assets/debug for IconExplorer but doesn't for my application.
Clearly something is missing from the build process and it's not copying the fonts folder over.  I've had a look at the config files for my application against IconExplorer but can't see any obvious differences.

@chrisbianca: You're getting the red screen because the packager is still running for your old project.  But it seems you've done everything right but the android build process somehow is not copying the fonts due to caching I'm guessing.  Sorry for wasting your time!!

I've added a troubleshooting section to the readme :+1:

Nice, thanks! :)

Hi,
I'm having a similar issue. I did all the steps @chrisbianca had mentioned. I followed the instructions under the troubleshooting section several times but am still getting the crossed out box.  I'm am running react-native 0.18.1 and am trying to get Ionicons icons to show up for Android using Inline. They already work for iOS. Thoughts?
Thanks.

Try swapping the F for f in fonts.  Or vice versa.

Hi @KelseyRegan, I changed the folder name from 'fonts' to 'Fonts', deleted the 'build' folder, recompiled and still got the same crossed out box.

@KelseyRegan, I figured it out. I was passing styles to the icons from my stylesheet like <Icon name='map' style={styles.icon} />. Placing the styles inline like so <Icon name='map' size={30} color="white" />  resolved the crossed out box. Thanks for responding.

@kwokster10 awesome :)

@kwokster10: It might be related to this issue: https://github.com/oblador/react-native-vector-icons/issues/104

@oblador I didn't use fontWeight but if added the prop and played around with its value, it didn't seem to change the appearance of the icons at all. Thanks for looking into it.

My issue was I forgot to copy the font file to assets/fonts and the [X] got cached.
I proved it by changing com.oblador.vectoricons.VectorIconsModule and changing cacheFile.exists() to false

make sure you have linked the vector icons after installing them `
$ react-native link react-native-vector-icons Then make sure you stop your packager and recompile the app again $ react-native run-android now the icons should show up. The icons are not usually  loaded up after installing and linking, you must recompile the app again.

react-native link react-native-vector-icons
react-native run-android
react-native start , Worked for me


jsx function call should not trigger emmet

Versions:
MacOS: 12.4
VSCode: 1.68.0-insider
Typescript: 4.7.2

Duplicate of https://github.com/microsoft/vscode/issues/51537