Fix to item publishing crash #698

-Added try/except code block so any errors encountered during item
publishing will not crash the script, but print error message.
-Added try/except code block so error encountered in update_item_data
function will not crash script, but print error message.
-Added code in publish_portal function so code to share templates will
only be executed if the user 'OpsServer' was being published.

Note: since I made the same change you just created a merge conflict in https://github.com/Esri/ops-server-config/pull/732

@csmoore Can't I selectively choose which file edits I can merge?


Update aws cpp sdk

Describe the pull request

What does your PR fix? Fixes #15759

Which triplets are supported/not supported? All

Have you updated the CI baseline? No

Does your PR follow the maintainer guide? Yes

Please hold on merge. Some dependencies might not be built automatically.

Please hold on merge. Some dependencies might not be built automatically.

Building dependencies is fixed in the other PR. No need to do any changes here.
https://github.com/microsoft/vcpkg/pull/15725

Building dependencies is fixed in the other PR. No need to do any changes here.
https://github.com/microsoft/vcpkg/pull/15725

Thanks for the update!

Thanks for the update!


Editor maximized - Run script - console takes most of screen

From<EMAIL_ADDRESS>on 2012-02-15T16:25:09Z
#############################################################
What steps will reproduce the problem?
1.-Editor is maximized
2.-Run any script in dedicated Python interpreter
When running the script the console window takes approx. 70 % of the screen.
If one resizes or moves (or closes, or undocks) the console window, the next time one reruns the above steps the console window again takes most of the screen space.
############################################################# What is the expected output? What do you see instead? I would expect that the console window can be resized and stays at a set position.
############################################################# What version of the product are you using? On what operating system? Spyder 2.1.7, on Ubuntu 11.10 x64
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=937

From ccordoba12 on 2015-01-02T18:00:17Z
Labels: Cat-SpyderGUI MS-v2.4


Fullscreen Now Has a 1-Pixel-Wide Grey Border

Tested versions

Reproducible In: v4.3.stable.steam [77dcf97d8]
Not Reproducible In: All stable v4.2 releases and prior

System information
Windows 10, GeForce GTX 1070 GPU
Issue description
Since updating from Godot 4.2 to 4.3, there is now a one-pixel-wide border present in any project I run using standard Fullscreen. This border is normally grey but sometimes changing the default clear colour will change the border colour to match, but this doesn't happen in EVERY project, only some projects, and I don't have a clue why.
The problem is present regardless of using either Vulkan or D3D12, but ONLY shows up in standard Fullscreen. Windowed modes and Exclusive Fullscreen do not exhibit this problem. This weird border also shows up during the default Godot splash screen as a program is starting. Changing the various border and window project settings has no effect on this. This happens regardless of a project being presented in 2D or 3D.
Steps to reproduce

Run ANY project from the editor with the window mode set to "Fullscreen".

Minimal reproduction project (MRP)

Create a new project.
Make a 2D scene root.
Open Project Settings and set the Default Clear Colour to black and the window mode to Fullscreen.
Run the project. There should be a grey border around the edge of your screen.

See https://github.com/godotengine/godot/issues/63500
TLDR:

This is intentional and done to ensure multiwindow interface works in fullscreen (MODE_FULLSCREEN is only intended for GUI apps like Godot editor itself, not for games).
For everything else, use MODE_EXCLUSIVE_FULLSCREEN (naming is bad, this mode is fully equivalent to 3.x MODE_FULLSCREEN).
I'm pretty sure it is the same in 4.2 (and other 4.x), but border was always black, now it's using clear color from project settings.
We probably can hack around it, but it's not fully tested - https://github.com/godotengine/godot/pull/88852

OK, I see now from reading the documentation that this is intentional, but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window, which a lot of games implement for compatibility reasons, thus making me slightly confused why this mode has now become specifically for multi-window support and that the border has been made a non-negotiable feature of it. I guess my choices now are to either offer a borderless fullscreen option in my Godot-made projects and get complaints of a border around the screen, or not offer the option and get complaints as to why the only fullscreen option is exclusive fullscreen. This addition/change to the Godot engine really doesn't feel like it was handled appropriately and I hope this new border becomes an optional aspect of the non-exclusive fullscreen mode in the near future.

but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window

It never reliably worked as borderless fullscreen.
3.x was single windowed and had only one fullscreen mode (equivalent to current MODE_EXCLUSIVE_FULLSCREEN, this mode is simply removing window border and window size to the screen size).
4.0 added support for multiple windows and start having issues with multi-window editor in fullscreen, so it was spirit into two modes. Naming of the new modes clearly was a mistake (should be MULTIWINDOW_FULLSCREEN/FULLSCREEN not FULLSCREEN/EXCLUSIVE_FULLSCREEN). The primary goal was always to make the editor (multi-window) to work in fullscreen. Initially it was done by changing window style flags, but turned out that some GPU drivers (NVIDIA in particular) still switch to exclusive mode (it seems to only care about client area size), so the border was added to guarantee in is not. Now it is confusing mess, but we can't just rename it since it's going to break compatibility.


Copy Contributors is somehow slow

Its slowing down builds a lot, and it's just a copy operation.
I'll probably add it to the workflow for GH's CI. That way we can just move it to where it needs to go.

Now this is in CI, we should skip it for CI related builds. Not quite sure how to do that, but probably a build flag to be passed in.

https://til.cazzulino.com/msbuild/detect-ci-builds-for-every-ci-system I dont really understand it though

fixed in: https://github.com/GuVAnj8Gv3RJ/NeosAccountDownloader/commit/8532320f334b23d1733b345e768c2e02102fb543
See: https://github.com/GuVAnj8Gv3RJ/NeosAccountDownloader/actions/runs/5703920346/job/15457032754 no copying!


ios首次加载bug

════════ Exception caught by foundation library ════════════════════════════════════════════════════
The following assertion was thrown while dispatching notifications for ValueNotifier:
setState() or markNeedsBuild() called during build.
This EasyRefresh widget cannot be marked as needing to build because the framework is already in the process of building widgets.  A widget can be marked as needing to be built during the build phase only if one of its ancestors is currently building. This exception is allowed because the framework builds parent widgets before children, which means a dirty descendant will always be built. Otherwise, the framework might not visit this widget during this build phase.
The widget on which setState() or markNeedsBuild() was called was: EasyRefresh
state: _EasyRefreshState#1df6f
The widget which was currently being built when the offending call was made was: LayoutBuilder
renderObject: _RenderLayoutBuilder#fb71b relayoutBoundary=up2 NEEDS-PAINT
When the exception was thrown, this was the stack:
#0      Element.markNeedsBuild. (package:flutter/src/widgets/framework.dart:4292:11)
#1      Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:4307:6)
#2      State.setState (package:flutter/src/widgets/framework.dart:1264:14)
#3      _EasyRefreshState.initState. (package:flutter_easyrefresh/src/refresher.dart:286:9)
#4      ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:226:25)
...
The ValueNotifier sending notification was: ValueNotifier#ae821(Instance of 'TaskState')
════════════════════════════════════════════════════════════════════════════════════════════════════

非常感谢，将在下个版本修复 issues#382

v2.1.7已修复


pkgsi686Linux.gdb: disable format hardening on 32-bit systems

A few rare targets don't have clean format strings on 32-bit systems:
https://github.com/NixOS/nixpkgs/pull/171216#issuecomment-1133541978
/build/gdb-12.1/_build/sim/../../sim/cris/sim-if.c:575:28:
  error: format '%lx' expects argument of type 'long unsigned int',
    but argument 4 has type 'bfd_size_type' {aka 'long long unsigned int'} [-Werror=format=]

Let's disable format hardening on 32-bit systems until it's fixed upstream.
While at it disabled -Werror to avoid failures on newer and exotic
toolchain versions.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I hope it at least won't crash when reaching those prints.

Yeah, looking at the affected format strings at https://sourceware.org/pipermail/gdb-patches/2022-May/189288.html they only attempt to print digits and don't chase any pointers.

The disable-werror is really nice, but won't this cause a large number of rebuilds while we're trying to cut a release?
Could also target staging with that, maybe. Not sure what's best though.
(ca-derivations when? 😜)

I dunno. rebuild-amount.sh says it's ~7K packages being rebuilt. Does not sound too high for staging-next.

We most likely want some fix for 32-bit gdb on staging-next already – that's going to 22.05, contrary to current staging.
Perhaps the fix could be conditional at this very moment, as I don't like delaying the release process.
Why did you choose for this instead of fixing by the patch when you've written it already?  (I might find some time to review the patch a bit in that case, too.)

We most likely want some fix for 32-bit gdb on staging-next already – that's going to 22.05, contrary to current staging.
Perhaps the fix could be conditional at this very moment, as I don't like delaying the release process.

Sounds good. Retargeted against staging-next.

Why did you choose for this instead of fixing by the patch when you've written it already?  (I might find some time to review the patch a bit in that case, too.)

I wrote the patch after the formatting hack and was not sure when it gets accepted upstream.
I added the patch to nixpkgs repository and applied it conditionally.

OK, so looking at the gdb diff, the main thing is length check by the compiler :-) so as the build now passes on both x86 linuxes, I believe the lengths are correct now.  (On those platforms at least, but I don't expect variability in these sizes among platforms of the same pointer length.)


zoom-us: 5.5.7011.0206 → 5.5.7938.0228

Motivation for this change
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 115065 at c722c4fd run on x86_64-linux 1

1 package built:

zoom-us

1 suggestion:

warning: unused-argument
Unused argument: fetchFromGitHub.
Near pkgs/applications/networking/instant-messengers/zoom-us/default.nix:5:3:
  |
5 | , fetchFromGitHub
  |   ^


tmt: ask for bigger disks and get "df -h" output after testing

The tests are currently running out of disk space inside the testing-farm environment. This commit should help debug this by adding df -h output after the test is run.
It also asks for 200GB disk space (which is probably way more than we need). Note that the docs say that the size is 250GB by default for things running inside the RH ranch so this might be redunant [1].
[1] https://docs.testing-farm.io/Testing Farm/0.1/test-request.html#hardware

Seems to still be failing with the same error.

It's only happening for the AMI, which might be one of or a combination of two differences:

The ami is raw so it's much larger (10 GiB).
The /output volume isn't mapped to the host, so wherever the container store is mounted might not have enough space, even if the system root is big enough.

I'm having trouble finding the output of df -h.

It's only happening for the AMI, which might be one of or a combination of two differences:
1. The ami is raw so it's much larger (10 GiB).

2. The `/output` volume isn't mapped to the host, so wherever the container store is mounted might not have enough space, even if the system root is big enough.

I'm having trouble finding the output of df -h.
EDIT: It's in the finish stage. Does that also run on failure?

It's a bit sad, I don't know why "finish" is not run, according to the source code comment in https://github.com/teemtee/tmt/blob/main/tmt/steps/finish/init.py#L78 it should run even when the previous steps failed. I will debug this some more.

So fun times, the size is still not right but also fedora-booc:eln install is currently broken, it does not boot and random services fail randomly, running e.g. loadkeys in a debug shell results in error while loading shared libraries: libc.so.6: cannot open shared object file: permission denied. Seems selinux related, disabling selinux make the error go away and then dmesg shows a lot of selinux denials related to { getattr } and { search } for ssh-keygen and dev=overlay. I cannot paste proper logs right now as I only have a qemu GUI window, no serial shell or anything :/

Hmmm...will look at that

I addressed the disk-full issue with one more patch by ensuring we use /var/tmp - /tmp comes from a 4GB tmpfs so the ENOSPC issue seems to be caused by this. We also get a 40GB disk now which is not the 120GB we asked for but better than the 15GB we had before. I will ask the tmt team if there is some sort of cap on the resources one can request. Progress :)

Hmmm...will look at that

Please let me know if I can help in any way!

@mvo5 haven't reproduced yet but one thing it likely relates to is https://github.com/CentOS/centos-bootc/commit/e6761c23bc61262b88dfe9fe081252faf7a885dc combined with me just releasing a new ostree into rawhide (and hence ELN) which actually turns this on.  It means that / is an overlayfs by default.  However, my test instance upgraded to this just fine, though there may be some skew.  Looking.

Let's track this in https://github.com/CentOS/centos-bootc/issues/184

OK so turns out it's an issue here :smile: see the latest in https://github.com/CentOS/centos-bootc/issues/184
But...I will back out this change temporarily until we fix things here.

OK so turns out it's an issue here 😄 see the latest in CentOS/centos-bootc#184
But...I will back out this change temporarily until we fix things here.

This PR should get in regardless (it's just changing testing infra).
I think we should keep the change in the container and focus on fixing the issue rather than reverting and risking forgetting about it or kicking the can down the road.


Remove the ticket delegator components.

Closes #1672

Looks great to me. I'll leave it to @frett to verify and proceed.

just loading up the jpa ticket registry breaks the webapp at the moment for me. doing a bit more investigating.

Working on a few test cases that are now breaking when registries attempt to delete TGTs and children.

I'm going to try and make some time this weekend to verify functionality in JPA after the couple tweaks @mmoayyed made last night

And I'm looking at some of the Oauth test failures

There you go @mmoayyed - that's the SSL tests failing I discovered a bit ago with untrustworthy cert of https://www.cacert.org
We should just find a good resource with good SSL cert or just disable those tests relying on https://www.cacert.org for now. Otherwise we'll be getting failing builds...

So the trick with that test is that, it actually wants a broken URL. The story is: here is a URL we are trying to reach out to where it has no valid cert publicly, but we have a valid cert for it in a local truststore that we use. So the test is trying to verify that CAS can use its local truststore to reach out to the URL and use the cert in that store.
Of course, relying on an external resource to verify that for us is painful because it can break at random which appears to be the case here.

And so how do we deal about it here - to make the build succeed?

Pushed some tweaks; going to let Travis do its thing.

All tests passing :)
So to get the SSL test fixed, I pulled down the new cert for the endpoint, imported it into the local keystore of CAS and removed the previous entry. Then modified Travis to enable a java.security file in the installed Oracle JDK to allow the cert o the loaded (because the cert uses algs and such that are not supported by JDK8 by default)

Good stuff, but still, this SSL dependency for the tests is very .. what's the word .. fragile :-)

Oh, and what do we (I) do to make the tests pass locally (detailed instructions, please)? :-)

I'm getting Transaction required errors when trying to login using a simple ticket registry:
2016-04-23 16:59:14,817 ERROR [org.jasig.cas.ticket.registry.JpaTicketRegistry] - <Error getting ticket [TGT-**********************************************fcxJ6Op2yM-cas01.example.org, javax.persistence.TransactionRequiredException: no transaction is in progress] from registry.>

well, it appears that the JPA error is on master as well.

fixed a couple JPA issues on master that showed up when testing. I'm done for the night, hopefully I'll get a chance to continue testing tomorrow with the JPA fixes in place to see what still needs to be done.

Going to merge in, so we can resume testing on master with all changes in one place.


improve: reuse Arc<dyn Array> in parquet record batch reader.

Both in arrow_reader and async_reader, if there are predicates, the reader will first read arrays (wrapped in RecordBatch) to evaluate the predicates and get a row selection. And then the reader will use the row selection to output the final needed arrays.
If some arrays in the final output are contained in the prefetched arrays, we also have to deserialize them again. This is quite wasteful.
We should have a reasonable way to reuse the arrays.

In my opinion, we can store the primitive arrays in the memory, and combine them into a RecordBatch when needed.

The challenge is bounding the memory usage of the reader and balancing this against the cost of decoding, which for primitives is relatively low. I don't think it is as simple as "keep the arrays around", it will probably require some sort of heuristic

The challenge is bounding the memory usage of the reader and balancing this against the cost of decoding

We can only save the arrays we need to output and release the others.

which for primitives is relatively low

Besides decoding there is also decompression. And it may become a large cost for variable-length type like string.

it will probably require some sort of heuristic

Yes. Such as all the output arrays are contained in predicate arrays.

We can only keep the arrays we need to output and release the others.

That is still potentially a non-trivial amount of data, it could theoretically be an entire column chunk worth :sweat_smile:
Perhaps we could add a configurable threshold of the maximum number of bytes to keep around in this way, and fallback to decoding columns again if this threshold is exceeded?

🎣  -- I believe @XiangpengHao was thinking about working on this (I know you have a paper to write too, etc lol)


The kernel sources are compiled into both MICROLITE_LIB_OBJS and MICROLITE_KERNELS_OBJS

System information

Host OS Platform and Distribution: Ubuntu 18.04
TensorFlow installed from: source
Tensorflow version (commit SHA if source): e172d86

Describe the problem
We've noticed that the kernel sources seems to be compiled into both the MICROLITE_LIB_OBJS and MICROLITE_KERNEL_OBJS. This leads to the kernels sources being compiled with both CORE_OPTIMIZATION_LEVEL (-Os) and KERNEL_OPTIMIZATION_LEVEL (-O2) depending on which object file they're found in.
This might lead to the final binary using kernel source being built with -Os, instead of -O2 which means that the execution of the kernels will be slower. armclang will also display a warning saying L6876W: Minor variants of archive member '<member>' include multiple base variants
Removing line 612 from tensorflow/lite/micro/tools/make/Makefile seems to solve the issue at first glance.
Please provide the exact sequence of commands/steps when you ran into the problem
$ make -f tensorflow/lite/micro/tools/make/Makefile TARGET=cortex_m_corstone_300 TARGET_ARCH=cortex-m55 BUILD_TYPE=release_with_logs TOOLCHAIN=armclang test_hello_world_test

The problem seems to be a bit more complex than the proposed solution. If I run the script tensorflow/lite/micro/tools/ci_build/test_all.sh, the Arduino build fails with the following errors:
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:118: undefined reference to `tflite::ops::micro::Register_ABS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:123: undefined reference to `tflite::ops::micro::Register_ADD()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:128: undefined reference to `tflite::Register_ADD_N()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:134: undefined reference to `tflite::ops::micro::Register_ARG_MAX()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:139: undefined reference to `tflite::ops::micro::Register_ARG_MIN()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:144: undefined reference to `tflite::Register_AVERAGE_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:149: undefined reference to `tflite::Register_BATCH_TO_SPACE_ND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:157: undefined reference to `tflite::ops::micro::Register_CEIL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:168: undefined reference to `tflite::ops::micro::Register_CONCATENATION()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:173: undefined reference to `tflite::Register_CONV_2D()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:178: undefined reference to `tflite::ops::micro::Register_COS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:183: undefined reference to `tflite::Register_CUMSUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:189: undefined reference to `tflite::Register_DEPTH_TO_SPACE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:194: undefined reference to `tflite::Register_DEPTHWISE_CONV_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:199: undefined reference to `tflite::ops::micro::Register_DEQUANTIZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:204: undefined reference to `tflite::Register_DETECTION_POSTPROCESS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:209: undefined reference to `tflite::Register_ELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:214: undefined reference to `tflite::ops::micro::Register_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:218: undefined reference to `tflite::Register_ETHOSU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:220: undefined reference to `tflite::GetString_ETHOSU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:240: undefined reference to `tflite::ops::micro::Register_FLOOR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:244: undefined reference to `tflite::Register_FLOOR_DIV()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:249: undefined reference to `tflite::Register_FLOOR_MOD()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:254: undefined reference to `tflite::Register_FULLY_CONNECTED()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:271: undefined reference to `tflite::ops::micro::Register_GREATER()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:276: undefined reference to `tflite::ops::micro::Register_GREATER_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:282: undefined reference to `tflite::ops::micro::Register_HARD_SWISH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:292: undefined reference to `tflite::ops::micro::Register_L2_NORMALIZATION()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:297: undefined reference to `tflite::Register_L2_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:302: undefined reference to `tflite::Register_LEAKY_RELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:307: undefined reference to `tflite::ops::micro::Register_LESS()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:313: undefined reference to `tflite::ops::micro::Register_LESS_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:318: undefined reference to `tflite::ops::micro::Register_LOG()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:324: undefined reference to `tflite::ops::micro::Register_LOGICAL_AND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:330: undefined reference to `tflite::ops::micro::Register_LOGICAL_NOT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:336: undefined reference to `tflite::ops::micro::Register_LOGICAL_OR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:342: undefined reference to `tflite::ops::micro::Register_LOGISTIC()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:352: undefined reference to `tflite::Register_MAX_POOL_2D()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:347: undefined reference to `tflite::ops::micro::Register_MAXIMUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:356: undefined reference to `tflite::ops::micro::Register_MEAN()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:362: undefined reference to `tflite::ops::micro::Register_MINIMUM()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:366: undefined reference to `tflite::ops::micro::Register_MUL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:371: undefined reference to `tflite::ops::micro::Register_NEG()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:377: undefined reference to `tflite::ops::micro::Register_NOT_EQUAL()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:381: undefined reference to `tflite::ops::micro::Register_PACK()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:386: undefined reference to `tflite::ops::micro::Register_PAD()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:392: undefined reference to `tflite::ops::micro::Register_PADV2()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:397: undefined reference to `tflite::ops::micro::Register_PRELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:401: undefined reference to `tflite::Register_QUANTIZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:407: undefined reference to `tflite::ops::micro::Register_REDUCE_MAX()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:411: undefined reference to `tflite::ops::micro::Register_RELU()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:417: undefined reference to `tflite::ops::micro::Register_RELU6()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:422: undefined reference to `tflite::ops::micro::Register_RESHAPE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:427: undefined reference to `tflite::Register_RESIZE_BILINEAR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:432: undefined reference to `tflite::ops::micro::Register_RESIZE_NEAREST_NEIGHBOR()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:438: undefined reference to `tflite::ops::micro::Register_ROUND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:443: undefined reference to `tflite::ops::micro::Register_RSQRT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:447: undefined reference to `tflite::Register_SHAPE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:451: undefined reference to `tflite::ops::micro::Register_SIN()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:456: undefined reference to `tflite::Register_SOFTMAX()'
/tmp/tflite-arduino-build/libraries/tensorflow_lite/tensorflow/lite/micro/all_ops_resolver.cpp.o: In function `tflite::AllOpsResolver::AllOpsResolver()':
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:462: undefined reference to `tflite::Register_SPACE_TO_BATCH_ND()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:466: undefined reference to `tflite::Register_SPACE_TO_DEPTH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:472: undefined reference to `tflite::ops::micro::Register_SPLIT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:477: undefined reference to `tflite::ops::micro::Register_SPLIT_V()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:486: undefined reference to `tflite::ops::micro::Register_SQRT()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:492: undefined reference to `tflite::ops::micro::Register_SQUARE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:481: undefined reference to `tflite::Register_SQUEEZE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:497: undefined reference to `tflite::ops::micro::Register_STRIDED_SLICE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:502: undefined reference to `tflite::ops::micro::Register_SUB()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:507: undefined reference to `tflite::Register_SVDF()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:511: undefined reference to `tflite::ops::micro::Register_TANH()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:517: undefined reference to `tflite::Register_TRANSPOSE_CONV()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:521: undefined reference to `tflite::Register_TRANSPOSE()'
/home/username/Arduino/libraries/tensorflow_lite/src/tensorflow/lite/micro/micro_mutable_op_resolver.h:527: undefined reference to `tflite::ops::micro::Register_UNPACK()'
collect2: error: ld returned 1 exit status
Multiple libraries were found for "TensorFlowLite.h"
 Used: /home/username/Arduino/libraries/tensorflow_lite
Error: build failed: exit status 1
Error during build
Cleaning up to prevent Kokoro errors (see http://b/186570469)
find: ‘../google/’: No such file or directory
rm -rf tensorflow/lite/micro/tools/make/gen
rm -rf tensorflow/lite/micro/tools/make/downloads

Thanks for creating the issue. We'll look into this.

Looks like an error on my part during the Makefile source refactor. Your change plus adding MICROLITE_CC_KERNEL_SRCS to ALL_SRCS (Makefile line 614) appears to fix the issue.

The issue seems to persist even with those changes (if I ran the github actions correctly, it's the first time I tried):
https://github.com/jenselofsson/tflite-micro/runs/3018202702?check_suite_focus=true
I tried looking around in the test scripts and in the Makefile to see if I could spot if anything is needed particularly related to Arduino, but i couldn't find anything obvious (although I'm not too experienced with how the Arduino build system works).


Sourcemap from bundle is not utf-8 encoded

This can be seen in sourcemap

This is the actual bundle generated

The letter å is wrong. Not sure if it's Webpack's fault or Sourcemap's?
Using Linux if that matters. Using devtool: '#source-map'
This is a letter only used in comments, not actual source, so shouldn't be a real problem.

https://github.com/webpack/webpack/blob/master/lib/SourceMapDevToolPlugin.js#L155
"utf-8" missing here. Would you like the write a PR?

@sokra Sure, but I'm unsure where you mean I should put utf-8? Default encoding is utf-8 (https://nodejs.org/api/buffer.html#buffer_new_buffer_str_encoding & https://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end)

Looking at the Buffer documentation, I would guess that all you need to do is add "utf-8" as the second parameter. However, that appears to be the default, so there is likely some other place it needs to be added.

i think same issue here: https://github.com/webpack/webpack/issues/859

I came across this issue because I had a Unicode code point in my javascript that was being scrambled as â–¾.
bundle.js: console.log("▾");
main.js: console.log("\u25BE").
My workaround: console.log(String.fromCodePoint(0x25BE))
The workaround prevents webpack from unescaping the code point, and makes it to display correctly.

Did you send the correct UTF-8 HTTP Header from your server? Or did you add the utf-8 meta tag to the HTML page?

I'm still getting this issue. Specifically some files being produced are non-utf8 so they cannot be understood by Sentry when I'm uploading them as release artifacts.
That aside, from what I can gather the PR #1797 just seems to fix them when they're data-uri sourcemaps? How can I ensure that all files webpack outputs are utf-8 (using Windows)?

Is this valid still? I can see the related PR was merged.

Seeing as @rickihastings stil had the issue a couple of months later, probably not.

I'm also having this issue, and like @rickihastings, I came upon this issue due to my source map not being readable by Sentry because the file is not utf8. I'm currently using Webpack 1.13.0 on macOS Sierra. I'm going to try updating to Webpack 1.14.0 and seeing if that resolves this issue - if it does then I'll report back here.

@jordanmkoncz did it worked for you ?

@bebraw I believe this issue is still valid. I'm using<EMAIL_ADDRESS>and I've got a multi-entry configuration. When I run file -bi *.map I can see that not all sourcemap files are in utf-8.
text/plain; charset=us-ascii
text/plain; charset=us-ascii
text/plain; charset=utf-8
text/plain; charset=us-ascii
text/plain; charset=utf-8
text/plain; charset=us-ascii
text/plain; charset=utf-8

What could cause a sourcemap file encoded in non-utf8 character set?

Not sure if this is related, but I just fond I need to add charset="utf-8" to the bundle.js script tag:

Without the charset attribute, I get weird characters even with just ■

Also running into this. Doesn't seem to be any pattern, i have files either encoded as utf-8 or us-ascii.
0.e6063d8a791459c43093.chunk.js.map:                 text/plain; charset=us-ascii
1.e6063d8a791459c43093.chunk.js.map:                 text/plain; charset=utf-8
10.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
11.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
12.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
13.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
14.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
15.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=utf-8
16.e6063d8a791459c43093.chunk.js.map:                text/plain; charset=us-ascii

In fact, this is not limited to source maps. My bundles are also scattered, some utf-8, some us-ascii. I'd like them to all be utf-8 encoded. Can this be forced?

They are always utf-8 encoded. If you only use characters from the ascii range, us-ascii and utf-8 encoding look equal.
> Buffer.from("abc", "utf-8")
<Buffer 61 62 63>
> Buffer.from("abc", "ascii")
<Buffer 61 62 63>

> Buffer.from("abcä", "ascii")
<Buffer 61 62 63 e4>
> Buffer.from("abcä", "utf-8")
<Buffer 61 62 63 c3 a4>

hmm, interesting. I am trying to use a tool (sentry-cli) that uploads sourcemaps and it explodes saying "stream did not contain valid UTF-8". Might be something specific on their end in that case.

Thank you. Was facing the same problem  text/plain; charset=utf-8 solved similar problem in our code. Cheers!


proxy is not forwarding anything

This code in ProxyRepositoryReader is wrong.  Need to remove the bang.
            if (!isTerminated()) {
                return;
            }```

Fixed


Garfield not working

Seems like Garfield has stopped working, throws an error.

Fixed now in version 1.5.6


EDNS-Client-Subnet Issue

Hello,
I have tried working with the example for EDNS-Client-Subnet, and it seems to be bogus. I am using the experimental version of Unbound that supports ECS, configured and verified using the patch for dig to support ECS. When I try the example here, the log file of my Unbound has the following six lines:
[1455302241] unbound[1398:12] info: <IP_ADDRESS> www.google.com. AAAA IN
[1455302241] unbound[1398:12] debug: worker parse edns: formerror.
[1455302241] unbound[1398:12] debug: from ip4 <IP_ADDRESS> port 40128 (len 16)
[1455302241] unbound[1398:1d] info: <IP_ADDRESS> www.google.com. A IN
[1455302241] unbound[1398:1d] debug: worker parse edns: formerror.
[1455302241] unbound[1398:1d] debug: from ip4 <IP_ADDRESS> port 43008 (len 16)

I am using Debian Jessie for Unbound and Debian Stretch for getdns. All my code is in Python.
I am also attaching the output from tcpdump:
getdns
Domain Name System (query)
    Transaction ID: 0xb8e1
    Flags: 0x0100 Standard query
        0... .... .... .... = Response: Message is a query
        .000 0... .... .... = Opcode: Standard query (0)
        .... ..0. .... .... = Truncated: Message is not truncated
        .... ...1 .... .... = Recursion desired: Do query recursively
        .... .... .0.. .... = Z: reserved (0)
        .... .... ...0 .... = Non-authenticated data: Unacceptable
    Questions: 1
    Answer RRs: 0
    Authority RRs: 0
    Additional RRs: 1
    Queries
        www.google.com: type AAAA, class IN
            Name: www.google.com
            [Name Length: 14]
            [Label Count: 3]
            Type: AAAA (IPv6 Address) (28)
            Class: IN (0x0001)
    Additional records
        <Root>: type OPT
            Name: <Root>
            Type: OPT (41)
            UDP payload size: 1432
            Higher bits in extended RCODE: 0x00
            EDNS0 version: 0
            Z: 0x0000
                0... .... .... .... = DO bit: Cannot handle DNSSEC security RRs
                .000 0000 0000 0000 = Reserved: 0x0000
            Data length: 12
            Option: CSUBNET - Client subnet
                Option Code: CSUBNET - Client subnet (8)
                Option Length: 8
                Option Data: Data: ********c3fba30a
                Family: IPv4 (1)
                Source Netmask: 24
                Scope Netmask: 0
                Client Subnet: *.*.163.10 (*.*.163.10)

dig
Domain Name System (query)
    Transaction ID: 0xed45
    Flags: 0x0120 Standard query
        0... .... .... .... = Response: Message is a query
        .000 0... .... .... = Opcode: Standard query (0)
        .... ..0. 1. .... = AD bit: Set
        .... .... ...0 .... = Non-authenticated data: Unacceptable
    Questions: 1
    Answer RRs: 0
    Authority RRs: 0
    Additional RRs: 1
    Queries
        www.google.com: type A, class IN
            Name: www.google.com
            [Name Length: 14]
            [Label Count: 3]
            Type: A (Host Address) (1)
            Class: IN (0x0001)
    Additional records
        <Root>: type OPT
            Name: <Root>
            Type: OPT (41)
            UDP payload size: 4096
            Higher bits in extended RCODE: 0x00
            EDNS0 version: 0
            Z: 0x0000
                0... .... .... .... = DO bit: Cannot handle DNSSEC security RRs
                .000 0000 0000 0000 = Reserved: 0x0000
            Data length: 11
            Option: CSUBNET - Client subnet
                Option Code: CSUBNET - Client subnet (8)
                Option Length: 7
                Option Data: ********c3fba3
                Family: IPv4 (1)
                Source Netmask: 24
                Scope Netmask: 0
                Client Subnet: *.*.163.0 (*.*.163.0)

The only obvious difference is in the Data length, Option Data and Option Length as far as I can tell.

I checked in some code earlier this week to fix problems with decoding packed strings, and I merged it into the master branch last night.  If you haven't pulled it down already, please give it a try now and see if that fixes your problem.  If you have, please grab the outbound packets with tcpdump, wireshark, or something compatible and I'll have a look at them.

I used apt-get install getdns and my version is (maybe?) 'version_string': '0.9.0' from c.get_api_information(). I will get the pcaps as soon as possible!

You definitely need the newer code, then - it was just merged into master last night and there's been no release done yet.  If it would make it easier I can put out a minor release right now but you'll still need to build it.

It would be great if you could put out the release. I will try to build it as soon as possible! Trying some workaround at the moment, but I am not too confident it will save the problem! By the way, are you referring to getdns itself or the python binding?

I just put out a new release, v0.6.1, here:  https://github.com/getdnsapi/getdns-python-bindings/releases/tag/v0.6.1 .  Definitely let me know how it goes!

Works as intended! No problem with Unbound!
Thank you so much for your prompt reply :)

Great!  Don't hesitate to let us know if anything else comes up, or if you've identified features you'd like to see added.


Validate multiple claims in an allow rule?

How amenable are you to having caddy-jwt be able to validate multiple claims?  Any particular rules if I were to work on this and submit a PR?
Scenario: have set up Caddy using caddy-jwt and tarent/loginsrv where the latter can speak to multiple OAuth2 providers.  I have GitHub configured, I'd like to configure an alternative to use, but at present it looks like the allow rules would mean that if I add a second provider then someone in that provider who has the same login name (sub) from one of my valid users in the first-provider would then be authorized.
So I want to be able to assert both the origin and the sub at the same time.
Is this functionality in-scope for this plugin or should I be looking at some other generic authorization plugin, layered atop caddy-jwt, instead?
Tentatively thinking that an AccessRule would have a slice of Claim, Value pairs and validation would check that the length of remaining args is zero modulo 2, instead of being exactly 2, and adjust what's stored to match the adjusted model; then amend the AccessRules evaluation in jwt.go.  Sound sane?

Hi Phil,
I think this could work.  Although I think it might be easier to add a new directive to the Caddyfile for processing multiple concurrent claims instead of modifying the behavior of the current allow and deny.
Something like:
allow_only sub=person origin=github

I don't think you would need a corresponding deny rule to implement this same behavior, so it would be pretty easy to add as a separate step in the process and not have to touch any of the existing tests.


[NuGet.org Bug]: Scroll bars on graphs on https://www.nuget.org/stats

Impact
It bothers me. A fix would be nice
Describe the bug
There are vertical scroll bars on the graphs:

Ideally, we won't need them.
Repro Steps
Open https://www.nuget.org/stats and scroll down to the graphs.
Expected Behavior
No scroll bars
Screenshots
No response
Additional Context and logs
No response

@martinrrm
Could please confirm if this one is related to Dark theme change or not?


PYP 20/21 s1: Lazy Evaluation

Source
AY 20/21 sem 1
Description
Hi guys, since there are no available answers for this paper, let's discuss! The question is attached below alongside snippets of LazyList.java. What would y'alls answers be? and how do you approach this question? Help me out haha
Screenshots (if any):

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed
b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed
c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

Great and useful technique mentioned by Brendan !!

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

@BrendanCheong Can i check how did you manage to open LazyList.java? I'm trying out what you suggested on jshell but im not sure how to resolve these errors?

I tried jpp LazyList.java but somehow my terminal says the command can't be found hmm...

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

@BrendanCheong Can i check how did you manage to open LazyList.java? I'm trying out what you suggested on jshell but im not sure how to resolve these errors?

I tried jpp LazyList.java but somehow my terminal says the command can't be found hmm...

Do bash jpp LazyList.java instead to compile

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

@BrendanCheong Can i check how did you manage to open LazyList.java? I'm trying out what you suggested on jshell but im not sure how to resolve these errors?

I tried jpp LazyList.java but somehow my terminal says the command can't be found hmm...

Do bash jpp LazyList.java instead to compile

ohhh hmmm okok it works but how did you make the file open in jshell though? My jshell still flags out all the errors :(

Hi can I ask where to find this paper? The latest paper I could find on nuslib is 1930sem1 special term😢

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

@BrendanCheong Can i check how did you manage to open LazyList.java? I'm trying out what you suggested on jshell but im not sure how to resolve these errors?

I tried jpp LazyList.java but somehow my terminal says the command can't be found hmm...

Do bash jpp LazyList.java instead to compile

ohhh hmmm okok the compilation works but how did you make the file open in jshell though? My jshell still flags out all the errors :(

when you do the command it creates a proccessed folder with the proccessed LazyList.java, so you have to cd into that folder and open it from there in jshell

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

@BrendanCheong Can i check how did you manage to open LazyList.java? I'm trying out what you suggested on jshell but im not sure how to resolve these errors?

I tried jpp LazyList.java but somehow my terminal says the command can't be found hmm...

Do bash jpp LazyList.java instead to compile

oh lord I'm definitely screwed LMAO- please help xD

Lol, calm down guys. The reason /open LazyList.java is failiing is because LazyList.java contains Thunk which is not something that belongs to Java. It's a macro that will be swapped in with the real code  when u run the jpp script. The reason why running the jpp script is failing for some is likely cus chmod was not done before running the script. For simplicity sake, here's the processed script
import java.util.function.Supplier;
import java.util.function.Consumer;
import java.lang.IllegalStateException;
import java.util.List;
import java.util.Arrays;
import java.util.function.Function;
import java.util.function.BiFunction;
import java.util.function.Predicate;
import java.util.function.BinaryOperator;
import java.util.Scanner;

public class LazyList<T> {
    private final T head;
    private final Supplier<LazyList<T> > tail;
    private final boolean amIEmpty;

    public LazyList(T a, Supplier<LazyList<T> > b) {
        this.head = a;
        this.tail = b;
        this.amIEmpty = false;
    }

    private LazyList() {
        this.head = null;
        this.tail = null;
        this.amIEmpty = true;
    }

    public static <T> T thaw(Supplier<T> ice) {
        return ice.get();
    }

    public static <T> LazyList<T> makeEmpty() {
        return new LazyList<T>();
    }

    public T head() {
        if (this.isEmpty())
            throw new IllegalArgumentException("head() called on empty list!");

        return this.head;
    }

    public LazyList<T> tail() {
        if (this.isEmpty())
            throw new IllegalArgumentException("tail() called on empty list!");
        return thaw(this.tail);
    }

    public boolean isEmpty() {
        return this.amIEmpty;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        else if (obj instanceof LazyList) {
            LazyList<?> ll = (LazyList<?>) obj;
            return this.hasSameContent(ll);
        }
        else
            return false;
    }

    public boolean hasSameContent(LazyList<?> other) {
        if (this.isEmpty() && other.isEmpty())
            return true;
        else if (!this.isEmpty() && !other.isEmpty())
            return this.head().equals(other.head()) &&
                this.tail().hasSameContent(other.tail());
        else
            return false;
    }

    @Override
    public String toString() {
        if (this.isEmpty())
            return "**empty**";
        return String.format("head: %s, tail: thunk!%s",
                             this.head.toString(), this.tail.toString());
    }

    public void print() {
        LazyList<T> me = this;
        System.out.printf("(* ");
        while (!me.isEmpty()) {
            System.out.printf("%s, ", me.head());
            me = me.tail();
        }
        System.out.println("*)");
    }

    @SafeVarargs
    public static <T> LazyList<T> fromList(T ... items) {
        List<T> list = Arrays.asList(items);
        return helper(list);
    }

    private static <T> LazyList<T> helper(List<T> list) {
        if (list.isEmpty())
            return LazyList.makeEmpty();
        else
            return new LazyList<>((list.get(0)), ( ()->(helper(list.subList(1,list.size()))) ))
                                                              ;
    }

    public <R> LazyList<R> map(Function<T,R> f) {
        if (this.isEmpty())
            return LazyList.makeEmpty();
        else
            return new LazyList<>((f.apply(this.head())), ( ()->(this.tail().map(f)) ))
                                             ;
    }

    public <R> LazyList<R> flatmap(Function<T, LazyList<R>> f) {
        if (this.isEmpty())
            return LazyList.makeEmpty();
        else
            return f.apply(this.head())
                .concat(this.tail().flatmap(f));
    }

    public LazyList<T> filter(Predicate<T> pred) {
        if (this.isEmpty())
            return LazyList.makeEmpty();
        else if (pred.test(this.head()))
            return new LazyList<>((this.head()), ( ()->(this.tail().filter(pred)) ))
                                                   ;
        else
            return this.tail().filter(pred);
    }

    public LazyList<T> limit(long maxSize) {
        if (maxSize == 0)
            return LazyList.makeEmpty();
        else
            return new LazyList<>((this.head()), ( ()->(this.tail().limit(maxSize - 1)) ))
                                                         ;
    }

    public LazyList<T> elementWiseCombine(LazyList<T> other,
                                  BinaryOperator<T> binOp) {
        if (this.isEmpty() || other.isEmpty())
            return LazyList.makeEmpty();
        else
            return new LazyList<>((binOp.apply(this.head(), other.head())), ( ()->(this.tail().elementWiseCombine(other.tail(), binOp)) ))
                                                                              ;
    }

    public T get(int idx) {
        if (this.isEmpty() || idx < 0)
            return null;
        else if (idx == 0)
            return this.head();
        else
            return this.tail().get(idx - 1);
    }

    public static LazyList<Integer> intRange(int a, int b) {
        if (a >= b)
            return LazyList.makeEmpty();
        else
            return new LazyList<>((a), ( ()->(intRange(a + 1, b)) ));
    }

    public LazyList<T> concat(LazyList<T> other) {
        if (this.isEmpty())
            return other;
        else
            return new LazyList<>((this.head()), ( ()->(this.tail().concat(other)) ))
                                                    ;
    }

    public void forEach(Consumer<T> eat) {
        if (this.isEmpty())
            return;
        else {
            eat.accept(this.head());
            this.tail().forEach(eat);
        }
    }

    public T reduce(T identity, BinaryOperator<T> accumulator) {
        if (this.isEmpty())
            return identity;
        else
            return accumulator.apply(this.head(),
                                     this.tail().reduce(identity,
                                                        accumulator));
    }
}

Hi, just checking where did you guys find the paper?

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

I did the same thing but it seems that the printed number for (b) map method is 10 instead of 5, wonder is there anything wrong 👀 ?
jshell> LazyList.intRange(10,20).map(n -> {System.out.println(n); return 50-n;}).filter(n ->n < 20)
10
11
12
13
14
15
16
17
18
19

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

I did the same thing but it seems that the printed number for (b) map method is 10 instead of 5, wonder is there anything wrong 👀 ?
jshell> LazyList.intRange(10,20).map(n -> {System.out.println(n); return 50-n;}).filter(n ->n < 20) 10 11 12 13 14 15 16 17 18 19

your testcase is wrong haha, it's range 2, 100 and the map and filter criteria are different too :)

a) 2, I just added a System.out.println(n) in the filter statement and counted the number of times its printed b) 5, same technique in a), do System.out.println(x) in the map statement and count number of times its printed c)
public long count() {
    return this.
        .map((x) -> 1L)
        .reduce(0L, (x, y) -> x + y);
}

d) dunno lol

I did the same thing but it seems that the printed number for (b) map method is 10 instead of 5, wonder is there anything wrong 👀 ?
jshell> LazyList.intRange(10,20).map(n -> {System.out.println(n); return 50-n;}).filter(n ->n < 20) 10 11 12 13 14 15 16 17 18 19

your testcase is wrong haha, it's range 2, 100 and the map and filter criteria are different too :)

wow alright ....but it is indeed range 10, 20 on the pdf of the paper I got from my tutor 😂 ......anyway, doesn't matter hahaha

I know we can use print statements for (a) and (b), but can anyone explain how the answer is derived? Thanks!

<T> LazyList<LazyList<T>> choose(LazyList<T> LL, int r) {
        if (r == 0)
            return LLmake(LazyList.makeEmpty(), LazyList.makeEmpty());
        else if (LL.isEmpty())
            return LazyList.makeEmpty();
        else {
            T head = LL.head();
            LazyList<T> rm = remove(LL, head);
            return choose(rm, r - 1)
                    .map(y -> LLmake(head, y))
                    .concat(choose(rm, r));
        }
    }

sol for the r-combination if anyone is interested.

public LazyList<T> filter(Predicate<T> pred) {
    if (this.isEmpty())
        return LazyList.makeEmpty();
    else if (pred.test(this.head()))
        return LLmake(this.head(),
                        this.tail().filter(pred));
    else
        return this.tail().filter(pred);
}

For part (a) we can see that if the current list is not empty, pred will always be called once, if it gives false, it will call the next filter on the tail.
so for intRange(101,200)
pred will be called on 101 -> 101%2 == 0 gives false, so it will call filter on tail
102 % 2 == 0 is true. and execution stops.
so filter will be eval twice.

for part (b)
public <R> LazyList<R> map(Function<T,R> f) {
    if (this.isEmpty())
        return LazyList.makeEmpty();
    else
        return LLmake(f.apply(this.head()),
                        this.tail().map(f));
}

For part(b) map functions normally in this case except the head will always be eagerly eval if it is not empty.
so we have numbers 10 to 19 from int range. Since for all numbers in that range, 50 - that number will always be larger than 20, the filter will always give false. So it will essentially exhaust the int range numbers and map will be called 10 times.

for part (b)
public <R> LazyList<R> map(Function<T,R> f) {
    if (this.isEmpty())
        return LazyList.makeEmpty();
    else
        return LLmake(f.apply(this.head()),
                        this.tail().map(f));
}

For part(b) map functions normally in this case except the head will always be eagerly eval if it is not empty.
so we have numbers 10 to 19 from int range. Since for all numbers in that range, 50 - that number will always be larger than 20, the filter will always give false. So it will essentially exhaust the int range numbers and map will be called 10 times.

I thought it should be 5 times? Or are we talking about a different stream?

It seems to be 2 different version of the question in the same paper floating around lul.


GDScript 2.0: Zero vector when using const instead of var in a specific scenario

Godot version
4.0.alpha5.official (d7d528c15)
System information
Windows 10 Pro 21H1
Issue description
In a very specific scenario, using const instead of var in GDScript changes the outcome, resulting in a created vector incorrectly being a zero vector. Using const instead of var should only affect the mutability of the variable, not the result of the operation.
Steps to reproduce
The following code should work in any attached script. I have tested it in the _ready() function of two unrelated scene objects.
Incorrect, with const
const COUNT = 10
const DIV = 5
for a in range(ceil(COUNT / DIV)):
	var vec = Vector3i(a, a, a)
	print(vec, " ", a, " ", COUNT, " ", DIV)

incorrectly prints
(0, 0, 0) 0 10 5
(0, 0, 0) 1 10 5

Correct, with var
const COUNT = 10
var DIV = 5
for a in range(ceil(COUNT / DIV)):
	var vec = Vector3i(a, a, a)
	print(vec, " ", a, " ", COUNT, " ", DIV)

correctly prints
(0, 0, 0) 0 10 5
(1, 1, 1) 1 10 5

Minimal reproduction project
No response

I do some tests and I suspect how range() create array, then how for access those array and then how engine pass those value to int parameter of c++ function.
for a in range(3.0):
	print(Rect2i(a, a as int, a, a))
	print(int(a), ", " , int(a as int), ", ", a, ", ", a as int)
	print(Vector2i(a, a as int))
	var i := Image.new()
	i.create(a + 1, a as int + 1, false, Image.FORMAT_R8)
	print(i.get_size() - Vector2(1, 1))

[P: (0, 0), S: (0, 0)]
0, 0, 0, 0
(0, 0)
(0, 0)
[P: (0, 1), S: (0, 0)]
4607182418800017408, 1, 1, 1
(0, 1)
(0, 1)
[P: (0, 2), S: (0, 0)]
4611686018427387904, 2, 2, 2
(0, 2)
(0, 2)

Very good analysis! It apparently also has something to do with how constant values are evaluated since
var A = 3.0
for a in range(A):
	print(Rect2i(a, a as int, a, a))
	print(int(a), ", " , int(a as int), ", ", a, ", ", a as int)
	print(Vector2i(a, a as int))
	var i := Image.new()
	i.create(a + 1, a as int + 1, false, Image.FORMAT_R8)
	print(i.get_size() - Vector2(1, 1))

prints
[P: (0, 0), S: (0, 0)]
0, 0, 0, 0
(0, 0)
(0, 0)
[P: (1, 1), S: (1, 1)]
1, 1, 1, 1
(1, 1)
(1, 1)
[P: (2, 2), S: (2, 2)]
2, 2, 2, 2
(2, 2)
(2, 2)

It seems that a valid workaround is to cast the contents of the range function to int, especially since I'm using ceil to round the number. The example works correctly with
for a in range(3.0 as int):

You can also do without range() and it is also workaround for 0 to n-1 loop
for i in nun:

also from my first test (forgot to include)
for a in range(3.0):
   print(typeof(a) == TYPE_FLOAT) # true
print(typeof(range(3.0)[1]) == TYPE_INT) # true

Looks fixed by #68125. Please check if this is true.

for a in range(3.0):
   print(typeof(a) == TYPE_FLOAT) # true
print(typeof(range(3.0)[1]) == TYPE_INT) # true


Simplify

What in the world is this encyclopia of a dictionary?  Could someone please simplify this trash?  We don't need a PhD here.  We need an automated solution that will TEST for some of these conditions before we waste our time?  I don't see any steps that test to see if any of these things are done already in an environment.  And you all wonder why support tickets are extreme...

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

ID: 93cb286c-03a9-187a-77a3-771c1c672342
Version Independent ID: 875bbfa3-7ee3-960e-9b1c-ff5216a62d8b
Content: Configure Device Registration for Hybrid Azure AD joined Windows Hello for Business - Windows security
Content Source: windows/security/identity-protection/hello-for-business/hello-hybrid-cert-trust-devreg.md
Product: m365-security
GitHub Login: @Gitprakhar13
Microsoft Alias: prsriva

@Gitprakhar13 Please help us in resolving this issue. Thanks

Thank you for the feedback @Karr. Please be mindful of the Microsoft Open Source Code of Conduct, which outlines the expectations for community interactions in and around docs.microsoft.com, is designed to help "provide a welcoming and inspiring community for all."
The documentation is getting updated to simplify the processes around Windows Hello for Business, therefore I'm closing this issue.


Problems with LND and NAT-PMP

|
|
|
[[ SOLVED. I didn't realize I had 2 routers. After I found out, I put the router/modem from my ISP in bridge mode and added the first router's IP as gateway in the second router. NAT is done on the second router, which works for me because the second router has more settings.  Anyway, it works now! ]]
|
|
|
Hi,
I'm having an issue with LND and uPNP. Can anyone help me out with this?
When running lnd and unlocking the wallet on bitcoin testnet, I get the following output and error:

Attempting automatic RPC configuration to bitcoind
Automatically obtained bitcoind's RPC credentials
2018-12-09 11:31:57.565 [INF] LTND: Version 0.5.0-beta commit=3b2c807288b1b7f40d609533c1e96a510ac5fa6d
2018-12-09 11:31:57.565 [INF] LTND: Active chain: Bitcoin (network=testnet)
2018-12-09 11:32:45.980 [INF] CHDB: Checking for schema update: latest_version=6, db_version=6
2018-12-09 11:32:45.985 [INF] RPCS: password RPC server listening on <IP_ADDRESS>:10009
2018-12-09 11:32:45.985 [INF] RPCS: password gRPC proxy started at <IP_ADDRESS>:8081
2018-12-09 11:32:45.985 [INF] LTND: Waiting for wallet encryption password. Use lncli create to create a wallet, lncli unlock to unlock an existing wallet, or lncli changepassword to change the password of an existing wallet and unlock it.
2018-12-09 11:32:56.038 [INF] LNWL: Opened wallet
2018-12-09 11:32:56.436 [INF] LTND: Primary chain is set to: bitcoin
2018-12-09 11:32:56.442 [INF] LTND: Initializing bitcoind backed fee estimator
2018-12-09 11:32:56.443 [INF] LNWL: Started listening for bitcoind block notifications via ZMQ on tcp://<IP_ADDRESS>:29000
2018-12-09 11:32:56.444 [INF] LNWL: Started listening for bitcoind transaction notifications via ZMQ on tcp://<IP_ADDRESS>:29001
2018-12-09 11:33:02.753 [INF] LNWL: The wallet has been unlocked without a time limit
2018-12-09 11:33:02.753 [INF] LTND: LightningWallet opened
2018-12-09 11:33:02.771 [INF] LNWL: Catching up block hashes to height 1447134, this will take a while...
2018-12-09 11:33:02.780 [INF] HSWC: Restoring in-memory circuit state from disk
2018-12-09 11:33:02.782 [INF] HSWC: Payment circuits loaded: num_pending=0, num_open=0
2018-12-09 11:33:02.783 [INF] SRVR: Scanning local network for a UPnP enabled device
2018-12-09 11:33:02.786 [INF] LNWL: Caught up to height 0
2018-12-09 11:33:06.998 [ERR] SRVR: Unable to discover a UPnP enabled device on the local network: multiple NATs detected
2018-12-09 11:33:06.998 [INF] SRVR: Scanning local network for a NAT-PMP enabled device
2018-12-09 11:33:07.014 [ERR] SRVR: Unable to discover a NAT-PMP enabled device on the local network: fork/exec /usr/bin/ip: no such file or directory
2018-12-09 11:33:07.014 [ERR] SRVR: unable to create server: Unable to discover a NAT-PMP enabled device on the local network: fork/exec /usr/bin/ip: no such file or directory
2018-12-09 11:33:07.015 [INF] LTND: Shutdown complete
Unable to discover a NAT-PMP enabled device on the local network: fork/exec /usr/bin/ip: no such file or directory

The problem shouldn't be in my router I think. The Raspberry Pi has a fixed internal IP of <IP_ADDRESS>. Here's some screenshots from the Netgear router:

My bitcoin.conf looks as follows:

server=1
daemon=1
testnet=1
txindex=1
deprecatedrpc=addwitnessaddress
deprecatedrpc=signrawtransaction
rpcuser=xxx
rpcpassword=xxx
zmqpubrawblock=tcp://<IP_ADDRESS>:29000
zmqpubrawtx=tcp://<IP_ADDRESS>:29001
dbcache=100
maxorphantx=10
maxmempool=50
maxconnections=40
maxuploadtarget=5000

lnd.conf is:

[Application Options]
debuglevel=info
maxpendingchannels=5
alias=xxxx
color=#68F442
nat=true
restlisten=localhost:8081
[Bitcoin]
bitcoin.active=1
bitcoin.testnet=1
bitcoin.node=bitcoind
[autopilot]
autopilot.active=1
autopilot.maxchannels=5
autopilot.allocation=0.6

The UFW status is:

Any help would be much appreciated.
|
|
|
[[ SOLVED: SEE THE TOP ]]
|
|
|

Solved.

I was puzzled by this issue, as I have almost the same router. What solved it?

Exactely the same problem, very similar configuration (first router is a Netgear D7000 and second router is my provider one). Not sure I can setup the second one as bridge, but opened all the ports on both reouter AND UPnP on both…. but still i have almost same problem (opned an issue here).. any thoughts?

Port forwarding and setting UPnP on both the router/modem and the LAN-connected router didn't work for me either.
The routers are probably on a different subnet right? Can you setup the firewall and NAT on the modem/router only and point the LAN-connected router to the modem/router gateway?
I did this the other way around, by doing firewall and NAT on the LAN-connected router only and bridging the modem/router. But this should be fine too I think.


Convert OpenXrFbFaceTrackingExtensionWrapper to drive an XRFaceTracker.

This PR depends upon https://github.com/godotengine/godot/pull/88312 to provide the XRFaceTracker and XRFaceModifier3D types. Until they are available and merged in, building the code requires:

Building Godot with the XRFaceTracker and XRFaceModifier3D nodes.
Running Godot with --dump-extension-api an overwriting the godot_cpp extension_api.json file
Building godot_openxr_vendors

The following video demonstrates the results:
https://github.com/GodotVR/godot_openxr_vendors/assets/1863707/576c7792-4a4d-49cd-8efa-f570c7eac846

This PR has been updated to use XR_FB_face_tracking2 which adds basic support for tongue position.

Rebased to give access to the new Godot 4.3-dev.3 types.


Implement Tests

This is just a nice-to-have thing, we should implement it soon though.
We should implement unit tests for basic/essential functionality, like making sure everything in the API works and hasn't changed, user stats returns the expected values, stuff like that. We can add functional testing for things like our runs and webhooks pages by creating a webhook, submitting a run to SR.C, checking our runs page for that run, and checking the webhook to see if it fired for that run.

Possible testing criteria

Users

A null username returns to the regular page
A user can be fetched correctly
Generated user stats page matches expectations
A user can be cached and accessed later
No 429s are received when maxing out rate limit
5 connections can be maintained at once without waiting for an open thread
A 6th connection doesn't time out while waiting for an open thread

Webhooks

A webhook can be successfully created
A run correctly appears on a webhook after being submitted

Regressions were recently introduced in #34 and #35, which would be less prevalent with some testing implementations. Bumping the priority of this.


Carousel Navigation Technical Study

⚠ This is only a sub task related to https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/issues/1084.
Results of this study should be mentioned in the main issue.

Prototype shows that the development is doable. It is validated by a11y and design teams. So let's consider it done!


new improvements

Hello @ammarahm-ed thx for this awesome lib,
I would like to know if it's possible to add an initial uri path in the openDocumentTree function for user selection?

@brunofariasd Not at the moment. However it is possible. If you know some java, PRs are welcome.

@brunofariasd +1,
@ammarahm-ed  if it's possible so please add this feature to open specific directory to request it will be good for users also.


feat: new hook configurePreviewServer

Description
Same than configureServer but for the preview server.
Additional context
We are building frameworks on top of vps and we are aiming for zero-config developer experiences. For example:
// package.json
{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vite": "^2.9.1",
    "stem": "0.0.1"
  },
}

To make this work we need to add the vps and Telefunc middlewares to Vite's dev server which we can achieve by using configureServer(). The $ vite build also works. The only command that doesn't work is $ vite preview because there are currently no way to inject middlewares to the preview server.

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

I considered adding tests, but the only meaningful tests I could think of were e2e tests. I think a new e2e test would be too much; it would increase the number of playgrounds without adding enough value to be justified. The vps test suite will include a test, so we'll catch problems at latest when running Vite against vps's test suite.

This would make an SSR plugin doable without making a wrapper CLI for Vite! Awesome feature! 🔥🚀

Instead of a new hook, I am thinking we could either:
{
  name: 'myplugin',
  configureServer(server, mode) {
    if (mode === 'preview') {
      //...
    }
  }
}

or
{
  name: 'myplugin',
  apply: 'preview', // normal plugins won't apply to preview unless set explictly
  configureServer(server) {
     //...
  }
}

Instead of a new hook

I share the sentiment and it was actually my initial implementation. But I'm not sure how we could make it work with TypeScript:
type PreviewServer = { middlewares: Connect.Server, httpServer: http.Server }
{
  name: 'myplugin',
  // Is `server` a `ViteDevServer` or a `PreviewServer`?
  configureServer(server) {
      //...
  }
}

Setting server to ViteDevServer | PreviewServer is not ideal for DX. I'd argue that TypeScript DX justifies the creation of a new hook.

This would make an SSR plugin doable without making a wrapper CLI for Vite! Awesome feature! 🔥🚀

Exactly. This is actually what is happening with vps: https://github.com/brillout/vite-plugin-ssr/blob/0.4.0/examples/react/package.json — note how the vite CLI is used together with vite-plugin-ssr. (The prod script is a misnomer used for vps's CI.). You may also want to watch this PR https://github.com/vitejs/vite/pull/7665.

Note: This PR is in the team discussion board. We'll try to get to it soon!

@brillout we discussed today this proposal, we think it is a good idea. Would you rebase the PR? Then we are good to merge it.

Done.
Btw. I'm not forgetting to resurrect the $ vite preview SSR fix, I'll just do it after the vite-plugin-ssr 0.4 release.

Note: This PR is in the team discussion board. We'll try to get to it soon!

Thanks for the update, that was super helpful :-).

Btw. I'm not forgetting to resurrect the $ vite preview SSR fix, I'll just do it after the vite-plugin-ssr 0.4 release.

I couldn't contain myself: https://github.com/vitejs/vite/pull/8061 :-).


Flag I is not working

Hi edraobdu.
Your printy is the best. I was looking for months for one library which can print colored text in the terminal.
But I have an Issue:
When I tried this code in Python 3.7.7 and in Windows:
from printy import printy
printy("Tanmay", "rI")

The Italics style is not working

Please help me,
Tanmay

Hi @Tams-Tams, thank you.
That's weird honestly. Let me check and I'll let you know.

Windows terminals don't render italics, I'm afraid. There is work in progress for italics in the new Windows terminal, so maybe we'll see it soon!

Oh! got it, good to know. Thanks a lot Will!

Ok thanks.


Convert module to TypeScript

Description

Addresses: #2
Use same configuration found in latest version of expect-ct

@EvanHahn Hey Evan. Thanks for feedback!
Made the following updates based on your comments:

[x] Removed CHANGELOG.md
[x] Removed reference to changelog in README.md
[x] Removed reference to Standard.js badge in README.md
[x] Removed redundant line in index.test.ts
[x] Removed .npmignore

This has been released in<EMAIL_ADDRESS>This was a big help, thanks!!
Please add yourself to the contributors list when you have a moment.


Where is the behavior of getting an accessor or method from one origin and calling it on a cross-origin Location defined?

IDL leaves this up to HTML, but I'm not obviously seeing anything in HTML for that case...
The simple answer would be that cross-origin Location objects are not actually Location objects, but that's not really compatible with this spec, right?

The idea is for IDL to go away for Location objects so that would have to be defined here. Is there an internal method that we could override for this case or would this have to be special cased on a per-property basis?

The idea is for IDL to go away for Location objects

Wait, why?  For the same-origin case that involves redefining all sorts of stuff that IDL defines right now for us (like the behavior of all the argument and return value coercions, the prototype/constructor setup, etc).  Why would we want to do that?
It really seems to me like we want same-origin Location objects to be defined as normal IDL objects and cross-origin ones to be defined as a proxy for the same-origin one, but a proxy that doesn't affect the script settings stack (which is easy enough, since nothing affects the script settings stack unless something explicitly says it does).  Then instead of invoking the canonical internal methods on yourself in some cases for cross-origin objects you would just forward to the internal methods of the Location object you're proxying.  And that way you don't have to shoehorn two totally different behaviors into something conceptually claimed to be one object.
Again, all this modulo document.domain.  At this point I'm not sure I understand what behavior you're trying to produce for the document.domain cases....

Is there an internal method that we could override for this case

There is not.  I mean, conceptually the getters/setters/methods just operate on internal slots or something.  Except that they do this "perform a security check" thing, which would just need to be defined.
Fwiw, Gecko just has IDL annotations for things that should be cross-origin settable/gettable/callable, and those setters/getters/methods skip the security check that is otherwise performed on the "this" value.

What would you do for the document.domain case? And for the navigate case?
I guess I'm okay with keeping IDL around. Adding [SkipSecurityCheck] or some such to IDL would then be needed. And IDL would have to continue to define [Unforgeable] for interfaces, just for Location.

What would you do for the document.domain case?

Back at the time I was trying to figure out what behavior we even wanted for that case.  Now that I know what it is, I really have no idea how to spec it while preserving the ES MOP invariants, due to all the non-configurable stuff on Location.  :(  So I'm more or less at a loss as to how we can make this all work.

So I guess one possible approach is to define same-origin Location objects to have internal method behavior that matches that of IDL objects (by reference to IDL, basically) and define the initial state of the object, with all its non-configurable properties, as matching some snippet of IDL, and define its methods' behavior by reference to IDL and so forth.
And for the cross-origin case we need to make the internal methods throw in most cases, but the cases that don't throw need to return exactly the same things as the same-origin case, due to the non-configurability bits.  And then we get to figure out how to make the result actually have the behavior we want.

Having done some more testing, it seems Gecko does indeed sometimes return a "same-origin" and sometimes a "cross-origin" object. And then depending on the environment, a "same-origin" object might have a bunch of limitations that are similar to the "cross-origin" object. E.g., when you set document.domain or navigate a nested browsing context.
What I tried to model initially was just varying on the environment and always hand out the same proxy object. Doing that makes it impossible to preserve some invariants.
So the reword your suggested approach:

We'd define a same-origin Location object in IDL, similar to what we have now. We inline the security restrictions.

We'd define a cross-origin Location object proxy, that forwards to a same-origin Location object, with limitations similar to those already agreed upon, except perhaps where those violate the internal method invariants.

The cross-origin Location object proxy would be returned from cross-origin Window objects.

How does that handle a cross-origin thing becoming same-origin via setting document.domain?

So maybe Gecko and Chrome are more magical than I thought.
console.log(Object.getPrototypeOf(loc)) // null
document.domain = "{{domains[]}}"
console.log(Object.getPrototypeOf(loc)) // Location

I'm not really sure how this behavior could ever conform. @domenic? @bterlson?

That behavior can conform just fine as long as loc is not frozen or sealed, right?

So I think this is actually defined, no? With the exception of href's setter and replace(), all methods have a security check. We'll inline that security check for all the members to make things more explicit.

(Most of the earlier discussion is a little bit confused, since I was trying to figure out how everything fit together still.)

With the exception of href's setter and replace(), all methods have a security check.

@annevk Are you referring to https://html.spec.whatwg.org/multipage/browsers.html#security-location or something else?
If that's the section you're referring to, it's talking about "access", which is not the same thing as "invoking the function".  What you want to do is define what the hook at http://heycam.github.io/webidl/#dfn-perform-a-security-check actually does.

I'm still at a loss at how things fit together. I have updated https://github.com/annevk/html-cross-origin-objects/blob/master/Location.md about a month ago to match my current understanding of things needing to be done, but that does not include this "perform a security check" which I don't think we discussed in Orlando. (I'm still looking for feedback on my updates to that document, but the time difference is not helping so I've been doing other things. I should probably have emailed.)
IDL says that all I get passed to "perform a security check" is the object where the Function is invoked upon and the global environment associated with the Function. Shouldn't I also have access to the name of the identifier to safelist some of them? (To be extra clear, I wouldn't know how to fill in the algorithm for this at this point.)

Discussion with @bzbarsky http://logs.glob.uno/?c=content#c350175 suggests we do indeed have three different security checks. And I was only accounting for two thus far. I am correct above that "perform a security check" needs to account for the property name. It probably also needs to account for type. Filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=29369 to address that in IDL.


Where to browse available icons for Android (R.Drawable)

Looking for a way to visually browse perhaps as a gallery the list of available icons for Android (R.drawable exclusively?).
How are you guys picking your icons in this case?

for iOS you download their SF symbols app (i can’t display them for licensing reasons)
i’m actually not sure for android

i think #9 would be useful for both iOS and Android

could be because it's vendor-specific?

i'd still assume google would supply their own for their homegrown products

could be because it's vendor-specific?

what do you mean?
i’m not sure where the android registry for their icons is

can you try these https://developer.android.com/reference/kotlin/androidx/compose/material/icons/Icons

Checkt out https://developer.android.com/reference/android/R.drawable