Secret Keeper Application

What this PR does / why we need it:
Create a new demo application ~ Secret Keeper
Secret Keeper has 5 functions.
InitSecretKeeper:

This function will initialize the key "AUTH_LIST_KEY" with value ["Alice", "Bob"] and key "SECRET_KEY" with value "DefaultSecret".
This function should only be called once when the application started.
Of course a malicious user can call this function to reset the value, but this we will assume this is not what an attacker would want to achieve. RevealSecret:
This function allow users that in the Authlist ("AUTH_LIST_KEY") able to reveal the value of secret stored under key "SECRET_KEY". LockSecret:
This function allow users that in the Authlist ("AUTH_LIST_KEY") able to store a new value of secret under key "SECRET_KEY".
The old value will be replaced. AddUser:
This function allow users that in the Authlist ("AUTH_LIST_KEY") able to add a new user to the Authlist.
Then the new user can now perform the following four functions (RevealSecret, LockSecret, AddUser, RemoveUser) RemoveUser:
This function allow users that in the Authlist ("AUTH_LIST_KEY") able to add remove an existing user off the Authlist.
Then the removed user can no longer able to perform the following four functions (RevealSecret, LockSecret, AddUser, RemoveUser)

Example using fpc-simple-client:
./fpcclient invoke initSecretKeeper
./fpcclient query revealSecret Alice
./fpcclient invoke lockSecret Bob NewSecret
./fpcclient query revealSecret Alice
./fpcclient invoke removeUser Alice Bob
./fpcclient query revealSecret Alice
./fpcclient query revealSecret Bob  // (will failed) ./fpcclient invoke addUser Alice Bob
./fpcclient query revealSecret Bob // (will success)
Which issue(s) this PR fixes:
This is just create a new application for ppc example
Special notes for your reviewer:

Thanks @chenchanglew, the added README looks good to me.
@munapower could you please check this PR? Thanks

All the comments has been resolved


Shodan API ease of use pull request

Description
Added a script that uses the shodan API and modifies its basic usage for ease of use and repeatability.
Showcases API usage and enhancement.
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] I have created a helpful and easy-to-understand README.md
[x] My documentation follows Template for README.md

Category:

[x] Automation
[x] Others

Title: Shodan Ease of Use API
Folder: Shodan-API-ease-of-use
Script: shodan_ip_port_info.py
Contributor: AJHissh
Description:  Uses and enhances basic Shodan API usage to allow for more ease of use, especially for beginners.

made some udates - going to request to puill again.


Error after upgrading to Nuxt 3.0.0-rc.10

Reporting a bug?
Can't launch nuxt anymore:
ERROR  Cannot start nuxt:  The requested module '@intlify/vite-plugin-vue-i18n' does not provide an export named 'vueI18n'                                                09:43:56
import { vueI18n } from '@intlify/vite-plugin-vue-i18n';
^^^^^^^
SyntaxError: The requested module '@intlify/vite-plugin-vue-i18n' does not provide an export named 'vueI18n'
at ModuleJob._instantiate (node:internal/modules/esm/module_job:128:21)
at async ModuleJob.run (node:internal/modules/esm/module_job:194:5)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:385:24)
at async normalizeModule (node_modules/@nuxt/kit/dist/index.mjs:469:26)
at async installModule (node_modules/@nuxt/kit/dist/index.mjs:448:41)
at async initNuxt (node_modules/nuxt/dist/index.mjs:1599:7)
at async load (node_modules/nuxi/dist/chunks/dev.mjs:6779:9)
at async Object.invoke (node_modules/nuxi/dist/chunks/dev.mjs:6828:5)
at async _main (node_modules/nuxi/dist/cli.mjs:50:20)
Expected behavior
run
Reproduction
test
System Info
Nuxt 3.0.0-rc.10

Screenshot
No response
Additional context
No response
Validations

[X] Read the Contributing Guidelines
[X] Read the Documentation
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion
[X] The provided reproduction is a minimal reproducible example of the bug.

You can resolve your issue with use @intlify/vite-plugin-vue-i18n v7.0.0-beta
Thanks!


WIP - Issue #854 - Update Views Index to new bootstrap theme

Resolves #001
Description
Updated Vendor's index template to use new bootstrap theme as part of the Open Source is for Everyone workshop!
Type of change

Views template update

How Has This Been Tested?
Not yet tested.
Screenshots
Work in progress.

Hello @janessatran !  Can you revert your changes on .env.example please? It looks like some creds leaked into there -- that file shouldn't be edited, it's just a template. :)

Thanks for the PR! It looks like you made it against the master branch and not the new_theme branch! Can you change that too?

Thank you for the suggestions @armahillo and @seanmarcia :) I removed the .env.example file and changed the base to new_theme.


Change canonical of index

All urls referencing index (especially the canonical one) should reference the root of the site instead of index.html.

Doing this would break anything hosted on gh pages (except a personal portfolio)

Doing this would break anything hosted on gh pages (except a personal portfolio)


MAINT: get working with latest versions of Altair and ipywidgets

This will close #11 and #12.
This PR chooses renders the Altair chart as SVG each time the plot is updated:

This is with Altair 2.2.2 and ipywidgets 7.2.1.
The update takes about 2.5 seconds anytime a button is clicked, which is really annoying. I don't think I'll resolve that in this PR.
TODO:

[ ] check version install
[ ] resolve TravisCI tests

This will close #11 and #12.

This PR is ready for merge – it's not perfect, but can be improved. Here's a screenshot of the widget:

The issues with this:

the options button isn't supported
it's slow to show a new plot

I'll leave these issues to be resolved later and merge this now.


dynamic configuration consul, does  "Config Key" can change to other

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ 1] Question or discussion
[ ] Bug
[ ] Requirement
[ ] Feature or performance improvement

Question

What do you want to know?
dynamic configuration consul, does  "Config Key" can change to other;
As I have multi sw instance, but with one consul.

Thanks

Is that isolated by app or namespace? Key should not be changed in any case.


add link to trace url, rm origin flag

Once I confirm that I can use "request.Host" as an origin flag, hardcore that and remove the flag
Add a flag that lets me specify a traceid url as an html template so I can inject that  rendered template into submit and  click on a link to see the http trace instead of copy-pasting the traceid into the portal manually

traceid html template flag added!


Segmentation fault

Reported in https://github.com/cachix/cachix/issues/75#issuecomment-401552293
I have a core dump with following bt:
(gdb) thread apply all bt

Thread 6 (Thread 0x7fc8d7fff700 (LWP 3033)):
#0  0x00007fc92578b7eb in bt_skip_func ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#1  0x00007fc92578c558 in lzma_mf_bt4_skip ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#2  0x00007fc92578ef48 in lzma_lzma_optimum_normal ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#3  0x00007fc92578d64d in lzma_lzma_encode ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#4  0x00007fc925794d95 in lzma2_encode ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#5  0x00007fc92578adf4 in lz_encode ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#6  0x00007fc925782e8a in block_encode ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#7  0x00007fc925784555 in stream_encode ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#8  0x00007fc925780551 in lzma_code ()
   from /nix/store/chf54cl12ifswf6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#9  0x00000000004b8ba2 in ?? ()
#10 0x00000000004b7cf6 in ?? ()
#11 0x0000000000000004 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 5 (LWP 3223):
#0  0x00007fc924460697 in munmap ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6
#1  0x00007fc9251e5569 in __free_stacks ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libpthread.so.0
#2  0x00007fc9251e56aa in __deallocate_stack ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libpthread.so.0
#3  0x00007fc9251e6539 in start_thread ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libpthread.so.0
#4  0x00007fc92446557f in clone ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6

Thread 4 (Thread 0x7fc9157fa700 (LWP 3024)):
#0  0x00007fc9251efb1d in read ()
   from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libpthread.so
.0
#1  0x0000000000bce904 in ?? ()
#2  0x00007fc9251e62a7 in start_thread ()
---Type <return> to continue, or q <return> to quit---
  wfhfap-glibc-2.26-131/lib/libpthread.so.0
#3  0x00007fc92446557f in clone () from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-
glibc-2.26-131/lib/libc.so.6

Thread 3 (Thread 0x7fc925f0a740 (LWP 3016)):
#0  0x00007fc925780315 in lzma_next_end () from /nix/store/chf54cl12ifswf6swh7kxpif4
77drihi-xz-5.2.3/lib/liblzma.so.5
#1  0x00007fc925784453 in stream_encoder_end () from /nix/store/chf54cl12ifswf6swh7k
xpif477drihi-xz-5.2.3/lib/liblzma.so.5
#2  0x00007fc9257801d2 in lzma_next_end.part () from /nix/store/chf54cl12ifswf6swh7k
xpif477drihi-xz-5.2.3/lib/liblzma.so.5
#3  0x00007fc9257806ed in lzma_end () from /nix/store/chf54cl12ifswf6swh7kxpif477dri
hi-xz-5.2.3/lib/liblzma.so.5
#4  0x0000000000bbf6f3 in ?? ()
#5  0x0000000000bbf756 in ?? ()
#6  0x0000000000bba63b in ?? ()
#7  0x0000000000bbaa95 in ?? ()
#8  0x0000000000b4a0f9 in ?? ()
#9  0x0000000000000000 in ?? ()

Thread 2 (LWP 3032):
#0  0x00007fc9251e6366 in start_thread () from /nix/store/2kcrj1ksd2a14bm5sky182fv2x
wfhfap-glibc-2.26-131/lib/libpthread.so.0
#1  0x00007fc92446557f in clone () from /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-
glibc-2.26-131/lib/libc.so.6
Thread 1 (Thread 0x7fc90d7fa700 (LWP 3031)):
#0  0x00007fc92578b7eb in bt_skip_func () from /nix/store/chf54cl12ifswf6swh7kxpif47
7drihi-xz-5.2.3/lib/liblzma.so.5
#1  0x00007fc92578c558 in lzma_mf_bt4_skip () from /nix/store/chf54cl12ifswf6swh7kxp
if477drihi-xz-5.2.3/lib/liblzma.so.5
#2  0x00007fc92578ef48 in lzma_lzma_optimum_normal () from /nix/store/chf54cl12ifswf
6swh7kxpif477drihi-xz-5.2.3/lib/liblzma.so.5
#3  0x00007fc92578d64d in lzma_lzma_encode () from /nix/store/chf54cl12ifswf6swh7kxp
if477drihi-xz-5.2.3/lib/liblzma.so.5
#4  0x00007fc925794d95 in lzma2_encode () from /nix/store/chf54cl12ifswf6swh7kxpif47
7drihi-xz-5.2.3/lib/liblzma.so.5
#5  0x00007fc92578adf4 in lz_encode () from /nix/store/chf54cl12ifswf6swh7kxpif477dr
ihi-xz-5.2.3/lib/liblzma.so.5
#6  0x00007fc925782e8a in block_encode () from /nix/store/chf54cl12ifswf6swh7kxpif47
7drihi-xz-5.2.3/lib/liblzma.so.5
#7  0x00007fc925784555 in stream_encode () from /nix/store/chf54cl12ifswf6swh7kxpif4
77drihi-xz-5.2.3/lib/liblzma.so.5
#8  0x00007fc925780551 in lzma_code () from /nix/store/chf54cl12ifswf6swh7kxpif477dr
ihi-xz-5.2.3/lib/liblzma.so.5
#9  0x00000000004b8ba2 in ?? ()
#10 0x00000000004b7cf6 in ?? ()
#11 0x0000000000000000 in ?? ()

Possibly relevant to #4?

hrm... so this has only ever been triggered when a unix signal was delivered?

Yes and it's not that easy to reproduce (needed like 50 tries) with 4 concurrent lzma compressions going on.

Reproduced and resolved in https://github.com/cachix/cachix/issues/75#issuecomment-404320420

@domenkozar interesting... so do you think there's something that can be done in lzma to workaround the issue for older GHCs?

I don't think so, my gut feeling says this was a bug in GHC runtime system for handling SIGINT. But maybe @nh2 can chip in, he has been working on that part.

@domenkozar I'm very suspicious of it.
My RTS SIGINT fixes are mostly about IO, but these functions don't do IO:
https://github.com/haskell-hvr/lzma-clib/blob/1b7cc365bdab2c67ccb4ab328af1701021e44d92/src/liblzma/lz/lz_encoder_mf.c#L450
https://github.com/haskell-hvr/lzma-clib/blob/1b7cc365bdab2c67ccb4ab328af1701021e44d92/src/liblzma/lz/lz_encoder_mf.c#L516
So I would not be surprised if the crash is a use-after-free when accessing pointers; perhaps that free is done from Haskell?
@domenkozar Can you build xz with debugging symbols so we can see exactly which access is crashing?

Well, ctrl-c is raised in IO monad so it could be that the gist is in another thread. Did any of RTS SIGINT fixes hit GHC 8.4.x?

Btw, I tried reproducing the repro locally w/ GHC 8.2.2 (but w/o Nix), but failed to reproduce it... didn't segfaulted for me on several iterations.  Could you provide me something equivalent of a cabal freeze file of the install-plan as used by Nix, so that I can try to see to try a configuration that's a bit closer to the one on Nix you where observing the segfaults?

Yes, I can confirm that taking not-segfaulting nixpkgs commit and using GHC 8.2.2 still means no segfault, so that only leaves one of the library bumps fixed it or that it's a false positive.

Difference in packages seems to be:
$ diff nonsegfaulting segfaulting
2,3c2,3
< async-2.2.1
< async-2.2.1-doc
---
> async-<IP_ADDRESS>
> async-<IP_ADDRESS>-doc
16,17c16,17
< exceptions-0.10.0
< exceptions-0.10.0-doc
---
> exceptions-0.8.3
> exceptions-0.8.3-doc
49,50c49,50
< primitive-<IP_ADDRESS>
< primitive-<IP_ADDRESS>-doc
---
> primitive-<IP_ADDRESS>
> primitive-<IP_ADDRESS>-doc
59,60c59,60
< transformers-compat-0.6.2
< transformers-compat-0.6.2-doc
---
> transformers-compat-<IP_ADDRESS>
> transformers-compat-<IP_ADDRESS>-doc

In my local testing shows it's async bump.


Skip verification on DAG::set_validate(false)

Introduce a new API set_validate(validate: bool) so that calls to DAG::verify() can be skipped. This has been observed to lead to time savings of more than two orders of magnitude on a graph with only 250 nodes (240 secs -> ~2 secs).

Thank you @lucasvr ; There was a formatting issue but I will fix it myself.


init.sh: migrate alignchecker to use BTF instead of DWARF

With cilium/ebpf's btf/ package now being public, there is no longer a reason to compile datapath ELFs with DWARF data and parsing it in userspace. We're compiling ELFs with -g since a few releases, so BTF presence can be assumed.
Additionally, we don't really need to build a separate alignchecker BPF ELF. Perform align checking on the actual datapath ELFs and remove bpf_alignchecker.c. This means we no longer need to keep the list up-to-date manually.

Maybe help-wanted and good-first-issue?

Hi @ti-mo  I could help here but I also need guidance since I am new to cilium/ebpf, btf, and this whole alignment check thing :). I see this is part of deprecate init.sh, so I looked at bpf/init.sh
function bpf_compile()
{
        IN=$1
        OUT=$2
        TYPE=$3
        EXTRA_OPTS=$4

        clang -O2 -target bpf -std=gnu89 -nostdinc -emit-llvm   \
              -g -Wall -Wextra -Werror -Wshadow                 \
              -Wno-address-of-packed-member                     \
              -Wno-unknown-warning-option                       \
              -Wno-gnu-variable-sized-type-not-at-end           \
              -Wdeclaration-after-statement                     \
              -Wimplicit-int-conversion -Wenum-conversion       \
              -I. -I$DIR -I$LIB -I$LIB/include                  \
              -D__NR_CPUS__=$NR_CPUS                            \
              -DENABLE_ARP_RESPONDER=1                          \
              $EXTRA_OPTS                                       \
              -c $LIB/$IN -o - |                                \
        llc -march=bpf -mcpu=$MCPU -mattr=dwarfris -filetype=$TYPE -o $OUT
}

is this llc -mattr=dwarfris that you talk about to deprecate?
in addition, are pkg/alignchecker,  pkg/datapath/alignchecker, and pkg/monitor/alignchecker you talk about to remove? I could get myself familiar with these part of codes first if that are the goal of this request

I did the removal part in my draft PR https://github.com/cilium/cilium/pull/20788, not sure how to add cilium/ebpf btf part for alignment, is it done automatically already when loader use cilium/ebpf to extract BTF info from BPF object ?

just trying to  understand what you mean :)

With cilium/ebpf's btf/ package now being public, there is no longer a reason to compile datapath ELFs with DWARF data and parsing it in userspace. We're compiling ELFs with -g since a few releases, so BTF presence can be assumed.

I kind of understand to replace DWARF with BTF, it seems to me to replace getDWARFFromELF(f) and getStructInfosFromDWARF(d, toCheck) in CheckStructAlignments() in pkg/alignchecker/alignchecker.go

Additionally, we don't really need to build a separate alignchecker BPF ELF. Perform align checking on the actual datapath ELFs and remove bpf_alignchecker.c. This means we no longer need to keep the list up-to-date manually.

if bpf_alignchecker.c is to be removed, which datapath ELF object file should alignchecker check? there will be no one single datapath ELF object like bpf_alignchecker.o to include all the cilium map struct for alignchecker to check alignment. I guess you have some idea that  I am missing
pkg/datapath/loader/base.go
        if l.canDisableDwarfRelocations {
                // Validate alignments of C and Go equivalent structs
                if err := alignchecker.CheckStructAlignments(defaults.AlignCheckerName); err != nil {
                        log.WithError(err).Fatal("C and Go structs alignment check failed")
                }
        } else {
                log.Warning("Cannot check matching of C and Go common struct alignments due to old LLVM/clang version")
        }

it appears bpf_alignchecker.o is missing quite a few STRUCTs like lb4_key for example from bpftool btf dump,  simply replace DWARF with BTF would miss quite a few struct alignment check
 bpftool btf dump file /var/run/cilium/state/bpf_alignchecker.o | grep STRUCT
[1] STRUCT '(anon)' size=40 vlen=5
[11] STRUCT '(anon)' size=48 vlen=6
[13] STRUCT 'endpoint_key' size=20 vlen=4
[15] STRUCT '(anon)' size=16 vlen=4
[19] STRUCT '(anon)' size=16 vlen=4
[20] STRUCT '(anon)' size=16 vlen=2
[29] STRUCT 'endpoint_info' size=48 vlen=7
[35] STRUCT '(anon)' size=48 vlen=6
[39] STRUCT 'metrics_key' size=8 vlen=4
[42] STRUCT 'metrics_value' size=16 vlen=2
[44] STRUCT '(anon)' size=48 vlen=6
[48] STRUCT 'ipcache_key' size=24 vlen=5
[49] STRUCT 'bpf_lpm_trie_key' size=4 vlen=2
[52] STRUCT '(anon)' size=16 vlen=4
[54] STRUCT 'remote_endpoint_info' size=12 vlen=3
[58] STRUCT '(anon)' size=40 vlen=5
[63] STRUCT 'encrypt_config' size=1 vlen=1
[65] STRUCT '(anon)' size=48 vlen=6
[67] STRUCT 'vtep_key' size=4 vlen=1
[69] STRUCT 'vtep_value' size=16 vlen=2
[71] STRUCT '(anon)' size=40 vlen=5
[73] STRUCT '(anon)' size=40 vlen=5
[78] STRUCT '(anon)' size=40 vlen=5
[80] STRUCT 'capture_cache' size=6 vlen=3
[83] STRUCT '(anon)' size=40 vlen=5
[87] STRUCT 'sock_key' size=44 vlen=7
[89] STRUCT '(anon)' size=16 vlen=4
[91] STRUCT '(anon)' size=16 vlen=4
[97] STRUCT '__sk_buff' size=184 vlen=32
[119] STRUCT 'bpf_elf_map' size=36 vlen=9

@vincentmli Not sure how did you compile the bpf_alignchecker.o, but I find it:
[103] STRUCT 'lb4_key' size=12 vlen=6
	'address' type_id=99 bits_offset=0
	'dport' type_id=82 bits_offset=32
	'backend_slot' type_id=26 bits_offset=48
	'proto' type_id=23 bits_offset=64
	'scope' type_id=23 bits_offset=72
	'pad' type_id=87 bits_offset=80

@brb do you have all off them declared in bpf_alignchecker.c? there is difference I noticed, make -C bpf and check bpf/bpf_alignchecker.o, it has lb4_key, but still some of them are missing. when actually deploy cilium agent in k8s node, the run time /var/run/cilium/state/bpf_alignchecker.o which is actually checked by pkg/alignchecker is missing lb4_key and other structs, I added log info in draft PR to confirm https://github.com/cilium/cilium/pull/20809/commits/fe345bcd6c2c4d826b9fd96bf6420136104c19e2
note the dwarf debug info has all the structs from /var/run/cilium/state/bpf_alignchecker.o

I double checked bpf/bpf_alignchecker.o compiled by make -C bpf, it indeed include all the structs. but at run time checking /var/run/cilium/state/bpf_alignchecker.o which I assume is compiled by bpf_compile from bpf/init.sh, it is missing quite a lot of struct from bpftool btf dump, I have not figured out the difference between make -C bpf where clang and llc flag is defined in bpf/Makefile.bpf and bpf_compile yet
# Compile dummy BPF file containing all shared struct definitions used by
# pkg/alignchecker to validate C and Go equivalent struct alignments
bpf_compile bpf_alignchecker.c bpf_alignchecker.o obj ""

and the question is if I remove bpf_compile bpf_alignchecker.c bpf_alignchecker.o obj "" from bpf/init.sh, how do I make sure the run time /var/run/cilium/state/bpf_alignchecker.o is compiled similar to make -C bpf?

I double checked bpf/bpf_alignchecker.o compiled by make -C bpf, it indeed include all the structs. but at run time checking /var/run/cilium/state/bpf_alignchecker.o which I assume is compiled by bpf_compile from bpf/init.sh, it is missing quite a lot of struct from bpftool btf dump, I have not figured out the difference between make -C bpf where clang and llc flag is defined in bpf/Makefile.bpf and bpf_compile yet

well, speak too early about make -C bpf having all structs, after I did make clean -C bpf; make -C bpf;  bpftool btf dump file bpf/bpf_alignchecker.o | grep 'STRUCT'  | grep -v 'anon'; structs are still missing bpf/bpf_alignchecker.o
 make clean -C bpf

make: Entering directory '/home/go/src/github.com/vincentmli/cilium/bpf'
make  -C sockops clean;  make  -C custom clean;
make[1]: Entering directory '/home/go/src/github.com/vincentmli/cilium/bpf/sockops'
rm -fr *.o *.ll *.i
make[1]: Leaving directory '/home/go/src/github.com/vincentmli/cilium/bpf/sockops'
make[1]: Entering directory '/home/go/src/github.com/vincentmli/cilium/bpf/custom'
rm -fr *.o *.ll *.i
make[1]: Leaving directory '/home/go/src/github.com/vincentmli/cilium/bpf/custom'
rm -fr *.o *.ll *.i *.s
rm -f cilium-probe-kernel-hz
make: Leaving directory '/home/go/src/github.com/vincentmli/cilium/bpf'

[root@centos-dev cilium]# ls -l bpf/bpf_alignchecker.o
ls: cannot access 'bpf/bpf_alignchecker.o': No such file or directory

[root@centos-dev cilium]# make -C bpf

make[1]: Leaving directory '/home/go/src/github.com/vincentmli/cilium/bpf/custom'
make: Leaving directory '/home/go/src/github.com/vincentmli/cilium/bpf'
[root@centos-dev cilium]#
[root@centos-dev cilium]#
[root@centos-dev cilium]#
[root@centos-dev cilium]#
[root@centos-dev cilium]# bpftool btf dump file bpf/bpf_alignchecker.o | grep 'STRUCT'  | grep -v 'anon'
[12] STRUCT 'endpoint_key' size=20 vlen=4
[28] STRUCT 'endpoint_info' size=48 vlen=7
[38] STRUCT 'metrics_key' size=8 vlen=4
[41] STRUCT 'metrics_value' size=16 vlen=2
[47] STRUCT 'ipcache_key' size=24 vlen=5
[48] STRUCT 'bpf_lpm_trie_key' size=4 vlen=2
[53] STRUCT 'remote_endpoint_info' size=12 vlen=3
[62] STRUCT 'encrypt_config' size=1 vlen=1
[66] STRUCT 'vtep_key' size=4 vlen=1
[68] STRUCT 'vtep_value' size=16 vlen=2
[80] STRUCT 'lb6_reverse_nat' size=18 vlen=2
[85] STRUCT 'lb6_key' size=24 vlen=6
[88] STRUCT 'lb6_service' size=12 vlen=6
[93] STRUCT 'lb6_backend' size=20 vlen=4
[97] STRUCT 'lb4_reverse_nat' size=6 vlen=2
[102] STRUCT 'lb4_key' size=12 vlen=6
[104] STRUCT 'lb4_service' size=12 vlen=6
[109] STRUCT 'lb4_backend' size=8 vlen=4
[113] STRUCT 'capture_cache' size=6 vlen=3
[118] STRUCT 'capture4_wcard' size=16 vlen=8
[120] STRUCT 'capture_rule' size=8 vlen=3
[126] STRUCT 'capture6_wcard' size=40 vlen=8
[132] STRUCT 'sock_key' size=44 vlen=7
[143] STRUCT '__sk_buff' size=184 vlen=32
[171] STRUCT 'bpf_elf_map' size=36 vlen=9

Which clang version?

[root@centos-dev cilium]# clang -v
clang version 15.0.0 (https://github.com/llvm/llvm-project.git e91a73de24d60954700d7ac0293c050ab2cbe90b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
and kernel version
[root@centos-dev cilium]# uname -a
Linux centos-dev.localdomain 5.18.0 #98 SMP PREEMPT_DYNAMIC Sun Jul 3 21:42:54 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux

a side note, I found that pahole -JV <object> could convert dwarf to btf as workaround

@vincentmli It is still not clear to me which struct definition in BTF is missing. It would be great to know.
Note that BTF generated by the llvm compiler with -target bpf may contain less types than pahole -JV <object> types. The reason is -target bpf only generates BTF with global variables, functions definitions and CO-RE related types, some types inside the program will not be generated for BTF. This is to only have needed types for bpf programs so far.
dwarf actually contains all types in the program so pahole -JV <object> may generate more types.
Just give a simple example,
$ cat t1.c
struct t {
  int a;
};
void bar(void *);
int foo() {
  struct t tmp;
  bar(&tmp);
  return 0;
}
$ clang -target bpf -g -O2 -c t1.c
$ bpftool btf dump file t1.o
[1] FUNC_PROTO '(anon)' ret_type_id=2 vlen=0
[2] INT 'int' size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
[3] FUNC 'foo' type_id=1 linkage=global
[4] FUNC_PROTO '(anon)' ret_type_id=0 vlen=1
        '(anon)' type_id=5
[5] PTR '(anon)' type_id=0
[6] FUNC 'bar' type_id=4 linkage=extern

In the above definition, there is no struct t definition. But the below pahole -JV does contain struct t:
$ pahole -JV t1.o
btf_encoder__new: 't1.o' doesn't have '.data..percpu' section
Found 0 per-CPU variables!
Found 1 functions!
File t1.o:
[1] PTR (anon) type_id=0
[2] INT int size=4 nr_bits=32 encoding=SIGNED
[3] STRUCT t size=4
        a type_id=2 bits_offset=0
[4] FUNC_PROTO (anon) return=2 args=(void)
[5] FUNC foo type_id=4

thanks for the clarification, to my knowledge, I could not tell the difference between missing structs and non-missing structs :)
these are the missing structs for example, I did not list all the missing structs
egress_gw_policy_entry
egress_gw_policy_key

ipv4_ct_tuple
ipv4_frag_id
ipv4_frag_l4ports
ipv4_nat_entry
ipv4_revnat_entry
ipv4_revnat_tuple
ipv6_ct_tuple
ipv6_nat_entry
ipv6_revnat_entry
ipv6_revnat_tuple

all declared structs in bpf/bpf_alignchecker.c
grep 'DECLARE(struct' bpf/bpf_alignchecker.c  | awk '{print $2;}' | sort
capture4_wcard);
capture6_wcard);
capture_rule);
ct_entry);
debug_capture_msg);
debug_msg);
drop_notify);
edt_id);
edt_info);
egress_gw_policy_entry);
egress_gw_policy_key);
endpoint_info);
endpoint_key);
ipcache_key);
ipv4_ct_tuple);
ipv4_frag_id);
ipv4_frag_l4ports);
ipv4_nat_entry);
ipv4_revnat_entry);
ipv4_revnat_tuple);
ipv6_ct_tuple);
ipv6_nat_entry);
ipv6_revnat_entry);
ipv6_revnat_tuple);
lb4_affinity_key);
lb4_backend);
lb4_key);
lb4_service);
lb4_src_range_key);
lb6_affinity_key);
lb6_backend);
lb6_key);
lb6_service);
lb6_src_range_key);
lb_affinity_match);
lb_affinity_val);
metrics_key);
metrics_value);
policy_entry);
policy_key);
policy_verdict_notify);
remote_endpoint_info);
sock_key);
srv6_policy_key4);
srv6_policy_key6);
srv6_vrf_key4);
srv6_vrf_key6);
trace_notify);
vtep_key);
vtep_value);

bpftool btf dump file bpf/bpf_alignchecker.o | grep 'STRUCT' | grep -v 'anon' | awk '{print $3;}' | sort
'bpf_elf_map'
'bpf_lpm_trie_key'
'capture4_wcard'
'capture6_wcard'
'capture_cache'
'capture_rule'
'encrypt_config'
'endpoint_info'
'endpoint_key'
'ipcache_key'
'lb4_backend'
'lb4_key'
'lb4_reverse_nat'
'lb4_service'
'lb6_backend'
'lb6_key'
'lb6_reverse_nat'
'lb6_service'
'metrics_key'
'metrics_value'
'remote_endpoint_info'
'__sk_buff'
'sock_key'
'vtep_key'
'vtep_value'

@vincentmli With LLM 14.0.6:
$ git clone https://github.com/cilium/cilium
$ cd cilium
$ make -C bpf
$ bpftool btf dump file bpf/bpf_alignchecker.o | grep lb4_key
[102] STRUCT 'lb4_key' size=12 vlen=6

@vincentmli Based on the following, you might need to change DECLARE so that it defines e.g., global vars.

Note that BTF generated by the llvm compiler with -target bpf may contain less types than pahole -JV  types. The reason is -target bpf only generates BTF with global variables, functions definitions and CO-RE related types, some types inside the program will not be generated for BTF. This is to only have needed types for bpf programs so far.

@brb @yonghong-song sorry my C skill is rough and I tried to move all the DECLARE statement out of main(), think that might make all these structs global variable, but I got macro expand error, also tried to change DECLARE macro, still got syntax error due to my rough C skills, could you show an example of making the struct as global variable in bpf/bpf_alignchecker.c or example of changing macro DECLARE

for example, here is the probably the dumbest change I could think of  and I suspect it seriously flawed :-), comment out the DECLARE macro, define a global variable for each struct, sort of work.
diff --git a/bpf/bpf_alignchecker.c b/bpf/bpf_alignchecker.c
index 46f5e1b7b2..0d6cec466d 100644
--- a/bpf/bpf_alignchecker.c
+++ b/bpf/bpf_alignchecker.c
@@ -32,17 +32,21 @@
  * to the var to a BPF helper function which accepts a reference as
  * an argument.
  */
+/*
 #define DECLARE(type)                  \
 {                                      \
        type s = {};                    \
        trace_printk("%p", 1, &s);      \
 }
-
+*/
 /* This function is a placeholder for C struct definitions shared with Go,
  * it is never executed.
  */
+struct ipv4_ct_tuple a;
+struct ipv6_ct_tuple b;
 int main(void)
 {
+       /*
        DECLARE(struct ipv4_ct_tuple);
        DECLARE(struct ipv6_ct_tuple);
        DECLARE(struct ct_entry);
@@ -94,6 +98,7 @@ int main(void)
        DECLARE(struct srv6_vrf_key6);
        DECLARE(struct srv6_policy_key4);
        DECLARE(struct srv6_policy_key6);
+       */

        return 0;
 }

another observation, I noticed for specific feature related structs for example struct egress_gw_policy_key and struct egress_gw_policy_entry that are missing from BTF, add #define ENABLE_EGRESS_GATEWAY in bpf/bpf_alignchecker.c would resolve the missing BTF struct issue, seems like a simple workaround, but still for these common structs like struct ipv4_ct_tuple that are not specific to a feature and are missing from BTF, still an issue.

it seems to me cilium is required to do alignment check for cilium maps with key or value struct.
 41 func CheckStructAlignments(path string) error {
 42         // Validate alignments of C and Go equivalent structs
 43         toCheck := map[string][]reflect.Type{
 44                 "ipv4_ct_tuple":        {reflect.TypeOf(ctmap.CtKey4{}), reflect.TypeOf(ctmap.CtKey4Global{})},
 45                 "ipv6_ct_tuple":        {reflect.TypeOf(ctmap.CtKey6{}), reflect.TypeOf(ctmap.CtKey6Global{})},
 46                 "ct_entry":             {reflect.TypeOf(ctmap.CtEntry{})},
 47                 "ipcache_key":          {reflect.TypeOf(ipcachemap.Key{})},
............

but I noticed the go struct ctmap.CtKey4{} does not have tag
// CtKey4 is needed to provide CtEntry type to Lookup values
// +k8s:deepcopy-gen=true
// +k8s:deepcopy-gen:interfaces=github.com/cilium/cilium/pkg/bpf.MapKey
type CtKey4 struct {
        tuple.TupleKey4
}

the structs members without tag will be bypassed for alignment check
                for i := 0; i < g.NumField(); i++ {
                        fieldName := g.Field(i).Tag.Get("align")
                        // Ignore fields without `align` struct tag. <=======
                        if fieldName == "" {
                                continue
                        }
                        goOffset := int64(g.Field(i).Offset)
                        cOffset := structs[name].fieldOffsets[fieldName]
                        if goOffset != cOffset {
                                return fmt.Errorf("%s.%s offset(%d) does not match %s.%s(%d)",
                                        g, g.Field(i).Name, goOffset, name, fieldName, cOffset)
                        }
                }

so it means cilium is not doing alignment check for struct ipv4_ct_tuple,  is this bug or done on purpose? also the new SRV6 feature related go structs are also missing tags.
@brb @ti-mo @pchaigno @joestringer  do you have idea?

I don't have a good solution for the mismatch between dwarf->btf and llvm btf types. You could have one global definition like
union __unused_union {
   struct a a;
   struct b b;
   ...
} __unused_var;

But this is just a workaround. Since these types are not used in bpf program. Not sure why cilium needs them. Probably there is a reason for this.

@yonghong-song I like your workaround, the bpf_aligncheck.o is solely used by cilium to check struct alignment between C struct and Go struct when cilium agent start up, it is not used in cilium datapath.
I guess @ti-mo idea is to get rid of bpf_alignchecker.o completely and let cilium alignment checker to check the actual datapath object files (bpf_lxc.o, bpf_host.o, bpf_sock.o...) at start up, so no need to manually add each struct in bpf_alignchecker.c, but  pkg/datapath/alignchecker/alignchecker.go is to manually add Go struct anyway, if only remove the C struct manual part (bpf_alignchecker.o), but keep the Go struct manual part, in my opinion I don't see much benefit

Hi, just read up on the thread.
Not sure why you're seeing missing types in the objects you built. Declaring a global variable like struct ipv4_ct_tuple _1; in the top scope results in type info STRUCT 'ipv4_ct_tuple'  being emitted.
Some types are not checked, presumably because whoever added them did not add struct annotations.
My thinking was that eventually, we could lift alignment checking for, e.g. the ipcache map into the ipcache package.
On one hand, loading a map definition from an ELF automatically exposes its type info in MapSpec.Key and .Value, but we have many packages that create maps directly from Go, pin them, and rely on the loader to load programs from ELF and pick up pinned maps. The ipcache package doesn't handle an ELF at any point, so it doesn't have access to the C types to compare.
I have a few things in mind on how we could reconcile this, but let's focus on getting #20809 merged. Getting this out of init.sh and using BTF is already a great step.


Designable fails when adding subclass UICircularProgressRingView. (Manually)

When i add subclass to  UICircularProgressRingView manually Designable fails to build. How should I fix this.

You will need to add @IBDesignable and @IBInspectable wherever appropriate in your subclass.

Closing due to inactivity

Can you please elaborate the same ?


[Bug]: IDAKLUSolver not accessible from PyBaMM's directory in Windows and WSL (when installed using pip)

PyBaMM Version
develop
Python Version
3.9.0
Describe the bug
The IDAKLUSolver works in Windows and WSL but with a catch - I cannot use the solver if I run a script in PyBaMM's root directory. I can use it everywhere else, even in the subdirectories within the PyBaMM root directory. Due to this bug, I also cannot run the tests intended for IDAKLUSolver as they throw an error saying -
skipped 'idaklu solver is not installed'

The error when using the solver from PyBaMM's directory -
>>> import pybamm
>>> pybamm.__version__
'22.5'
>>> pybamm.IDAKLUSolver()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/c/Users/Saransh/Saransh_softwares/OpenSource/Python/PyBaMM/pybamm/solvers/idaklu_solver.py", line 58, in __init__
    raise ImportError("KLU is not installed")
ImportError: KLU is not installed

Now, there are 2 cases -

Installing from pip
The error is the same for both Windows and WSL.
Installing from source on WSL
This works! I can use the IDAKLUSolver from any directory, and I can also run the tests.

Steps to Reproduce
The steps are exactly the same as in the case of using pip for installation in WSL.
(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>python -m pip freeze | findstr pybamm

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>python -m pip install pybamm --no-cache

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>python -m pip freeze | findstr pybamm
pybamm==22.5

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pybamm
>>> pybamm.IDAKLUSolver()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM\pybamm\solvers\idaklu_solver.py", line 58, in __init__
    raise ImportError("KLU is not installed")
ImportError: KLU is not installed
>>> exit()

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>cd ..

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python>python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pybamm
>>> pybamm.IDAKLUSolver()
<pybamm.solvers.idaklu_solver.IDAKLUSolver object at 0x0000024F6AC78BB0>
>>> exit()

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python>cd PyBaMM

(env) C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM>python -m unittest discover tests\unit\test_solvers -v
# skipping to the IDAKLUSolver tests ->

...
test_sensitivities (test_base_solver.TestBaseSolver) ... skipped 'idaklu solver is not installed'
...
test_dae_solver_algebraic_model (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_failures (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_ida_roberts_klu (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_ida_roberts_klu_sensitivities (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_input_params (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_model_events (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
test_set_atol (test_idaklu_solver.TestIDAKLUSolver) ... skipped 'idaklu solver is not installed'
...

Relevant log output
No response

I think what is happening is that when you have pip installed pybamm, you have 2 versions of pybamm. The pip installed version living in your site-packages, and the source directory living at C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM. When your current working directory is C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM, then when you run a test or script using pybamm, it imports the pybamm in your current directory, i.e. C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM\pybamm, not the one in site-packages. Is the KLU solver installed in C:\Users\Saransh\Saransh_softwares\OpenSource\Python\PyBaMM\pybamm? If not then this might be the source of your problem.

Oh yes, this makes sense. I went through the installation again, and the python interpreter does import pybamm from the current working directory. Thanks! I can still make it work in WSL!


Redis client - RESP3 protocol

Hi.
Most of servers WebSocket need Redis clients for scaling.
Next major version Redis, implemented new version protocol - RESP3, there are two important innovations

pubsub - do not block connections
client side caching

Current Redis clients for Node.js, are not very productive and do not support the new protocol.
Therefore, we plan to develop a new client for Redis.
Have you had any plans to implement your client for Redis?
Your Redis client (uRedisClient), could integrate pubsub functional with your uWebSockets server at a low level, this is a very demanding feature for your clients.
Thanks.

Redis is not an internet standard and not something facing web browsers. This project is about standard web IO, for the web.
I can't say for sure I'll never implement a Redis client but it'll not be part of this project anyways


Subchart disabling doesnt work

It seems that subchart disabling doesn't work. Maybe a condition description is missing in Chart.yaml file: https://helm.sh/docs/topics/charts/#tags-and-condition-fields-in-dependencies

close


Sign in button does nothing

Describe the bug
Attempting to log in by going through the sign in flow. "Sign in using external browser" button closes the dialogue and does nothing afterwards.
To Reproduce
Steps to reproduce the behavior:

Click on "Sign in to GitHub"
Click on "Sign in using external browser"
Nothing happens

Expected behavior
It opens up an auth flow in my browser.
Screenshots
N/A
Desktop (please complete the following information):

OS: Windows Pro x64
Version: 10.0.19042 Build 19042

I had the same issue yesterday after installing Ghostly from the Windows 10 store:
OS: Windows 10 Pro x64
OS build: 19042.1415
I've now uninstalled the Windows store version and running a version built from source in Visual Studio

@NRKirby Very strange. It's the same version in the store as this repository 1.17.0, and both works for me locally.
I will investigate this a bit when I have some spare time.

@NRKirby Actually, I was able to reproduce this. Will fix and push a new version

@patriksvensson that's great, I'll keep an eye out for the change.
BTW this is an awesome project and I'd love to contribute! There's a lot in here I'm interested in and I'm spending time now to see how it's implemented. I'll keep an eye out for issues I can contribute to :smiley:

@dresswithpockets @NRKirby It was a PEBKAC error. I've uploaded a new version (1.18.0) which should be available shortly.

@dresswithpockets @dresswithpockets Update is available on Windows Store now.


Nullable and argument replacement for configuration proxy

Add support for @Nullable property values.
@Nullable
public getSomeProperty();

Add support to use arguments passed to interface getters as replacements for deriving the property names.
@PropertyName(name="foo.${0}.${1}")
public getFoo(String arg0, String arg1);

archaius-pull-requests #278 FAILURE
Looks like there's a problem with this pull request

archaius-pull-requests #279 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » archaius » archaius-pull-requests #109 FAILURE
Looks like there's a problem with this pull request

NetflixOSS » archaius » archaius-pull-requests #110 FAILURE
Looks like there's a problem with this pull request

archaius-pull-requests #280 SUCCESS
This pull request looks good

NetflixOSS » archaius » archaius-pull-requests #111 SUCCESS
This pull request looks good

archaius-pull-requests #281 SUCCESS
This pull request looks good

NetflixOSS » archaius » archaius-pull-requests #112 SUCCESS
This pull request looks good


Provider verification against https endpoint

Software versions

OS: 10.14.3
Library version: 10.8.0
Node Version: 10.15.2

Expected behaviour
Provider verification to run successfully against self signed https endpoint
Actual behaviour
Throws the error
Uncaught Error: write EPROTO<PHONE_NUMBER>76192:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332:

      at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16)

Steps to reproduce
The configuration I am using
let opts = {
            provider: "api",
            providerBaseUrl: "https://my-domain.com",
            pactUrls: [
                path.resolve(
                    process.cwd(),
                    "./pacts/pact-api.json"
                ),
            ],
            validateSSL: false,
            changeOrigin: true,
            providerVersion: "1.0.0"
        }
        return new Verifier(opts).verifyProvider().then(output => {
            console.log("Pact Verification Complete!")
            console.log(output)
        })

When I use http:// , I am getting a response with status code 308 (redirect) and the pact verification runs to completion. But when I change to https:// above error is thrown.

Is this issue resolved now?

This is being tracked over here
https://github.com/pact-foundation/pact-js/issues/429


Image placeholders?

the delay load on images in a message thread causes the message to scroll a few seconds after opening. can placeholders be used instead?
reported by tratcher

I don't think we know the size of the images in advance, unfortunately. How does the Web app handle this?

The web app displays the image as a fixed-size cropped thumbnail. When clicked, it expands to its proper dimensions in the image view modal.

Ah. I'd like to avoid doing that if possible.
Any chance the server can look up the sizes when the image is uploaded, and serve them along with the photo ID when reporting an image is to be shown somewhere? Maybe encode them in the photo ID somehow, or just as two extra fields or something? I believe we already inspect the image on upload.

Photo metadata, and the photo summary included with each post, now includes the original photo width and height. See https://github.com/seamonkeysocial/twitarr/commit/8aa7f2631f93f3d4f40cd4809c5a7f2ed7540413

I rolled back the width/height change. It's not a great solution. Instead, I recommend using the medium_thumb images when scrolling through the stream/forums. They're high enough resolution to not look like total garbage, and small enough file size to load quickly/not cause much pop-in.
Then, when a user clicks a photo, download and display the full image. I also suggest adding pinch to zoom, and the ability to save the full image.

This is possible now that we have image sizes. Thanks!

Here's the PR for the updated image size list:
https://github.com/seamonkeysocial/twitarr/pull/200/commits/76e4df53ddd52c8561fe35c764e42439fba04649


[Bug] ListIsNullOrEmptyConverter doesn't respect ObservableCollection updates

Description
ListIsNullOrEmptyConverter (and ListIsNotNullOrEmptyConverter, and ListToStringConverter) doesn't update its value when ObservableCollection.Add() is called.
Steps to Reproduce

Create a page with empty ObservableCollection, ListIsNullOrEmptyConverter tied to that collection and IsVisible attribute of some control, and button that adds one item to the collection
Open the page and press the button

Expected Behavior
Control becomes hidden
Actual Behavior
Control stays visible
Basic Information

Version with issue:
Last known good version:
IDE:
Platform Target Frameworks:

iOS:
Android:
UWP:

Android Support Library Version:
Nuget Packages:
Affected Devices:

Workaround
After updating collection manually call OnPropertyChanged(nameof(MyCollection));
Reproduction imagery

Reproduction Link

Actually, I don't think it's possible to fix this issue.
And calling OnPropertyChanged is mandatory in this case.
CC @sthewissen

Actually, I don't think it's possible to fix this issue.
And calling OnPropertyChanged is mandatory in this case.
CC @sthewissen

Could this be solved if ListIsNullOrEmptyConverter were a markup extension, for example? I think this limitation makes this convertor dangerous to use (especially in combination with ObservableRangeCollection that supports replacing all items in collection without creating new instance)

Could this be solved if ListIsNullOrEmptyConverter were a markup extension, for example? I think this limitation makes this convertor dangerous to use (especially in combination with ObservableRangeCollection that supports replacing all items in collection without creating new instance)

I would also not really be sure how that could be fixed generically as it originates somewhere in the MVVM layer 🤔
Also, @maxkoshevoi all of our converters already inherit from ValueConverterExtension which makes them a markup extension if I'm not mistaking.

I would also not really be sure how that could be fixed generically as it originates somewhere in the MVVM layer 🤔
Also, @maxkoshevoi all of our converters already inherit from ValueConverterExtension which makes them a markup extension if I'm not mistaking.

@sthewissen can we make it like Translate extension? So that this converter would return Binding with source collection that is passed, and value is null or something. And then this Binding would update when collection updates.

@sthewissen can we make it like Translate extension? So that this converter would return Binding with source collection that is passed, and value is null or something. And then this Binding would update when collection updates.

@sthewissen something like this, but without compiler errors:
/// <summary>
/// Converts the incoming value to a boolean indicating whether or not the value is null or empty.
/// </summary>
public class ListIsNullOrEmptyConverter : ValueConverterExtension, IValueConverter
{
	public class Tmp<T> where T : INotifyCollectionChanged, ICollection
	{
		readonly T observableCollection;

		public Tmp(T observableCollection)
		{
			this.observableCollection = observableCollection;
		}

		public bool IsEmpty => observableCollection.Count == 0;

		public bool IsNotEmpty => observableCollection.Count > 0;
	}

	/// <summary>
	/// Converts the incoming value to a boolean indicating whether or not the value is null or empty.
	/// </summary>
	/// <param name="value">The value to convert.</param>
	/// <param name="targetType">The type of the binding target property.</param>
	/// <param name="parameter">Additional parameter for the converter to handle. Not implemented.</param>
	/// <param name="culture">The culture to use in the converter.</param>
	/// <returns>A boolean indicating if the incoming value is null or empty.</returns>
	public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
	{
		if (value is null)
			return true;

		if (value is INotifyCollectionChanged && value is ICollection t)
		{
			var binding = new Binding
			{
				Mode = BindingMode.OneWay,
				Path = nameof(Tmp.IsEmpty),
				Source = new Tmp(t)
			};
			return binding;
		}

		if (value is IEnumerable list)
			return !list.GetEnumerator().MoveNext();

		throw new ArgumentException("Value is not a valid IEnumerable or null", nameof(value));
	}

	public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
		=> throw new NotImplementedException();
}

@sthewissen something like this, but without compiler errors:
/// <summary>
/// Converts the incoming value to a boolean indicating whether or not the value is null or empty.
/// </summary>
public class ListIsNullOrEmptyConverter : ValueConverterExtension, IValueConverter
{
	public class Tmp<T> where T : INotifyCollectionChanged, ICollection
	{
		readonly T observableCollection;

		public Tmp(T observableCollection)
		{
			this.observableCollection = observableCollection;
		}

		public bool IsEmpty => observableCollection.Count == 0;

		public bool IsNotEmpty => observableCollection.Count > 0;
	}

	/// <summary>
	/// Converts the incoming value to a boolean indicating whether or not the value is null or empty.
	/// </summary>
	/// <param name="value">The value to convert.</param>
	/// <param name="targetType">The type of the binding target property.</param>
	/// <param name="parameter">Additional parameter for the converter to handle. Not implemented.</param>
	/// <param name="culture">The culture to use in the converter.</param>
	/// <returns>A boolean indicating if the incoming value is null or empty.</returns>
	public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
	{
		if (value is null)
			return true;

		if (value is INotifyCollectionChanged && value is ICollection t)
		{
			var binding = new Binding
			{
				Mode = BindingMode.OneWay,
				Path = nameof(Tmp.IsEmpty),
				Source = new Tmp(t)
			};
			return binding;
		}

		if (value is IEnumerable list)
			return !list.GetEnumerator().MoveNext();

		throw new ArgumentException("Value is not a valid IEnumerable or null", nameof(value));
	}

	public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
		=> throw new NotImplementedException();
}

Created PR where this converter can return Binding, but turns out convertors can only return simple values.
Code in PR throws Object must implement IConvertible.

Created PR where this converter can return Binding, but turns out convertors can only return simple values.
Code in PR throws Object must implement IConvertible.

Created PR where this converter can return Binding, but turns out convertors can only return simple values.
Code in PR throws Object must implement IConvertible.
While testing I created sample page for this converter, so created a PR for that #780. It illustrates that user need to manually notify page on collection change.

Thanks :)
Since the PR with the sample is merged, I think we can close this issue. (because, as it was mentioned, it is impossible to implement).

Created PR where this converter can return Binding, but turns out convertors can only return simple values.
Code in PR throws Object must implement IConvertible.
While testing I created sample page for this converter, so created a PR for that #780. It illustrates that user need to manually notify page on collection change.

Thanks :)
Since the PR with the sample is merged, I think we can close this issue. (because, as it was mentioned, it is impossible to implement).


Prevent stuck download timeouts in case update already present on device

As discussed in https://macadmins.slack.com/archives/C03LKQ8EN2C/p1667596801850159 this MR is a possible solution for macs which already have the update downloaded but the restart notifications don't trigger.
This can happen in cases previous MDM commands have downloaded the patch or because SUPER was reinstalled inbetween downloading and the actual install/restart

This case also occurs on intel macs without MDM flow for me.

That being said, it would still be ideal if we could figure out a way to validate the download is complete before attempting another download.
Is there a big downside to trying the download again? It will returns fast and nothing is actually being downloaded. Still agree that it would be cleaner to look it up in a state somewhere but I don't know how to do that without just looking at the logs telling it was SUCCESS.

I found a thing.... defaults read /System/Volumes/Update/Update.plist update-asset-attributes

I found a thing.... defaults read /System/Volumes/Update/Update.plist update-asset-attributes

What macos version is that? I don't seem to have those (macos 12)

You only have that if you have a downloaded update.

Please check out the super v3.0b4 as it has a completely rearchitected download workflow.


How to run a rhai script from another rhai script ?

I would like to call a rhai script from another rhai script in runtime. is it possible ?
Something like:
print("Running: " + child_script)
run(child_script)

And, having all modules in function of the root script accessible by the child script ?

How about wrapping child_script into a module?
import "child_script"; will run child_script without creating an alias.
Or you can wrap the code you want into an init function, then you can:
import "child_script" as c;
c::init();

Thanks, I'll investigate it

My initial thought was to execute different modules in runtime, download the necessary rhai from a github repository or a url and using it directly somehow inside the main rhai script

In that case, you'd want to write a custom module resolver that resolves Rhai modules from Github, preferably caching it locally via git...

@patrickelectric  do you have any more issues with this?

In the end I just created a function for the engine that register itself as a function to be used inside the rhai script, thanks!


Escape function names if they collide with Erlang keywords

if
case
send
receive
bnot
div
rem
band
bor
bxor
bsl
bsr
not
and
or
xor
orelse
andalso
when
end
fun
try
catch
after

Or maybe instead of escaping the function names, do not allow these names at all?

I don't want to tie the language to the the syntax of the compile target too much, at least not yet. I could imagine a future were we compile to Javascript, WASM, Go, etc- would we also add the keywords of those languages to Gleam's reserved words?


docs: add token and configmaps design

Add a new Token and ConfigMap API design.

Token will generate a new token from the service account.
ConfigMap will get data of a specific config map.

As we discussed @mzeevi and @fran2810, we'll create endpoints to:

Create a new service account (namespace parameter only)
Get or create a new token from the service account (namespace and service account name parameters)

@mzeevi @fran2810 Can you please review it again?

/approve


CORE-17123: Fix dependency substitution for jars wrapped as OSGi bundles.

Ensure that Gradle's dependency substitution selects the JAR artifact for each of the modules that wraps a third-party jar as an OSGi bundle.
Also clean up their respective build.gradle scripts to make them all consistent.

beyond my gradle knowledge to know what this stuff is remotely doing.

The corda.common-library plugin replaces references to these third-party jars with a reference to a project module instead, where the project module has converted the jar into a working OSGi bundle. However, by default, a project dependency is going to refer to its unpackaged .class files rather than its final .jar file. This is a Bad Thing :tm: for OSGi because the OSGi metadata we need only exists in the jar's manifest!
I have therefore adjusted the substitution rules also to include the LibraryElement.JAR attribute, which prevents Gradle from making this mistake.


Memory usage and JSON/architectural issues

Hi @nrwiersma,
Firstly thank you for taking the time to write and share this library. Unfortunately I've stopped using it for the moment as it introduced instability problems into my application, due to memory usage. So I was wondering about some of the architectural choices made with this library. Please correct me if I'm wrong with anything I say here.
I've modified your library to use server->streamFile() instead of server->send(), so the HTML file is streamed directly from flash instead of being read into a string variable before being sent. This has both improved web server performance and reduced impact on heap space, in turn reducing crashes when the HTML file is too big.
I'm also concerned about the security problems of the REST API. Since parameters may include passwords for MQTT brokers, having an open endpoint which freely shows clear text parameter values is a bit of a risk.
The library passes parameters via the REST API using JSON. This creates a large memory overhead and makes it difficult to use standard HTML forms for the PUT, as there is no JSON support built into HTML. Could we not just post server args using multipart/form-data and access each arg without the expensive transformation to and from JSON? Sure it makes it easy on the client where we have the convenience of JavaScript and Ajax, but it's expensive on the ESP8266 side.
Thanks,
Jon

Hi,
Thanks for getting in touch. I will answer as best I can :)
I didnt know about streamFile. I will gladly take a pull request that makes the library more efficient.
So the clear text design was not made with passwords in mind. My thoughts were that the endpoints would be on a controlled network (like your home network) and mainly to hold settings used configure devices, more then usernames and passwords. I would have kept passwords in the compiled code, as they don't really change the same way settings do. I don't think there is a simple way around this problem, but would be interested to hear your thoughts.
JSON is an API standard. When making frontend software I almost always end up moving JSON around. That isnt to say that you are wrong. Standard form encoding is indeed cheaper and quicker. As a middle ground perhaps form encoded could be supported on the POST and JSON on the PUT. What are your thoughts on this?
Thanks for your thoughts,
Nick

@nrwiersma Thanks Nick, I've made the amendment to stream direct from file, and created the pull request. Sorry it took a while for me to get around to it. :)
I think the dual approach for POST/PUT might be best - then we get the best of all worlds and avoid all the shenanigans one has to go through to generate JSON from a web form. My C++ is pitiful or I'd probably implement this myself.
As for the clear-text password issue, one could implement a flag on custom field indicating that some sort of internal two-way hash should be used to store the field contents, so at least clear text passwords can't just be obtained by issuing a GET query. Then internally the unhashed clear text password becomes available for use in MQTT connects etc.
What do you think?
Kind regards,
Jon

Hi,
Thanks for the pull request. It is greatly appreciated. It will be released in the next version.
As soon as I get some time, I will write the POST code, just a little swamped at the moment.
With regards to encrypting passwords, this is a little more tricky. My init assumption was that this is in an environment of trust, which is obviously not always the case. The issue is that the GET works on the config struct, so if you can see the clear text password, so can the GET. Perhaps the trick is to be able to set fields with PUT/POST but not GET them. Might this work? I am also concerned about the power and RAM needed for encryption (it is meant to be expensive). Would you like to start a new issue for this topic, and we can discuss this there?
Thanks,
Nick

Sure... see you there!
Jon

Hi,
Was looking into the POST request, and I remember why I chose JSON. The server args always returns a string, so typing is an issue. Will need to look into converting types.

Yes, types are always a pain when passing data around.
On the memory issue, I've seen a lot of people having memory issues when repeatedly serving web pages from an ESP8266, and more than one has reported that including a "Connection: close" header with each page served fixes this by requesting that the client closes the connection after the data is received. What do you think, @nrwiersma? Is it worth including anyway?

Yes, good idea, this should be added in the next release.

Also related to memory usage, could we move as many program string literals as possible into flash memory using PROGMEM? I've tried this locally and it works well to reduce overall RAM usage.
https://gist.github.com/sticilface/e54016485fcccd10950e93ddcd4461a3
Thanks,
Jon

Sounds good. You want to add this as a pull request?

Once I've fully tested it all I shall put in a PR 🙂

PR submitted. All running very nicely.

Pull request merged, thanks for that.
Have run into a snag with the POST endpoint. The string stream I was planning to use is too big. Need to come up with another plan here. Will move onto the other issues so long.

Ok if you want to discuss it and kick some ideas around, let me know.

Thanks, appreciate it. My plan is to look to ArduinoJson for ideas on how to solve it. If you have some ideas, will gladly chat about them.

I just had a thought that might make the POST issue unnecessary. CM provides a function setAPICallback that lets you register your own API endpoints on the web server. My thought is that you can handle the POST yourself, and as you know your types, you wont run into the same issues that CM is. Do you find this acceptable as a solution? Perhaps I need to write more docs to this end.

Sweet, that being the case, I will close this issue.
BTW. I checked the connection close issue, and this is sent by the library, see here,
So there is no need for me to handle this.

Hi Nick, sorry I'm neck-deep in one of our own projects but shall try everything as soon as I can.
In the meantime, yes more documentation and/or example code would probably be helpful for most potential users of ConfigManager.

Hi,
Thanks for the feedback. Any particular areas you think the docs need improvement, other then a better API callback docs/example?


APEXCORE-283 - checkpointing in distributed in-memory store

@tushargosavi
Can you please review the changes.

@ashishtadose The only change needed in core is handling the appId support. The rest (geode dependencies) all belong into Malhar.

@tweise agree its better that ways. will keep AppId support & Abstract storage implementation in core and will move rest concrete implementations to Malhar.

Hi @tweise  @tushargosavi
All review comments have been incorporated.
Kindly suggest on core movement to Malhar.

@ashishtadose All additions except the changes related to AppIdAwareStorageAgent should go into Malhar (contrib project or separate geode project). This will decouple Geode support and Apex core.

@tweise  @tushargosavi
All storage agent abstract and concrete implementations have been moved to malhar
MLHR-1938 - https://github.com/apache/incubator-apex-malhar/pull/125
This just contains  changes related to AppIdAwareStorageAgent.

@tushargosavi suggested to make all attributes available to the storage agent instead of just the application id.

@tweise suggested changes are incorporated.

A possible future enhancement could be support for the xxxAware interface for all attribute values. But this can be taken up later also.

When all other comments are addressed, please squash the commits. See (9) in
http://apex.incubator.apache.org/contributing.html#opening-pull-requests-contributors-

Please add the test case for new API and also squash the commits

@tweise @gauravgopi123  commits are squashed with appropriate changes.
Thanks for reviewing.

All changes have been incorporated.


ODE integration in pointing_fcn returns warning on second run

Warning says
UserWarning: dopri5: step size becomes too small
self.messages.get(idid, 'Unexpected idid=%s' % idid))

Seems to be fixed with max_step and nstep default settings.


Users newline cannot be registered.

Newlines are being dropped. Maybe use nl2br() ? But where ? Mhmm.

Fixed on a0746aeb83e9869bc06d617f22437cae01d376a1


Move tests enzyme

I wasn't sure if this is actually something we want, but I figured I could check out what the hype is all about.
So far I think that enzyme works really well for 90% of the tests, however, things get complicated when I try to test the TetherComponent, as that component renders outside of itself. I'll try to figure out how to work around that, but so far I wanted to show what I have. What do you guys think?

[Current coverage][cc-pull] is 90.23%

Merging [#524][cc-pull] into [master][cc-base-branch] will decrease coverage by 0.39%

@@             master       #524   diff @@
==========================================
  Files            10         10
  Lines           331        338     +7
  Methods          14         14
  Messages          0          0
  Branches         49         56     +7
==========================================
+ Hits            300        305     +5
- Misses           14         15     +1
- Partials         17         18     +1

[][cc-pull]

Powered by Codecov. Last updated by [b51259d...4a6e385][cc-compare]
[cc-base-branch]: https://codecov.io/gh/Hacker0x01/react-datepicker/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/Hacker0x01/react-datepicker/compare/b51259d2d583ea801e5ba2e21a0429108dea9443...4a6e385ca90971b6399a99a601e3dbe08bf599b1?src=pr
[cc-pull]: https://codecov.io/gh/Hacker0x01/react-datepicker/pull/524?src=pr

I like this, @rafeememon what do you think?

We should probably update the readMe to make sure anyone knows that tests you can use Enzyme for tests. Here's some more information: https://github.com/airbnb/enzyme

@rso Is this ready to go or do we need more changes before we land this?


Add Hazelcast Jet

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars? (It has got 247 as of now, so close enough I believe)
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[x] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Deploy preview for landscape ready!
Built with commit 22378502a61aeee7647bf3917f4f491f6d0ea50b
https://deploy-preview-1008--landscape.netlify.com

LGTM

This looks promising and the pull request looks good. Could you please reopen when it reaches 300 stars.


Add GitHub pull request template

The contribution guide is still receiving comment, so this is subject to revision. But I think we can get one in place that is somewhat useful immediately. And I am eager to try out this rather fun feature :-)

LGTM

Thanks for suggesting this, @iemejia.
R: @davorbonaci, @jbonofre

LGTM; will merge today.

I went ahead and merged from the LGTM(s), and I assume it will receive polish over time.


example page not working

your example page is not working: 404 file not found

:) we've discontinued this framework

Duplicate #44


no NQ1 data

hello, I wonder where can I found whether "NQ1" is contained in the symbol list?
thks so much!

Commit 1562b2a add supports for futures, including NQ1!. Check https://tvdb.brianthe.dev/.

Thank you a lot !!! It will help my study so much. Wish you all the best.
在 2022-07-06 20:49:41，"Brian" @.***> 写道：
Commit 1562b2a add supports for futures, including NQ1!. Check https://tvdb.brianthe.dev/.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


fix typo && add VRAM limits

VRAM limits are provided by:

me [6GB VRAM]
ao [12GB VRAM]
i'd also add something to specify that ONNX models are not GPU specific, while tensorRT are
note: my conversion was with default settings, so might not apply to all

What should we do with this ?
It's not accurate at all. Not even correct.

after some actual testing, TRT is not viable/usable on 4GB:
"""
for 4GB users, lmao it wont work

safetensors -> ONNX: will OOM, use CPU to convert ✅

you need to manually modify the script however

ONNX -> TRT: will OOM regardless of engine shape and builder optimizations ❌

it might succeed? if i didnt have to omit CUBLAS and cuDNN from tacticSources, try yourself

TRT infrencing -> will OOM even with 64x64 ❌

maybe if engine shape is reduced (and thus engine size), it will be doable
"""
from TAI server


Set "Accept" header in JSON requests

When generating cURL commands for JSON requests, the Content-Type: application/json header is being set to describe the request data, but the Accept: application/json header is not set to explicitly request a JSON response. In JSON-only APIs, this isn't an issue, but we are working with APIs that return various data formats. Without the Accept header, many of them default to XML. The issue is when we share the cURL commands, they often end up sending JSON but receiving XML back, which isn't an accurate representation of the transactions we're trying to communicate with the snippets.
For example, when sending JSON data to the Typicode test API, I would expect this cURL command to be generated:
curl -X "GET" "https://jsonplaceholder.typicode.com/posts/1" \
	-H "Accept: application/json" \
	-H "Content-Type: application/json" \
	-d "{}"

Thank you for your work on Paw and this extension.

@jamescoletti, thank you for the report, I'll look into it asap.

@jamescoletti I've looked into your issue, and I fail to reproduce it.

Are you expecting the cURL Generator to automatically add an Accept: application/json header despite it not being present in the Header section?

@JonathanMontane Yes, should have made that more explicit. My reasoning is if the client is explicitly sending JSON data with a JSON Content-Type header, it would make sense to explicitly request JSON in return. As I mentioned, this is mostly an issue with multi-format APIs that default to something else without an Accept. Not sure how common that is, but seemingly more common than I originally anticipated.
Thoughts?

@jamescoletti I am sorry, but we will not implement this feature as API endpoints should be able to return values in other format than the ones in which a POST data was sent. An example of a perfectly legitimate API would be an svg generator API, that would take a JSON describing the content of the svg, and would return a XML file containing the svg. As we can't infer the intent of an API, we cannot deduce whether the content encoding should match the response encoding.
I suggest that you add the Accept: application/json header to your requests in Paw to enforce the endpoints to return JSON content.
Sorry to let you down.

@JonathanMontane, no worries. Makes sense. Thanks for the consideration.


Jest test TypeError

Getting this error when running my components through Jest for snapshot tests
TypeError: pico_signals_1.default is not a function

Implementation as documented
import signal from 'pico-signals';

export const someSignal = signal();

Possible fix:
Instead of exporting
const createPicoSignals = () => new PicoSignals();

export default createPicoSignals;

export
export default PicoSignals;

and update implementation to:
import signal from 'pico-signals';

export const someSignal = new signal();

Thanks for submitting the issue.
The issue doesn't seem to be related to export a factory or the class directly. Even if we exported the class directly, the issue would be the same. Instead, it looks some miss-configuration of babel within Jest.
Could you go into the node_modules/pico-signals within your project, and write console.log('cjs') and console.log('es') at the top of lib/index.js and es/index.js respectively? Then, run the tests and see which one is printed?

With the export const someSignal = signal(); the error was the same.
I changed it to export const someSignal = signal; and the tests passed and cjs was logged.

Could you provide a test case? I'm not able to reproduce the issue you are having. For instance:
// foo.js

import signal from '..';

export const someSignal = signal();

// bar.js
import { someSignal } from './foo';
console.log(someSignal);

Is working as expected, even if I create those files in this project's `tests/` folder and import `bar.js` inside `index.test.js`.


create_array reads too many dimensions

Currently array.create_array(buf, numdims, idims, dtype) assumes idims has always size 4 even if numdims < 4. It shouldn't.

I should have read some more, I see i'm not supposed to use it...


Get a customFields value if it exists.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey,
I will close this pull request as it is inactive for a while. Feel free to create a new one.


Adding blaze powder as fuel to a brewingstand by hopper not working

Maybe I am a bit stuck but I can not make a automatic brewing machine because it is not possible to add the blaze powder as fuel into a brewingstand by using a hopper.
Any ideas?
Thanks a lot!

My fork of Et Futurum is based on the KryptonCaptain fork


az servicebus namespace authorization-rule breaks

Describe the bug
az servicebus namespace authorization-rule keys list breaks the tool. im getting a typeError
To Reproduce
Create an servicebus namespace and an authorization rule.
In Powershell now do az servicebus namespace authorization-rule keys list with the nessecary parameters. none additional parameters given.
Expected behavior
I expect a list of my authorization keys.
Environment summary
azure-cli 2.0.61 (Installed from chocolatey)
Additional context
az servicebus namespace authorization-rule keys list --resource-group BusTest2 --namespace-name mwifbustest2 --name "SendRead" --query primaryConnectionString
Traceback (most recent call last):
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\knack\knack\cli.py", line 206, in invoke
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\commands\__init__.py", line 351, in execute
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\commands\__init__.py", line 409, in _run_jobs_serially
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\commands\__init__.py", line 402, in _run_job
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\six\six.py", line 693, in reraise
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\commands\__init__.py", line 379, in _run_job
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\commands\__init__.py", line 171, in __call__
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\__init__.py", line 451, in default_command_handler
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-mgmt-servicebus\azure\mgmt\servicebus\operations\namespaces_operations.py", line 870, in list_keys
azure.mgmt.servicebus.models._models.ErrorResponseException: Operation returned an invalid status code 'Not Found'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli\azure\cli\__main__.py", line 39, in <module>
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli\azure\cli\__main__.py", line 29, in cli_main
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\knack\knack\cli.py", line 218, in invoke
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\__init__.py", line 96, in exception_handler
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-qvpg2q31\azure-cli-core\azure\cli\core\util.py", line 35, in handle_exception
TypeError: string indices must be integers

After some futher testing, it looks like it only crashing upon requesting the premade authorization key, "RootManagedAccessKey".
Authorization rules i have made my self, even with the same access (Read, Write, Manage) currently gives me the expected results

@mathwro , the default one is "RootManageSharedAccessKey" we tried to repo and the default one works fine, can you please try again with default name as "RootManageSharedAccessKey".
please let us know it works or not.
we also tried with below commands it works fine. Note we used the Latest CLI Version : 2.0.67

@v-Ajnava I tried it with the default "RootManageSharedAccessKey" as well.
I did however just do some testing before and after of bumping my version of the Azure CLI just now. It seems to have been fixed in one of the latest versions as it is now working as expected in 2.0.67.
Much appreciated, thanks!

@mathwro, closing this issue, please let us know if have any questions.


Audit for Record Edit

Definition of Ready

[ ] Does this meet the INVEST criteria?
[ ] Does this have a clearly defined user?
[ ] Does this have an estimate?
[ ] Does this have acceptance criteria?
[ ] Does this have sufficient context (wireframes, business rules, etc.)?
[ ] Is this traceable to a feature, epic, or PI?

User Story
As an ECMPS user, I want to view the audit record on a Monitoring Plan, so that I know the user and time when the last updates were made
Acceptance Criteria
Given Monitoring Plan data was updated successfully
When the record is checked back-in
Then the system logs the user name (user ID) and date when the last updates were made
and displays on the screen (Last Updated by: User ID, 8/23/2021)
Notes: Last updated information (user ID and the updated Date) on the Monitoring Plan record. It should only show up when the record is not checked Out
Context

Testing
Test Case:
Tester:
Definition of Done

[ ] Have all Acceptance Criteria been agreed to and validated by the scrum team?
[ ] Has the code been unit tested and peer reviewed?
[ ] Have the functional tests been executed?
[ ] Have all defects been reviewed and dispositioned, resolved, or deferred?
[ ] Has the user story been accepted by the Product Owner?
[ ] Is the user story ready to be deployed to the test/staging environments?

Please add your planning poker estimate with ZenHub @jeffreyaggrey

The api/monitor-plan-mgmt/workspace/plans/{orisCode}/configurations needs to be updated to also retrieve auditing information: userid, add_date, update_date

Test Passed


feat: generate metadata/default.meta

Related to https://github.com/splunk/addonfactory-ucc-generator/issues/267

Codecov Report

Merging #313 (6a7a863) into main (6cc76bd) will increase coverage by 0.27%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #313      +/-   ##
==========================================
+ Coverage   76.80%   77.08%   +0.27%
==========================================
  Files          28       29       +1
  Lines        1953     1968      +15
==========================================
+ Hits         1500     1517      +17
+ Misses        453      451       -2

Impacted Files
Coverage Δ

splunk_add_on_ucc_framework/__init__.py
77.63% <100.00%> (+0.35%)
:arrow_up:

splunk_add_on_ucc_framework/meta_conf.py
100.00% <100.00%> (ø)

splunk_add_on_ucc_framework/conf_parser.py
85.92% <0.00%> (+1.48%)
:arrow_up:

Continue to review full report at Codecov.

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

:tada: This PR is included in version 5.7.0-beta.1 :tada:
The release is available on:

v5.7.0-beta.1
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 5.7.0 :tada:
The release is available on:

v5.7.0
GitHub release

Your semantic-release bot :package::rocket:


How to finetune the model

https://github.com/yishaoai/tutorials-of-100-wonderful-ai-models/tree/main/2.flux-controlnet
Hello, @thesby .
You can finetune controlnet by  above tutorial. This tutorial is in Chinese, and you can translate it to English using Google.


[FALSE-POSITIVE]

Domains or links
Please list any domains and links listed here which you believe are a false positive.
s3.ap-northeast-1.amazonaws.com
s3.eu-central-1.amazonaws.com
s3.eu-north-1.amazonaws.com
s3.eu-west-1.amazonaws.com
More Information
How did you discover your web site or domain was listed here?
AWS S3 domains.
Have you requested removal from other sources?
Please include all relevant links to your existing removals / whitelistings.
Additional context
Add any other context about the problem here.
:exclamation:
We understand being listed on a Phishing Database like this can be frustrating and embarrassing for many web site owners. The first step is to remain calm. The second step is to rest assured one of our maintainers will address your issue as soon as possible. Please make sure you have provided as much information as possible to help speed up the process.
Send a Pull Request for faster removal
Users who understand github and creating Pull Requests can assist us with faster removals by sending a PR on the whitelist.me file

https://github.com/mitchellkrogza/Phishing.Database/blob/master/whitelist.me/whitelist.me
Please include the same above information to help speed up the whitelisting process.

Many thanks keep contributing many hands make better projects


EuroNews support is broken

The URL generated apparently lacks the schema (http:):
$ livestreamer http://euronews.com/live
[cli][info] Found matching plugin euronews for URL http://euronews.com/live
error: Unable to open URL: //euronews-en-p-api.hexaglobe.net/0c8f986590bb91d2d7ab4e11c6ec5839/5b8825e4/euronews/euronews-euronews-website-web-responsive-2/en/stream_info.php?format=hls (Invalid URL '//euronews-en-p-api.hexaglobe.net/0c8f986590bb91d2d7ab4e11c6ec5839/5b8825e4/euronews/euronews-euronews-website-web-responsive-2/en/stream_info.php?format=hls': No schema supplied. Perhaps you meant http:////euronews-en-p-api.hexaglobe.net/0c8f986590bb91d2d7ab4e11c6ec5839/5b8825e4/euronews/euronews-euronews-website-web-responsive-2/en/stream_info.php?format=hls?)

@yktoo Livestreamer is deprecated use https://github.com/streamlink/streamlink instead

It's the same with streamlink unfortunately.

@yktoo if you haven't already open a new issue on the streamlink site they're more active than livestreamer and might fix your problem


[BUG]: Difficulty in building project that build with cibuildhweel

Problem description
In GitHub runner, cibuildwheel setups python 3.7, which is not supported by nanobind (Attempting to install nanobind would cause TypeError: copytree() got an unexpected keyword argument 'dirs_exist_ok')
The cause is https://github.com/wjakob/nanobind/blob/master/setup.py#L49 due to dirs_exist_ok option not existing before python 3.8 (https://docs.python.org/3/library/shutil.html#shutil.copytree)
See: https://github.com/laggykiller/apngasm-python/actions/runs/5854803439/job/15871376469
However, if I install it in the venv setup by cibuildwheel, then:
CMake Error at cmake/QueryPythonForNanobind.cmake:37 (find_package):
    Could not find a package configuration file provided by "nanobind" with any
    of the following names:

      nanobindConfig.cmake
      nanobind-config.cmake

    Add the installation prefix of "nanobind" to CMAKE_PREFIX_PATH or set
    "nanobind_DIR" to a directory containing one of the above files.  If
    "nanobind" provides a separate development package or SDK, be sure it has
    been installed.

See: https://github.com/laggykiller/apngasm-python/actions/runs/5855058420/job/15872111888
Of course I can just add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/nanobind), but I think we should also make the pip method possible.
Reproducible example code
No response

See also the nanobind_example project.

I thought of another method, which is to check for existance of <venv>/Lib/site-packages/nanobind/cmake (Windows) or <venv>/lib/site-packages/pythonX.Y/nanobind/cmake (Other), and set nanobind_ROOT to the directory if it exist.
Reference: https://docs.python.org/3/library/venv.html#creating-virtual-environments
However, I don't think there is easy way to find pythonX.Y that is being used for building

I don't understand. The example project also uses cibuildwheel, and everything works just fine. What is different in your use case?

The clue is in the lines above the error you posted:
  -- Found Python: C:/hostedtoolcache/windows/Python/3.11.4/x64/python3.exe (found suitable version "3.11.4", minimum required is "3.8") found components: Interpreter Development.Module
  -- Detecting nanobind CMake location
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
  ModuleNotFoundError: No module named 'nanobind'
  CMake Error at C:/vcpkg/scripts/buildsystems/vcpkg.cmake:855 (_find_package):
    Could not find a package configuration file provided by "nanobind" with any
    of the following names:

      nanobindConfig.cmake
      nanobind-config.cmake

    Add the installation prefix of "nanobind" to CMAKE_PREFIX_PATH or set
    "nanobind_DIR" to a directory containing one of the above files.  If
    "nanobind" provides a separate development package or SDK, be sure it has
    been installed.

The Python installation that was found is the default GitHub actions one, not the one from cibuildwheel. This global Python installation does not have nanobind installed, so locating it fails.
The reason that the wrong version of Python is found is that you're using find_package(Python ...) in your CMake scripts, but you did not set find_python = true in your py-build-cmake config.
See https://github.com/tttapa/py-build-cmake/blob/9631696c2dec7b31551f67c5df9943ff0f0a19d5/examples/nanobind-project/pyproject.toml#L45-L46

@laggykiller feel free to open an issue in tttapa/py-build-cmake, let's continue the discussion over there.
To make things easier to debug, please enable verbose output, add the following to pyproject.toml:
[tool.cibuildwheel]
build-verbosity = 1
environment = { PY_BUILD_CMAKE_VERBOSE="1" }

And set build_args = ["-j", "--verbose"] in [tool.py-build-cmake.cmake].

I will close the issue here, seems like it's not related to nanobind.

 I was only familiar with the latter two. The description of py-build-cmake sounds to me like it's intended for similar goals.

@wjakob I started developing py-build-cmake before scikit-build-core existed, it was born out of a necessity to reliably cross-compile some of my packages (this was very painful to do in setuptools-based backends such as the original scikit-build).
Strong cross-compilation support is still one of the main goals today, as well as support for editable installs, creating separate wheels with secondary artifacts (like debugging symbols), a direct command-line interface, etc., but there's indeed quite a bit of overlap with scikit-build-core.

Thanks for the clarification!

Since it seems to be a general CMake mistake unrelated to py-build-cmake: the linker error was caused by calling find_package(Python ...) before project(...). Moving the find_package call below the project call resolves it.


Fix vanilla world compatibility

It's working.
Issue #138

https://travis-ci.org/Barteks2x/CubicChunks/jobs/191684499 what...


Develop a bundle-splitting engineering plan

Develop a detailed engineering plan for bundle-splitting.
Use the bundle-splitting scenarios from #1282 as a starting point, along with code from internal Office repos. Cover both bundle production and bundle consumption. Include expectations regarding bundle size increase compared to equivalent single-bundle runs.
Output is a plan and a task list.

Notes on one possible solution
A split bundle exports a collection of packages, each under a unique name. The split bundle author specifies this mapping as kit configuration.
For example, it might look like this:
"rnx-kit": {
    "splitBundle": {
        "interface": {
            "MyKitGlobal.Telemetry": "telemetryjs",
            "MyKitGlobal.StringResources": "string-resources",
            "MyKitGlobal.ReactNative.Components": "react-native"
        }
    }
}

The bundler will take this configuration, and use it to generate a programmatically-consumable, type-safe API. Something along the lines of a typescript .d.ts file.
Other packages which depend on this kit will naturally gain access to the type-safe API, and benefit from it in IDEs like VSCode and at lint/build time.


Subtle scroll animations.

I want to add subtle scroll animations on the website page. Adding these subtle animations will make website look more modern and a bit dynamic improving the user experience.
Kindly assign this issue to me under GSSoC'24, so that I can start working on it.

I have experience of adding scroll or in-view animations using Framer Motion.
Kindly assign this issue to me under GSSoC'24, so that I can start working on it.

Assigned @yashi-15

Any Updates @yashi-15. Are you working on the issue ??

Any Updates @yashi-15. Are you working on the issue ??

Yes I am working, I will make the PR till evening.


Problems with advanced romms

how it is

how it schud be

config
      - name: Schlafen
        points:
          - [8.35, 9.80]
          - [8.4, 13.75]
          - [12.3, 13.75] #the point that is missing
          - [12.3, 10.25]
          - [14.1, 10.25]
          - [14.1, 7.7]

Yes, I do something that could cause that.  I'll look into it.

Oh, I think you are missing a point.  I count you should have 7 points since the start and end should match.

like this ?
          - [8.35, 9.80]
          - [8.4, 13.75]
          - [12.3, 13.75]
          - [12.3, 10.25]
          - [14.1, 10.25]
          - [14.1, 7.7]
          - [8.35, 9.80]

Yeah I use this [https://observablehq.com/@d3/d3-polygonhull], that's the issue.  We don't want a convex hull

v0.1.10 should fix this.  Please verify.

works now thx !

Awesome


[Snyk] Upgrade postcss from 8.4.31 to 8.4.32

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade postcss from 8.4.31 to 8.4.32.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 21 days ago, on 2023-12-02.

Release notes

Package name: postcss

8.4.32 - 2023-12-02
Fixed postcss().process() types (by @ ferreira-tb).

8.4.31 - 2023-09-28
Fixed \r parsing to fix CVE-2023-44270.

    from postcss GitHub release notes

Commit messages

Package name: postcss

a0d9f10 Release 8.4.32 version
0146b3e Add Node.js 21 to CI
2398534 Update dependencies
1918533 Merge pull request #1902 from ferreira-tb/main
395e6dc Fix `ProcessOptions` interface
fa8cd15 Update dependencies
199a7c4 Typo
2528047 Update EM link

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

@snyk-bot rebase


Handle bug in Docker engine v23.0 update.

A bug in the Docker engine v23.0 update means that using the COPY command changes the directory permissions of the directory the file is copied to. This causes an issue in the /tmp directory. which requires write permissions for apt installation, etc.
The simplest method of solving this problem is to COPY the files to /opt instead of /tmp.

Also, add comments somewhere that the reason for using COPY instead of opening a binding to get the requirements files is to prevent cache misses when other files in the same directory are changed even if the target file is the same. This should be tested to see if the issue still occurs.

For example, is the apt stage reinstalled when pipor conda` requirements modified?

The cache missing is indeed an issue. If the entire directory is used as a bind mount, changing any file in that directory will cause a cache miss.

Apparently, the new behavior of v23.0 is not a bug but fixes previous undefined behavior. It will have to be fixed all the same.

See here https://github.com/moby/buildkit/issues/3602#issuecomment-1424877627

Checked that the updated version functions correctly in Docker engine v23.0.